Read individual rule files for detailed explanations and code examples: - [rules/scenes.md](https://github.com/adithya-s-k/manim_skill/blob/main/skills/manimgl-best-practices/rules/scenes.md) - InteractiveScene, Scene types, and construct method - [rules/mobjects.md](https://github.com/adithya-s-k/manim_skill/blob/main/skills/manimgl-best-practices/rules/mobjects.md) - Mobject types, VMobject, Groups, and positioning
-se flag, checkpoint_paste()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 Command` # 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
from manimlib import *from manim import *manimglmanimTex(R"\pi")MathTex(r"\pi")InteractiveSceneSceneShowCreationCreateself.frameself.camera.framemob.fix_in_frame()self.add_fixed_in_frame_mobjects(mob)manimgl (PyPI)manim (PyPI)# 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 `### Camera Control (self.frame)` # 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() `### LaTeX with Tex class` # 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 `#### Set floor plane for 3D` self.set_floor_plane("xz") # Makes xy the viewing plane `#### Backstroke for text readability` text = Text("Label") text.set_backstroke(BLACK, 5) # Black outline behind text `### Installation` # 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 development