3b1b/manim:用Python编程制作精确数学动画
给数学视频创作者的Python动画引擎,代码控制比手工剪辑更精确。
GitHub 3b1b/manim 更新 2026-09-04 分支 master 星标 93.6K 分叉 7.7K
Python 3.10+ 数学视频 ManimGL OpenGL FFmpeg LaTeX

🧭 决策指南

适合,如果你

  • 你要用Python制作解释性数学视频,并能准备FFmpeg、OpenGL和Python 3.10+。
    README正文说明Manim是用于解释性数学视频的编程动画引擎,安装章节列出这些系统要求。
  • 你希望从OpeningManimExample开始运行ManimGL场景。
    README的Using manim章节提供manimgl example_scenes.py OpeningManimExample命令。
  • 你需要用-w、-o、-s或-f控制输出文件、最终帧和播放窗口。
    README的Using manim章节列出了这些CLI选项。
  • 你需要MIT License项目,并愿意使用3b1b/manim这一ManimGL版本。
    项目元数据标注MIT License,README安装章节明确说明这是3b1b的ManimGL。

不适合,如果你

  • 你已经决定使用Manim Community,而不是3b1b/manim的ManimGL。
    README安装警告明确要求先选择版本,且不能混用两套安装指令。
  • 你的环境无法提供Python 3.10以上、FFmpeg或OpenGL。
    README安装章节要求Python 3.10或更高版本,以及FFmpeg和OpenGL。
  • 你需要依赖稳定文档、持续集成或更活跃贡献生态的项目。
    README说明Community Edition拥有更活跃的贡献生态、测试和持续集成;本文档则写明Documentation is in progress。
  • 你计划直接复用旧版3blue1brown视频代码而不处理兼容性。
    README的Using manim章节指出旧视频代码可能与最新Manim版本不兼容。

前置条件

  • Python 3.10 or higher
  • FFmpeg
  • OpenGL
  • LaTeX(如果需要LaTeX;README标为optional)
  • Linux还需要Pango及其development headers
  • pip安装时使用包名manimgl,而不是manim或manimlib
  • Linux Ubuntu/Debian示例要求libpango1.0-dev;ARM Mac示例要求安装Cairo

第一步命令(README 原文)

pip install manimgl

要注意

  • 不要把manim或manimlib当作本仓库的pip包名。
    Installation章节明确写出本仓库的包名是manimgl。
  • 不要混用ManimGL和Manim Community的安装说明。
    Installation章节的WARNING明确说明混用会导致问题。
  • Linux需要Pango开发头文件,LaTeX仅在需要LaTeX渲染时安装。
    Linux安装章节要求libpango1.0-dev,并将LaTeX标为optional。
  • Mac完整MacTeX约6GB,可改用BasicTeX并逐步安装LaTeX包。
    Mac OSX章节明确给出约6GB数字和BasicTeX替代方案。
  • 旧版3blue1brown视频代码可能无法兼容当前Manim版本。
    Using manim章节直接提示older videos代码可能不兼容。

替代方案

  • Manim Community:当你需要README所述的更稳定、更好测试、更快响应社区贡献和更友好的入门体验时。
    README正文与Installation章节

材料未说明

  • 最近更新日期未知,README和项目数据未提供可确认的维护时间。
  • 贡献者数量为0、版本发布为0、最近提交为0,但材料未解释这些统计是否为抓取缺失。
  • README未给出渲染性能、输出分辨率、GPU要求或大型场景耗时。
  • README未说明ManimGL当前可用版本号及与Python 3.10以上各版本的兼容矩阵。
  • README未提供自动化测试覆盖率或具体持续集成状态。
  • README未说明Windows、Linux和Mac OSX之间的功能差异。

💡 深度解析

6
适合 我正在用 Python 制作包含 LaTeX 公式、几何变换和连续动画的 3Blue1Brown 风格数学视频,并希望通过代码重复渲染;ManimGL 是否适合我的工作流?
适合读者: 制作 3Blue1Brown 风格解释性数学视频、使用 Python、LaTeX、OpenGL 和 FFmpeg 的内容创作者

适合,因为 ManimGL 的抽象正是面向精确的程序化数学动画,而不是普通视频剪辑。

  • README 将它定义为“engine for precise programmatic animations”,并明确用于 explanatory math videos。
  • 场景代码可以组织对象、动画类型和播放顺序;示例场景可用于查看库的 syntax、animation types 和 object types。
  • LaTeX 可选用于公式渲染,FFmpeg 负责视频输出,OpenGL 提供弹窗预览。
  • 需要注意它是 ManimGL,不是 Manim Community Edition;旧版 3blue1brown 视频代码也可能与当前版本不兼容。
  • README 开头:"Manim is an engine for precise programmatic animations, designed for creating explanatory math videos."
  • README Using manim:example scenes 展示 "syntax, animation types and object types"
  • README Installation:系统要求包括 FFmpeg、OpenGL;LaTeX 用于公式时可选
  • README 开头:该仓库是 ManimGL,旧视频代码可能不兼容
pip install manimgl
材料未说明:README 未说明具体数学对象、动画组合和复杂场景在目标机器上的渲染性能。;README 未说明当前版本对某一段具体 3Blue1Brown 视频代码的兼容范围。
不适合 我更看重稳定性、测试覆盖和社区贡献响应速度,而不是复现 3Blue1Brown 的个人视频工作流;我应该选择这个仓库吗?
适合读者: 正在比较 3b1b/ManimGL 与 Manim Community Edition、重视稳定性、测试和社区贡献响应速度的 Python 开发者

不适合,因为 README 明确把稳定性、测试和社区协作友好度列为 Community Edition 的目标,而本仓库源自个人视频制作项目。

  • README 说明本仓库最初是 3Blue1Brown 作者为制作视频建立的个人项目。
  • 2020 年分叉出的 Community Edition 目标包括“more stable, better tested, quicker to respond to community contributions, and all around friendlier to get started with”。
  • 安装警告还要求用户先决定使用哪个版本,并指出混用 manimglmanimmanimlib 会造成问题。
  • 因此,如果你的首要约束是稳定性和社区维护属性,README 给出的方向更偏向 Community Edition,而不是本仓库。
  • README 开头:"This repository began as a personal project by the author of 3Blue1Brown"
  • README 开头:Community Edition 目标为 "more stable, better tested, quicker to respond to community contributions"
  • README Installation Warning:"These instructions are for ManimGL only",并警告不要混用版本安装方式
材料未说明:README 未提供当前 ManimGL 与 Community Edition 的具体版本、测试覆盖率或维护活跃度数据。;README 未说明两者对目标场景所需 API 的逐项兼容差异。
视情况 我在 Ubuntu/Debian 上用 Python 3.10+ 制作带 LaTeX 公式的数学动画;机器还没有 FFmpeg、Pango 开发包和 LaTeX,ManimGL 是否能直接安装?
适合读者: 在 Ubuntu/Debian 上运行 Python 3.10+、需要 Pango 开发头文件和 LaTeX 公式渲染的教学视频制作者

视情况,Python 包可以安装,但完整的公式渲染和 Linux 工作流不能只依赖 pip。

  • README 要求 Python 3.10 或更高版本,并把 FFmpeg、OpenGL 列为系统要求。
  • Linux 还要求 Pango 及其 development headers;Ubuntu/Debian 示例明确安装 ffmpegpython3-piplibpango1.0-dev
  • LaTeX 是可选系统依赖,但你的公式需求会使它成为必要条件;README 给出的轻量配置包含 texlive-sciencetexlive-fonts-extratexlive-latex-extra
  • README 推荐使用 virtual environment,避免与系统包冲突。因此,只有补齐这些依赖后,才适合判断安装是否完整。
  • README Installation:"Manim runs on Python 3.10 or higher."
  • README Linux (Ubuntu/Debian):"sudo apt install ffmpeg"、"sudo apt install libpango1.0-dev"
  • README Linux (Ubuntu/Debian):LaTeX 安装命令
  • README Linux (Ubuntu/Debian):"It is recommended to use a virtual environment to avoid conflicts with system packages."
sudo apt update
材料未说明:README 未说明目标 Ubuntu/Debian 版本是否与列出的 Pango、LaTeX 软件包完全匹配。;README 未列出所有可能需要的 LaTeX 宏包;公式使用的具体宏包可能仍需补充。
适合 我用 conda 创建 Python 3.10 环境,并希望统一管理视频输出目录、图片和声音素材路径以及默认视频质量;ManimGL 是否支持这种工作流?
适合读者: 使用 Python 和 conda 管理环境、需要把公式、图片、声音路径及视频质量统一配置的数学内容制作人

适合,因为 README 同时提供 conda 环境安装方式和 custom_config.yml 配置入口,能够覆盖你列出的工作流需求。

  • Anaconda 部分明确使用 conda create -n manim python=3.10,再通过 conda activate manimpip install -e . 安装。
  • custom_config.yml 可以指定视频输出位置、图片和声音文件的搜索路径,以及风格、视频质量等默认值。
  • 这使场景脚本与环境配置能够分开维护;README 还允许在运行 Manim 的目录中放置同名配置文件。
  • 但公式仍依赖 LaTeX,视频输出仍依赖 FFmpeg,conda 本身不会替代这些系统组件。
  • README Anaconda Install:`conda create -n manim python=3.10`、`conda activate manim`、`pip install -e .`
  • README Using manim:`custom_config.yml` 可配置视频输出、图片和声音路径及默认风格和视频质量
  • README Using manim:可在运行 manim 的目录中添加同名 `custom_config.yml`
  • README Installation:FFmpeg 为系统要求,LaTeX 用于公式时可选
conda create -n manim python=3.10
材料未说明:README 未说明多个场景或多个项目同时使用不同 `custom_config.yml` 时的优先级规则。;README 未说明配置文件中每个视频质量参数的完整字段和默认值。
适合 我在 ARM-based Mac 上通过 Homebrew 管理 FFmpeg 和 LaTeX,准备使用 Python 3.10+ 的 ManimGL;是否还需要额外处理图形依赖?
适合读者: 在 ARM-based Mac 上使用 Homebrew、希望渲染 LaTeX 数学动画的 Python 开发者

适合,但 ARM-based Mac 需要按 README 额外安装 Cairo,不能只执行通用的 Python 安装步骤。

  • Mac 说明先用 Homebrew 安装 ffmpeg mactex;README 也提供 BasicTeX 作为约 6GB MacTeX 的轻量替代方案。
  • 对 ARM-based processor,README 明确要求执行 arch -arm64 brew install pkg-config cairo
  • 源码安装采用 editable install,之后用 manimgl example_scenes.py OpeningManimExample 验证示例。
  • 如果最后的 manimgl 命令找不到,README 指出应检查 pip 安装目录是否已加入 PATH。
  • README Mac OSX:`brew install ffmpeg mactex`
  • README Mac OSX:"If you are using an ARM-based processor, install Cairo."
  • README Mac OSX:`arch -arm64 brew install pkg-config cairo`
  • README Mac OSX:`manimgl example_scenes.py OpeningManimExample` 及 PATH 说明
brew install ffmpeg mactex
材料未说明:README 未说明具体 macOS 版本、Homebrew 架构状态或 Cairo 安装后是否还需要额外的 OpenGL 配置。;README 未说明 BasicTeX 下目标公式所需宏包的完整列表。
视情况 我想在无图形界面的 CI/服务器中用 Python 运行 ManimGL,并通过 FFmpeg 输出视频;README 是否足以证明这条部署路径可以直接工作?
适合读者: 准备把数学动画渲染放进无图形界面的 CI 或服务器、同时依赖 OpenGL、FFmpeg 和可选 LaTeX 的工程师

视情况,README 支持命令行渲染,但没有确认无图形界面环境中的 OpenGL 配置,因此不能据此判定可直接部署。

  • README 的系统要求包含 OpenGL 和 FFmpeg,说明视频生成依赖图形渲染与编码链路。
  • -w-o 可将场景写入文件,-s 可跳到最终帧,-so 可保存最终帧图像;这些参数适合非交互式命令流程。
  • 但常规示例“should pop up a window playing a simple scene”,显示默认工作流依赖预览窗口。
  • README 没有给出 headless、虚拟显示器、GPU 驱动或 CI 镜像配置,所以部署能否运行取决于未文档化的图形环境细节。
  • README Installation:系统要求为 FFmpeg、OpenGL,LaTeX 可选
  • README Using manim:`-w`、`-o`、`-s`、`-so` 命令行参数
  • README Using manim:"This should pop up a window playing a simple scene."
manimgl example_scenes.py OpeningManimExample
材料未说明:README 未说明无显示器环境所需的虚拟显示器、OpenGL 后端、GPU 驱动或软件渲染设置。;README 未说明 CI 中完整视频渲染的资源需求与失败时的诊断方式。

✨ 核心亮点

  • ManimGL支持用代码生成精确数学动画
  • README提供OpeningManimExample可直接运行
  • CLI包含-w、-o、-s和-f等渲染控制项
  • 项目采用MIT License,GitHub有93,008颗星

🔧 工程化

  • 用manimgl运行Python场景,生成视频或最终帧图像
  • 通过custom_config.yml配置输出路径、素材目录和视频质量
  • 通过-n跳转动画、-f全屏播放,并可查看example scenes

⚠️ 风险

  • README警告ManimGL与Community Edition安装指令不能混用
  • 安装包名是manimgl,不是manim或manimlib
  • 文档仍在进行中,旧版3blue1brown代码可能不兼容
  • 运行依赖FFmpeg、OpenGL和Python 3.10以上

👥 适合谁?

  • 需要制作解释性数学视频的Python开发者或教育创作者
  • 熟悉FFmpeg、OpenGL和LaTeX环境的动画开发者
  • 希望复用3blue1brown视频代码或example scenes的用户