Manim を触りたいと考えて GitHub で 3b1b/manim に辿り着いた開発者の多くが、README 冒頭の「本リポジトリと ManimCommunity 版はインストール手順が異なる」という Warning で最初のつまずきを経験します。pip install manim を打つべきか、pip install manimgl を打つべきか。この一手がプロジェクトの方向性を左右する意思決定であることは、初見では見えにくい構造になっています。
背景には、Manim(Mathematical Animation Engine)が 2 つのバージョンに分岐しているという事情があります。オリジナルは 3Blue1Brown を運営する Grant Sanderson 氏の個人プロジェクトである 3b1b/manim、そしてその 2020 年フォークから育ったコミュニティ版が ManimCommunity/manim(以下 ManimCE と表記)です。日本語圏では「Manim」と一括で語られやすく、2 バージョンが存在すること自体が意思決定の入り口で見落とされがちです。
本記事は、初見のエンジニアが「自分のプロジェクトにどちらを採用すべきか」を判断するための材料を、公式 README・公式ドキュメント・公式 FAQ をもとに整理した記事です。数式アニメーションの用途カテゴリ・対象ユーザー・レンダリング方式・ドキュメント状況の 4 軸で違いを俯瞰し、選定の判断軸として提示します。
なお本記事はドキュメントベースの整理であり、環境構築やレンダリングの実行結果に基づく所感は含めません。数値・仕様の記述はすべて公式情報および gh api /repos/3b1b/manim の取得結果に依拠しています。
ManimGL(3b1b/manim)とは何か
3b1b/manim は、README で「Manim is an engine for precise programmatic animations, designed for creating explanatory math videos.(Manim は、解説的な数学動画を作成するために設計された、精密でプログラマブルなアニメーションエンジンです)」と説明されているとおり、数式・グラフ・座標系・幾何オブジェクトなどをコードで記述してアニメーションに変換する Python ライブラリです(3b1b/manim README)。
もともとは YouTube チャンネル 3Blue1Brown を運営する Grant Sanderson 氏が、線形代数・微積分・解析学などの解説動画を作るために個人プロジェクトとして開発を始めたものです。動画そのもののソースコードは別リポジトリ 3b1b/videos に置かれており、3b1b/manim は再利用可能なエンジン部分に相当します。
数式アニメーションエンジンとしての位置づけ
Manim は、matplotlib のような科学プロット系ライブラリとは目的が異なります。matplotlib.animation が「データの静止画から派生した簡易アニメーション」を得意とするのに対し、Manim は「解説的動画のために、オブジェクト(数式・図形・矢印など)を状態 A から状態 B に滑らかに変換する」ことを軸に設計されています。カメラワーク・シーン切り替え・LaTeX 数式のレンダリング・座標系や関数グラフの描画といった、教育動画向けの演出プリミティブを持っている点が最大の特徴です。
リポジトリの基本情報
執筆時点(2026 年 8 月)で gh api /repos/3b1b/manim から取得したリポジトリ情報は次のとおりです。
項目 | 値 |
|---|---|
description | Animation engine for explanatory math videos |
language | Python |
license | MIT |
stargazers_count | 91,958 |
forks_count | 7,580 |
pushed_at | 2026-08-18T21:03:49Z |
archived | false |
fork | false |
visibility | public |
スター数は約 9.2 万で、Python 系 OSS の中でも上位に位置します。ライセンスは MIT で、商用・非商用問わず利用・改変・再配布が可能です。archived: false かつ fork: false である点も重要で、本リポジトリは他リポジトリの派生ではなくオリジナルであり、開発は継続中です。最終 push は 2026 年 8 月と、比較的直近まで更新が続いています。原作者が自身の動画制作のために継続して使用していることが、更新頻度の背景にあります。
manimgl パッケージ名と manimlib インポート
初見のエンジニアが最も混乱しやすいのが、PyPI 上のパッケージ名と Python の import 名の対応です。3b1b/manim の README によると、PyPI パッケージ名は manim でも manimlib でもなく manimgl です。一方、コード内での import 文は from manimlib import * となります(3b1b/manim README)。
パッケージ名の gl は、後述する OpenGL ベースのレンダリング方式を暗示しています。ここで pip install manim を実行すると、コミュニティ版フォークである ManimCE がインストールされることになるため、意図と実行が食い違います。
なぜ 2 バージョンが存在するのか
3b1b/manim の README には、次の趣旨が明記されています。2020 年、開発者コミュニティは本リポジトリをフォークし、より安定した機能・テストの整備・コミュニティ貢献の応答性・入門しやすさを提供することを目的とした派生版の開発を開始しました。それが現在の ManimCommunity/manim(ManimCE)です。
以降、両者は次のような棲み分けで並走しています。
- 3b1b/manim(ManimGL): 原作者 Grant Sanderson 氏が自身の動画制作で使う実装。実験的・最先端の機能を優先し、リファクタは動画制作の必要に応じて行われる
- ManimCommunity/manim(ManimCE): コミュニティが継続的に開発。テストの整備・API の整理・ドキュメントの充実・応答性の高いレビューフローを提供
Manim Community 側は FAQ: Different versions の中で、両バージョンの違いに触れつつ、継続的な開発・改善された機能・強化されたドキュメント・より活発なコミュニティ主導のメンテナンスを理由に、多くのユーザーには ManimCE の利用を推奨しています。3b1b/manim の README 側でも「より活発なコントリビュートのエコシステムは ManimCommunity 側」と明記されており、両者の役割分担は公式レベルで共有された事実です。
つまり「どちらが優れているか」ではなく、「どちらが自分の目的に合っているか」を判断する構造になっています。以降の章では、その判断のための比較軸を整理します。
ManimGL と ManimCE の比較
比較の全体像を先に示します。数値はいずれも 2026 年 8 月時点の公開情報に基づきます。
観点 | 3b1b/manim(ManimGL) | ManimCommunity/manim(ManimCE) |
|---|---|---|
リポジトリ |
|
|
PyPI パッケージ名 |
|
|
import 文 |
|
|
GitHub スター数 | 91,958 | 約 4 万 |
ライセンス | MIT | MIT |
メンテナ | Grant Sanderson(3Blue1Brown 個人) | コミュニティ |
位置づけ | 3Blue1Brown 動画制作用の実験的・最先端 | 安定・テスト充実・入門向けの派生版 |
ドキュメント | 3b1b.github.io/manim(進行中) | docs.manim.community(安定版として整備) |
レンダリング | OpenGL + GLSL シェーダーによるハードウェア加速(実験的) | 標準レンダリング(CI・テストあり) |
Python 要件 | 3.10 以上 | 3.11 以上(v0.19.2 以降) |
推奨対象 | Grant 氏の動画制作手法を研究したい上級者 | 初心者・大多数の一般用途 |
(出典: 3b1b/manim README、ManimCommunity/manim README、Manim Community 公式 FAQ: Different versions)
パッケージ名・import 文の違い
インストールと import の対応を、README の記述に沿って示します。ManimGL のインストールは次のとおりです。
# Install manimgl
pip install manimgl
# Try it out
manimgl
(出典: 3b1b/manim README)
README には、リポジトリからの開発インストールと、サンプルシーンを動かすコマンドも示されています。
# Install manimgl
pip install -e .
# Try it out
manimgl example_scenes.py OpeningManimExample
(出典: 3b1b/manim README)
一方、pip install manim を実行した場合にインストールされるのは ManimCE です。両者は同じ「Manim」という名称を共有しつつ、パッケージ名・import 名・API の細部が分岐しているため、片方向けの入門記事のコードをもう片方の環境で動かすと、import の時点で失敗します。日本語入門記事を読むときは、記事内で from manim import * と書かれているか from manimlib import * と書かれているかを最初に確認しておくと、環境の取り違えを避けやすくなります。
レンダリングとパフォーマンス
ManimGL の技術的特徴として、OpenGL と GLSL シェーダーによるハードウェア加速レンダリングが挙げられます。3Blue1Brown の動画制作では、複雑な数式・大量の粒子・3D シーンを扱う場面が多く、原作者はレンダリング速度とインタラクティブなプレビューを重視して OpenGL 系のパイプラインを採用しています。
一方、ManimCE は標準レンダリングパイプラインを軸に据え、CI・テストによって挙動の再現性を担保するアプローチをとっています(Manim Community 公式ドキュメント)。ManimCE 側にも OpenGL レンダラーの実装は存在しますが、公式が推奨する既定の使用パターンとしては安定した標準側が中心に置かれています。
「動画をパイプラインで大量生成したい」「シェーダーで独自の演出を組みたい」といった用途では ManimGL 側の設計思想が親和的で、「安定した挙動でチュートリアル・教材コンテンツを継続生産したい」といった用途では ManimCE 側の設計思想が親和的です。
ドキュメント・安定性・コミュニティ規模
ドキュメント整備の観点では、ManimCE の docs.manim.community が現時点で最も体系的です。API リファレンス・チュートリアル・FAQ・例示コードが充実しており、コミュニティ内のディスカッションやリリースノートも継続的に更新されています。
ManimGL のドキュメントは 3b1b.github.io/manim にホストされており、Getting Started・例示シーン・アーキテクチャ概要・カスタム設定などをカバーしていますが、README にも「documentation is a work in progress(ドキュメントは進行中)」と付記されているとおり、網羅性は ManimCE 側に及ばない箇所があります。
コミュニティ規模の観点では、スター数の差(ManimGL 約 9.2 万、ManimCE 約 4 万)に加えて、レビューフローの活発度でも ManimCE 側が優位です。3b1b/manim の README 自身も「より活発なコントリビュートのエコシステムは ManimCommunity 側」と明記しています。実運用でトラブルシューティングを行う際、日本語・英語ともに情報量が多いのは ManimCE 側です。
どんなときに ManimGL を選ぶか
ここまでの整理を踏まえ、ManimGL を積極的に選ぶ意味がある典型的なユースケースを列挙します。以下は公式のポジショニングを踏まえた整理であり、「どちらが優れているか」ではなく「どちらの側の設計思想に合致するか」の観点で判断してください。
- 3Blue1Brown の動画制作手法を研究したい: Grant 氏本人が動画制作で使っている実装を追体験することが目的の場合、ManimGL が第一候補になります
- OpenGL / GLSL による表現・高速化を試したい: シェーダーを用いた独自演出やハードウェア加速の恩恵を得たい場合、ManimGL のレンダリングパイプラインが親和的です
- 実験的・最先端の機能を試したい: API 安定性より新機能の早期反映を優先したい場合、原作者の判断で先行実装される ManimGL 側が向いています
逆に、次のいずれかに該当する場合は、Manim Community 公式ドキュメントが自ら推奨しているとおり、ManimCE を第一候補にした方が学習・実装のコストを抑えられます。
- Python での数式アニメーション自体が初めてで、まずは動くコードで型を掴みたい
- チーム開発・教材コンテンツ生産・長期メンテナンスなど、API 安定性とテストが重要な用途である
- 日本語・英語のチュートリアル・トラブルシュート情報を頼りに独学したい
このように、ManimGL と ManimCE は「上位互換・下位互換」の関係ではなく、対象ユーザーと想定用途が異なる別の選択肢と捉えるのが実態に合っています。
動作環境と主要 CLI フラグ
ManimGL 側を選択する場合の初期セットアップ像を、README・公式ドキュメント Getting Started の記載に基づいて整理します。実行結果に基づく所感は含めず、要件の把握に用途を絞っています。
動作要件(README 記載)
- Python 3.10 以上
- FFmpeg
- OpenGL
- LaTeX(数式レンダリング用・任意)
- Linux では Pango と development headers
macOS では、README 上で次の依存関係のインストール例が示されています。
brew install ffmpeg mactex
(出典: 3b1b/manim README)
主要 CLI フラグ(README 抜粋)
フラグ | 意味 |
|---|---|
| シーンをファイルに書き出す |
| 書き出しつつ結果を開く |
| 最終フレームまでスキップ(プレビュー用途) |
| 最終フレームを画像として保存 |
|
|
| 再生ウィンドウをフルスクリーン化 |
このほか custom_config.yml によるカスタマイズが用意されており、出力解像度・保存先・カメラのデフォルト値などをプロジェクト単位で切り替えられます。詳細な設定項目は公式ドキュメントに整理されているため、環境構築後は Getting Started と Documentation セクションを併読するのが近道です。
類似プロダクトとの位置づけ
数式アニメーションと隣接する領域には、Manim 系以外にも比較の対象になり得るプロダクトが存在します。ここでは Manim との棲み分けを短く整理します。
ManimCommunity/manim(ManimCE)
3b1b/manim をフォークしたコミュニティ版で、本記事の主題である比較対象です。API と思想の大半は共有していますが、パッケージ名(manim)、import 文(from manim import *)、テスト・ドキュメントの整備状況、Python 要件(3.11 以上)で 3b1b/manim 側と分岐しています。多くの一般ユーザーに対しては、Manim Community 公式が ManimCE の採用を推奨しています。
motion-canvas/motion-canvas
TypeScript ベースのプログラマブルアニメーションエンジンで、ブラウザベースのエディタからリアルタイムプレビューを行える点が特徴です(motion-canvas 公式ドキュメント)。設計思想の差分として、Manim が「オブジェクトを状態 A から状態 B に変換する」ことを軸とするのに対し、Motion Canvas は「個々のプロパティをアニメーションさせる」ことを軸とします。ボイスオーバー同期の設計や Web への埋め込みやすさも Motion Canvas の強みで、Web 系エンジニアが「Manim 的なプログラマブル動画表現を TypeScript で扱いたい」場合の有力候補となります。
matplotlib.animation
Python 標準寄りの科学プロットライブラリ matplotlib のアニメーションモジュールです(matplotlib.animation 公式ドキュメント)。データ可視化の静止画から派生した簡易アニメーションを目的に据えており、LaTeX 数式レンダリング・3D 演出・シーン切り替えといった教育動画向けの作り込みは Manim ほど手厚くありません。「既存の matplotlib 資産をそのまま動画化したい」といった用途に対して素直な選択肢となります。
これらを踏まえると、「Manim 系のどちらか」で迷った時点の背後には、そもそも「Python での教育動画向け表現」というカテゴリの前提がある、と整理できます。TypeScript ベースの Web ネイティブ表現や、matplotlib 資産の延長線という選択肢と比較したうえで、Python で数式アニメーションを扱うと決めた読者にとっての詳細な選定が、ManimGL / ManimCE の比較です。
まとめと次のアクション
本記事で整理した判断軸を、意思決定のチェックリストとして再掲します。
- 開発方針: 最先端・実験的な機能を優先するのが ManimGL、安定・テスト整備を優先するのが ManimCE
- 対象ユーザー: 3Blue1Brown の動画制作手法を研究したい上級者は ManimGL、初心者・大多数の一般ユーザーは ManimCE(Manim Community 公式が推奨)
- レンダリング方式: OpenGL + GLSL のハードウェア加速を活かしたいなら ManimGL、標準レンダリングと CI 整備を活かしたいなら ManimCE
- ドキュメント状況: 体系性・情報量で ManimCE が優位。ManimGL は進行中の公式ドキュメントと README を主要な情報源とする
次のアクションとしては、選んだ側の Getting Started に進むのが最短ルートです。ManimGL 側であれば、README の Directly セクションを起点に環境を整えつつ、公式ドキュメントの Example Scenes を写経するのが、コードから API の思想を掴む近道になります。ManimCE 側を選んだ場合は、docs.manim.community のチュートリアル が体系的に整備されているため、そちらから入るとよいでしょう。
いずれを選んでも、しばらく触ったあとで「もう一方も試したくなる」局面が来ることは十分に想定されます。両者のパッケージ名・import 文・Python 要件の差を最初に把握しておけば、その時点で環境をスムーズに切り替えられます。
関連情報
教育・研究・技術発信向けの数式ビジュアライゼーションや、動画・スライド生成の自動化パイプラインを社内で構築したい場合の技術支援については、お問い合わせフォーム からご相談いただけます。要件が固まる前の段階からの整理支援も可能です。
OSS を活用した数式ビジュアライゼーションや Python での動画・可視化案件をお探しのエンジニアの方は、Workee フリーランス向けサービス で登録可能な案件や利用の流れをご確認いただけます。



