Manim数学动画引擎:几行Python写出一个科普数学视频
【免费下载链接】manimAnimation engine for explanatory math videos项目地址: https://gitcode.com/GitHub_Trending/ma/manim
Manim数学动画引擎(用Python写解释性数学视频的动画引擎)解决的就是一个问题:把抽象的数学概念变成看得见的动图。无论你是做课件的老师,还是做数学内容的博主,一个Python文件就能输出一段流畅的解释视频。大名鼎鼎的3Blue1Brown数学视频,就是用它做出来的。
它到底能干什么(场景切入)
- 做数学科普视频:输入一段函数表达式,输出一段"曲线被画出、积分用矩形一点点堆满"的视频片段。
- 课堂演示:输入一条官方示例命令,几秒后屏幕上就播放一段"矩阵如何变换网格"的演示。
- 自学可视化:看不懂的变换过程,写两三行代码,答案直接在你眼前动起来。
下面这张图就是Manim数学动画引擎的典型产出:
从零到跑通(环境与首跑)
前置条件
- Python 3.10 或更高版本
- FFmpeg(负责把画面渲染成视频文件)
- OpenGL(负责图形渲染)
- LaTeX 可选,但渲染公式时必须有
- Linux 用户额外需要 Pango 库
一条命令安装Manim数学动画引擎
注意本仓库是 ManimGL 版,包名是manimgl,不是manim:
pip install manimgl想基于源码折腾,可以克隆仓库安装:
git clone https://gitcode.com/GitHub_Trending/ma/manim cd manim && pip install -e .第一次运行:正方形变圆
新建example.py,写一个场景(Scene,就是一段完整动画):
from manimlib import * class SquareToCircle(Scene): def construct(self): square = Square() circle = Circle() circle.set_fill(PINK, opacity=0.5) self.play(Create(square)) self.play(Transform(square, circle)) self.play(FadeOut(square))然后执行:
manimgl example.py SquareToCircle会弹出一个窗口:正方形画出,变形为粉色圆形,最后淡出。跑通就是这种感觉。想拿到视频文件,加上-w参数。
核心工作流拆解
核心流程就三步。
第1步:定义 Scene。继承Scene类,在construct方法里写画面逻辑,类都在 manimlib/scene/ 下。为什么?Manim 按场景渲染,一个 Scene 就是最小的一支视频。
第2步:用 self.play() 描述动画。manimlib/animation/ 里每个动画类(Create、Transform、FadeOut)对应一种运动。为什么?对象和运动解耦后,任意动画都能随意套在任意对象上。
第3步:CLI 渲染出片。manimgl负责渲染、存盘和播放。为什么?调参不用改代码,命令行里改参数就行。
仓库里的 example_scenes.py 有 700 多行现成示例,通读一遍就摸清全部语法。
常见坑与进阶建议
⚠️ 新手最容易踩这四个坑:
- 症状:安装后到处 ImportError。原因:混用了两个版本。解法:社区版包名是
manim,本仓库 ManimGL 是manimlib,认准pip install manimgl。 - 症状:
manimgl提示找不到命令。原因:pip 的命令目录不在 PATH 里。解法:把 pip 的 Scripts 目录加入 PATH。 - 症状:公式渲染报错。原因:没装 LaTeX。解法:装一个 TeX Live 发行版即可,不必上全家桶。
- 症状:渲染慢到怀疑人生。原因:默认分辨率高。解法:开发时加
-ql快速低清试跑,交付再渲高清。
进阶方向:把输出路径、分辨率等默认值写进custom_config.yml,一次配置整个项目生效;再试试.animate简写(如obj.animate.shift(LEFT)),代码量能省一半。
周边生态与学习资源
📦 三个值得了解的相关项目:
- Manim Community(社区版):2020 年分叉而来,生态最活跃,测试和 CI 完善,新手更友好。
- 3b1b/videos:3Blue1Brown 的成片源码仓库,读真实视频代码是最快的进阶方式。
- 中文社区 manim-kindergarten:维护中文文档,还沉淀了一大堆社区示例代码。
官方文档、示例场景页和 Discord 社区入口,都在仓库 README 里,照着自己点开即可。
Manim 把"讲不清的数学"变成了"看得懂的动画",门槛比想象中低得多。把示例跑起来,你的第一支解释视频只差几行代码。
【免费下载链接】manimAnimation engine for explanatory math videos项目地址: https://gitcode.com/GitHub_Trending/ma/manim
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考