⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
manim-composer
|
// RATINGS
// README
Manim Skills Repository
⚡ Quick Start: Add both Manim skills to your AI agent instantly:
npx skills add adithya-s-k/manim_skill
A comprehensive collection of best practices, patterns, and examples for both Manim Community Edition and ManimGL (3Blue1Brown's version). This repository provides battle-tested code examples and guidelines for creating mathematical animations.
https://github.com/user-attachments/assets/3cd398b7-7cc6-43c1-a6e9-20077be6b009
📚 About the Two Versions
Manim Community Edition (manim)
- Repository: https://github.com/ManimCommunity/manim
- Focus: Community-maintained, stable, well-documented
- Best For: Production use, educational content, collaborative projects
- Command:
manimCLI - Import:
from manim import *
ManimGL (manimgl)
- Repository: https://github.com/3b1b/manim
- Focus: Grant Sanderson's (3Blue1Brown) original version with OpenGL rendering
- Best For: Interactive development, 3D scenes, rapid prototyping
- Command:
manimglCLI - Import:
from manimlib import *
Important: These are separate, incompatible frameworks. Code written for one will not work with the other without modifications.
🚀 Installation
Prerequisites (Both Versions)
- Python 3.7+ - Required
- FFmpeg - For video encoding
- LaTeX - For mathematical typesetting (TeX Live, MiKTeX, or MacTeX)
Install FFmpeg
macOS:
brew install ffmpeg
Ubuntu/Debian:
sudo apt update
sudo apt install ffmpeg
Windows: Download from https://ffmpeg.org/download.html and add to PATH
Install LaTeX
macOS:
brew install mactex
Ubuntu/Debian:
sudo apt install texlive-full
Windows: Install MiKTeX from https://miktex.org/download
Installing Manim Community Edition
# Using pip
pip install manim
# Using uv (recommended for this project)
uv pip install manim
# Verify installation
manim --version
Documentation: https://docs.manim.community/
Installing ManimGL
# Using pip
pip install manimgl
# Using uv (recommended for this project)
uv pip install manimgl
# Verify installation
manimgl --version
Additional macOS (ARM) requirement:
arch -arm64 brew install pkg-config cairo
🔌 Skills.sh Integration
This repository provides two AI Agent Skills that can be installed with a single command using skills.sh:
Install with npx (Recommended)
# Install Manim Community Edition best practices
npx skills add adithya-s-k/manim_skill/skills/manimce-best-practices
# Install ManimGL best practices
npx skills add adithya-s-k/manim_skill/skills/manimgl-best-practices
# Or install both
npx skills add adithya-s-k/manim_skill/skills/manimce-best-practices adithya-s-k/manim_skill/skills/manimgl-best-practices
What are Skills?
Skills are reusable capabilities for AI coding agents. Once installed, your AI assistant (like Claude, GitHub Copilot, or Cursor) automatically gains access to:
- ✅ Domain-specific best practices
- ✅ Working code examples
- ✅ Common patterns and anti-patterns
- ✅ Framework-specific knowledge
The skills follow the Agent Skills open standard and work across multiple AI tools.
When Skills Activate
manimce-best-practices - Automatically loads when:
- You import
from manim import * - You use the
manimCLI command - You work with Scene classes, mathematical animations, or LaTeX rendering
- You create educational videos or visual explanations with Manim Community
manimgl-best-practices - Automatically loads when:
- You import
from manimlib import * - You use the
manimglCLI command - You work with InteractiveScene, 3D rendering, or camera frame control
- You use interactive mode with
.embed()orcheckpoint_paste()
📖 Using This Repository
Repository Structure
manim_skill/
├── skills/
│ ├── manimce-best-practices/ # Manim Community Edition skills
│ │ ├── SKILL.md # Skill metadata
│ │ └── rules/ # Individual best practice guides
│ │ ├── animations.md
│ │ ├── scenes.md
│ │ ├── mobjects.md
│ │ └── ...
│ │
│ └── manimgl-best-practices/ # ManimGL skills
│ ├── SKILL.md
│ └── rules/
│ ├── animations.md
│ ├── 3d.md
│ ├── camera.md
│ └── ...
│
└── tests/
├── manimce/ # Tests for Community Edition
└── manimgl/ # Tests for ManimGL
What's Inside Each Skill File?
Each .md file contains:
- Best practices for specific Manim features
- Working code examples (all tested!)
- Common patterns and use cases
- Pitfalls to avoid
- API differences between versions
🎯 Quick Start Examples
Manim Community Edition
from manim import *
class BasicExample(Scene):
def construct(self):
circle = Circle()
circle.set_fill(BLUE, opacity=0.5)
circle.set_stroke(BLUE_E, width=4)
self.play(Create(circle))
self.wait()
Run it:
manim -pql scene.py BasicExample
# -p: preview after rendering
# -q: quality (l=low, m=medium, h=high)
ManimGL
from manimlib import *
class BasicExample(InteractiveScene):
def construct(self):
circle = Circle()
circle.set_fill(BLUE, opacity=0.5)
circle.set_stroke(BLUE_E, width=4)
self.play(ShowCreation(circle))
self.wait()
Run it:
manimgl scene.py BasicExample --write_file
# --write_file: save video output
# -s: skip to last frame
# -w: write file without opening
🧪 Running Tests
This repository includes comprehensive tests to ensure all code examples work correctly.
Test Manim Community Edition Skills
# Test all files
uv run python tests/manimce/test_all_skills.py
# Test specific file
uv run python tests/manimce/test_all_skills.py animations.md
# Run with multiple workers (faster)
uv run python tests/manimce/test_all_skills.py -j 4
Test ManimGL Skills
# Test all files
uv run python tests/manimgl/test_all_skills.py
# Test specific file
uv run python tests/manimgl/test_all_skills.py 3d.md
# Run with multiple workers (use caution - can cause OOM)
uv run python tests/manimgl/test_all_skills.py -j 4
Note: Parallel testing with many workers can cause out-of-memory errors. Use 4-6 workers max, or test files individually.
🔍 Key Differences Between Versions
| Feature | Manim Community | ManimGL |
|---|---|---|
| Import | from manim import * | from manimlib import * |
| CLI Command | manim | manimgl |
| Scene Base Class | Scene, MovingCameraScene | Scene, InteractiveScene |
| Creation Animation | Create() | ShowCreation() |
| Text Class | Text(), MathTex() | Text(), Tex() |
| 3D Rendering | Limited | Full OpenGL support |
| Interactive Mode | No | Yes (-se flag, .embed()) |
| Camera Control | MovingCameraScene | self.camera.frame |
| Configuration | Python config | YAML files |
| Color Constants | Same | Same + variations (e.g., BLUE_A, BLUE_E) |
📚 Exploring Skills
For Manim Community Edition:
Start with these guides in skills/manimce-best-practices/rules/:
- **sc
// HOW IT'S BUILT
KEY FILES