# manimce-best-practices > Comprehensive best practices and patterns for Manim Community Edition (ManimCE) - the community-maintained mathematical animation engine for Python. Use when working with Manim Community code for creating mathematical animations, educational videos, or visual explanations. Triggers include working with manim imports (from manim import *), manim CLI commands, Scene classes, mathematical animations, LaTeX rendering, 3D visualizations, or any tasks involving the Manim Community framework. This skill provides domain-specific knowledge for ManimCE specifically, NOT the 3b1b/ManimGL version. - Author: adithya-s-k - Repository: adithya-s-k/manim_skill - Version: 20260122135459 - Stars: 586 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/adithya-s-k/manim_skill - Web: https://mule.run/skillshub/@@adithya-s-k/manim_skill~manimce-best-practices:20260122135459 --- --- name: manimce-best-practices description: Comprehensive best practices and patterns for Manim Community Edition (ManimCE) - the community-maintained mathematical animation engine for Python. Use when working with Manim Community code for creating mathematical animations, educational videos, or visual explanations. Triggers include working with manim imports (from manim import *), manim CLI commands, Scene classes, mathematical animations, LaTeX rendering, 3D visualizations, or any tasks involving the Manim Community framework. This skill provides domain-specific knowledge for ManimCE specifically, NOT the 3b1b/ManimGL version. --- ## When to use Use this skill whenever you are working with Manim Community code to create mathematical animations and visualizations. This skill provides domain-specific knowledge for the community-maintained version of Manim (ManimCE), NOT the 3b1b/ManimGL version. **Important:** Manim Community uses `from manim import *` imports and the `manim` CLI command. The 3b1b version uses `manimgl` and different imports - do not confuse them. ## How to use Read individual rule files for detailed explanations and code examples: ### Core Concepts - [rules/scenes.md](rules/scenes.md) - Scene structure, construct method, and scene types - [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) - Create, Write, FadeIn, DrawBorderThenFill - [rules/transform-animations.md](rules/transform-animations.md) - Transform, ReplacementTransform, morphing - [rules/animation-groups.md](rules/animation-groups.md) - AnimationGroup, LaggedStart, Succession ### Text & Math - [rules/text.md](rules/text.md) - Text mobjects, fonts, and styling - [rules/latex.md](rules/latex.md) - MathTex, Tex, LaTeX rendering, and coloring formulas - [rules/text-animations.md](rules/text-animations.md) - Write, AddTextLetterByLetter, TypeWithCursor ### Styling & Appearance - [rules/colors.md](rules/colors.md) - Color constants, gradients, and color manipulation - [rules/styling.md](rules/styling.md) - Fill, stroke, opacity, and visual properties ### Positioning & Layout - [rules/positioning.md](rules/positioning.md) - move_to, next_to, align_to, shift methods - [rules/grouping.md](rules/grouping.md) - VGroup, Group, arrange, and layout patterns ### Coordinate Systems & Graphing - [rules/axes.md](rules/axes.md) - Axes, NumberPlane, coordinate systems - [rules/graphing.md](rules/graphing.md) - Plotting functions, parametric curves - [rules/3d.md](rules/3d.md) - ThreeDScene, 3D axes, surfaces, camera orientation ### Animation Control - [rules/timing.md](rules/timing.md) - Rate functions, easing, run_time, lag_ratio - [rules/updaters.md](rules/updaters.md) - Updaters, ValueTracker, dynamic animations - [rules/camera.md](rules/camera.md) - MovingCameraScene, zoom, pan, frame manipulation ### Configuration & CLI - [rules/cli.md](rules/cli.md) - Command-line interface, rendering options, quality flags - [rules/config.md](rules/config.md) - Configuration system, manim.cfg, settings ### Shapes & Geometry - [rules/shapes.md](rules/shapes.md) - Circle, Square, Rectangle, Polygon, and geometric primitives - [rules/lines.md](rules/lines.md) - Line, Arrow, Vector, DashedLine, and connectors ## Working Examples Complete, tested example files demonstrating common patterns: - [examples/basic_animations.py](examples/basic_animations.py) - Shape creation, text, lagged animations, path movement - [examples/math_visualization.py](examples/math_visualization.py) - LaTeX equations, color-coded math, derivations - [examples/updater_patterns.py](examples/updater_patterns.py) - ValueTracker, dynamic animations, physics simulations - [examples/graph_plotting.py](examples/graph_plotting.py) - Axes, functions, areas, Riemann sums, polar plots - [examples/3d_visualization.py](examples/3d_visualization.py) - ThreeDScene, surfaces, 3D camera, parametric curves ## Scene Templates Copy and modify these templates to start new projects: - [templates/basic_scene.py](templates/basic_scene.py) - Standard 2D scene template - [templates/camera_scene.py](templates/camera_scene.py) - MovingCameraScene with zoom/pan - [templates/threed_scene.py](templates/threed_scene.py) - 3D scene with surfaces and camera rotation ## Quick Reference ### Basic Scene Structure ```python from manim import * class MyScene(Scene): def construct(self): # Create mobjects circle = Circle() # Add to scene (static) self.add(circle) # Or animate self.play(Create(circle)) # Wait self.wait(1) ``` ### Render Command ```bash # Basic render with preview manim -pql scene.py MyScene # Quality flags: -ql (low), -qm (medium), -qh (high), -qk (4k) manim -pqh scene.py MyScene ``` ### Key Differences from 3b1b/ManimGL | Feature | Manim Community | 3b1b/ManimGL | |---------|-----------------|--------------| | Import | `from manim import *` | `from manimlib import *` | | CLI | `manim` | `manimgl` | | Math text | `MathTex(r"\pi")` | `Tex(R"\pi")` | | Scene | `Scene` | `InteractiveScene` | | Package | `manim` (PyPI) | `manimgl` (PyPI) | ### Jupyter Notebook Support Use the `%%manim` cell magic: ```python %%manim -qm MyScene class MyScene(Scene): def construct(self): self.play(Create(Circle())) ``` ### Common Pitfalls to Avoid 1. **Version confusion** - Ensure you're using `manim` (Community), not `manimgl` (3b1b version) 2. **Check imports** - `from manim import *` is ManimCE; `from manimlib import *` is ManimGL 3. **Outdated tutorials** - Video tutorials may be outdated; prefer official documentation 4. **manimpango issues** - If text rendering fails, check manimpango installation requirements 5. **PATH issues (Windows)** - If `manim` command not found, use `python -m manim` or check PATH ### Installation ```bash # Install Manim Community pip install manim # Check installation manim checkhealth ``` ### Useful Commands ```bash manim -pql scene.py Scene # Preview low quality (development) manim -pqh scene.py Scene # Preview high quality manim --format gif scene.py # Output as GIF manim checkhealth # Verify installation manim plugins -l # List plugins ```