# manim-video

> A Claude Code skill from Affaan M's everything-claude-code repo for building Manim explainer animations of technical concepts — graphs, system diagrams, workflow visualizations, metric progressions — with a storyboard-first workflow that locks the visual thesis before any scene code lands.

**Use case**: Plan and render a Manim explainer where motion explains state change, not just keeps the screen busy

**Canonical URL**: https://agentcookbooks.com/skills/manim-video/

**Topics**: claude-code, skills, content, animation

**Trigger phrases**: "make a Manim explainer for this concept", "animate this network graph", "render a technical explainer video"

**Source**: [Affaan M](https://github.com/affaan-m/everything-claude-code/tree/main/skills/manim-video)

**License**: MIT

---

## What it does

`manim-video` is the explainer-animation skill in [Affaan M's everything-claude-code](https://github.com/affaan-m/everything-claude-code) — see [skills/manim-video](https://github.com/affaan-m/everything-claude-code/tree/main/skills/manim-video). It routes the user through a storyboard-first workflow for Manim-rendered technical explainers: define the core visual thesis in one sentence, break it into 3–6 scenes, decide what each scene proves, then write Manim code only after the scene outline is locked.

The skill ships explicit scene-planning rules — one thing proven per scene, progressive reveal over full-screen clutter, motion used to explain state change rather than fill silence — and a network-graph default that distinguishes low-signal follow clutter from high-signal bridges, useful for social-graph or network-optimization explainers. A reusable starter at `assets/network_graph_scene.py` is the smoke-test entry point.

Render conventions are equally opinionated: 16:9 landscape by default, low-quality smoke render first (`manim -ql`), only push to higher quality after composition and timing are stable, and export one clean thumbnail frame that reads at social size. Handoff paths to `remotion-video-creation` (for composited UI / captions / additional motion layers) and to a generic `video-editing` skill are called out by name when the deliverable needs more than Manim can produce.

## When to use it

- Technical explainer where the concept is a graph, workflow, architecture diagram, or metric progression — the kind of thing that needs precise motion, not generic B-roll
- Short product or launch explainer destined for X or a landing page
- Network-graph visualization where you want to show the current graph next to an optimized graph
- Walkthroughs where progressive reveal matters more than photorealism

When *not* to reach for it:

- Talking-head scripts or generic cinematic content — Manim is wrong for that
- Animations that need composited UI overlays, captions, or React-driven motion — that's `remotion-video-creation`
- Final-cut polish (color grading, sound design, transitions across multiple Manim clips) — handoff to `video-editing`

## Install

From [affaan-m/everything-claude-code](https://github.com/affaan-m/everything-claude-code) at `skills/manim-video/`. Drop the folder into `~/.claude/skills/manim-video/`. The skill needs the Manim CLI installed in the runtime (Python + Manim Community Edition is the usual path) and `ffmpeg` available for any post-processing. The bundled `assets/network_graph_scene.py` is the recommended starting point for network-graph explainers.

## What a session looks like

1. **State the visual thesis in one sentence.** "Show how a sparse social graph turns into a dense warm-path graph after adding three bridge nodes."
2. **Skill breaks it into 3–6 scenes.** Each scene gets a one-line "what this proves" annotation before any code lands.
3. **Write the scene outline.** Title cards, the state at the start, the state at the end, the motion that connects them. Outline goes into a markdown plan, not directly into a Manim file.
4. **Smoke-test render.** `manim -ql assets/network_graph_scene.py NetworkGraphExplainer` produces a low-quality preview. Composition and timing get fixed here.
5. **Iterate typography, spacing, color, pacing.** Only after the low-quality version reads cleanly.
6. **High-quality render + thumbnail frame.** Export one clean poster frame that survives at social-card size.
7. **Optional handoff.** If captions or UI overlays are needed, the package goes to `remotion-video-creation`; for final cut, to `video-editing`.

The discipline that makes it work: outline-before-code. Manim makes it easy to write a 200-line scene file that renders something pretty and means nothing — the storyboard gate prevents that.

## Receipts

_TODO — to be filled in from a real session. Once the skill has been used to produce a real explainer, this section will capture: how many scenes the original thesis actually compressed to versus the first-pass estimate, whether the low-quality smoke render caught a timing or composition bug that would've cost a full-quality re-render, the render time per scene at `-ql` vs `-qh`, and which scene-planning rule (one-thing-per-scene, progressive reveal, motion-as-state-change) the first draft violated._

## Source and attribution

From [Affaan M's everything-claude-code](https://github.com/affaan-m/everything-claude-code/tree/main/skills/manim-video) — an MIT-licensed skill collection covering harness construction, agent ops, video, payments, and platform-specific patterns.

License: MIT.

Quoting the motion rule verbatim: *"Use motion to explain state change, not just to keep the screen busy."* That rule is the whole skill in one line — without it, Manim becomes a fancy animated PowerPoint and the explainer loses the thing that makes Manim worth the toolchain in the first place.