跳到正文
Hacker News· sinaatalay·· 7 天前AI 评分48

ManimGX:在 Rust/wgpu 引擎上跑 Manim API,用 Python 做 3D 视频

Show HN: ManimGX – Manim's API on a Rust/wgpu engine, for 3D videos in Python

AI 导读

ManimGX 发布,这是一个兼容 Manim CE API 的 3D 动画引擎,基于 Rust 和 wgpu,可用 pip install manimgx 安装并在浏览器中运行。

正文 · AI 翻译

面向智能体的极速 3D 动画引擎,兼容 Manim CE 的 API。
由 Rust 和 wgpu 驱动。用一条提示词或 pip 安装。在浏览器中运行。

文档 · 快速上手 · 示例 · API 参考

Test coverage PyPI version npm version PyPI total downloads npm monthly downloads

The quadratic formula: completing a square by moving colored rectangles and equation terms Fourier series: a chain of rotating arrows draws the outline of π A matrix moves the plane: a grid, basis arrows and a unit square transform together
A tangent slides along a curve as its slope traces the derivative Complex functions bend a grid into parabolas, circles and rays The Lorenz attractor: nearby trajectories separate as they trace a butterfly in three dimensions
Three spinning tops precess and nod as their axes trace curves on glass spheres The Hopf fibration: colorful linked circles form nested tori as beads travel along them A rainbow helicoid bends into a catenoid while preserving its intrinsic curvature

36.2 秒的视频,3.08 秒渲染完成。在 Apple M4 Pro 上以 1080p60 渲染五个场景,从启动到生成 MP4,ManimGX 比 ManimCE 快 90.6 倍,比 ManimGL 快 11.5 倍,比 Blender Workbench 快 18.7 倍。测量方法:场景、设置以及每一次运行。

Total render times: ManimGX 3.08 s, ManimGL 35.28 s, Blender Workbench 57.61 s, ManimCE 278.83 s, Blender EEVEE 601.40 s

所有引擎均使用可用的最快编码预设。数值越低越好。

对比同一场景。2.5 秒处的连环环,由各引擎渲染。

ManimGX ManimCE ManimGL Blender Workbench Blender EEVEE
Eight linked rings rendered by ManimGX at 2.5 seconds Eight linked rings rendered by ManimCE at 2.5 seconds Eight linked rings rendered by ManimGL at 2.5 seconds Eight linked rings rendered by Blender Workbench at 2.5 seconds Eight linked rings rendered by Blender EEVEE at 2.5 seconds

开始使用

用一条提示词。粘贴到 Claude Code、Codex 或 Cursor 中。你的智能体会处理安装配置:

Follow https://manimgx.academa.ai/llms.txt.
Install ManimGX, make a 3D animation of the solar system, and open it.

用 pip。在 macOS、Linux 或 Windows 上使用 Python 3.13+ 安装:

pip install manimgx

字体、排版和视频编码均已包含。 关于编辑器配置和引导式首个动画,请参阅 快速上手。

从 Python 到 MP4

将其保存为 scene.py:

import manimgx as m


class Hello3D(m.ThreeDScene):
    def construct(self) -> None:
        self.set_camera_orientation(phi=65 * m.DEGREES, theta=-45 * m.DEGREES)
        self.begin_ambient_camera_rotation(rate=0.5)
        cube = m.Cube(side_length=3, fill_opacity=0.3, stroke_width=2)
        self.play(m.Create(cube), run_time=2)
        self.wait(4)

渲染它:

manimgx render scene.py

你会得到 Hello3D.mp4,一个 1080p60 视频:

A blue cube is drawn as the camera circles it

为什么选择 ManimGX?

面向智能体时代的 3D 视频 API。你的智能体使用 Manim CE 的 API 编写 Python。 ManimGX 的 Rust + wgpu 引擎渲染 MP4,速度极快。

  • 完全静态类型。包含关键字参数和 .animate 链式调用。
  • 2D 与 3D 结合。曲面、网格和移动摄像机,与文本、公式 和图表并存。
  • 在浏览器中运行。npm install manimgx。Pyodide 在 Web Worker 中运行 Python;WebGPU 渲染场景。 嵌入场景,无需渲染服务器。
  • 智能体反馈。manimgx inspect:分镜和 2D 布局检查,可在播放结束或你选择的时间点进行。
  • 文本与数学。编写 LaTeX 或 Typst。无需安装 LaTeX。
  • 语音同步。用 self.say() 让动画与语音对齐。

文档

manimgx.academa.ai 提供指南、带源代码的渲染示例 以及 API 参考:

  • 快速上手:安装、配置你的 编辑器,并渲染你的第一个场景。
  • 用户指南:一次一个概念,学习场景、 动画、3D、文本和声音。
  • 示例:观看完整影片并阅读制作它们的 Python 代码。
  • API 参考:查阅类、方法 及其带类型的参数。
  • 从 Manim CE 迁移: 改编现有场景并检查行为差异之处。

对于智能体,llms.txt 提供安装说明 以及以 Markdown 形式链接到文档的链接。

站在巨人的肩膀上

Grant Sanderson 创建了 Manim。ManimGX 以 Manim Community Edition 的 API 为目标,后者是广泛使用的 社区维护分支。

Rust 渲染器使用 wgpu 进行原生 GPU 渲染,并在 浏览器中使用 WebGPU。Typst 排版文本和数学, mitex 将 LaTeX 输入转换为 Typst。 x264 将原生视频导出编码为 H.264;FFmpeg 解码导入的音频,使用 libopus 处理 Opus。

Pyodide 在浏览器 worker 中运行 Python 场景。当没有合适的 GPU 可用时,Linux wheel 会捆绑 Mesa 的 lavapipe,以便在 CPU 上进行 Vulkan 渲染。

社区

问题、bug 报告和功能请求都从提交一个 issue 开始。 如需贡献,请阅读 贡献指南 和 开发者指南。

更新日志 · 引用 ManimGX

所有参与者都需遵守 行为准则。 请通过 安全政策 私下报告漏洞。

许可证

ManimGX 自身的代码采用 MIT 许可证。 原生 wheel 包含 x264,整体采用 GPL-3.0-or-later 许可证。

捆绑组件保留各自的许可证:请参阅 第三方声明、 Linux 渲染器声明, 以及 Noto 和 Noto CJK 字体许可证。

本软件使用了 FFmpeg 的代码,其采用 LGPL-2.1-or-later 许可证。 包括 FFmpeg 在内的完整源代码位于每个 GitHub release 的 manimgx-X.Y.Z-source.tar.xz 中。

来源:Hacker News · github.com