name: manim-video
description: "Production pipeline for mathematical and technical animations using Manim Community Edition. Creates 3Blue1Brown-style explainer videos, algorithm visualizations, equation derivations, architecture diagrams, and data stories. Use when users request: animated explanations, math animations, concept visualizations, algorithm walkthroughs, technical explainers, 3Blue1Brown style videos, or any programmatic animation with geometric/mathematical content."
version: 1.0.0
Manim Video Production Pipeline
Creative Standard
This is educational cinema. Every frame teaches. Every animation reveals structure.
Before writing a single line of code, articulate the narrative arc. What misconception does this correct? What is the "aha moment"? What visual story takes the viewer from confusion to understanding? The user's prompt is a starting point — interpret it with pedagogical ambition.
Geometry before algebra. Show the shape first, the equation second. Visual memory encodes faster than symbolic memory. When the viewer sees the geometric pattern before the formula, the equation feels earned.
First-render excellence is non-negotiable. The output must be visually clear and aesthetically cohesive without revision rounds. If something looks cluttered, poorly timed, or like "AI-generated slides," it is wrong.
Opacity layering directs attention. Never show everything at full brightness. Primary elements at 1.0, contextual elements at 0.4, structural elements (axes, grids) at 0.15. The brain processes visual salience in layers.
Breathing room. Every animation needs self.wait() after it. The viewer needs time to absorb what just appeared. Never rush from one animation to the next. A 2-second pause after a key reveal is never wasted.
Cohesive visual language. All scenes share a color palette, consistent typography sizing, matching animation speeds. A technically correct video where every scene uses random different colors is an aesthetic failure.
Prerequisites
Run scripts/setup.sh to verify all dependencies. Requires: Python 3.10+, Manim Community Edition v0.20+ (pip install manim), LaTeX (texlive-full on Linux, mactex on macOS), and ffmpeg. Reference docs tested against Manim CE v0.20.1.
Modes
| Mode | Input | Output | Reference | ||
| ------ | ------- | -------- | ----------- | ||
| Concept explainer | Topic/concept | Animated explanation with geometric intuition | references/scene-planning.md | ||
| Equation derivation | Math expressions | Step-by-step animated proof | references/equations.md | ||
| Algorithm visualization | Algorithm description | Step-by-step execution with data structures | references/graphs-and-data.md | ||
| Data story | Data/metrics | Animated charts, comparisons, counters | references/graphs-and-data.md | ||
| Architecture diagram | System description | Components building up with connections | references/mobjects.md | ||
| Paper explainer | Research paper | Key findings and methods animated | references/scene-planning.md | ||
| 3D visualization | 3D concept | Rotating surfaces, parametric curves, spatial geometry | references/camera-and-3d.md | ||
| Layer | Tool | Purpose | |||
| ------- | ------ | --------- | |||
| Core | Manim Community Edition | Scene rendering, animation engine | |||
| Math | LaTeX (texlive/MiKTeX) | Equation rendering via MathTex | |||
| Video I/O | ffmpeg | Scene stitching, format conversion, audio muxing | |||
| TTS | ElevenLabs / Qwen3-TTS (optional) | Narration voiceover | |||
| Palette | Background | Primary | Secondary | Accent | Use case |
| --------- | ----------- | --------- | ----------- | -------- | ---------- |
| Classic 3B1B | #1C1C1C | #58C4DD (BLUE) | #83C167 (GREEN) | #FFFF00 (YELLOW) | General math/CS |
| Warm academic | #2D2B55 | #FF6B6B | #FFD93D | #6BCB77 | Approachable |
| Neon tech | #0A0A0A | #00F5FF | #FF00FF | #39FF14 | Systems, architecture |
| Monochrome | #1A1A2E | #EAEAEA | #888888 | #FFFFFF | Minimalist |
| Context | run_time | self.wait() after | |||
| --------- | ---------- | ------------------- | |||
| Title/intro appear | 1.5s | 1.0s | |||
| Key equation reveal | 2.0s | 2.0s | |||
| Transform/morph | 1.5s | 1.5s | |||
| Supporting label | 0.8s | 0.5s | |||
| FadeOut cleanup | 0.5s | 0.3s | |||
| "Aha moment" reveal | 2.5s | 3.0s | |||
| Role | Font size | Usage | |||
| ------ | ----------- | ------- | |||
| Title | 48 | Scene titles, opening text | |||
| Heading | 36 | Section headers within a scene | |||
| Body | 30 | Explanatory text | |||
| Label | 24 | Annotations, axis labels | |||
| Caption | 20 | Subtitles, fine print | |||
| Quality | Resolution | FPS | Speed | ||
| --------- | ----------- | ----- | ------- | ||
-ql (draft) | 854x480 | 15 | 5-15s/scene | ||
-qm (medium) | 1280x720 | 30 | 15-60s/scene | ||
-qh (production) | 1920x1080 | 60 | 30-120s/scene | ||
| File | Contents | ||||
| ------ | ---------- | ||||
references/animations.md | Core animations, rate functions, composition, .animate syntax, timing patterns | ||||
references/mobjects.md | Text, shapes, VGroup/Group, positioning, styling, custom mobjects | ||||
references/visual-design.md | 12 design principles, opacity layering, layout templates, color palettes | ||||
references/equations.md | LaTeX in Manim, TransformMatchingTex, derivation patterns | ||||
references/graphs-and-data.md | Axes, plotting, BarChart, animated data, algorithm visualization | ||||
references/camera-and-3d.md | MovingCameraScene, ThreeDScene, 3D surfaces, camera control | ||||
references/scene-planning.md | Narrative arcs, layout templates, scene transitions, planning template | ||||
references/rendering.md | CLI reference, quality presets, ffmpeg, voiceover workflow, GIF export | ||||
references/troubleshooting.md | LaTeX errors, animation errors, common mistakes, debugging | ||||
references/animation-design-thinking.md | When to animate vs show static, decomposition, pacing, narration sync | ||||
references/updaters-and-trackers.md | ValueTracker, add_updater, always_redraw, time-based updaters, patterns | ||||
references/paper-explainer.md | Turning research papers into animations — workflow, templates, domain patterns | ||||
references/decorations.md | SurroundingRectangle, Brace, arrows, DashedLine, Angle, annotation lifecycle | ||||
references/production-quality.md | Pre-code, pre-render, post-render checklists, spatial layout, color, tempo |
Creative Divergence (use only when user requests experimental/creative/unique output)
If the user asks for creative, experimental, or unconventional explanatory approaches, select a strategy and reason through it BEFORE designing the animation.
SCAMPER Transformation
Take a standard mathematical/technical visualization and transform it:
Assumption Reversal
1. List what's "standard" about how this topic is visualized (left-to-right, 2D, discrete steps, formal notation)
2. Pick the most fundamental assumption
3. Reverse it (right-to-left derivation, 3D embedding of a 2D concept, continuous morphing instead of steps, zero notation)
4. Explore what the reversal reveals that the standard approach hides