起因很俗:想用 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 渲染落 Canvas...