news 2026/8/29 12:39:53

Manim数学动画引擎快速上手指南:从零到第一个数学视频的5个步骤

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Manim数学动画引擎快速上手指南:从零到第一个数学视频的5个步骤

Manim数学动画引擎快速上手指南:从零到第一个数学视频的5个步骤

【免费下载链接】manimAnimation engine for explanatory math videos项目地址: https://gitcode.com/GitHub_Trending/ma/manim

想用一个视频讲清"矩阵如何作用于坐标网格"这类数学概念时,静态图往往不够用:你需要曲线逐步生长、坐标轴被拉伸、积分矩形一条条填满。Manim 就是为此设计的数学动画引擎,用 Python 代码描述每一步动画,它逐帧渲染并输出标准视频文件,最初由 3Blue1Brown 的制作者为录制讲解视频而开发。

它适合谁

一句话定位:Manim 把数学内容的可视化变成一段可版本管理、可重复运行的代码。适合这几类人——

  • 需要制作数学教学视频、课程录播的教师和创作者
  • 想让算法与数据过程"动起来"的工程师和技术写作者
  • 想深入学习动画底层逻辑、习惯用代码描述视觉过程的开发者

它不是通用视频工具,也不负责剪辑配乐,专注的是数学对象和动画过程本身。

🚀 5步完成安装

  1. 确认系统装了 Python 3.10+ 和 FFmpeg(视频编码必需)
  2. 需要公式渲染的话,再装 LaTeX(可选,但强烈建议)
  3. 执行安装:
pip install manimgl manimgl
  1. Linux 用户还需安装 Pango 及开发头文件;Ubuntu 上即sudo apt install libpango1.0-dev
  2. 想修改引擎源码时,用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 中的CoordinateSystemExampleGraphExample展示了如何建坐标系、画网格、给曲线着色。底层对象集中在 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 12:37:53

Codex CLI + MCP协议:打造工程级AI编码智能体工作流

用了大半年Codex CLI做工程落地&#xff0c;最深的感受是&#xff1a;单文件编码效率能翻倍&#xff0c;一到完整项目就打折扣。代码生成很顺畅&#xff0c;但要查数据库、调接口、读文档、改配置就得切出去&#xff0c;AI和工具链是两张皮&#xff1b;跨模块、多人协作的时候&…

作者头像 李华
网站建设 2026/8/29 12:35:43

国内大模型横向评测:K3、DeepSeek、GLM与Qwen的选型实战指南

最近在做多模型接入的小项目&#xff0c;我趁机把国内几款主流大模型拉在一起做了轮横向测试&#xff0c;覆盖对话推理、代码补全、Embedding、本地部署等场景。一圈测下来的直观感受是&#xff1a;K3 在技术迭代上冲得最猛&#xff0c;DeepSeek 在复杂推理上做得最极致&#x…

作者头像 李华
网站建设 2026/8/29 12:34:42

十亿美元级故障模式:如何识别与预防系统性失效

"一个故障模式&#xff0c;怎么就能值十亿美元&#xff1f;"——这句话放在技术圈里&#xff0c;听起来像标题党&#xff0c;但真正经历过大型系统事故的人都明白&#xff0c;它一点不夸张。Fault Mode&#xff08;故障模式&#xff09;不是一个抽象的可靠性术语&…

作者头像 李华
网站建设 2026/8/29 12:34:20

拉伊达法则(3σ准则)在Python数据清洗中的原理、实现与避坑指南

1. 项目概述&#xff1a;从数据清洗的“脏活”说起 做数据分析或者机器学习的朋友&#xff0c;肯定都经历过这个阶段&#xff1a;拿到一份数据&#xff0c;兴冲冲地准备建模&#xff0c;结果一跑出来&#xff0c;模型效果差得离谱&#xff0c;或者某个指标的统计结果怎么看怎么…

作者头像 李华
网站建设 2026/8/29 12:33:40

设计协作的构建与发布

设计协作的构建与发布讨论“设计协作的构建与发布”时&#xff0c;最容易出现的偏差是先给方案&#xff0c;再补问题定义。团队决策与工程协作里&#xff0c;同一个实现放到不同负载、不同依赖版本或不同操作路径下&#xff0c;结果可能完全不同。更稳妥的起点&#xff0c;是把…

作者头像 李华
网站建设 2026/8/29 12:33:38

【浏览器】强缓存和协商缓存(HTTP 缓存)

部分内容来源&#xff1a;渡一教育。为什么有缓存&#xff1f; 来自服务器的缓存指令 当客户端发出一个get请求到服务器&#xff0c;服务器希望客户端将相应资源缓存起来&#xff0c;服务器在响应头中加入了以下内容&#xff1a; Cache-Control:max-age3600 ETag:W/"121-1…

作者头像 李华