📄 SKILL.md

← Vault

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

Stack

Single Python script per project. No browser, no Node.js, no GPU required.

Pipeline

`

PLAN --> CODE --> RENDER --> STITCH --> AUDIO (optional) --> REVIEW

`

1. PLAN — Write plan.md with narrative arc, scene list, visual elements, color palette, voiceover script

2. CODE — Write script.py with one class per scene, each independently renderable

3. RENDERmanim -ql script.py Scene1 Scene2 ... for draft, -qh for production

4. STITCH — ffmpeg concat of scene clips into final.mp4

5. AUDIO (optional) — Add voiceover and/or background music via ffmpeg. See references/rendering.md

6. REVIEW — Render preview stills, verify against plan, adjust

Project Structure

`

project-name/

plan.md # Narrative arc, scene breakdown

script.py # All scenes in one file

concat.txt # ffmpeg scene list

final.mp4 # Stitched output

media/ # Auto-generated by Manim

videos/script/480p15/

`

Creative Direction

Color Palettes

Animation Speed

Typography Scale

Fonts

Use monospace fonts for all text. Manim's Pango renderer produces broken kerning with proportional fonts at all sizes. See references/visual-design.md for full recommendations.

`python

MONO = "Menlo" # define once at top of file

Text("Fourier Series", font_size=48, font=MONO, weight=BOLD) # titles

Text("n=1: sin(x)", font_size=20, font=MONO) # labels

MathTex(r"\nabla L") # math (uses LaTeX)

`

Minimum font_size=18 for readability.

Per-Scene Variation

Never use identical config for all scenes. For each scene:

Always iterate at -ql. Only render -qh for final output.

References

ModeInputOutputReference
--------------------------------
Concept explainerTopic/conceptAnimated explanation with geometric intuitionreferences/scene-planning.md
Equation derivationMath expressionsStep-by-step animated proofreferences/equations.md
Algorithm visualizationAlgorithm descriptionStep-by-step execution with data structuresreferences/graphs-and-data.md
Data storyData/metricsAnimated charts, comparisons, countersreferences/graphs-and-data.md
Architecture diagramSystem descriptionComponents building up with connectionsreferences/mobjects.md
Paper explainerResearch paperKey findings and methods animatedreferences/scene-planning.md
3D visualization3D conceptRotating surfaces, parametric curves, spatial geometryreferences/camera-and-3d.md
LayerToolPurpose
----------------------
CoreManim Community EditionScene rendering, animation engine
MathLaTeX (texlive/MiKTeX)Equation rendering via MathTex
Video I/OffmpegScene stitching, format conversion, audio muxing
TTSElevenLabs / Qwen3-TTS (optional)Narration voiceover
PaletteBackgroundPrimarySecondaryAccentUse case
----------------------------------------------------------
Classic 3B1B#1C1C1C#58C4DD (BLUE)#83C167 (GREEN)#FFFF00 (YELLOW)General math/CS
Warm academic#2D2B55#FF6B6B#FFD93D#6BCB77Approachable
Neon tech#0A0A0A#00F5FF#FF00FF#39FF14Systems, architecture
Monochrome#1A1A2E#EAEAEA#888888#FFFFFFMinimalist
Contextrun_timeself.wait() after
--------------------------------------
Title/intro appear1.5s1.0s
Key equation reveal2.0s2.0s
Transform/morph1.5s1.5s
Supporting label0.8s0.5s
FadeOut cleanup0.5s0.3s
"Aha moment" reveal2.5s3.0s
RoleFont sizeUsage
------------------------
Title48Scene titles, opening text
Heading36Section headers within a scene
Body30Explanatory text
Label24Annotations, axis labels
Caption20Subtitles, fine print
QualityResolutionFPSSpeed
--------------------------------
-ql (draft)854x480155-15s/scene
-qm (medium)1280x7203015-60s/scene
-qh (production)1920x10806030-120s/scene
FileContents
----------------
references/animations.mdCore animations, rate functions, composition, .animate syntax, timing patterns
references/mobjects.mdText, shapes, VGroup/Group, positioning, styling, custom mobjects
references/visual-design.md12 design principles, opacity layering, layout templates, color palettes
references/equations.mdLaTeX in Manim, TransformMatchingTex, derivation patterns
references/graphs-and-data.mdAxes, plotting, BarChart, animated data, algorithm visualization
references/camera-and-3d.mdMovingCameraScene, ThreeDScene, 3D surfaces, camera control
references/scene-planning.mdNarrative arcs, layout templates, scene transitions, planning template
references/rendering.mdCLI reference, quality presets, ffmpeg, voiceover workflow, GIF export
references/troubleshooting.mdLaTeX errors, animation errors, common mistakes, debugging
references/animation-design-thinking.mdWhen to animate vs show static, decomposition, pacing, narration sync
references/updaters-and-trackers.mdValueTracker, add_updater, always_redraw, time-based updaters, patterns
references/paper-explainer.mdTurning research papers into animations — workflow, templates, domain patterns
references/decorations.mdSurroundingRectangle, Brace, arrows, DashedLine, Angle, annotation lifecycle
references/production-quality.mdPre-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 — when the user wants a fresh take on a standard explanation
  • - Assumption Reversal — when the user wants to challenge how something is typically taught
  • SCAMPER Transformation

    Take a standard mathematical/technical visualization and transform it:

  • - Substitute: replace the standard visual metaphor (number line → winding path, matrix → city grid)
  • - Combine: merge two explanation approaches (algebraic + geometric simultaneously)
  • - Reverse: derive backward — start from the result and deconstruct to axioms
  • - Modify: exaggerate a parameter to show why it matters (10x the learning rate, 1000x the sample size)
  • - Eliminate: remove all notation — explain purely through animation and spatial relationships
  • 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