数学动画制作入门:7天用3Blue1Brown源码渲染出你的第一部作品
数学动画制作入门:7天用3Blue1Brown源码渲染出你的第一部作品
【免费下载链接】videosCode for the manim-generated scenes used in 3blue1brown videos项目地址: https://gitcode.com/GitHub_Trending/vi/videos
先告诉你一个颠覆认知的事实:3Blue1Brown官方源码库videos项目,把十年间数百部数学动画的完整代码全部开源,而驱动它们的正是免费的Python库Manim。对想做数学动画制作的你来说,这是最扎实的入门教材——没有之一。
更难得的是,这个仓库藏着414个Python场景文件、12个年份目录,从2015年一路更新到现在。你看过的每一帧傅里叶变换、每一次神经网络可视化,都能在代码里逐行复盘。今天我不打算罗列功能清单,而是带你走一遍完整的新手之路:一个零基础的人,如何在7天里跑通环境、读懂源码、做出自己的第一部数学可视化作品。
第一章 第一天:让3Blue1Brown源码在你电脑上跑起来
本章收获:完成环境搭建,成功渲染出第一段动画视频。
先讲为什么值得做这一步。这个仓库的目录结构本身就是一部编年史:_2015到_2025每年一个文件夹,你能顺着年份看到作者Grant Sanderson十年间创作手法的进化——早期代码朴素直接,后来的场景越发精巧复杂。把这部"活着的教科书"跑起来,就已经值回票价。
Manim环境搭建的3个避坑要点
第一步是克隆仓库并安装Manim。这里藏着第一个坑:网上大多数教程教的是社区版manim,而这个仓库用的是作者专用的老版manimgl,两者命令不通用。别担心,照着做就行:
git clone https://gitcode.com/GitHub_Trending/vi/videos cd videos pip install manimgl第二个坑是Python版本,老版Manim对3.7左右的环境最友好,版本太新反而报一堆兼容性错误。第三个坑是LaTeX——数学公式渲染全靠它,装好texlive全家桶,能省掉你后续90%的报错时间。
环境就绪,运行你的第一个动画试试看:
manimgl _2015/pythagorean_proof.py Triangle看着屏幕上的三角形用四种颜色拼出勾股定理的证明过程,你会发现:数学可视化,其实离你并不远。
实用提示:第一天别贪多,能成功渲染出哪怕1秒钟的画面就算胜利。先跑通,再理解——这是仓库教给你的第一课。
第二章 第三天:用勾股定理动画读懂Manim核心概念
本章收获:看懂任意一个场景文件的代码结构,读懂作者的设计思路。
第三天要回答一个问题:为什么值得读别人的源码?因为这个仓库本身就是最好的Manim教程——没有教科书式的说教,只有几百个真实可运行的案例。打开_2017/nn,你能看到神经网络视频里用真实MNIST手写数字训练的全过程;打开_2019/diffyq,能看到微分方程如何被一步步拆解可视化。
Manim的核心概念其实只有三个:Scene(场景)、construct(构造方法)、play(播放动画)。任何一部视频都是"一个场景里按顺序播放若干动画"。以勾股定理文件为例,它的核心代码长这样:
class Triangle(Polygon): def __init__(self, **kwargs): kwargs["color"] = C_COLOR Polygon.__init__(self, *POINTS, **kwargs) def add_all_letters(self): for char in "abc": self.add_letter(char) return self大白话:这段代码先定义了一个三角形,再给三条边分别贴上a、b、c字母标签——数学动画的起点,往往就是这么朴素。
这里提醒你一个常见错误姿势:一上来就大改源码,把作者精心调校的参数改得面目全非。正确姿势是小步修改,只改颜色、只调某个数字,观察画面变化,再逐步深入。
实用提示:遇到看不懂的类,先找它的CONFIG配置块——这个仓库的作者习惯把长度、颜色、速度等参数集中定义在文件开头,读懂CONFIG,就读懂了大半个场景。
第三章 第七天:用custom组件库拼出你的原创动画
本章收获:复用作者的自定义组件,完成一部原创作品,并掌握渲染优化技巧。
前六天你在"读"和"跑",第七天轮到"写"了。为什么敢让你这么快上手?因为仓库的custom/目录就是作者的组件库:会说话写字的Pi小人(custom/characters/)、开场动画、结束画面、背景模板全是现成的。你的原创动画,大概率只是把这些积木重新拼装。
比如你想做一个讲解函数图像的课堂动画,骨架可以这么搭:
from manim_imports_ext import * class MyFirstScene(Scene): def construct(self): axes = Axes() graph = axes.get_graph(lambda x: x**2) self.play(Write(axes)) self.play(Transform(graph, graph.copy().scale(2))) self.wait()大白话:画一个坐标系,画一条抛物线,然后让它放大两倍给你看——这就是一段可用的课堂演示动画。
到了渲染环节,新手最容易犯的错是直接上高分辨率,结果一等就是半小时。记住让动画流畅运行的渲染优化技巧:开发阶段先用-p预览确认效果,再降分辨率测试:
manimgl my_scene.py MyFirstScene -p manimgl my_scene.py MyFirstScene -r 1280,720错误示例 vs 正确姿势:盲目追求4K渲染(错误)→ 先用低分辨率确认动画逻辑,定稿后再出高清(正确)。这个习惯能把你的调试时间压缩一半以上。
至此,你已经能用这套源码做三件很实际的事:课堂演示(把_2019/diffyq的微分方程动画搬进课件)、科研配图(参考_2024/linalg的特征值可视化给论文加料)、在线课程(借鉴_2023/clt的中心极限定理演示设计互动环节)。
实用提示:动手前先看一眼
custom_config.yml,它是全局渲染配置,分辨率、帧率、背景色都在这里,改一处全项目生效。
里程碑:7天从入门到出片
- 第1天:装好环境,跑通勾股定理动画
- 第2天:把年份目录翻一遍,建立"原来数学还能这么讲"的直觉
- 第3天:读透一个场景文件,掌握Scene、play、CONFIG三大概念
- 第4天:改颜色、调参数,让别人的动画长出你的手纹
- 第5天:逛遍custom组件库,画出自己的动画草图
- 第6天:拼装组件,完成第一部原创场景
- 第7天:预览、低清调试、高清出片,把成品发给第一个观众
数学动画制作从来不是天才的专利,它只是"把抽象变成可见"的手艺。而这个仓库,就是十年间最顶尖的手艺人留下的完整工作台。记住一点:每一个数学动画师都是从第一个简单的圆开始的。现在,从第一行git clone开始吧。🎬
【免费下载链接】videosCode for the manim-generated scenes used in 3blue1brown videos项目地址: https://gitcode.com/GitHub_Trending/vi/videos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
