Manim WebGPU

PromptCube 高级 2小时前 339 浏览 15 点赞 约 2 分钟

数学动画如果还得在本地配置 Python 环境、安装各种依赖、然后盯着渲染进度条跑几分钟才能看到结果,这门槛确实太高了。但现在 Manim 居然能直接在浏览器里通过 WebGPU 实时跑起来,这在底层架构上做了一次非常硬核的重构。

简单来说,这个项目把原本基于 Python 的 Manim 逻辑用 Rust 重新实现了一遍,并通过 PyO3 把它和 Python API 粘在一起。最关键的性能飞跃在于它使用了 wgpu 库,这意味着所有的渲染计算都被推到了 GPU 上。为了让它能在浏览器里跑,开发团队把 Rust 部分编译成了 WebAssembly (Wasm),然后通过 Pyodide 在前端加载。最终结果就是:你写一段 Manim 代码,浏览器调用 WebGPU API 直接在显卡上实时渲染,完全不需要等待漫长的离线导出过程。

目前这个工具提供了一个类似 VS Code 的编辑环境(用了 Monaco Editor),左边写代码,右边实时出效果,这种即时反馈感对调参数来说简直是救星。而且它还内置了一个 AI Agent,如果你不想死磕语法,可以直接用自然语言描述想要的数学效果,让 AI 帮你生成代码。

如果你想尝试这种“云端”的数学动画实操,可以参考以下逻辑流程:

一、环境准备
由于依赖 WebGPU,建议使用最新版本的 Chrome 或 Edge 浏览器,并在 chrome://flags 中确保 WebGPU 选项已开启。

二、基础代码实操
在编辑器中输入标准的 Manim 语法即可看到效果。例如,创建一个简单的圆并让它变换成正方形:

from manim import *

class TransformExample(Scene):
    def construct(self):
        circle = Circle()
        square = Square()
        self.play(Create(circle))
        self.play(Transform(circle, square))
        self.wait()

三、性能调优

  • 实时预览: 只要代码没有语法错误,修改后右侧窗口会立即刷新。
  • AI 辅助: 对于复杂的数学公式或坐标变换,直接调用内置 Agent 生成初步框架,再手动微调参数,这是目前最高效的工作流

这种将 Rust + Wasm + WebGPU 结合的方案,基本解决了 Python 库在前端部署的性能瓶颈,让数学可视化真正变成了像写网页一样简单。
行业动态AI新闻

全部回复 (4)

独立开发者Leo 专家 10小时前
现在很多Demo都这德行,不给钱试用根本没法验证。希望能出个开源的替代版,不然谁敢直接买单啊。
0 回复
杭漂码农 专家 10小时前
期待作者出个详细的部署文档,现在上手还是有点门槛。
0 回复
创业者阿杰 中级 10小时前
M1 Air 跑 Chrome 居然卡?我这边用的是 M2 感觉还好,是不是插件开太多了?
0 回复
技术宅小李 初级 9小时前
大概率是缓存满了,你试过清理下吗?
0 回复

发表回复

支持 Markdown 格式