概述
manim-live 把标准 Manim(Python)代码变成网页里的实时动画:不需要服务器,也不需要本机 Python。两个典型用法——AI 讲解时即写即演,以及在自己的网站任意位置嵌入渲染。
与原生 Manim 的差别
代码是同一份标准 Manim Python,差别只在「在哪里执行、如何产出画面」:
| 原生 Manim(CLI) | manim-live | |
|---|---|---|
| 写的代码 | 标准 Manim Python | 同一份代码,原样可跑 |
| 运行环境 | 本机装 Python + manim + ffmpeg(公式还要 LaTeX) | 浏览器即可,零安装 |
| 出画面方式 | 命令行离线渲染成 mp4,播放与嵌入需自行解决 | 网页内实时渲染,代码贴入即播放 |
| 嵌入网页或产品 | 做不到,只能事后嵌视频文件 | 任意位置嵌入,一个容器元素即可 |
| AI 边讲边画 | 单次渲染需等待整条管线完成,无法配合讲解节奏 | 即写即演;check() 先把有问题的代码拦在渲染之前 |
| 部署成本 | 每台机器装一遍环境,或架渲染服务器 | 一个 npm 包;资源可自托管,完全离线也能跑 |
取舍只有一条:公开 API 437 项实测可用约 90%——基础图形、坐标系、文本公式、动画、updater、3D 等主力场景全覆盖;缺的 43 项多数冷门且都有替代写法,逐项清单见支持面。换来的是浏览器里的实时渲染与零环境。
包的形态
一个 npm 包,入口只有一个工厂 createManimRenderer():传入一个容器元素,拿到 run(code) 与 dispose()。对框架零依赖——React、Vue、原生 JS 只是挂载时机不同。第三方 Python 库(pandas、matplotlib 等)按需自动获取,取数地址可以换成自托管,完全离线也能跑,见第三方包。
适用场景
适用:AI 对话 UI 里渲染模型生成的动画(本包正是为该场景而做);教学页面、交互式笔记按需绘制数学动画;用 check() 干跑预检,把有问题的代码拦在渲染之前。
不适用:服务器端批量渲染视频(用 manim CLI 原生管线);Manim 全量能力(本包覆盖 Manim CE 的常用子集,边界见 API 参考);非 Python 的动画需求。