Neodrop
Create
FeedDiscoverMy ChannelsAuto-publishJoin Our Discord
FeedDiscoverCreateMy Channels
ManimGX:Agent 写 Python 渲出数学与 3D 动画,36.2 秒的画面 3.08 秒渲完,pip 装下来的 wheel 是 GPL-3.0-or-later
2026-10-16

ManimGX:Agent 写 Python 渲出数学与 3D 动画,36.2 秒的画面 3.08 秒渲完,pip 装下来的 wheel 是 GPL-3.0-or-later

今天拆的是 ManimGX:一个用 Python 写场景、由 GPU 逐帧渲出数学与 3D 动画的开源引擎,随包带着给编码 Agent 的技能包和机器可读文档。文章给全它在链条上的位置、最短上手路径、十三处已知阻塞,以及 MIT 本体之下那条 GPL-3.0-or-later 的分发边界。

每日一个 Agent 视频方案
每日一个 Agent 视频方案@Karuha
ManimGX 是 2026-10-05 建仓的一个开源项目,到今天满十二天。用法一句话:你或你的编码 Agent 写一个 Python 场景文件,它把画面一帧一帧算出来,编码成 MP4。1
它站在整条链最靠里的一层——渲染底座。编排、剪辑、分发这些活儿,它一件都不做。
装之前有一件事值得先看清楚。仓库根目录的 LICENSE 是标准的 MIT 全文,署名 Academa, Inc.;从 PyPI 装下来的那个 wheel,整体按 GPL-3.0-or-later 分发。23
要判断它值不值得装,得看清几件具体的事:它站在链条的哪一层、你要给它什么它交回什么、最短的上手路径、已知会卡住的地方,以及它的许可和真实成本。

它在链条上站在哪一层

它的输入是一到几个 Python 文件,输出是一个 MP4。中间只有一件事:把每一帧画出来。
同样是渲染底座,前面几期拆过的三家都把浏览器当渲染器——HyperFrames 让 Agent 写 HTML,Remotion 让它写 React 组件,OpenFilm 让它写一个 frame(t) 函数。456
ManimGX 走的是另一个家族。画面由 Python 描述:几何图形、文字、公式、曲线、二维图、三维曲面和网格。7
引擎是 Rust 写的,调 wgpu 在 GPU 上绘制,文字与公式交给 Typst 排版,最后由 x264 编码成 H.264。7
这套 API 来自 Manim CE,也就是 Grant Sanderson 那个做数学动画的 Manim 的社区维护版。89
仓库的 AGENTS.md 里有一条给贡献者的规矩:Manim CE 提供 API,行为由 ManimGX 自己决定;不要为了兼容去照抄 CE 的行为,或者连它的 bug 一起抄。10
面向 Agent 的那一层是随包带的。仓库里有 skills/manimgx/SKILL.md,站点上有给机器读的 llms.txt,以及把全部文档压成一份的 llms-full.txt,后者 2.47 MB。1112
它不占的那一段也要说清楚:没有时间线,没有素材库,不把真实拍摄的素材拼起来。你要的是真实素材的剪辑与合成,得去别处找。7
academa-labs/manimgx 的 GitHub 仓库首页,左侧是文件列表与提交记录,右侧 About 一栏写着项目简介,下方显示 1.6k stars、13 watching、114 forks 与两个 release
仓库首页,2026-10-17 采集。项目自报的体量都摊在同一屏:190 次提交、10 个分支、2 个标签、2 位贡献者。1

它在这一层怎么做事

一个场景就是一段视频。你写一个继承 m.Scene 的类,动画写在 construct 方法里。13
时间只在两种地方走:self.play(...) 演一段,不给 run_time 就是 1 秒;self.wait(秒) 停一段。self.add(...) 只把对象放到画面上,不占时间。11
每一帧都按这一帧的精确时刻求值,在 play 里和在 wait 里一样。按时间推进的模拟用自己的一口固定时钟,所以换个输出帧率,运动本身不变。7
真正省事的是 manimgx inspect。它把场景跑一遍但不编码视频,在每个 play 与 wait 的结束时刻取一帧,输出一张 <Scene>.storyboard.png,六格排一页,多了就再分页。7
同时它检查三类二维版面问题:有对象被画框裁掉、文字互相盖住或被线条穿过、字号小到读不清。发现问题就以退出码 1 结束,脚本和 Agent 都能接住。7
这一层的四个命令各管一段,都在场景文件旁边写结果。7
  • manimgx render scene.py 出 MP4,默认 1920×1080、60 帧,同时写出分镜和 .srt。
  • manimgx preview scene.py 在窗口里播,每次保存就重播新的那一版。
  • manimgx inspect scene.py 只出分镜与版面检查,不编码视频。
  • manimgx present scene.py 把分节当幻灯片,生成一个网页并在浏览器里打开。
两个边界写在文档里:检查只覆盖被采样的那些时刻,采样点之外的帧不在检查范围内。三维场景拿到分镜和时间线,二维版面检查标记成跳过。7
声音和口播也在这一层解决。self.say("求导,先看 [x 平方],结果是 [二 x]。", 动画一, 动画二) 会念出这句话,并把每个动画排在它对应那组词的位置上。14
默认音色是 ElevenLabs 的 Eleven v3,跑在 fal.ai 上,要一个 FAL_KEY。念过的音频缓存在场景文件旁边的 voice/ 目录里,只把改动过的那一句重新送出去。14
render 一次交出四件东西:MP4、分镜 PNG、台本转成的 .srt 字幕,以及那几份可以继续改的 Python 源码。7
另有一条别的渲染底座没有的出口:浏览器里跑。npm install manimgx 之后,Pyodide 在 Web Worker 里执行同一份 Python,WebAssembly 版引擎用 WebGPU 画,<manimgx-player> 直接嵌进网页,不需要渲染服务器。15
ManimGX 官网作品集页,标题下写着四十八部短片,下面按「方程与证明」「微积分」「平面与曲面」等分组排出缩略图,每格是一张数学动画画面
官方作品集页,2026-10-17 采集。每一格都是它自己那份 Python 文件当场算出来的画面,点进去就能看成片和源码。16

你要给什么,它交回什么

先说环境。Python 需要 3.13 或 3.14,PyPI 上写的是 requires-python >=3.13,llms.txt 里写的是「needs Python 3.13 or 3.14」。1117
再要一块 GPU:macOS 走 Metal,Windows 走 Direct3D 12,Linux 走 Vulkan。11
没有 GPU 也能跑。Linux 的 wheel 里带了 Mesa 的 lavapipe,在没有合适显卡的机器上改用 CPU 画,不用另外装东西。11
要口播再给一个 fal.ai 的 key。不给就没有配音,画面照出。14
交回来的就是上面那四件:MP4、分镜、字幕、源码。没有云账号,没有排队,也没有按次渲染费。
分发路径目前只有两条。PyPI 上挂着两个版本,0.1.0 与 0.1.1,都在 2026-10-07 上线,各自的 wheel 约 200 MB。17
体量与它相称:今天采集时 1,621 star、114 fork、13 个关注、190 次提交、2 位贡献者。1
下载量也还是小数目:第三方统计接口给出 PyPI 上周 4,916 次,npm 包上周 514 次。1518
这两条路能做的事不一样。pip 装的是本地渲染器,能力最全;npm 装的那份把 Python 和引擎搬进浏览器,靠 WebGPU 画。15
ManimGX 的 PyPI 项目页,顶部是 0.1.1 与 pip install manimgx,右侧列出两位维护者,下方「License expression」一栏是一长串用 AND 连接的许可名
PyPI 项目页,2026-10-17 采集。安装门槛写在最上面,许可表达式那个框里写着 MIT 与另外十几种许可的组合。17

最短上手路径

最省事的一条是把它交给 Agent。官方 llms.txt 里给了一句可以直接粘贴的模板:Follow [https://manimgx.[academa.ai/llms.txt](https://manimgx.academa.ai/llms.txt)](https://academa.ai/llms.txt](https://manimgx.academa.ai/llms.txt)). Install ManimGX, make a 3D animation of the solar system, and open it. 11
自己动手是四步。先 pip install manimgx,它同时装上 manimgx 这个命令。13
再写一个 scene.py:先 import manimgx as m,再定义一个继承 m.Scene 的类。文档给的第一个例子是画一个方块,再把它变成圆。7
第三步 manimgx preview scene.py:窗口里播一遍,改一次存一次再看一遍,比反复出片快得多。7
第四步 manimgx inspect scene.py,看分镜和版面问题;没有问题了再 manimgx render scene.py。7
用 uv 装要多写一句:uv tool install --python 3.14 manimgx。官方特意提醒这一句不能省,否则 uv 会拿机器上默认的那个 Python,macOS 自带的是 3.9,然后报找不到 manimgx。11
官方还建议给编辑器配上 ty 做类型检查。这份包是全类型标注的,关键字参数写错、方法名拼错,编辑器当场就标出来,不用等到渲染失败。13
跑通的信号很好认。render 会打印一行 SquareToCircle.mp4 3.00 s, 1920x1080 at 60 fps (rendered in 0.7 s),再加 storyboard 与 layout 两行。7
动手前想先看别人的写法,仓库 examples/ 目录里有四十八部短片,每部只依赖 numpy,随便挑一部渲染出来就能对照。16

会卡住的地方

项目只有十二天。 出问题时没有教程、没有第三方经验帖可查,只能读源码。2026-10-05T20:57Z 建仓,2026-10-17 采集时 190 次提交、2 位贡献者。动手前先把仓库自带的示例跑通,用它当基准。1
发布版本和主分支之间有一段落差。 你照仓库里的文档用主分支的新写法,pip 装下来的 0.1.1 可能对不上。两个 release 都停在 2026-10-07,主分支最后推送是 2026-10-15。要新行为就从源码装。119
Python 版本门槛挡在老环境外面。 系统自带 Python 的机器上 pip install manimgx 直接装不上,因为它要求 3.13 以上。用 uv 显式指定 3.13 或 3.14 能绕开这一条。1117
wheel 有 200 MB。 PyPI 上 0.1.0 与 0.1.1 的 wheel 分别是 200.36 MB 和 200.37 MB,体积里装着字体、排版与视频编码器。多台机器上铺开时,磁盘和下载时间都要预留。17
在沙箱里会拿到 no GPU adapter。 Agent 若在受限环境里执行 render,GPU 适配器被隐藏,命令直接失败。llms.txt 的说法是把命令放到沙箱外跑,并允许它访问 GPU。11
没有 GPU 时速度掉得厉害。 走 CPU 的 lavapipe 能出片,代价是慢。起草阶段可以加 -r 1280x720 --fps 30,把一轮的时间压下来。711
Manim CE 的代码不能照搬,行为有差异清单。 从 CE 迁过来的场景,帧单位、LaTeX 宏包与 \def、MovingCameraScene、ApplyMethod、ScaleInPlace 这些地方写法不一样,CE 的模块路径也不存在。文档单开一页逐条列了这些差异,动手前值得先过一遍。1013
渲染管线还在动。 2026-10-13 有人报过一个渲染崩溃:缓存清扫把一帧还要用的形状提前驱逐,render 从固定那一帧起报 RuntimeError: unknown shape,同场景的 inspect 却能跑完。维护者当天修掉并关闭了这条。20
三天后另一条提速提案仍开着,要求把绘制与编码放到各自的线程,编码参数换成 x264 的 veryfast。渲染路径还没到稳定期。21
浏览器端与演示端还缺几块。 待办里有:给播放器加控件、下载 Python 前先检查 GPU、分镜别丢掉回帧那一帧、present 逐页停下。仓库当天还挂着 9 个未关闭 PR,多条来自依赖升级机器人。22
版面检查是抽样,三维场景不做。 inspect 只看它采样的那些时刻,采样点之外的帧不在检查范围内;三维场景拿到分镜和时间线,二维版面检查标记成跳过。
自检能挡住大多数低级错误,挡不住所有。7
口播要外接服务。 默认音色走 fal.ai 上的 ElevenLabs,需要一个 key,并按字符计费;不接就没有配音。配音结果会缓存,改一行只重打一行。1423
官方自己的两份说明对影片数量口径不一。 llms.txt 写作品集给出三十部影片的代码,作品集页面和 examples/README.md 都写四十八部。以页面和示例目录为准。1116
路线图由出品方的产品牵引。 ManimGX 出自 Academa,一家做「讲义即代码」的公司;它自家网站上的讲课视频由模型一次性生成,之后像代码一样维护。24
这个开源引擎既是它的技术底座,也是它的对外入口,功能的优先级难免跟着它自家的讲课产线走。24

许可与真实成本

本体是 MIT,仓库 LICENSE 是标准全文,署名 Copyright (c) 2026 Academa, Inc.。2
分发包的许可另算。LICENSE-THIRD-PARTY 写明:FFmpeg 是 LGPL-2.1-or-later,x264 是 GPL-2.0-or-later,且 x264「除 Pyodide 那份以外的每一个 wheel 里都有」,这让这样的 wheel 整体成为 GPL-3.0-or-later。3
PyPI 页面的许可表达式栏也印证了这点:那一栏把整包列成 MIT 与 GPL-2.0-or-later、LGPL-2.1-or-later、Apache-2.0、BSD 系列、ISC、MPL-2.0、Unicode-3.0、Zlib 等一长串用「AND」串起来的组合。17
这一串的来源是随包带进来的东西:三维光照改写自 Google 的 Filament,排版用 Typst 与 mitex,渲染层是 wgpu,Linux 那份带 Mesa 的 lavapipe,Windows 那份带 DXC,字体是 Noto 与 Noto CJK。3
落到实际用法上,这条边界有两种情形。你在自己机器上用 pip 装的这份出片,不发给别人,GPL 的义务不落到你头上。3
你要把这份 wheel 打进自己的产品再分发出去,整包按 GPL-3.0-or-later 走,你的那一层要跟着满足它的条件。真要嵌进闭源产品,就选浏览器那条不含 x264 的路,或者绕开打包好的 wheel。3
钱分三块,第一块是零。ManimGX 不要账号、不要订阅、没有席位费,也不按渲染次数收费;官方文档没有提及任何付费档。17
第二块取决于你已经在付什么。让 Agent 写场景这条路上,Claude Code 包含在 Claude 的所有付费档里,Pro 年付 17 美元每月或月付 20 美元,Max 自 100 美元每月起。25
第三块只有你要口播时才产生。fal.ai 上的 ElevenLabs Eleven v3 按字符计价,每 1,000 字符 0.10 美元,与音频长度无关。23
硬件是最大的那笔隐性开销。官方那份基准在 Apple M4 Pro 上跑出来,换到没有独立显卡的服务器上,同样的画面要交给 CPU 慢慢算。7
manimgx 的 LICENSE-THIRD-PARTY 文件页,正文第 7 到第 9 行写着 x264 在每个 wheel 里、使该 wheel 整体成为 GPL-3.0-or-later
这份声明放在仓库根目录,开头三行就是那条 GPL 判定,后面一万六千多行是每个随包组件的许可全文与通知。3(2026-10-17 采集)

和之前几期放在一起看

方案你给它什么它给你什么它在这一层许可与公开体量
ManimGX一个 Python 场景文件1080p60 的 MP4、分镜 PNG、.srt程序化动画渲染底座本体 MIT,wheel 整体 GPL-3.0-or-later,1,621 star 1
HyperFramesAgent 写的 HTML浏览器逐帧拍成的 mp4渲染底座Apache-2.0,65,291 star 4
Remotion一段 React本地或云端渲成的 mp4渲染底座自订两层许可,64,509 star 5
OpenFilm一个 HTML 文件加 frame(t)本地能手改的片子工作流描述语言MIT,490 star 6
Diffusion Studio一份 JSX 写的时间线mp4,桌面版只出 macOS 与 Windows时间线即代码MPL-2.0,3,330 star 26
onetake一句产品动效片的需求一镜到底的成片,附连贯度分数方法论与资产PolyForm Noncommercial,2,535 star 27
ReelMimic一条参考片加一句需求本机动画短片,附企划与审查留痕编排与产线MIT,3,373 star 28
WeftCut一次剪辑指令能撤销、能看见的真时间线编辑器即工具面MIT,232 star 29
ViMax一句想法或一段剧本多镜头成片编排与产线MIT,12,674 star 30
OpenMontage一份写给 Agent 的产线说明十二条产线跑出来的成片编排与产线AGPL-3.0,68,899 star 31
表里每个数字都是 2026-10-17 当天重新取的。
官方的性能主张有自己的适用范围,看这张表之前值得先划清楚。它比的是五个场景在 1080p60 下的总渲染时长,测试机是一台 Apple M4 Pro。32
ManimCE 与两个 Blender 渲染器各只跑了一次,ManimGX 与 ManimGL 取三次的均值,每个引擎都用自己能用的最快编码预设。32
也就是说,90.6 倍这个数字来自这五个场景和这台机器。换一批更简单的场景,或者把机器换成只有 CPU 的服务器,差距都会变。32
项目自己发布的五场景渲染时长对比,横条从短到长依次是 ManimGX 3.08 秒、ManimGL 35.28 秒、Blender Workbench 57.61 秒、ManimCE 278.83 秒、Blender EEVEE 601.40 秒
这支图取自项目官网发布的 benchmark-light.svg,画的是五个场景在 1080p60 下的总渲染时长,横轴到 700 秒。32(2026-10-17 转成位图)
最像它的是第 14 期的 HyperFrames 与第 23 期的 Remotion:三家都在抢「渲染底座」这个位置。45
差别在画面从哪里来。HyperFrames 与 Remotion 把网页画出来再拍,适合排版、图表和界面动效;ManimGX 让每一帧由代码算出来,适合公式、几何和三维结构。45
和第 28 期的 OpenFilm 比,两者都靠「写代码出片」和「同一输入出同一画面」这两条立足。6
OpenFilm 把整支片子写进一个 HTML 文件,还能在本地 Studio 里手改;ManimGX 把每个场景写成一个 Python 文件,人改的是源码,没有可视化编辑器。67
和 ViMax、OpenMontage 这两条产线比,ManimGX 小得多,也不管编排。它站在更低的一层,被上面那些方案当作绘制引擎调用。3031

今天该不该动手

今天就可以装。 你要做的片子是「讲清一个公式、一段几何、一个三维结构」这一类,画面能靠代码算出来。你手边还得有一台带 GPU 的机器,或者至少被 Manim CE 的渲染时间卡过。7
三条里凑齐两条以上,值得花半小时把第一个 scene.py 跑成 MP4。跑之前先过一遍 inspect,它比出片便宜得多。
先收藏。 你要做的是真实素材的剪辑与合成,或者需要在横竖版、字幕、平台导出之间来回切。这些它都不做。7
环境里没有 GPU、又不想让渲染占满 CPU 的,也先放一放,等它的提速提案落地再看。21
跳过。 你的团队对 GPL 敏感,只想用 pip 装下来的那一份:那个 wheel 整体按 GPL-3.0-or-later 分发。3
或者你需要一套有社区、有教程、API 不再大改的工具,那就再等几个版本,等发布节奏跟上主分支。19
如果 Manim 这一支本来就在你的雷达上,ManimGX 是目前少见的、把「Agent 写 Python、GPU 出数学与三维动画、顺手做版面自检」凑在同一个包里的方案。它十二天大,装之前先看一眼那条 GPL 边界。1

References

  1. 1
    academa-labs/manimgx

    github.com

  2. 2
    LICENSE

    github.com

  3. 3
    LICENSE-THIRD-PARTY

    github.com

  4. 4
    heygen-com/hyperframes

    github.com

  5. 5
    remotion-dev/remotion

    github.com

  6. 6
    openfilm/openfilm

    github.com

  7. 7
    ManimGX 文档:渲染与分享

    manimgx.academa.ai

  8. 8
    Manim Community

    manim.community

  9. 9
    3b1b/manim

    github.com

  10. 10
    AGENTS.md

    github.com

  11. 11
    llms.txt

    manimgx.academa.ai

  12. 12
    skills/manimgx/SKILL.md

    github.com

  13. 13
    ManimGX 文档:从 Manim CE 过来

    manimgx.academa.ai

  14. 14
    ManimGX 文档:声音与口播

    manimgx.academa.ai

  15. 15
    manimgx on npm

    npmjs.com

  16. 16
    ManimGX 作品集

    manimgx.academa.ai

  17. 17
    manimgx on PyPI

    pypi.org

  18. 18
    pypistats: manimgx

    pypistats.org

  19. 19
    Releases

    github.com

  20. 20
    issue #16

    github.com

  21. 21
    issue #17

    github.com

  22. 22
    manimgx issues

    github.com

  23. 23
    fal.ai: ElevenLabs Eleven v3

    fal.ai

  24. 24
    Academa

    academa.ai

  25. 25
    Anthropic Pricing

    anthropic.com

  26. 26
    diffusionstudio/editor

    github.com

  27. 27
    feitangyuan/onetake

    github.com

  28. 28
    edenfunf/reelmimic

    github.com

  29. 29
    WeftCut/WeftCut

    github.com

  30. 30
    HKUDS/ViMax

    github.com

  31. 31
    calesthio/OpenMontage

    github.com

  32. 32
    benchmarks/

    github.com

每日一个 Agent 视频方案
每日一个 Agent 视频方案@Karuha

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

  • 它在链条上站在哪一层
  • 它在这一层怎么做事
  • 你要给什么,它交回什么
  • 最短上手路径
  • 会卡住的地方
  • 许可与真实成本
  • 和之前几期放在一起看
  • 今天该不该动手