How to use
Read individual rule files for detailed explanations and code examples:
Core Concepts
- rules/scenes.md - Scene structure, construct method, and scene types
- rules/mobjects.md - Mobject types, VMobject, Groups, and positioning
- rules/animations.md - Animation classes, playing animations, and timing
Creation & Transformation
- rules/creation-animations.md - Create, Write, FadeIn, DrawBorderThenFill
- rules/transform-animations.md - Transform, ReplacementTransform, morphing
- rules/animation-groups.md - AnimationGroup, LaggedStart, Succession
Text & Math
- rules/text.md - Text mobjects, fonts, and styling
- rules/latex.md - MathTex, Tex, LaTeX rendering, and coloring formulas
- rules/text-animations.md - Write, AddTextLetterByLetter, TypeWithCursor
Styling & Appearance
- rules/colors.md - Color constants, gradients, and color manipulation
- rules/styling.md - Fill, stroke, opacity, and visual properties
Positioning & Layout
- rules/positioning.md - move_to, next_to, align_to, shift methods
- rules/grouping.md - VGroup, Group, arrange, and layout patterns
Coordinate Systems & Graphing
- rules/axes.md - Axes, NumberPlane, coordinate systems
- rules/graphing.md - Plotting functions, parametric curves
- rules/3d.md - ThreeDScene, 3D axes, surfaces, camera orientation
Animation Control
- rules/timing.md - Rate functions, easing, run_time, lag_ratio
- rules/updaters.md - Updaters, ValueTracker, dynamic animations
- rules/camera.md - MovingCameraScene, zoom, pan, frame manipulation
Configuration & CLI
- rules/cli.md - Command-line interface, rendering options, quality flags
- rules/config.md - Configuration system, manim.cfg, settings
Shapes & Geometry
- rules/shapes.md - Circle, Square, Rectangle, Polygon, and geometric primitives
- rules/lines.md - Line, Arrow, Vector, DashedLine, and connectors
Working Examples
Complete, tested example files demonstrating common patterns:
- examples/basic_animations.py - Shape creation, text, lagged animations, path movement
- examples/math_visualization.py - LaTeX equations, color-coded math, derivations
- examples/updater_patterns.py - ValueTracker, dynamic animations, physics simulations
- examples/graph_plotting.py - Axes, functions, areas, Riemann sums, polar plots
- 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 - Standard 2D scene template
- templates/camera_scene.py - MovingCameraScene with zoom/pan
- templates/threed_scene.py - 3D scene with surfaces and camera rotation
Quick Reference
Basic Scene Structure
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
# 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:
%%manim -qm MyScene
class MyScene(Scene):
def construct(self):
self.play(Create(Circle()))
Common Pitfalls to Avoid
- Version confusion - Ensure you're using
manim (Community), not manimgl (3b1b version)
- Check imports -
from manim import * is ManimCE; from manimlib import * is ManimGL
- Outdated tutorials - Video tutorials may be outdated; prefer official documentation
- manimpango issues - If text rendering fails, check manimpango installation requirements. Required System Libs:
libpango1.0-dev, libcairo2-dev, libffi-dev, ffmpeg.
- PATH issues (Windows) - If
manim command not found, use python -m manim or check PATH
- Directory Context - Always
cd into the directory containing your .py script before rendering to ensure media paths are resolved correctly relative to the project root.
Installation
# Install Manim Community
pip install manim
# Check installation
manim checkhealth
# Required OS Packages (Linux)
# sudo apt-get install libpango1.0-dev libcairo2-dev libffi-dev ffmpeg
Useful Commands
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
1---2name: manimce-best-practices3description: Trigger when: (1) User mentions "manim" or "Manim Community" or "ManimCE", (2) Code contains `from manim import *`, (3) User runs `manim` CLI commands, (4) Working with Scene, MathTex, Create(), or ManimCE-specific classes. Best practices for Manim Community Edition - the community-maintained Python animation engine. Covers Scene structure, animations, LaTeX/MathTex, 3D with ThreeDScene, camera control, styling, and CLI usage. NOT for ManimGL/3b1b version (which uses `manimlib` imports and `manimgl` CLI).4---5
6## How to use
7
8Read individual rule files for detailed explanations and code examples:
9
10### Core Concepts
11- [rules/scenes.md](rules/scenes.md) - Scene structure, construct method, and scene types
12- [rules/mobjects.md](rules/mobjects.md) - Mobject types, VMobject, Groups, and positioning
13- [rules/animations.md](rules/animations.md) - Animation classes, playing animations, and timing
14
15### Creation & Transformation
16- [rules/creation-animations.md](rules/creation-animations.md) - Create, Write, FadeIn, DrawBorderThenFill
17- [rules/transform-animations.md](rules/transform-animations.md) - Transform, ReplacementTransform, morphing
18- [rules/animation-groups.md](rules/animation-groups.md) - AnimationGroup, LaggedStart, Succession
19
20### Text & Math
21- [rules/text.md](rules/text.md) - Text mobjects, fonts, and styling
22- [rules/latex.md](rules/latex.md) - MathTex, Tex, LaTeX rendering, and coloring formulas
23- [rules/text-animations.md](rules/text-animations.md) - Write, AddTextLetterByLetter, TypeWithCursor
24
25### Styling & Appearance
26- [rules/colors.md](rules/colors.md) - Color constants, gradients, and color manipulation
27- [rules/styling.md](rules/styling.md) - Fill, stroke, opacity, and visual properties
28
29### Positioning & Layout
30- [rules/positioning.md](rules/positioning.md) - move_to, next_to, align_to, shift methods
31- [rules/grouping.md](rules/grouping.md) - VGroup, Group, arrange, and layout patterns
32
33### Coordinate Systems & Graphing
34- [rules/axes.md](rules/axes.md) - Axes, NumberPlane, coordinate systems
35- [rules/graphing.md](rules/graphing.md) - Plotting functions, parametric curves
36- [rules/3d.md](rules/3d.md) - ThreeDScene, 3D axes, surfaces, camera orientation
37
38### Animation Control
39- [rules/timing.md](rules/timing.md) - Rate functions, easing, run_time, lag_ratio
40- [rules/updaters.md](rules/updaters.md) - Updaters, ValueTracker, dynamic animations
41- [rules/camera.md](rules/camera.md) - MovingCameraScene, zoom, pan, frame manipulation
42
43### Configuration & CLI
44- [rules/cli.md](rules/cli.md) - Command-line interface, rendering options, quality flags
45- [rules/config.md](rules/config.md) - Configuration system, manim.cfg, settings
46
47### Shapes & Geometry
48- [rules/shapes.md](rules/shapes.md) - Circle, Square, Rectangle, Polygon, and geometric primitives
49- [rules/lines.md](rules/lines.md) - Line, Arrow, Vector, DashedLine, and connectors
50
51## Working Examples
52
53Complete, tested example files demonstrating common patterns:
54
55- [examples/basic_animations.py](examples/basic_animations.py) - Shape creation, text, lagged animations, path movement
56- [examples/math_visualization.py](examples/math_visualization.py) - LaTeX equations, color-coded math, derivations
57- [examples/updater_patterns.py](examples/updater_patterns.py) - ValueTracker, dynamic animations, physics simulations
58- [examples/graph_plotting.py](examples/graph_plotting.py) - Axes, functions, areas, Riemann sums, polar plots
59- [examples/3d_visualization.py](examples/3d_visualization.py) - ThreeDScene, surfaces, 3D camera, parametric curves
60
61## Scene Templates
62
63Copy and modify these templates to start new projects:
64
65- [templates/basic_scene.py](templates/basic_scene.py) - Standard 2D scene template
66- [templates/camera_scene.py](templates/camera_scene.py) - MovingCameraScene with zoom/pan
67- [templates/threed_scene.py](templates/threed_scene.py) - 3D scene with surfaces and camera rotation
68
69## Quick Reference
70
71### Basic Scene Structure
72```python
73from manim import *
74
75class MyScene(Scene):
76 def construct(self):
77 # Create mobjects
78 circle = Circle()
79
80 # Add to scene (static)
81 self.add(circle)
82
83 # Or animate
84 self.play(Create(circle))
85
86 # Wait
87 self.wait(1)
88```
89
90### Render Command
91```bash
92# Basic render with preview
93manim -pql scene.py MyScene
94
95# Quality flags: -ql (low), -qm (medium), -qh (high), -qk (4k)
96manim -pqh scene.py MyScene
97```
98
99### Key Differences from 3b1b/ManimGL
100
101| Feature | Manim Community | 3b1b/ManimGL |
102|---------|-----------------|--------------|
103| Import | `from manim import *` | `from manimlib import *` |
104| CLI | `manim` | `manimgl` |
105| Math text | `MathTex(r"\pi")` | `Tex(R"\pi")` |
106| Scene | `Scene` | `InteractiveScene` |
107| Package | `manim` (PyPI) | `manimgl` (PyPI) |
108
109### Jupyter Notebook Support
110
111Use the `%%manim` cell magic:
112
113```python
114%%manim -qm MyScene
115class MyScene(Scene):
116 def construct(self):
117 self.play(Create(Circle()))
118```
119
120### Common Pitfalls to Avoid
121
1221. **Version confusion** - Ensure you're using `manim` (Community), not `manimgl` (3b1b version)
1232. **Check imports** - `from manim import *` is ManimCE; `from manimlib import *` is ManimGL
1243. **Outdated tutorials** - Video tutorials may be outdated; prefer official documentation
1254. **manimpango issues** - If text rendering fails, check manimpango installation requirements. **Required System Libs**: `libpango1.0-dev`, `libcairo2-dev`, `libffi-dev`, `ffmpeg`.
1265. **PATH issues (Windows)** - If `manim` command not found, use `python -m manim` or check PATH
1276. **Directory Context** - Always `cd` into the directory containing your `.py` script before rendering to ensure media paths are resolved correctly relative to the project root.
128
129### Installation
130
131```bash
132# Install Manim Community
133pip install manim
134
135# Check installation
136manim checkhealth
137
138# Required OS Packages (Linux)
139# sudo apt-get install libpango1.0-dev libcairo2-dev libffi-dev ffmpeg
140```
141
142### Useful Commands
143
144```bash
145manim -pql scene.py Scene # Preview low quality (development)
146manim -pqh scene.py Scene # Preview high quality
147manim --format gif scene.py # Output as GIF
148manim checkhealth # Verify installation
149manim plugins -l # List plugins
150```