mcpField
M
manim

manim

github.com/davila7创意与媒体33.0k435 次安装1 天前更新
代码仓库

关于 manim

这是一项使用 Python 框架 Manim Community 制作数学动画的技能,适合教育视频创作者和可视化工作,涵盖场景、几何对象、LaTeX 公式、图表及渲染。

主要功能

  1. 01场景式动画指导
  2. 02几何对象与变换
  3. 03渲染 LaTeX 方程
  4. 04图表与坐标系
  5. 05视频渲染和笔记本集成
  6. 06VS Code 实时预览

适用场景

  1. 01制作教学数学动画
  2. 02展示几何变换
  3. 03为方程和公式制作动画
  4. 04制作讲解类视频内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davila7/claude-code-templates --skill manim

安装后在 Claude Code 中输入/manim确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
animations.md
latex.md
mobjects.md
scenes.md

详细介绍

Manim Community - 数学动画引擎

使用 Manim Community 创建数学动画的全面技能集。Manim Community 是一个用于以编程方式创建解释性数学视频的 Python 框架,由 3Blue1Brown 推广。

何时使用

每当你处理 Manim 代码时,都可以使用此技能来获取以下领域的专业知识:

  • 创建数学动画和可视化
  • 以编程方式构建教育视频内容
  • 处理几何形状和变换
  • 为 LaTeX 方程和数学公式制作动画
  • 创建图表、图形和坐标系
  • 实现基于场景的动画序列
  • 渲染高质量的数学图解
  • 为教学构建解释性视觉内容

核心概念

Manim 允许你使用以下内容创建动画:

  • Scenes:动画的画布,你可以在其中编排 mobjects
  • Mobjects:可显示的数学对象(形状、文本、方程)
  • Animations:应用于 mobjects 的变换(Write、Create、Transform、FadeIn)
  • Transforms:在不同状态的 mobjects 之间进行变形
  • LaTeX 集成:原生支持渲染数学符号
  • Python 简洁性:使用 Python 以编程方式指定动画行为

主要特性

  • 精确的数学对象定位和变换
  • 原生 LaTeX 渲染方程和公式
  • 丰富的形状库(圆形、矩形、箭头、多边形)
  • 坐标系和函数绘图
  • 几何形状的布尔运算
  • 摄像机控制和场景管理
  • 高质量视频渲染
  • IPython/Jupyter notebook 集成
  • 带实时预览的 VS Code 扩展

如何使用

阅读各个规则文件以获取详细说明和代码示例:

核心概念

有关变换、时序、形状、坐标系、3D 动画、摄像机移动和高级特性等其他主题,请参阅全面的 Manim Community 文档。

快速开始示例

from manim import *

class SquareToCircle(Scene):
    def construct(self):
        # Create a square
        square = Square()
        square.set_fill(BLUE, opacity=0.5)

        # Create a circle
        circle = Circle()
        circle.set_fill(RED, opacity=0.5)

        # Animate square creation
        self.play(Create(square))
        self.wait(1)

        # Transform square into circle
        self.play(Transform(square, circle))
        self.wait(1)

        # Fade out
        self.play(FadeOut(square))

使用以下命令渲染:manim -pql script.py SquareToCircle

最佳实践

  1. 继承 Scene - 所有动画都应放在继承自 Scene 的类中
  2. 使用 construct() 方法 - 将所有动画代码放在 construct() 方法内
  3. 按层思考 - 在制作动画之前先将 mobjects 添加到场景中
  4. 使用 self.play() - 使用 self.play(Animation(...)) 为 mobjects 制作动画
  5. 以低质量测试 - 使用 -ql 标志进行更快的预览渲染
  6. 利用 LaTeX - 使用 Tex() 和 MathTex() 表示数学符号
  7. 将相关对象分组 - 使用 VGroup 一起管理多个 mobjects
  8. 频繁预览 - 使用 -p 标志自动打开渲染后的视频

命令行用法

# Preview at low quality (fast)
manim -pql script.py SceneName

# Render at high quality
manim -pqh script.py SceneName

# Save last frame as image
manim -s script.py SceneName

# Render multiple scenes
manim script.py Scene1 Scene2

资源

评论

支持 Markdown