首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >线性代数、微积分、神经网络、霍利莫夫动力学,数学专业的看过来

线性代数、微积分、神经网络、霍利莫夫动力学,数学专业的看过来

作者头像
豆芽菜小萌
发布于 2026-09-08 19:11:50
发布于 2026-09-08 19:11:50
1120
举报

这个项目(3b1b/videos)是知名数学科普 YouTube 频道 3Blue1Brown 的官方开源代码库。

它主要用来生成 3Blue1Brown 视频中那些标志性的、精美的数学动画和场景。

核心功能与特点

  • 视频动画源码:包含了该频道近年来(从 2015 年到 2026 年)各类数学主题视频的具体动画实现代码(例如线性代数、微积分、神经网络、霍利莫夫动力学等)。
  • 基于 Manim 引擎:这些动画几乎完全是使用由 Grant Sanderson 开发的数学动画 Python 库 Manim (ManimGL) 构建的。
  • 交互式开发与调试:项目内还包含了一套作者自己的工作流配置(如 Sublime Text 编辑器插件和 checkpoint_paste 功能),支持在编写动画代码时动态暂停、回滚状态、交互式渲染或直接录制动画。

如果你对数学可视化感兴趣,或者想学习、复刻 3Blue1Brown 视频里的经典动画效果,可以通过克隆这个仓库并安装相应的 LaTeX 环境与 Manim 库来运行和修改这些代码。

我们来看一下作者的介绍:

工作流程

我制作这个视频是为了更多地展示我如何使用 manim。请注意,我使用的是 3b1b/manim,而不是社区版,两者之间的某些功能可能会有所不同。除了安装 manim 本身之外,复制此工作流程还涉及一些我使用的文本编辑器 Sublime 的自定义插件。

如果你使用其他文本编辑器,也可以模拟相同的功能。关键在于利用两个事实。

运行 manimgl (文件名)(场景名) -se (行号) 会让你像使用调试器一样,在文件的该行进入交互式模式,并带有一个可用于与场景交互的 iPython 终端。

在该交互式模式下,如果你在终端中输入“checkpoint_paste()”,它将运行复制到剪贴板的任何代码片段。此外,如果复制的代码以注释开头,它首次看到该注释时会保存场景在该点的状态,并且对于所有以相同注释开头的代码的后续调用,它将在运行代码之前首先恢复到该场景状态。

checkpoint_paste 的参数“skip”意味着它将运行代码而不进行动画处理,就好像所有运行时间都设置为 0 一样。

checkpoint_paste 的参数“record”将导致使用该复制代码运行的任何动画都渲染到文件中。

对于我自己的工作流程,我设置了一些键盘快捷键来启动这些命令中的每一个。对于那些想自己尝试的人,以下是涉及的内容。

Sublime 特定说明

安装 Terminus(通过包管理器)。这是在 Sublime 内运行的终端,它允许我们编写一些插件,这些插件获取 Sublime 中的状态,例如光标位置、突出显示的内容等,并使用这些来运行所需的命令行指令。

将此仓库“sublime_custom_commands”子目录中的文件复制到你的 Sublime 应用程序的 Packages/User/ 目录中。该目录的路径应该类似于 /你的 Sublime 所在位置/Packages/User/ 

添加一些键绑定来引用这些命令。这是我在我的键绑定文件中的内容,你可以在菜单 Sublime Text -> 设置 -> 键绑定 下找到你自己的键绑定文件。 

代码语言:javascript
复制
    { "keys": ["shift+super+r"], "command": "manim_run_scene" },
    { "keys": ["super+r"], "command": "manim_checkpoint_paste" },
    { "keys": ["super+alt+r"], "command": "manim_recorded_checkpoint_paste" },
    { "keys": ["super+ctrl+r"], "command": "manim_skipped_checkpoint_paste" },
    { "keys": ["super+e"], "command": "manim_exit" },
    { "keys": ["super+option+/"], "command": "comment_fold"},

例如,我将“command + shift + R”绑定到自定义的“manim_run_scene”命令。如果光标位于场景的某一行内,这将使你在场景的该点进入交互模式。如果光标位于定义场景的那一行上,它将把将整个场景渲染到文件所需的命令复制到剪贴板。

我将“command + R”绑定到“manim_checkpoint_paste”命令,该命令将复制突出显示的任何代码片段,并在交互式终端中运行“checkpoint_paste()”。

当然,你可以将这些设置为你喜欢的任何键盘快捷键。

安装:

1. 从源代码安装manimgl,因为发布的最新版本不是最新的。

2. 确保安装了LaTeX,例如在Ubuntu上

代码语言:javascript
复制
sudo apt install texlive
sudo apt install texlive-latex-extra
sudo apt install texlive-fonts-extra
sudo apt install texlive-science

3. 克隆此存储库以运行视频示例

代码语言:javascript
复制
git clone git@github.com:3b1b/videos.git
cd videos

运行视频:

1.设置包括(如果您不想修改路径)

代码语言:javascript
复制
cd _2023/optics_puzzles
vi e_field.py

并在顶部添加以下内容

代码语言:javascript
复制
import sys
sys.path.append(".")
sys.path.append("..")
sys.path.append("../..")

2. 运行一个示例

代码语言:javascript
复制
manimgl e_field.py

或者

代码语言:javascript
复制
manimgl e_field.py WavesIn3D

项目地址:https://github.com/3b1b/videos

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 核心功能与特点
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档