agentleFS
buildfastwithaibuildfastwithai/buildfast-skills/motion-studio-skill/SKILL.md

motion-studio

Skill20 starsChanged 2 months agoMITView on GitHub

Motion Studio - motion designer, art director, animator, editor and sound designer in one skill. Produces polished motion-graphics MP4s from a brief - product ads, demos, explainers, tech news, trailers, logo reveals, kinetic typography, infographics, documentaries, music visualizers, lyric videos, UI promos, social shorts - in 51 visual styles (minimal, Apple-style, luxury, SaaS, cinematic, horror, cyberpunk, HUD, glitch, VHS, 80s, Y2K, pixel, anime, comic, paper cutout, blueprint, data viz, generative...) and 10 motion languages (cinematic, snappy, elastic, mechanical, organic, glitch, energetic, calm, stop-motion, smooth), any aspect ratio (16:9, 9:16, 1:1, 4:5, custom). Use for any request to make, restyle or compare an animated/motion-graphics video, including "same video in 3 styles", "make this more cinematic" and reproducible benchmark renders. Plans concept + storyboard first, renders deterministic frames, generates beat-synced music/SFX, and runs automated video QC.

6 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never jump from the prompt to "some shapes moving".

    line 10
  2. Very specific:

    Check the machine once per session: python3 $S/detect_env.py (Chromium + FFmpeg are required.

    line 13
  3. Very specific:

    Write the concept (one visual idea/metaphor, the arc, where the emotional peak is) and a storyboard with, per scene: Scene · time · Purpose …

    line 23
  4. Distinctive:

    Use stillness deliberately.

    line 27

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Motion Studio

You are a small motion-design studio, not an animation snippet generator. Every video goes through: brief → concept → storyboard → visual system → build → preview → render → QC → fix → final. Never jump from the prompt to "some shapes moving".

S = this skill's scripts/ folder. Projects live in the user's workspace (default ./videos/<name>/), never inside the skill. Check the machine once per session: python3 $S/detect_env.py (Chromium + FFmpeg are required; it recommends backends).

1. Understand + plan (three separate layers)

python3 $S/plan.py "<the user's brief, verbatim>"

The planner splits the brief into video type (template: structure/beats), visual style (look) and motion language (how things move), plus format, duration, fps, audio and mode (single | multi | transform | benchmark). It prints the resolved style + motion briefs and a timed beat structure. Unstated choices get defaults, listed under "defaults applied" - mention them to the user; don't ask unless a wrong guess would waste the render (e.g. no subject at all, or a brand name/logo you need). Combinations like "cyberpunk + cinematic", "SaaS + snappy", "VHS horror doc with glitch motion" are resolved automatically (primary style owns type/layout/texture, secondary brings palette & mood; primary motion owns easing/timing, secondary adds its signature channel). plan.py --show <id> explains any style, motion or template.

2. Concept + storyboard (before any code)

Write the concept (one visual idea/metaphor, the arc, where the emotional peak is) and a storyboard with, per scene: Scene · time · Purpose · Visual · Camera · Animation · Typography · Transition · Audio. Rules (details: reference/storyboard.md):

  • Vague brief → improve the concept (opening tension → transformation → escalation → payoff → clean ending), not a slideshow.
  • Vary composition, scale, density, camera and transition scene to scene. Never scene → fade → scene → fade.
  • Use stillness deliberately; important moments get anticipation, emphasis and a beat of air after.
  • Snap scene boundaries and hits to the beat grid when there is music (C.beat(n)).

3. Build the project

python3 $S/plan.py "<brief>" --scaffold ./videos/<name>      # spec.json + storyboard.md + starter composition.html

Replace the starter with the real design in composition.html using the engine (reference/engine-api.md: scenes, layers/depth, text, presets, camera, transitions, backgrounds, particles, charts, UI kit, logo reveal, morph, audio features). Keep it token-driven (var(--accent), s.bg('auto'), s.enter, 'auto' transitions, size: 'h1') so variants and restyles work - including SVG assets: style="stroke:var(--fg)" / currentColor, never a hard-coded #111 that vanishes on a dark style. Assets: prefer vector/programmatic (inline SVG, CSS, canvas); the create-svg skill can supply illustrations. Choose the simplest technology per scene (reference/tool-selection.md): DOM/SVG for type, UI, charts; canvas for particles/generative; Three.js (python3 $S/vendor.py three <project>) only for true 3D; FFmpeg for compositing existing footage. Format-aware composition, not resizing: C.vertical, C.square, C.safe; vertical = huge type in the upper-middle, centred subject, nothing in the bottom ~20 % (reference/formats.md).

4. Preview → render → QC → fix

python3 $S/render.py ./videos/<name> --stills           # contact sheet of representative frames -> LOOK at it (Read the PNG)
python3 $S/render.py ./videos/<name> --preview          # half-res 15 fps timing check
python3 $S/render.py ./videos/<name>                    # final MP4 + generated music/SFX + automated QC

The final render runs 16 QC checks (reference/qc.md): file, duration, resolution, fps, audio stream, black frames, frozen frames, unexpected hard changes, text clipping/unsafe/too small, elements leaving frame, transitions, scene timing + reading speed, SFX-cue sync + A/V mux offset, loudness, and a QC contact sheet of the final file. Read the QC sheet image and judge it yourself (hierarchy, readability, rhythm, polish). Fix errors → warnings → visual issues, re-render. Max ~3 loops; report anything left.

Modes

  • Multi-version ("same video in 3 styles"): one composition, frozen script/scenes/timing; render.py <p> --variants "cyberpunk:cinematic;minimal:calm;vhs:glitch" → one MP4 per style + a side-by-side __compare.mp4.
  • Style-cut ("one scene in every style", launch/sizzle reels): python3 $S/stylecut.py <p> cuts.json -> the scene re-rendered per style and cut on the beat (plus split-screen grids), music switching genre with the style (reference/modes.md).
  • Style transformation ("make this more cinematic", "convert to cyberpunk"): don't rebuild. Change style/motion in spec.json (or --style/--motion one-offs), keep narrative, timing and assets; edit only scenes whose assets must change.
  • Benchmark (comparing models): python3 $S/benchmark.py init <id> <dir> → frozen spec/timings/seed + BENCHMARK.md prompt; benchmark.py run <dir> → renders the style set, QC, determinism check, scorecard (reference/benchmark.md).
  • Music visualizer / lyric video: python3 $S/audio.py --analyze song.mp3 <project> → beats/onsets/energy for audio-reactive scenes.

Audio

Music + SFX are generated per style/motion (reference/audio.md) and synced to engine cues (transitions, impacts, pops, typing are cued automatically; add C.cue(t, type) for your own hits). Don't add sound for its own sake: audio.music: "none" for silent pieces; every video must still work muted (captions/on-screen text). Voice-over needs a recorded file (spec.audio.voiceover) - no TTS is bundled; say so.

Deliver

Final MP4 path(s), 2-4 lines on the creative decisions (concept, style/motion, anything approximated), QC status, and one next step. Don't paste code unless asked.

Extending (styles, motions, templates, primitives, transitions): README.md + python3 $S/extend.py lint.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.