ManimGL:用代码制作精确的数学动画
一分钟看懂
ManimGL 是 3Blue1Brown 作者为数学讲解视频开发的动画引擎。与拖拽时间轴的传统动画软件不同,它让你用 Python 描述图形、公式、坐标系以及对象之间的变换,再把场景渲染成可用于视频的动画。
它擅长表达“过程”:函数曲线如何变化、几何图形怎样变换、一个公式的各部分如何对应。因为位置、时间和转换都由代码控制,复杂镜头可以重复生成,也更容易把参数换掉后做一组一致的动画。
你可以用它做什么
制作数学与科学讲解动画
你可以创建文字、LaTeX 公式、向量、坐标轴、曲线和几何对象,再通过平移、缩放、旋转、替换等动画展示推导过程。相比一页页静态幻灯片,观众能看到概念之间如何连接。
将计算结果直接变成画面
因为场景本身就是 Python 程序,动画可以读取计算结果、遍历参数或根据函数实时构造图形。需要修改数字、颜色或演示顺序时,只改代码再渲染即可,不必逐帧调整素材。
建立可复用的视觉组件
教师和视频创作者可以把常用坐标系、标注方式、转场和配色封装成类,在系列课程中保持统一风格。对有编程经验的创作者,这种复用能力是 Manim 的主要优势。
工作方式
一个 Manim 项目通常由多个 Scene 类组成。你在场景中创建对象,把对象加入画面,再依次播放变换。开发时可先用预览窗口快速调整,确认后再用更高质量参数导出。
它不是“输入一句话自动生成视频”的产品。镜头节奏、对象布局和讲解逻辑仍由创作者设计,代码只是提供精准表达这些设计的工具。
主要能力
- 用 Python 编排矢量图形、文字、公式和坐标系统。
- 支持连续变换、镜头控制和对象级动画。
- 借助 LaTeX 排版复杂数学公式。
- 通过 OpenGL 提供交互预览和动画渲染。
- 场景可参数化、复用并纳入版本控制。
- 项目源自 3Blue1Brown 视频制作所使用的工具链。
适合哪些人
它适合数学、物理和计算机课程教师,科普视频创作者,以及希望用程序生成可视化的开发者。熟悉 Python、愿意精细控制画面的用户会更容易发挥它的价值。
如果主要制作人物剪辑、复杂音轨或常规宣传片,它不能代替完整的视频剪辑软件;如果不想写代码,图形化动画工具也更容易上手。
怎么开始使用
当前仓库对应的是 3b1b 维护的 ManimGL,安装包名称是 manimgl,要求 Python 3.10 或更高版本,并依赖 FFmpeg 和 OpenGL;需要显示 LaTeX 公式时还要安装 LaTeX。安装后可以先运行仓库提供的 example_scenes.py,从修改一个现有场景开始学习。
特别要注意,Manim 还有由社区维护的 Manim Community Edition。两者历史相关,但安装包、API 和文档并不完全一致。教程写的是 manim 还是 manimgl,必须先分清,不能混用安装步骤。
使用前需要知道
高质量动画仍然需要数学表达、视觉设计和镜头节奏。代码正确只代表能够渲染,不代表内容一定易懂。较复杂场景的渲染时间、字体和 LaTeX 环境也可能在不同系统上出现差异,正式制作前应固定依赖版本。
若团队协作,建议把代码、素材和字体要求一并纳入项目说明,但不要提交庞大的临时渲染文件。发布教学内容时,也要确认外部图片、字体和音乐的授权。