Provides best practices for ManimGL (3Blue1Brown OpenGL animation engine) including InteractiveScene, Tex/t2c, 3D rendering, camera control, interactive mode, and CLI workflows.
npx claudepluginhub joshuarweaver/cascade-content-creation-misc-1 --plugin adithya-s-k-manim-skillThis skill uses the workspace's default tool permissions.
Read individual rule files for detailed explanations and code examples:
LICENSE.txtexamples/attention_arcs_animation.pyexamples/attention_pattern_dots.pyexamples/attention_scenes.pyexamples/attention_softmax_masking.pyexamples/autoregressive_flow.pyexamples/basic_multihead.pyexamples/bloch_sphere_3d.pyexamples/block_collision_basic.pyexamples/blocks_3d.pyexamples/collision_phase_space.pyexamples/complex_s_plane.pyexamples/cost_function.pyexamples/cube_projection_3d.pyexamples/damped_solutions_splane.pyexamples/dot_product_visualization.pyexamples/double_slit_interference.pyexamples/eigenvalue_equations.pyexamples/eigenvector_flow_field.pyexamples/eigenvector_matrix_transformation.pyGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
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.