内容创作 · 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.

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 iart-aiGitHub iart-ai/manim-skills ↗Stars 9许可 MIT(仓库根 LICENSE:MIT License / Copyright (c) 2026 iart.ai;.claude-plugin/plugin.json 声明 "license": "MIT",GitHub API license.spdx_id = MIT)commit a15833c44d
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 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 渲染」是它与网页动效类 skill 的根本差异:没有浏览器、没有实时循环,产物是文件。

全部能力由三件套组合出来:Scenes(编排)作用于 Mobjects(矢量对象),经 Animations(定时变更)表达;所有动画代码都写在 construct() 这一个方法里。

skills/manim/SKILL.md
Everything is **Scenes** (orchestration) acting on **Mobjects** (objects) via **Animations** (timed change).
注:文档用这句给出阅读整篇的心智模型,后面所有速查表都是它的展开。

数学排版归 LaTeX(Tex/MathTex,必须用 raw string r"..."),普通文本归 Pango(Text/MarkupText,不需 LaTeX)——这条分工直接决定了运行时前置(是否必须装 TeX 发行版)。

skills/manim/SKILL.md
**LaTeX is required** for `Tex`/`MathTex` (not for `Text`).
注:缺字形方框或编译错误是「没装 LaTeX / TeX 串写错」的直接信号,文档把它写成 gotcha 第一条。

函数与图形动画用 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()`
注:Reference 另给 save_state()/Restore 的取景快照做法,用于「推近后回到全景」。

确定性是关键卖点:同一 scene 渲染出同样的帧,因此验证策略是先渲染帧(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 给三个质检杠杆:-s 存最后一帧为 PNG(不编码)、-n a,b 只渲动画索引区间(停在中途看一格)、-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 的一等参数,而不是另写测试代码。

能力边界被明确划出:不做 UI 动效、社媒/营销视频、CSV 商业图表,强项是数学排版与直觉可视化。

skills/manim/SKILL.md
Not the tool for UI motion, social/marketing video, or data-from-CSV business charts
注:主动给出「不该用我」的判据,属少见但对 agent 路由很有用的设计。

禁止墙钟与未播种随机:construct() 只执行一次用于脚本化时间轴,没有实时循环;随机须带 seed。

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.
注:与同作者其它 pack 的帧驱动纪律同源:可复现优先。

2核心能力

01Scene / Mobject / Animation 三件套 + 完整速查表(创建、变形、定位、时长与缓动)
02方程动画与项级变换:Write / TransformMatchingTex(相同子 TeX 只动变化的部分)/ {{ }} 分组 / 子串上色 / 自定义 LaTeX 宏包
03.animate 语法(动画化任意方法调用,可链式)、多动画并行 play、LaggedStart 错峰、rate_func 缓动
04坐标轴与绘图:Axes/NumberPlane、plot、c2p/p2c 坐标映射、曲线下面积与 Riemann 矩形
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 string
09场景级 CLI 快速上手路径(安装 → 单 Scene 预览 → 高质量出片)

3外部依赖

类型依赖
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风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • LaTeX 是硬前置且安装体积大 — Tex/MathTex 需要完整 TeX 发行版(TeX Live 体积可观);缺装时的表现是缺字形方框或编译失败,容易误判为代码写错。CI/容器环境需预先镜像化。
  • TeX 串进入本地编译器 — 场景里的 TeX 串会被本地 LaTeX 编译;虽然此处是自产内容,但若把外部来源的公式文本直接拼进 MathTex,则应重新评估该信任边界(LaTeX 存在历史上的命令执行面)。
  • 首次渲染成本与缓存目录副作用 — Manim 会写 media/ 与中间文件;高质量 4K 与高 resolution 的 Surface 渲染耗时长,文档给出的建议是先用 -ql + 低 resolution 迭代——但缓存与产物目录需要纳入版本控制/清理策略。
  • 跨 pack 引用悬空 — SKILL.md 提到的 motion-design-skills / animation-principles 不在本 repo;单装本 repo 时该共享词汇引用不可解析(不影响使用,但会让「为什么这样缓动」的依据缺半)。
  • 3D 与相机路径的验证仍靠人眼 — 文档建议用 -sql -n a,b 存帧确认相机角度与「没有东西跑到相机背后」;这类检查无自动断言,复杂 3D 场景需要较多轮人工迭代。
风险提醒:蓝色,知晓即可。判级对象是 skill 自身目录(skills/manim/:SKILL.md + references/ 三份 + 0 字节 README.md;目录内无脚本、无凭证读取、不写盘)。行为面=本地 CLI + 本地读写:执行的是安装在本地的 manim CLI(配本地 ffmpeg 与本地 LaTeX 编译),输出只落在 media/ 与项目目录;运行期零网络外发、零凭证/env 读取、无采集与绕过行为。之所以不判橙:本 skill 对第三方依赖的表述是「安装前置指令」(`pip install manim` + 可选 TeX 发行版),而执行路径调用的是本地已安装的 CLI,未像同作者 Remotion 系 skill 那样以 `npx …` 在运行时抓取并执行远端包;这与站内先例一致(gsap-react 将 npm 依赖视为安装指令而不抬档;hyperframes-animation / hyperframes-audio 因「官方包安装 + 本地 CLI + 本地读写」判蓝)。之所以不给绿:确有外部依赖与本地写盘(media/ 产物、LaTeX 编译中间文件),且 TeX 串会进入编译器——虽属自产内容,仍比纯文本 skill 多一层执行面。触发条件:渲染即在本机执行场景脚本与 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结论

  • 把「渲染帧」做成一等质检杠杆(-s / -n a,b 出 PNG 不编码),检查成本远低于成片渲染
  • 声明式 + CLI 渲染天然确定性,使「同一输入同一输出」不需要额外工程就可成立
  • 能力边界写得很干净(不做 UI/营销/CSV 图表),agent 路由时不易用错工具
  • 活值驱动有单一真源与清理纪律(ValueTracker + always_redraw,用完 clear_updaters)
  • 前置依赖被写清楚且分档,装不上 LaTeX 也能先用 Text 出片
  • 适合:适合数学/物理/计算机科学的教学与直觉可视化:方程写上与变形、代入与替换的逐项高亮、函数作图与点沿曲线、面积与 Riemann 和、几何证明展开、3D 曲面与相机环绕——尤其是需要 3Blue1Brown 那种「数学排版正确且动起来」的短片。
    不适合:不适合 UI 动效、社媒/营销短视频、CSV 商业数据图表(skill 明确声明并指向其它 pack);不适合需要复杂图层合成、配音剪辑或视频特效的成片(Manim 只负责数学动画本身);也不适合必须在浏览器/网页交付的场景——它的产物是本地 MP4/GIF 文件。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-28
    方式 A · 人下载镜像包下载 manim.tar.gz
    sha256: 5ebe4ae4e425d911…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit a15833c44d;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库iart-ai / iart-ai/manim-skills
    Stars9
    最近推送2026-06-22
    本 skill commita15833c44d
    许可MIT(仓库根 LICENSE:MIT License / Copyright (c) 2026 iart.ai;.claude-plugin/plugin.json 声明 "license": "MIT",GitHub API license.spdx_id = MIT)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近