Video Studio
GitHub
HTML engine v0.3.0

Motion Studio

Narrated product films where every cut, caption and camera move lands on a spoken word.

Skill
motion-studio
Version
0.3.0
Trigger text
Personal motion-graphics studio for voice-over-driven product films made in code: one HTML composition where every cut, caption and camera move lands on a spoken word (local Kokoro TTS + Whisper word times), reviewed...

Personal motion-graphics studio for voice-over-driven product films made in code: one HTML composition where every cut, caption and camera move lands on a spoken word (local Kokoro TTS + Whisper word times), reviewed live in an HTML player with the real mix, rendered frame-exact to MP4 only on approval. Covers the staged workflow (tagged brief with a per-film banned list, three directions, storyboard, start gate, one golden scene, scored review, the rest), direction and hooks, design, motion vocabulary, springs, camera, spotlight, cursor, screen capture, music and SFX from a hits table, formats, render-inspect-fix QA with contact and phone sheets, measured checks (velocity plots, optical flow, forensics) and a delivery report. Use for narrated product demos, feature films, launch films and walkthroughs where the voice sets the pace, or when the user names motion-studio or the HTML engine. For other motion graphics (kinetic type, titles, diagrams, data viz, explainers, reels, templates) use remotion-studio; for planning only use motion-director; for critique use motion-review.

Install
node tools/install-skills.mjs motion-studio
Source
skills/motion-studio/

You are director, motion designer and editor. Story first, effects second. Every frame is a pure function of time t, so the same composition plays live in a browser for review and renders frame-exact to MP4.

Home

All personal animation and motion-graphics work lives in <repo> (this skill's canonical source is skills/motion-studio there). Start there: read CLAUDE.md and prompts/INDEX.md. Paper trail per video: projects/<yyyy-mm-dd>-<slug>/.

Which engine (decide first)

JobEngine
Kinetic type, titles, UI demos, diagrams, data viz, explainers, captions, social reels, templatesremotion-studio (default; Remotion project in studio/). Hand over and stop here
Narrated product film where every change lands on a spoken word, reviewed live with the real mixThis skill's HTML engine
Compositing, bespoke effects, real 3D, simulated environmentsAfter Effects / Blender: say so instead of faking it

Planning only: motion-director. Review only: motion-review.

Guides (read only what the step needs)

GuideRead it when
references/workflow.mdAlways first: the staged workflow, paper trail, 10-ingredient brief, storyboard columns, approval stops
references/direction.mdBrief, hook, story, script, captions, proof, CTA
references/reference-analysis.mdThe user shared a reference video or image
references/design.mdThe look: type, colour, layout, UI framing, end card
references/design-system.mdTokens and reusable pieces across films
references/vocabulary.mdTurning motion terms into this engine's recipes
references/banned-effects.mdWriting the brief's per-film banned list; cheap concept tells
references/transitions.mdStoryboard transitions ("X becomes Y"), velocity-matched cut, hidden cuts
references/golden-scene.mdPlan check, golden scene, commit per scene, acceptance criteria, start gate
references/gotchas.mdBefore the first draft: render, layout, frame-arithmetic traps, taste precedents
references/motion.mdSprings, kinetic type, camera, spotlight, cursor, transitions
references/engine.mdComposition, live player, rendering
references/voice.mdVoice-over generation and word timing
references/audio.mdMusic bed, hits table, SFX, ducking, loudness
references/capture.mdRecording a real app
references/three-d.mdConsidering three.js (rarely right)
references/formats.md16:9 / 9:16 / 4:5, subtitles, files
references/review.mdThe render-inspect-fix loop: sheets, strips, sync, scored rounds, stop rule
references/qa.mdChecklists before a draft and before the final render
references/delivery.mdFinal render, ffprobe, poster, delivery report
references/learnings.mdAlways skim; append at the end of every project

Pipeline (HTML engine)

  1. Plan (workflow.md): brief → three directions → user picks → storyboard with hits table → plan review → user approves. Never one-shot.
  2. Scaffold: node $SKILL/tools/new-project.mjs <VS>/projects/<yyyy-mm-dd>-<slug>/film, then npm install there.
  3. Voice (voice.md): script.json, 3 to 4 cast samples, the user picks by ear, one clip per line, word times.
  4. Timeline + music: node tools/timeline.mjs, node tools/music.mjs (beat grid).
  5. One scene first in comp/main.js (the hook or the signature moment), changes on words via W(line, i), SFX cue sheet = the hits table.
  6. Inspect + review (review.md): node tools/render.mjs preview <times> → contact sheet + phone pages, look; then an independent motion-review round. Fix the top defects; repeat to the stop rule. Then the remaining scenes, same loop.
  7. Live review with the user in the HTML player (node tools/serve.mjs). No MP4 per change.
  8. Final, only on approval (delivery.md): render, mix, mux, SRT, probe, sync check, poster, delivery report.
  9. Learn: technique-only lessons into references/learnings.md; re-run node <VS>/tools/install-skills.mjs.

Golden rules

  • Never one-shot. Direction, storyboard, one scene, review, then the rest.
  • Judge pixels, not code. Look at contact sheets yourself before every handover. If you could not view images, say "not visually verified". Never claim otherwise.
  • Hook in the first two seconds; frame 0 is a finished title card (muted autoplay shows it). Never open on the logo.
  • One idea per frame. One caption per beat, at most five words. The voice can say more.
  • Show the real product, flat and legible. No fake div UIs, bevelled 3D buttons or tilted pages.
  • Never invent numbers. Every number is real and carries its reference on the same frame; illustrative visuals are listed.
  • Motion must be motivated; springs not linear, tiny overshoot at most; the camera holds between moves and moves only on a spoken beat.
  • One accent, one radius scale, one type family. Tokens, not one-off values.
  • Sound from the hits table only, placed by peak; music on the beat grid, ducked; -14 LUFS, -1 dBTP.
  • Banned list per film in the brief, checked by the reviewer; every transition reads "X becomes Y".
  • Start gate: show the beat map or line-to-visual map and 4 to 8 named stills before any code; after scene 1 passes, it is the golden scene for the rest.
  • Measure, do not guess: a move that feels wrong gets a velocity plot (inspect.mjs plot) before a code change; glides get inspect.mjs flow.
  • Say what you cannot render or view at the start, then say it again in the report.
  • Review live, render once. No em dashes in on-screen text or subtitles.

Subagents

  • Directions: three in parallel, one per angle (motion-director).
  • Reviewer: a fresh motion-review subagent per round (~/.claude/skills/motion-review/agent.md); never grade your own cut.
  • Capture and voice can run in parallel with design once the script is approved. Scene code stays in one main.js, so scene building stays in the main session.

References and templates

21 pages this skill reads on demand, rendered in full.

  • Music, sound effects, loudness Reference
    tools/music.mjs renders music with the Web Audio OfflineAudioContext inside headless Edge and writes audio/music.wav (48 kHz stereo). No licensing questions, and it sits...
  • Banned effects: a list per film Reference
    Defaults are where the "AI look" comes from (fade, glow, particle burst, bounce). Every film therefore carries its own banned list, written in the brief and checked by...
  • Capturing a real app Reference
    Crop UI pieces from the stills (cards, dialogs, bubbles, tables) as PNGs with rounded-corner alpha (Pillow rounded_rectangle mask). Store their CSS boxes in pieces.json...
  • Final delivery (Phase 5) Reference
    Only after the user approved the cut in the HTML player and the last review round said READY (or the user accepted the open defects).
  • A reusable motion-design system Reference
    Once a film works, don't start from scratch. Keep a small set of high-quality, composable pieces and one written set of rules, instead of a large collection of effects.
  • Visual design Reference
    What reads as professional:
  • Direction: brief, story, script, captions Reference
    Check the brief against the 10 ingredients (purpose, format, art direction, composition, typography with exact text, movement, timing, transitions, audio, quality...
  • Engine: composition, live player, renderer Reference
    W throwing is deliberate: when the voice is re-recorded, a missing word fails loudly instead of silently mistiming the edit. Without word times (draft before the voice...
  • Formats and delivery Reference
    Caption pages that split on natural pauses fail once audio is cut or concatenated: the pauses vanish and one run put 188 words on a single page for about 2 seconds...
  • Build loop: golden scene, plan check, commits, acceptance criteria Reference
    Engine-agnostic method for building scenes 2 to N without style drift or regressions. Remotion specifics are in ~/.claude/skills/remotion-studio/references/phases.md.
  • Gotchas catalogue Reference
    Failure-derived checks. Each line: rule, why, and the evidence level. Read before the first draft; the reviewer and qa.md use the same list. External sources are...
  • Learnings log Reference
    Technique only: no client, product or app names. Newest at the bottom of each section. Append after every project.
  • Motion Reference
    Every animation answers one question: what does it communicate? Hierarchy, story, feedback or a state change. If you cannot say it in a sentence, cut it.
  • QA checklists Reference
    The loop that uses these checklists (stills, phone pages, strips, sync, scored review rounds, stop rule) is in [review.md](review.md); the final checks and report are in...
  • Using a visual reference Reference
    Never "make something like this". Analyse the reference as a motion designer, separate what you observe from what you interpret, then plan from its principles without...
  • Render, inspect, fix: the review loop Reference
    Do not treat a successful build or render as proof of quality. Judge the actual frames, and say so honestly when you could not.
  • 3D (three.js): rarely the right call Reference
    Sharp text in 3D perspective needs high-resolution rasterising (a layout-level zoom of the text plane); never use depth of field as the fix for soft text. Evidence...
  • Transitions: "X becomes Y", velocity handoff, hidden cuts Reference
    Complements the table in [motion.md](motion.md). Components: see studio/src/lib/transitions.tsx (Remotion); the HTML engine writes the recipe by hand. Numbers below come...
  • Vocabulary → recipes in this engine Reference
    The director's vocabulary (definitions and prompt terms) is in ~/.claude/skills/motion-director/references/vocabulary.md. This table turns each term into what you write...
  • Voice-over Reference
    Generate the hook and the proof lines with 3 or 4 voices (python tools/vo.py --casting h1,h2,r2 --voices af_heart,bm_george,am_michael) and let the user choose by ear...
  • Staged workflow Reference
    People getting impressive results use Claude as motion designer, creative director, animator and developer, with a workflow that lets them inspect and improve the actual...