标准 Manim,原样可跑
写的就是 Manim CE 的 Python:437 项公开 API 实测可用 394 项(约 90%),缺的 43 项报错时直接给替代写法。
左边是一段标准 Manim CE 代码,没有任何本包特有的写法;把它交给 surface.run(),网页里当场实时渲染出右边的画面——不是预渲染的视频,而是执行这段 Python 绘制的结果。(截图为动画终态;播放过程见本地演示台。)
from manim import *
class AxesPlotScene(Scene):
def construct(self):
ax = Axes(x_range=[-3, 3, 1], y_range=[-1, 3, 1])
graph = ax.plot(lambda x: x * x / 3, color=GREEN)
self.play(Create(ax), Create(graph))
self.wait(0.3)
corpus/examples/basic/09-axes-plot.py代码是同一份标准 Manim Python,差别只在在哪里执行、如何产出画面:
| 原生 Manim(CLI) | manim-live | |
|---|---|---|
| 写的代码 | 标准 Manim Python | 同一份代码,原样可跑 |
| 运行环境 | 本机装 Python + manim + ffmpeg(公式还要 LaTeX) | 浏览器即可,零安装 |
| 出画面方式 | 命令行离线渲染成 mp4,播放与嵌入需自行解决 | 网页内实时渲染,代码贴入即播放 |
| 嵌入网页 / 产品 | 做不到,只能事后嵌视频文件 | 任意位置嵌入,一个容器元素即可 |
| AI 边讲边画 | 单次渲染需等待整条管线完成,无法配合讲解节奏 | 即写即演;check() 先把有问题的代码拦在渲染之前 |
| 部署成本 | 每台机器装一遍环境,或架渲染服务器 | 一个 npm 包;资源可自托管,完全离线也能跑 |
唯一的取舍:公开 API 437 项实测可用约 90%,主力场景(基础图形、坐标系、文本公式、动画、updater、3D)全部覆盖——逐项清单见支持面。
pnpm add manim-live最小流程三步:createManimRenderer() 建渲染器 → createSurface(容器) 建画布 → surface.run(python) 执行一段 Manim 代码。完整示例见快速开始,各框架的挂载写法见框架集成。
以下均为真机渲染的终态:由 scripts/shot-corpus.mjs 使用真实 Chromium 逐条运行语料生成,非设计稿。源码与图片的对应关系见示例画廊。

<figcaption>线性变换:单位正方形面积被放大 |det| 倍</figcaption>

<figcaption>向正方形内撒点,估算出 π ≈ 3.140</figcaption>

<figcaption>ThreeDScene:带光照与深度的真实 3D</figcaption>
截图为终态,不含动画过程
截图截取的是一段动画播放完毕后的那一帧。动画过程本身(物体如何运动、变形)静态图无法呈现——本仓库附带一个本地演示台,pnpm playground 启动后 273 条语料均可逐条播放。该演示台仅用于本地开发,不随文档上线。