manimgl-best-practices
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 Sande
By adithya-s-k · 1,795 installs
npx skills add adithya-s-k/manim_skill --skill manimgl-best-practices
Source repository · Upstream listing
How to use
Read individual rule files for detailed explanations and code examples:
Core Concepts
[rules/scenes.md](rules/scenes.md) InteractiveScene, Scene types, and construct method
[rules/mobjects.md](rules/mobjects.md) Mobject types, VMobject, Groups, and positioning
[rules/animations.md](rules/animations.md) Animation classes, playing animations, and timing
Creation & Transformation
[rules/creation animations.md](rules/creation animations.md) ShowCreation, Write, FadeIn, DrawBorderThenFill
[rules/transform animations.md](rules/transform animations.md) Transform, ReplacementTransform, TransformMatchingTex
[rules/animation groups.md](rules/animation groups.md) LaggedStart, Succession, AnimationGroup
Text & Math
[rules/tex.md](rules/tex.md) Tex class, raw strings R"...", and LaTeX rendering
[rules/text.md](rules/text.md) Text mobjects, fonts, and styling
[rules/t2c.md](rules/t2c.md) tex to color map (t2c) for coloring math expressions
Styling & Appearance
[rules/colors.md](rules/colors.md) Color constants, gradients, RGB, hex, GLSL coloring
[rules/styling.md](rules/styling.md) Fill, stroke, opacity, backstroke, gloss, shadow
3D & Camera
[rules/3d.md](rules/3d.md) 3D objects, surfaces, Sphere, Torus, parametric surfaces, lighting
[rules/camera.md](rules/camera.md) frame.reorient(), Euler angles, fix in frame(), camera animations
Interactive Development
[rules/interactive.md](rules/interactive.md) Interactive mode with se flag, checkpoint paste()
[rules/frame.md](rules/frame.md) self.frame, camera control, reorient, and zooming
[rules/embedding.md](rules/embedding.md) self.embed() for IPython debugging, touch() mode
Configuration & CLI
[rules/cli.md](rules/cli.md) manimgl command, flags ( w, o, se, l, h), rendering options
[rules/config.md](rules/config.md) custom config.yml, directories, camera settings, quality presets
Working Examples
Complete, tested example files demonstrating common patterns:
[examples/basic animations.py](examples/basic animations.py) Basic shapes, text, and animations
[examples/math visualization.py](examples/math visualization.py) LaTeX equations and mathematical content
[examples/graph plotting.py](examples/graph plotting.py) Axes, functions, and graphing
[examples/3d visualization.py](examples/3d visualization.py) 3D scenes with camera control and surfaces
[examples/updater patterns.py](examples/updater patterns.py) Dynamic animations with updaters
Scene Templates
Copy and modify these templates to start new projects:
[templates/basic scene.py](templates/basic scene.py) Standard 2D scene template
[templates/interactive scene.py](templates/interactive scene.py) InteractiveScene with self.embed()
[templates/3d scene.py](templates/3d scene.py) 3D scene with frame.reorient()
[templates/math scene.py](templates/math scene.py) Mathematical derivations and equations
Quick Reference
Basic Scene Structure
Render Command
Key Differences from ManimCE
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)
Interactive Development Workflow
ManimGL's killer feature is interactive development:
In interactive mode:
Camera Control (self.frame)
LaTeX with Tex class
Common Patterns
Embedding for debugging
Set floor plane for 3D
Backstroke for text readability
Installation
Common Pitfalls to Avoid
1. Version confusion Ensure you're using manimgl , not manim (community version)
2. ShowCreation vs Create ManimGL uses ShowCreation , not Create
3. Tex vs MathTex ManimGL uses Tex with capital R raw strings
4. self.frame vs self.camera.frame ManimGL uses self.frame directly
5. fix in frame() Call on the mobject, not the scene
6. Interactive mode Use se flag for interactive development
License & Attribution
This skill contains example code adapted from [3Blue1Brown's video repository](https://github.com/3b1b/videos) by Grant Sanderson.
License: [CC BY NC SA 4.0](https://creativecommons.org/licenses/by nc sa/4.0/)
Attribution required Credit both 3Blue1Brown and the adapter
NonCommercial Not for commercial use
ShareAlike Derivatives must use the same license
See [LICENSE.txt](LICENSE.txt) for full details.