解説用数学ビデオのためのアニメーションエンジン Manim
(github.com/3b1b)- Manim は、数学の解説動画を制作するための 高精度なプログラミングベースのアニメーションエンジン である
- 3Blue1Brown の作者が、自身の教育動画向けに開発したプロジェクトである
- コミュニティフォーク版も存在し、使いやすさ・貢献・テストの面で発展が進んでいる
- Python ベース で動作し、FFmpeg、OpenGL、LaTeX などさまざまなシステム依存関係を必要とする
- オープンソース(MIT ライセンス) で、誰でも自由に利用・貢献できる
Manim プロジェクトの重要性と利点
- Manim は、数学や科学の概念を視覚的に効果的に説明するために 開発されたオープンソースのアニメーションエンジンである
- 他の映像ツールと異なり、精密なコードベースのアニメーション を作成できるため、複雑な数学的アイデアを段階的に可視化するのに非常に優れている
- 3Blue1Brown が直接運営しており、教育動画制作の経験とノウハウが反映された独自のツールとして評価されている
- コミュニティフォーク版も別途活発に開発されており、開発者フレンドリーで多様な改善が素早く反映される構造になっている
プロジェクト概要
- Manim は、数学の解説のための 高精度なプログラミングアニメーションエンジン であり、動画内で数式、図形、多面的な概念展開を自由に実装できる
- もともと 3Blue1Brown の教育動画制作向けに始まり、それに関連する専用コードも別リポジトリで公開されている
- 2020年には、より多くの人が簡単に使えるようにコミュニティ版がフォークされ、安定性、コミュニティ貢献、テストなどが向上したエコシステムが形成されつつある
主な特徴と要件
- ManimGL(オリジナル)と Manim Community Edition(コミュニティフォーク)に分かれている
- バージョンごとにインストール方法と使い方が異なるため、利用したい版をあらかじめ選ぶ必要がある
- pip でインストールする場合は、manimgl パッケージ名でオリジナル版をインストールできる
- Python 3.7 以上 が必要で、FFmpeg、OpenGL、環境によっては LaTeX や Linux 向けの Pango なども追加で必要となる
利用案内(例)
- コーディング例、シーンファイル、実行コマンドを含むサンプルが提供されている
- 複数のサンプルシーンやドキュメント、実際の 3Blue1Brown 動画向け専用コードも確認して活用できる
- コマンドライン実行時にはさまざまなフラグが提供されており
- 出力ファイルの保存、全シーンのスキップ、フルスクリーン実行など、多様な出力方法やユーザー指定の環境をサポートする
custom_config.ymlファイルを通じて、スタイル、品質、パスなどの詳細な環境設定が可能である
ドキュメント化と貢献
- 公式ドキュメントは別サイトで提供されており、中国語版や追加のカスタムリソースも利用できる
- オープンソースプロジェクトらしく、プルリクエストやコミュニティからの貢献 を積極的に歓迎している
- MIT ライセンスで提供されており、誰でも自由に修正・配布できる
技術情報と統計
- Python(96.3%)、GLSL(3.7%) などの主要言語で構成されている
- GitHub スター 8万件、フォーク 6,800件 以上と、高い人気とコミュニティ参加が確認できる
- 167人以上の多様な貢献者が活動している
要約
- Manim は、正確で精密な数学・科学の可視化に特化 したプログラミングアニメーションエンジンである
- コードベースのアニメーションを必要とする 教育動画制作者、データ可視化の専門家、開発者 にとって非常に有用である
- 学習コストの低さ、カスタマイズ環境、自由な貢献とコミュニティの成長 が重要な差別化ポイントである
1件のコメント
Hacker Newsのコメント
最近はコーディングアシスタントと組み合わせると本当に効果的に動くと実感している。たとえば「X方程式がYに変化する図が必要」といったプロンプトで、いつも一発で欲しい結果が得られる。単純な文法と大量のオープンソースの manim サンプルが学習に使われているからだと思う。AI コーディングエージェントがどれだけ時間を節約してくれるかを示す素晴らしい事例だと思う。最終的な動画さえうまく出れば、細かい過程は気にしなくてよいので、そのやり方のほうが便利だ
Grant Sanderson が出演したポッドキャストで聞いた話を思い出した。彼は LLM で manim コードの自動生成を試したものの、結果はいまひとつだったと言っていた。結局のところ、manim に対する習熟度や基準について、私たちの考えと Grant の考えの間には大きな差があるということなのだと思う
ドキュメントに RAG 機能を組み合わせたらどうなるのか気になる
Manim を授業の発表資料に使ってみたが、本当に楽しい体験だった。多くの人があのスタイルに気づいてくれたし、発表自体も好評だった。そして運よく数年前に Grant に直接会ったこともある。Manim を使ったと伝えると、心から喜んでいる様子が印象的だった。彼は人類の知識と理解に大きく貢献している素晴らしい人だ
3b1b はまさにインターネット世界の驚異だと思う。本当に美しいアニメーションと慎重に磨き上げられた説明には感嘆させられる。ただ一つ理解できないのは、どうして一つのライブラリであれほど多様な概念をアニメーションとして実装できるのかという点だ。すべてカスタム実装なのではと思ってしまうが、もしかすると Grant はもっと高いレベルの数学的思考の上で作業しているのかもしれない
たいていの人にはコミュニティフォーク版のリンクのほうが適していると思う。Manim Community GitHub
Grant が作ったプロジェクトは本当に優れているが、それは単なるオープンソースライブラリのメンテナではなく、そのドメインに本気で専門性を持つ人が、実際のアプリケーションに合うツールがないため自ら開発し維持しているケースだからだ。一方でコミュニティフォークは、インフラを構築したい人たちが、本来の目的に最適化するよりも多くのユースケースに合わせようとするため、結果として元の目的から徐々に離れ、ユーザー体験も犠牲になっていると思う。専門家の開発者が自分の仕事を進めるために作るものと、単に保守や宣伝のためにフォークを維持するものとの違いだと見ている
きちんとした理由があってフォークされたのか、それとも単なる論争のためだったのか気になる。フォークに関する説明は読んだが、Grant が引き続きオリジナルを維持しているのに、正確な理由はいまだによくわからない
数学中心ではなく、一般的なインフォグラフィック、チャート、モーショングラフィックスに重点を置いたコードベースのアニメーションレンダラーを熱心に探している。従来の選択肢は After Effects、Davinci Fusion、Blender、Cavalry などだが、昔 PovRay を、その後 Manim を触って以来、コード/テキストベースのモーショングラフィックスツールという発想が頭から離れない。LLM と組み合わせれば真価を発揮しそうだ。最近は ChatGPT ベースのモーショングラフィックスサービスも出てきているが、そうしたウェブベースの動画生成機よりも、自分が求めているのはテンプレートコード/言語で、どんなデータに対しても繰り返しレンダリングでき、オフラインや自動化にも対応できる方向のツールだ
4年ほど前に Manim を使ったときは、kwargs-itis とでも呼びたくなるほど、あらゆるパラメータが kwargs にされていて、型アノテーションも使えず、必要以上に使いづらかった。改善を試みたこともあったが、ほとんど反応は得られなかったので、最近はどう変わったのか気になる
このプロジェクトは HN によく上がっていて良い議論も多いので、議論リンクの代わりに検索リンクを置いておく HN の manim 検索結果
manim ソフトウェアを一覧できる awesome リストのようなものがあるのか気になる。以下に資料をまとめておく
HN では通常、同じリンクの重複は許可されないと思っていたのだが、重複投稿は可能なのだろうか
Manim 関連の過去の HN 議論や Show HN のリンクをまとめておく
Grant が 3blue1brown と Manim で生み出した成果物には本当に感嘆する。動画の高いクオリティと可視化のおかげで、抽象的なテーマであっても理解しやすい。README にもすでに書かれているが、Grant が Manim で作業する過程を紹介したデモ動画(YouTube リンク)はぜひ勧めたい
本当に素晴らしいプロジェクトで、昔の印象的な動画 Animation vs Math をすぐ思い出してクリックした Animation vs Math ユーチューブ。数学は好きだが、巨大なグラフを見せることが人々にとって必ずしも良い方法だとは感じない