← Claude Code video skills

iart-ai/motion-skills: test run, 2026-10-11

The same brief for every skill: a 15-second promo for a made-up app, five fixed lines of on-screen copy, 1920 x 1080 at 30 frames per second. Claude Code (Claude Opus 5.5) made it with the skill in a throwaway sandbox with no API keys for video, image or voice models. 6.5 minutes; sound: yes. All results · The brief · How it is checked

A drawn beach scene whose weather changes with the copy; music made in code.

The four checks

Renders to a playable filepassH.264
Length, size and frame rate as askedpass15.0 s, 1920x1080, 30.0 fps
All five lines readablepass5 of 5
The picture movespass10% of sampled frame pairs held still

Frames sampled twice a second

iart-ai/motion-skills: frames sampled at two per second

How it was made (the session's closing message)

I made the Tidepool promo with the installed `javascript-animation` skill, plus its `soundtrack` skill for the music. Every frame is drawn in code on a canvas in one HTML page, and the music is generated in code too. No paid models or API keys were needed.

**The file:** H.264, 1920×1080, 30 fps, exactly 15.00 s, with a stereo AAC soundtrack. The repo's probe script reports "spec OK".

**What's on screen:** five 3-second shots, one line of copy each, in the brief's order and wording, with no other text:
1. **"Know before you swim."** A beach at dawn: the sun rises and a teal flag flies.
2. **"Water quality at 2,400 beaches, checked every morning."** A coastline seen from above. A band of morning light sweeps down it and the beach dots switch on. The camera then pushes into one dot.
3. **"Good. Fair. Stay out."** A phone shows three rows that land one at a time, in teal, amber and coral.
4. **"Rain warnings tell you how long to wait."** The same beach in rain, with murky water and a red flag. A ring fills up, the rain stops, the water clears and the flag turns teal again.
5. **"Tidepool. Check my beach."** The name, then a button.

The music is a calm piece at 80 BPM: plucked notes over a soft pad, with a shaker and a light kick, and rain sounds in shot 4.

**Checks I ran:**
- The skill's asset check passes: the page loads and embeds nothing.
- Its text-overlap check passes.
- The audio check passes: every cut lands on a beat with no sudden jump in volume. The first render failed this at the 9 s cut, so I added a soft note on that beat.
- I looked at a contact sheet of frames at 2 per second. That led to two fixes: the teal flag was invisible against the sea, and the map line didn't fade before the push-in.

**Readability:** the map line in shot 2 is the shortest read. It's fully visible for about 1.2 s and on screen for about 2 s in total.

**Workaround:** Playwright, which the skill's scripts use to run the browser, looked for its own Chromium download. Instead of downloading one, I linked its expected path under `~/.cache/ms-playwright/` to the system Chromium.

**Project:** `~/work/project/tidepool.html` is the page; opening it in a browser plays the piece, and clicking starts the sound. The folder also has the render scripts' outputs: `tidepool.mp4`, the soundtrack `tidepool.wav`, the cut times in `tidepool.cues.json`, and the contact sheet `sheet.jpg`.

DELIVERABLE: ~/work/output/video.mp4