コンテンツ制作 · iart-ai/manim-skills

manim

This skill should be used when the user asks to "make a math animation", "animate an equation", "use Manim", "make a 3Blue1Brown-style video", "plot or animate a graph/function", "visualize a math/physics/CS concept", "morph one formula into another", "animate a geometric proof", or "render a math explainer". Covers Manim Community Edition — Scenes, Mobjects, animations, LaTeX/MathTex, graphs, updaters/ValueTracker, 3D, and rendering to MP4/GIF via the CLI.

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ネットワーク通信ファイル書き込みDual-pass Audit
Author iart-aiGitHub iart-ai/manim-skills ↗Stars 9License MIT(仓库根 LICENSE:MIT License / Copyright (c) 2026 iart.ai;.claude-plugin/plugin.json 声明 "license": "MIT",GitHub API license.spdx_id = MIT)Commit a15833c44d
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

数学アニメーションを宣言的Pythonに変換します。Sceneサブクラスのconstruct()内にplay/waitを順次記述し、Manimが各Mobjectの状態とAnimationをタイムラインとして評価し、CLIからフレーム単位で決定論的なMP4/GIFをレンダリングします。

skills/manim/SKILL.md
Every scene is declarative: you build vector objects, play timed animations over them, and render a deterministic MP4/GIF from the CLI.
「宣言的 + CLIレンダリング」がWebアニメーション系スキルとの根本的な違いです。ブラウザなし、リアルタイムループなしで、成果物はファイルとして生成されます。

全機能は3つの要素で構成されます。Scenes(演出・構成)がMobjects(ベクターオブジェクト)に作用し、Animations(時間制御された変化)を通じて表現されます。すべてのアニメーションコードはconstruct()という単一メソッド内に記述します。

skills/manim/SKILL.md
Everything is **Scenes** (orchestration) acting on **Mobjects** (objects) via **Animations** (timed change).
ドキュメントはこの1文で全体を読み解くためのメンタルモデルを提示しており、後続のチートシートはすべてその展開です。

数式組版はLaTeX(Tex/MathTex、raw文字列 r"..." が必須)が担当し、通常テキストはPango(Text/MarkupText、LaTeX不要)が担当します。この役割分担がランタイムの前提条件(TeXディストリビューション導入の要否)を直接左右します。

skills/manim/SKILL.md
**LaTeX is required** for `Tex`/`MathTex` (not for `Text`).
グリフ欠落の四角(豆腐)やコンパイルエラーは「LaTeX未導入 / TeX文字列の記述ミス」の直接的なサインであり、ドキュメントの落とし穴の筆頭に挙げられています。

関数と図形のアニメーションはAxes + ax.plotで表現し、ax.c2pを用いて数学座標を画面座標にマッピングします(画面座標の手動指定は禁止)。動的な値にはValueTrackerとalways_redraw/add_updaterを組み合わせ、依存オブジェクト(曲線上の点、カウンター、接線など)をフレームごとに再計算させます。

skills/manim/SKILL.md
Drive live values with `ValueTracker` + `always_redraw`/`add_updater` so dependent mobjects recompute every frame
「単一のtrackerで全体を駆動する」ことと「c2pを用いた点配置」が組み合わさることで、編集を繰り返してもシーンの整合性が保たれます。

3Dとカメラは独立したレイヤーです。ThreeDScene + set_camera_orientation / Surface / begin_ambient_camera_rotationを使用し、2DではMovingCameraSceneのself.camera.frame.animateを用いてズームイン、追従、リセットを行います。

skills/manim/SKILL.md
`ThreeDScene` + `set_camera_orientation(phi=, theta=)`, `ThreeDAxes`, `Surface`, `begin_ambient_camera_rotation()`
リファレンスには、save_state()/Restoreを用いた構図スナップショットの手法も記載されており、「ズームイン後に全体表示へ戻す」用途に使われます。

決定論的(再現性)であることが主要な強みです。同一シーンからは同一フレームがレンダリングされるため、動画全体をエンコードする前にまず静止画フレーム(PNG)をレンダリングして数式や組版を確認し、その後に本番出力を行う検証戦略がとれます。

skills/manim/SKILL.md
Manim is deterministic — the same scene renders the same frames — so verify by rendering **frames** (PNG, no video encode) before committing to the full video.
これにより「レンダリングコスト」と「検証コスト」が分離され、検証サイクルを低コストで反復可能にしています。

CLIは3つの品質管理レバーを提供します。-sで最終フレームをPNG保存(エンコードなし)、-n a,bで特定のアニメーションインデックス区間のみレンダリング(途中の1コマを確認)、-q lで低品質イテレーションを実施。確認後に-qhで本番出力を行い、成果物はmedia/videos|images配下に出力されます。

skills/manim/SKILL.md
- `-s` — **save the last frame as a PNG** (no video encode — the verification lever, see below).
「検証」を別個のテストコードではなく、CLIの第1級パラメータとして設計しています。

機能の境界が明確に引かれています。UIアニメーション、SNS/マーケティング動画、CSVビジネスグラフは対象外とし、数式組版と直感的な可視化に特化しています。

skills/manim/SKILL.md
Not the tool for UI motion, social/marketing video, or data-from-CSV business charts
「このツールを使うべきでない場面」の判定基準を自ら提示している点は、エージェントのルーティングにおいて非常に有用な設計です。

実時間(ウォールクロック)依存やシードなしの乱数は禁止されています。construct()はタイムラインをスクリプト化するために1度だけ実行され、リアルタイムループは存在しません。乱数にはシード値が必須です。

skills/manim/SKILL.md
`construct()` runs once to *script* the timeline; there is no realtime loop — never use wall-clock time or randomness without a seed.
同一作者による他のパックと同様のフレーム駆動規律に基づき、再現性を最優先としています。

2コア機能

01Scene / Mobject / Animationの3大要素 + 完全チートシート(生成、変形、配置、継続時間とイージング)
02方程式アニメーションと項単位の変形: Write / TransformMatchingTex(一致する部分TeXのうち変化した部分のみアニメーション)/ {{ }} グルーピング / 部分文字列の着色 / カスタムLaTeXパッケージ
03.animate構文(任意のメソッド呼び出しのアニメーション化、チェーン可能)、複数アニメーションの並列play、LaggedStartによる時差演出、rate_funcイージング
04座標軸とグラフ描画: Axes/NumberPlane、plot、c2p/p2c座標マッピング、曲線下の面積とリーマン和
05動的値駆動: ValueTracker + always_redraw / add_updater(曲線上の点、アニメーションカウンター、接線/割線グループ)
06カメラと3D: ThreeDScene + set_camera_orientation + Surface/媒介変数曲面 + 環境カメラ回転、2D MovingCameraSceneによるズーム/追従/リセット
07CLIレンダリングと品質管理レバー: -q 品質プリセット、-p プレビュー、-s 最終フレーム保存、-n a,b 区間レンダリング、--format=gif、成果物は自動的にmedia/配下に出力
08LaTeX前提条件の診断: グリフ欠落の四角やコンパイルエラーを「LaTeX未導入 / TeX文字列の不備」と特定し、raw文字列の使用を強制
09シーンレベルのCLIクイックスタートパス(インストール → 単一Sceneのプレビュー → 高品質エクスポート)

3外部依存関係

KindDependency / Endpoint
clipip install manim(安装 Manim Community Edition,含 Python 3.9+ / ffmpeg / LaTeX 三项前置说明)
climanim CLI(-q / -p / -s / -n / --format=gif 渲染与质检)
packageManim Community Edition(数学动画引擎本体,官方发包)
packageLaTeX 发行版(TeX Live / MiKTeX):仅 Tex / MathTex 需要;Text / MarkupText 走 Pango 不需要
packagenumpy(Manim 的数学依赖;reference 的 3D 曲面前置直接用 np.sin/np.cos)
cliffmpeg / ffprobe(Manim 编码 MP4 的底层依赖;仓库根 contact-sheet.sh 拼图与 probe-mp4.sh 断言)
network运行时无网络调用:skill 不访问任何 API/CDN;Manim 场景是纯本地 Python + 本地 ffmpeg + 本地 LaTeX 编译

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: manim CLI(-pql / -sql / -s / -n a,b / -qh / -qm --format=gif)によるローカルレンダリングと品質検証、シーンのフレーム単位実行
  • 网络端点: 外部ネットワークアクセスの宣言: 実行時のネットワーク呼び出しゼロ: Manimシーンは完全にローカルなPython + ローカルのffmpeg + ローカルのLaTeXで動作し、API、CDN、リモートサーバーへの参照は一切なし
  • 本地工作目录: ファイル読み書きおよび成果物の出力: media/videos/<file>/<quality>/<Scene>.mp4 および media/images/.../<Scene>.png(-s)
監査ノート: 審査対象はスキルディレクトリ自体です(skills/manim/: SKILL.md + references/配下3点 + 0バイトのREADME.md。ディレクトリ内にスクリプトなし、認証情報読み取りなし、ディスク書き込みなし)。動作面=ローカルCLI + ローカル読み書き: ローカルにインストールされたmanim CLIを実行(ローカルのffmpegおよびローカルのLaTeXコンパイルを併用)、出力先はmedia/およびプロジェクトディレクトリのみ。実行時の外部ネットワーク送信ゼロ、認証情報/環境変数の読み取りゼロ、情報収集や制限回避の挙動なし。オレンジと判定しない理由: 本スキルにおけるサードパーティ依存関係の記述は「事前インストール指示」(`pip install manim` + 任意のTeXディストリビューション)であり、実行パスはローカルに導入済みのCLIを呼び出す形式です。同一作者のRemotion系スキルのように実行時に`npx ...`でリモートパッケージを取得・実行する形態とは異なります。これはサイト内の前例(gsap-reactはnpm依存をインストール指示とみなし評価を引き上げない、hyperframes-animation / hyperframes-audioは「公式パッケージのインストール + ローカルCLI + ローカル読み書き」によりブルー判定)とも合致します。グリーンと判定しない理由: 外部依存関係とローカルディスク書き込み(media/成果物、LaTeXコンパイル中間ファイル)が実際に存在し、TeX文字列がコンパイラに渡されるため、自己生成コンテンツであってもプレーンテキストスキルより実行面が1段階広くなります。トリガー条件: レンダリングによりローカル環境でシーンスクリプトとffmpegが実行されます。pip/TeXのインストール実行は利用者の判断に委ねられます。

5二重目の独立検証

  • [ok] 外部依赖调用点复核(pip install manim / manim CLI / ffmpeg / LaTeX / numpy) — SKILL.md Setup 节确有 `pip install manim # needs Python 3.9+, ffmpeg, and a LaTeX distribution (for Tex/MathTex)` 与 `manim -pql scene.py SquareToCircle`;verify 段确有 `manim -sql scene.py MyScene -n 0,3`;math-and-text 确有 TeX Live/MiKTeX 说明;3d-and-camera 确有 np.sin/np.cos 用法;仓库根 scripts/README.md 确有 manim 与 probe-mp4 的用法示例。全部落地,非推测。
  • [ok] 「运行期零网络」反查 — 四份文档与仓库脚本中无 API endpoint、无 curl/wget、无 fetch/requests、无 CDN import;Manim 场景全部是本地 Python 对象构造。唯一网络相关表述集中在 Setup 的包安装指令。结论成立。
  • [ok] 无凭证 / 无 env 读取 — 全文无 API_KEY/token/secret/.env/.netrc 读取,无浏览器 cookie 取用,无环境变量透传;与同 pack 的 Remotion 系(走 npm 远端包)和 generative-illustration(走 OPENROUTER_API_KEY)形成鲜明对比。
  • [ok] 确定性主张的成立条件 — SKILL.md 明确「Manim is deterministic — the same scene renders the same frames」,并在 gotchas 收尾补上边界:「never use wall-clock time or randomness without a seed」——即确定性依赖于不引入墙钟、随机须播种。主张有边界,非无条件承诺。
  • [ok] 目录资产面清点 — skills/manim/ 下仅 SKILL.md(136 行)、references/ 三份(math-and-text 70 行 / graphs-and-updaters 61 行 / 3d-and-camera 68 行)、0 字节 README.md;无 scripts/、无 .py 样例文件、无模板资产——「纯指令 + reference」结论成立(场景脚本由使用者/agent 现写)。
  • [discrepancy] 跨引用可解析性 — SKILL.md 提到「the `motion-design-skills` pack (`animation-principles` ...)」——该 pack 与 animation-principles 均不在本 repo(本 repo 仅 skills/manim 一个 skill),属同作者的另一个 pack,单装本 repo 时该引用悬空。另正文引用的 `scripts/contact-sheet.sh`、`scripts/probe-mp4.sh` 位于本 repo 根,单装 skill 目录会悬空。
  • [ok] 能力边界声明与正文覆盖的一致性 — SKILL.md 自述「Not the tool for UI motion, social/marketing video, or data-from-CSV business charts」,而正文与三份 reference 确实只覆盖数学排版、函数/图形、3D 与相机;未出现与自述边界冲突的内容(无 UI/营销/CSV 章节)。
  • [ok] 档位判据与站内先例的一致性 — 判蓝的两条支撑:① 依赖以「安装指令」形式出现、执行的是本地 CLI(先例 gsap-react 明确不因 npm 依赖抬档;hyperframes-animation/hyperframes-audio 因官方包安装 + 本地 CLI + 本地读写判蓝);② 运行期无网络外发、无凭证、无采集(不满足黄/橙)。同时保留「有外部依赖 + 有本地写盘 + TeX 编译面」的现实,故不判绿。判据留痕如上,便于复核与跨批次口径统一。

6結論

  • 「フレームレンダリング」を第1級の品質管理レバーとし(-s / -n a,b でエンコードなしのPNG出力)、動画全体のレンダリングに比べ検証コストを大幅に削減
  • 宣言的 + CLIレンダリングによる本質的な決定論性により、追加のエンジニアリングなしで「同一入力=同一出力」を担保
  • 明確に定義された機能境界(UI/マーケティング/CSVグラフは対象外)により、エージェントルーティング時の誤用を防止
  • 動的値駆動における単一の信頼できる情報源とクリーンアップ規律(ValueTracker + always_redraw、完了時のclear_updaters)
  • 前提条件が明確かつ段階的に整理されており、LaTeXがインストールできない環境でもTextを用いて出力が可能
  • 最適な用途: 数学、物理学、コンピュータサイエンスの教育および直感的な可視化に最適: 方程式の記述と変形、代入や置き換えの項ごとのハイライト、関数のプロットと曲線に沿った点の移動、面積とリーマン和、幾何学的証明の展開、3D曲面とカメラの回転演出など、特に3Blue1Brownのような「正確な数式組版と動き」が求められる解説動画に適しています。
    不向きな用途: UIアニメーション、SNS/マーケティング向け短尺動画、CSVビジネスデータグラフには不向き(本スキルで明確に対象外とし、他のパックを案内);複雑なレイヤー合成、音声編集、動画エフェクトを必要とする完成版映像の制作には不向き(Manimは数学アニメーション自体のみを担当);ブラウザ/Web上での直接レンダリングが必要なユースケースには不向き(成果物はローカルのMP4/GIFファイル)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-28
    Option A · Direct DownloadDownload manim.tar.gz
    sha256: 5ebe4ae4e425d911…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit a15833c44d.