Manim数学动画引擎快速上手指南:从零到第一个数学视频的5个步骤
【免费下载链接】manimAnimation engine for explanatory math videos项目地址: https://gitcode.com/GitHub_Trending/ma/manim
想用一个视频讲清"矩阵如何作用于坐标网格"这类数学概念时,静态图往往不够用:你需要曲线逐步生长、坐标轴被拉伸、积分矩形一条条填满。Manim 就是为此设计的数学动画引擎,用 Python 代码描述每一步动画,它逐帧渲染并输出标准视频文件,最初由 3Blue1Brown 的制作者为录制讲解视频而开发。
它适合谁
一句话定位:Manim 把数学内容的可视化变成一段可版本管理、可重复运行的代码。适合这几类人——
- 需要制作数学教学视频、课程录播的教师和创作者
- 想让算法与数据过程"动起来"的工程师和技术写作者
- 想深入学习动画底层逻辑、习惯用代码描述视觉过程的开发者
它不是通用视频工具,也不负责剪辑配乐,专注的是数学对象和动画过程本身。
🚀 5步完成安装
- 确认系统装了 Python 3.10+ 和 FFmpeg(视频编码必需)
- 需要公式渲染的话,再装 LaTeX(可选,但强烈建议)
- 执行安装:
pip install manimgl manimgl- Linux 用户还需安装 Pango 及开发头文件;Ubuntu 上即
sudo apt install libpango1.0-dev - 想修改引擎源码时,用
git clone https://gitcode.com/GitHub_Trending/ma/manim克隆仓库,进入目录后pip install -e .
注意包名是manimgl,不是manim。网上另一个 Manim Community 版是独立分支,两者安装文档不能混用,装之前先确定用哪个版本。
最小可运行示例
创建一个first_scene.py:
from manimlib import * class FirstScene(Scene): def construct(self): circle = Circle(color=BLUE, fill_opacity=0.5) formula = Tex(r"x^2 + y^2 = r^2") formula.next_to(circle, DOWN) self.play(Create(circle)) self.play(Write(formula)) self.wait(2)在项目根目录运行manimgl first_scene.py FirstScene,会弹出窗口播放:一个蓝色圆逐渐画出,下方公式逐字书写。加上-w参数写入文件,-o则写完后自动打开结果视频。
让第一个场景跑起来
不必等自己的场景写完,仓库自带的 example_scenes.py 是最好的教材,直接运行其中任意场景即可:
manimgl example_scenes.py OpeningManimExample这个开场场景演示了网格被矩阵线性变换、复平面被 z→z² 映射的完整过程,正好展示了 Manim 的核心玩法:给 Mobject 应用函数,动画自动补间。常用调试参数值得记住:
-s跳到最后一帧只看静态结果,验证布局时极快-n <number>从场景第 n 个动画开始播放,跳过前面的部分-f全屏播放-so把最终帧存成图片再显示
坐标系、公式与3D场景
围绕真实任务看三个能力方向。
函数图像与坐标系统:example_scenes.py 中的CoordinateSystemExample和GraphExample展示了如何建坐标系、画网格、给曲线着色。底层对象集中在 manimlib/coordinate_systems.py 和 manimlib/functions.py,Axes自带的get_graph方法可以直接把 Python 函数变成动画曲线。
LaTeX 公式:Tex对象渲染标准 LaTeX 语法,example_scenes.py 的TexTransformExample演示了公式之间逐项变形——这是讲解推导过程最常用的手法。没有 LaTeX 时Tex会报错,普通Text文本不受影响。
3D 与曲面:继承ThreeDScene即可使用三维坐标系,SurfaceExample演示了参数曲面的绘制,相机朝向用set_camera_orientation控制。3D 对象定义在 manimlib/three_dimensions.py。
交互式调试:在construct里任意位置调用self.embed(),场景播到那一行就进入交互环境,可以直接操作对象、试参数,不用反复渲染整段视频。相关实现在 manimlib/interactive.py 和 manimlib/scene/interactive_scene.py。
常见坑与实用技巧
- 动画节奏靠 run_time 和 wait 控制:每个
self.play都可以传run_time指定时长,self.wait(n)停顿 n 秒。节奏不对时先调这两个参数,而不是改对象。 - 用 custom_config.yml 统一风格:在运行目录放一个
custom_config.yml,可指定视频输出目录、图片/音频素材搜索路径、默认样式和画质,避免每条命令都堆参数。 - 验证布局用
-s:动画没做完之前,先用跳帧模式确认对象位置不重叠,比看完整视频快一个量级。 - 两个版本不要混:
pip install manimgl装的是本仓库的 ManimGL;社区版pip install manim是另一个项目,API 和依赖都不同,报错信息里先确认自己装的是哪个。
常见问题
新手多久能出第一个场景?装好依赖后按上面的最小示例改改颜色和位置,十几分钟就能渲染出第一个视频;真正耗时的是想清楚讲什么,而不是写代码。
没有 LaTeX 能跑吗?能。几何图形、坐标系、普通文本都不依赖 LaTeX,只有Tex公式对象需要。公式是刚需时再装也来得及。
Windows 和 macOS 支持吗?支持。Windows 需先装 FFmpeg 和 MiKTeX;macOS 用 Homebrew 装 ffmpeg 和 LaTeX 即可,Apple Silicon 还需额外安装 Cairo。
动画帧需要自己写吗?不需要。你只描述"哪个对象、用什么动画、多长时长",补间插值和逐帧渲染由引擎完成,最终由 FFmpeg 编码成视频。
现在开始
跑通manimgl example_scenes.py OpeningManimExample就是最短的验证路径,然后照着 example_scenes.py 的场景结构写自己的第一个 Scene。完整文档在 docs/source/getting_started/ 下,按安装、配置、示例场景的顺序读即可。
【免费下载链接】manimAnimation engine for explanatory math videos项目地址: https://gitcode.com/GitHub_Trending/ma/manim
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考