做了个能在浏览器里跑真 Manim 的站,不用装 Python

Maxwin 2026-09-09 02:19 1

起因很俗:想用 Manim ( 3Blue1Brown 那套数学动画引擎)做点东西,结果一晚上都耗在装环境上。Python 版本、pip 超时、LaTeX 几个 G 、Cairo/Pango 的二进制依赖、中文字体缺失 —— 每一环都能卡住,而这些跟"做动画"没有半毛钱关系。


后来想,这层能不能整个删掉。


左边是本地要凑齐的依赖链,右边是打开网页


做法


用 Pyodide 把 真的 Manim 本体( Manim Community 0.20.1 )搬进浏览器,不是重写一个近似引擎。跑不了的原生依赖逐个替掉:



  • cairo → Canvas2D shim

  • Pango → opentype.js (带 Noto Sans CJK SC 子集,中文和标点开箱即用)

  • LaTeX → MathJax (子式可寻址,set_color_by_tex / TransformMatchingTex 能用)

  • skia-pathops → 纯 Python polybool (布尔运算)

  • 导出走 ffmpeg.wasm ,单线程,所以不需要 COOP/COEP


渲染落 Canvas2D 而不是 WebGPU —— 这条是有意的,国内不少机器和浏览器还没 WebGPU ,微信里也开不了。代价是慢一些,换来的是真的能打开。


全部资源自托管、零 CDN 依赖,主要是为了国内可达性。


现在能干什么


浏览器里写 Scene → 运行 → 逐帧拖动检视 → 导出 MP4/GIF 。代码和渲染都在你自己机器上,不上传。写代码、渲染、导出不用登录。


编辑器 + 底部预览面板,跑完显示帧数和耗时


实测一段 ValueTracker 驱动切线的场景,480p15 渲染 90 帧约 2.6 秒。首次进页面要把引擎下载一遍(几十 MB 量级),之后走缓存。


也支持开本机文件夹( Chrome/Edge 桌面版的 File System Access ),可以一边在 VS Code 里改一边在网页里跑,改动自动存回原文件。


另外做了个 AI 助手:说一句话或者传一张题目照片,它写代码、在你浏览器里试跑、读 traceback 自己改。有意思的是视觉那条通道 —— 每次渲染成功后自动把整段动画均匀取 5 帧拼成接触表喂给模型,所以"跑通了但标签和圆重叠""文字出框"这种不报错的问题它也能发现。这部分要登录(有成本),其余不用。


已知的不足



  • 首次加载确实要等,网络差的时候更明显

  • 4K 长片这类重渲染,本地机器还是快得多

  • 移动端能看能跑,但编辑体验一般

  • 部分需要原生扩展的插件用不了


说白了它替代的是"入门到出片"这一段,不替代本地专业流程。


求拍砖


站在这儿: https://jizuobiao.xyz/workspace


打开点「直接开始写」就能跑,不用注册。想看看能做成什么样可以翻一下站内的作品页。


主要想问几件事:你们那边浏览器/机器上跑得动吗(尤其 Windows + 老一点的机器)、首次加载等多久、有没有哪个 Manim API 在这儿行为跟本地不一致。有 bug 直接说,我改。

最新回复 (2)
  • GeruzoniAnsasu 09-09 05:04
    1
    求求你不要让 AI 文案玷污你工作了

    本来是很激动人心的作品,能让久仰大名但不方便动手尝试的人都感受一下 manim 的伟力
    但点进来看了两行就萎了
  • Maxwin 楼主 09-09 14:30
    2
    @GeruzoniAnsasu 😂😂
* 帖子来源V2EX
返回