Trigger when: (1) User mentions "manimgl" or "ManimGL" or "3b1b manim", (2) Code contains `from manimlib import *`, (3) User runs `manimgl` CLI commands, (4) Wo
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-manimgl-best-practices-6926c4e222ec ,按照其中的说明把「manimgl-best-practices」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
Read individual rule files for detailed explanations and code examples:
-se flag, checkpoint_paste()Complete, tested example files demonstrating common patterns:
Copy and modify these templates to start new projects:
from manimlib import *
class MyScene(InteractiveScene):
def construct(self):
# Create mobjects
circle = Circle()
# Add to scene (static)
self.add(circle)
# Or animate
self.play(ShowCreation(circle)) # Note: ShowCreation, not Create
# Wait
self.wait(1)
# Render and preview
manimgl scene.py MyScene
# Interactive mode - drop into shell at line 15
manimgl scene.py MyScene -se 15
# Write to file
manimgl scene.py MyScene -w
# Low quality for testing
manimgl scene.py MyScene -l
| Feature | ManimGL (3b1b) | Manim Community |
|---|---|---|
| Import | from manimlib import * | from manim import * |
| CLI | manimgl | manim |
| Math text | Tex(R"\pi") | MathTex(r"\pi") |
| Scene | InteractiveScene | Scene |
| Create anim | ShowCreation | Create |
| Camera | self.frame | self.camera.frame |
| Fix in frame | mob.fix_in_frame() | self.add_fixed_in_frame_mobjects(mob) |
| Package | manimgl (PyPI) | manim (PyPI) |
ManimGL's killer feature is interactive development:
# Start at line 20 with state preserved
manimgl scene.py MyScene -se 20
In interactive mode:
# Copy code to clipboard, then run:
checkpoint_paste() # Run with animations
checkpoint_paste(skip=True) # Run instantly (no animations)
checkpoint_paste(record=True) # Record while running
# Get the camera frame
frame = self.frame
# Reorient in 3D (phi, theta, gamma, center, height)
frame.reorient(45, -30, 0, ORIGIN, 8)
# Animate camera movement
self.play(frame.animate.reorient(60, -45, 0))
# Fix mobjects to stay in screen space during 3D movement
title.fix_in_frame()
# Use raw strings with capital R
formula = Tex(R"\int_0^1 x^2 \, dx = \frac{1}{3}")
# Color mapping with t2c
equation = Tex(
R"E = mc^2",
t2c={"E": BLUE, "m": GREEN, "c": YELLOW}
)
# Isolate substrings for animation
formula = Tex(R"\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}")
formula.set_color_by_tex("n", BLUE)
def construct(self):
circle = Circle()
self.play(ShowCreation(circle))
self.embed() # Drops into IPython shell here
self.set_floor_plane("xz") # Makes xy the viewing plane
text = Text("Label")
text.set_backstroke(BLACK, 5) # Black outline behind text
# Install ManimGL
pip install manimgl
# Check installation
manimgl --version
manimgl, not manim (community version)ShowCreation, not CreateTex with capital R raw stringsself.frame directly-se flag for interactive developmentThis skill contains example code adapted from 3Blue1Brown's video repository by Grant Sanderson.
License: CC BY-NC-SA 4.0
See LICENSE.txt for full details.