Comprehensive guide for Manim Community - Python framework for creating mathematical animations and educational videos with programmatic control
manim follows the SKILL.md standard. Use the install command to add it to your agent stack.
---
name: manim
description: Comprehensive guide for Manim Community - Python framework for creating mathematical animations and educational videos with programmatic control
version: 1.0.0
author: manim-community
repo: https://github.com/ManimCommunity/manim
license: MIT
tags: [Video, Python, Animation, Manim, Mathematical, Educational, Visualization, LaTeX, 3Blue1Brown]
dependencies: [manim>=0.19.0, python>=3.8]
---
# Manim Community - Mathematical Animation Engine
Comprehensive skill set for creating mathematical animations using Manim Community, a Python framework for creating explanatory math videos programmatically, popularized by 3Blue1Brown.
## When to use
Use this skill whenever you are dealing with Manim code to obtain domain-specific knowledge about:
- Creating mathematical animations and visualizations
- Building educational video content programmatically
- Working with geometric shapes and transformations
- Animating LaTeX equations and mathematical formulas
- Creating graphs, charts, and coordinate systems
- Implementing scene-based animation sequences
- Rendering high-quality mathematical diagrams
- Building explanatory visual content for teaching
## Core Concepts
Manim allows you to create animations using:
- **Scenes**: Canvas for your animations where you orchestrate mobjects
- **Mobjects**: Mathematical objects that can be displayed (shapes, text, equations)
- **Animations**: Transformations applied to mobjects (Write, Create, Transform, FadeIn)
- **Transforms**: Morphing between different states of mobjects
- **LaTeX Integration**: Native support for rendering mathematical notation
- **Python Simplicity**: Use Python to programmatically specify animation behavior
## Key Features
- Precise mathematical object positioning and transformations
- Native LaTeX rendering for equations and formulas
- Extensive shape library (circles, rectangles, arrows, polygons)
- Coordinate systems and function graphing
- Boolean operations on geometric shapes
- Camera controls and scene management
- High-quality video rendering
- IPython/Jupyter notebook integration
- VS Code extension with live preview
## How to use
Read individual rule files for detailed explanations and code examples:
### Core Concepts
- **[references/scenes.md](references/scenes.md)** - Creating scenes and organizing animations
- **[references/mobjects.md](references/mobjects.md)** - Understanding mathematical objects and shapes
- **[references/animations.md](references/animations.md)** - Core animation types and techniques
- **[references/latex.md](references/latex.md)** - Rendering LaTeX equations and formulas
For additional topics including transforms, timing, shapes, coordinate systems, 3D animations, camera movement, and advanced features, refer to the comprehensive [Manim Community documentation](https://docs.manim.community/).
## Quick Start Example
```python
from manim import *
class SquareToCircle(Scene):
def construct(self):
# Create a square
square = Square()
square.set_fill(BLUE, opacity=0.5)
# Create a circle
circle = Circle()
circle.set_fill(RED, opacity=0.5)
# Animate square creation
self.play(Create(square))
self.wait(1)
# Transform square into circle
self.play(Transform(square, circle))
self.wait(1)
# Fade out
self.play(FadeOut(square))
```
Render with: `manim -pql script.py SquareToCircle`
## Best Practices
1. **Inherit from Scene** - All animations should be in a class inheriting from Scene
2. **Use construct() method** - Place all animation code inside the construct() method
3. **Think in layers** - Add mobjects to the scene before animating them
4. **Use self.play()** - Animate mobjects using self.play(Animation(...))
5. **Test with low quality** - Use `-ql` flag for faster preview renders
6. **Leverage LaTeX** - Use Tex() and MathTex() for mathematical notation
7. **Group related objects** - Use VGroup to manage multiple mobjects together
8. **Preview frequently** - Use `-p` flag to automatically open rendered videos
## Command Line Usage
```bash
# Preview at low quality (fast)
manim -pql script.py SceneName
# Render at high quality
manim -pqh script.py SceneName
# Save last frame as image
manim -s script.py SceneName
# Render multiple scenes
manim script.py Scene1 Scene2
```
## Resources
- **Documentation**: https://docs.manim.community/
- **Repository**: https://github.com/ManimCommunity/manim
- **Examples Gallery**: https://docs.manim.community/en/stable/examples.html
- **Discord Community**: https://www.manim.community/discord/
- **3Blue1Brown Channel**: https://www.youtube.com/c/3blue1brown
- **License**: MIT