manim-composer
Trigger when: (1) User wants to create an educational/explainer video, (2) User has a vague concept they want visualized, (3) User mentions "3b1b style" or…
Trigger when: (1) User mentions "manimgl" or "ManimGL" or "3b1b manim", (2) Code contains `from manimlib import *`, (3) User runs `manimgl` CLI commands, (4) Working with InteractiveScene, self.frame, self.embed(), ShowCreation(), or ManimGL-specific patterns. Best practices for
$ npx -y skills add adithya-s-k/manim_skill --skill manimgl-best-practices --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/manimgl-best-practicesContext preview
The summary Claude sees to decide when to auto-load this skill.
Trigger when: (1) User mentions "manimgl" or "ManimGL" or "3b1b manim", (2) Code contains `from manimlib import *`, (3) User runs `manimgl` CLI commands, (4) Working with InteractiveScene, self.frame, self.embed(), ShowCreation(), or ManimGL-specific patterns. Best practices for
name: manimgl-best-practices description: | Trigger when: (1) User mentions "manimgl" or "ManimGL" or "3b1b manim", (2) Code contains `from manimlib import *`, (3) User runs `manimgl` CLI commands, (4) Working with InteractiveScene, self.frame, self.embed(), ShowCreation(), or ManimGL-specific patterns. Best practices for ManimGL (Grant Sanderson's 3Blue1Brown version) - OpenGL-based animation engine with interactive development. Covers InteractiveScene, Tex with t2c, camera frame control, interactive mode (-se flag), 3D rendering, and checkpoint_paste() workflow. NOT for Manim Community Edition (which uses `manim` imports and `manim` CLI).
Read individual rule files for detailed explanations and code examples:
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)⚡ Quick Start: Add both Manim skills to your AI agent instantly: `bash npx skills add adithya-s-k/manim_skill ` A comprehensive collection of best practices, patterns, and examples for both Manim Community Edition and ManimGL (3Blue1Brown's version).
Trigger when: (1) User wants to create an educational/explainer video, (2) User has a vague concept they want visualized, (3) User mentions "3b1b style" or…
Trigger when: (1) User mentions "manim" or "Manim Community" or "ManimCE", (2) Code contains `from manim import *`, (3) User runs `manim` CLI commands, (4)…