Skill metadata
Reference: full SKILL.md
The following is the complete skill definition that Mibyan loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
Manim Video Production Pipeline
When to use
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. Creates 3Blue1Brown-style explainer videos, algorithm visualizations, equation derivations, architecture diagrams, and data stories using Manim Community Edition.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 needsself.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
Runscripts/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 — Write
plan.mdwith narrative arc, scene list, visual elements, color palette, voiceover script - CODE — Write
script.pywith one class per scene, each independently renderable - RENDER —
manim -ql script.py Scene1 Scene2 ...for draft,-qhfor production - STITCH — ffmpeg concat of scene clips into
final.mp4 - AUDIO (optional) — Add voiceover and/or background music via ffmpeg. See
references/rendering.md - REVIEW — Render preview stills, verify against plan, adjust
Project Structure
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. Seereferences/visual-design.md for full recommendations.
font_size=18 for readability.
Per-Scene Variation
Never use identical config for all scenes. For each scene:- Different dominant color from the palette
- Different layout — don’t always center everything
- Different animation entry — vary between Write, FadeIn, GrowFromCenter, Create
- Different visual weight — some scenes dense, others sparse
Workflow
Step 1: Plan (plan.md)
Before any code, writeplan.md. See references/scene-planning.md for the comprehensive template.
Step 2: Code (script.py)
One class per scene. Every scene is independently renderable.- Subtitles on every animation:
self.add_subcaption("text", duration=N)orsubcaption="text"onself.play() - Shared color constants at file top for cross-scene consistency
self.camera.background_colorset in every scene- Clean exits — FadeOut all mobjects at scene end:
self.play(FadeOut(Group(*self.mobjects)))
Step 3: Render
Step 4: Stitch
Step 5: Review
Critical Implementation Notes
Raw Strings for LaTeX
buff >= 0.5 for Edge Text
FadeOut Before Replacing Text
Never Animate Non-Added Mobjects
Performance Targets
Always iterate at
-ql. Only render -qh for final output.
References
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
- List what’s “standard” about how this topic is visualized (left-to-right, 2D, discrete steps, formal notation)
- Pick the most fundamental assumption
- Reverse it (right-to-left derivation, 3D embedding of a 2D concept, continuous morphing instead of steps, zero notation)
- Explore what the reversal reveals that the standard approach hides

