Individual skill
animate
Make a short procedural animation in any style — an explainer, a history, a little story — as a single-file canvas video with a synthesized score, rendered to MP4. Ships with styles (cut paper, crosshatch ink, riso print, sketchbook, manim-style math, pixel art, isometric line art) and makes new ones from the user's references. Walks the user through intake, then three check-ins (story, look, storyboard) before animating, and proves the result with measured review checks. Use when the user asks for an animated video, short, explainer or reel made in code, or wants a look matched from references.
plugins/animate/skills/animate/SKILL.md
Source commit 7e5eb56feb2dd573f890e1b7b34748af43d58263
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 3, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,661
- Repository last updated
- Oct 5, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- animation Repository topic
- canvas Repository topic
- claude-code Repository topic
- claude-code-plugin Repository topic
- claude-code-skill Repository topic
- explainer-video Repository topic
- generative-art Repository topic
- motion-graphics Repository topic
- procedural-animation Repository topic
- storyboard Repository topic
- research Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 18,231 bytesSKILL.mdcore · 18,231 bytescraft.mddoc · 10,160 bytesexamples/history-of-ai/brief.mddoc · 4,829 bytesexamples/history-of-ai/piece.jsonasset · 580 bytesexamples/history-of-ai/src/bridges.jsruns · 3,475 bytesexamples/history-of-ai/src/head.htmlasset · 6,774 bytesexamples/history-of-ai/src/scenes.jsruns · 47,827 bytesexamples/history-of-ai/src/score.jsruns · 9,211 bytesgrammar/FORMATS.mddoc · 10,912 bytesgrammar/FRAME.mddoc · 3,006 bytesgrammar/STORY.mddoc · 6,084 bytesintake.mddoc · 4,898 byteskit/board.jsruns · 2,583 byteskit/core.jsruns · 28,964 byteskit/morph.jsruns · 9,520 byteskit/score-head.jsruns · 11,474 byteskit/score-tail.jsruns · 2,366 bytesnew-style.mddoc · 7,464 bytesstyles/README.mddoc · 7,171 bytesstyles/crosshatch/STYLE.mddoc · 3,238 bytesstyles/crosshatch/demo/piece.jsonasset · 326 bytesstyles/crosshatch/demo/src/bridges.jsruns · 590 bytesstyles/crosshatch/demo/src/head.htmlasset · 2,385 bytesstyles/crosshatch/demo/src/scenes.jsruns · 3,049 bytesstyles/crosshatch/demo/src/score.jsruns · 721 bytesstyles/crosshatch/kit.jsruns · 10,924 bytesstyles/crosshatch/sample.pngasset · 525,760 bytesstyles/cut-paper/STYLE.mddoc · 3,203 bytesstyles/cut-paper/demo/piece.jsonasset · 302 bytesstyles/cut-paper/demo/src/bridges.jsruns · 919 bytesstyles/cut-paper/demo/src/head.htmlasset · 2,999 bytesstyles/cut-paper/demo/src/scenes.jsruns · 3,189 bytesstyles/cut-paper/demo/src/score.jsruns · 1,328 bytesstyles/cut-paper/kit.jsruns · 17,537 bytesstyles/cut-paper/sample.pngasset · 468,306 bytesstyles/isometric/STYLE.mddoc · 9,612 bytesstyles/isometric/demo-dark/dark.jsruns · 75 bytesstyles/isometric/demo-dark/piece.jsonasset · 564 bytesstyles/isometric/demo/piece.jsonasset · 323 bytesstyles/isometric/demo/src/bridges.jsruns · 760 bytesstyles/isometric/demo/src/head.htmlasset · 2,367 bytesstyles/isometric/demo/src/scenes.jsruns · 7,086 bytesstyles/isometric/demo/src/score.jsruns · 1,106 bytesstyles/isometric/kit.jsruns · 21,868 bytesstyles/isometric/sample.pngasset · 84,284 bytesstyles/math/STYLE.mddoc · 10,411 bytesstyles/math/demo/piece.jsonasset · 308 bytesstyles/math/demo/src/bridges.jsruns · 472 bytesstyles/math/demo/src/head.htmlasset · 2,843 bytesstyles/math/demo/src/scenes.jsruns · 7,282 bytesstyles/math/demo/src/score.jsruns · 1,146 bytesstyles/math/kit.jsruns · 27,911 bytesstyles/math/sample.pngasset · 73,966 bytesstyles/pixel/STYLE.mddoc · 10,496 bytesstyles/pixel/demo/piece.jsonasset · 311 bytesstyles/pixel/demo/src/bridges.jsruns · 930 bytesstyles/pixel/demo/src/head.htmlasset · 2,502 bytesstyles/pixel/demo/src/scenes.jsruns · 10,124 bytesstyles/pixel/demo/src/score.jsruns · 2,533 bytesstyles/pixel/kit.jsruns · 34,502 bytesstyles/pixel/sample.pngasset · 79,439 bytesstyles/riso/STYLE.mddoc · 9,233 bytesstyles/riso/demo/piece.jsonasset · 308 bytesstyles/riso/demo/src/bridges.jsruns · 961 bytesstyles/riso/demo/src/head.htmlasset · 2,600 bytesstyles/riso/demo/src/scenes.jsruns · 13,012 bytesstyles/riso/demo/src/score.jsruns · 1,232 bytesstyles/riso/kit.jsruns · 29,326 bytesstyles/riso/sample.pngasset · 1,321,993 bytesstyles/sketchbook/STYLE.mddoc · 8,740 bytesstyles/sketchbook/demo/piece.jsonasset · 326 bytesstyles/sketchbook/demo/src/bridges.jsruns · 760 bytesstyles/sketchbook/demo/src/head.htmlasset · 2,529 bytesstyles/sketchbook/demo/src/scenes.jsruns · 10,190 bytesstyles/sketchbook/demo/src/score.jsruns · 1,408 bytesstyles/sketchbook/kit.jsruns · 32,195 bytesstyles/sketchbook/sample.pngasset · 594,478 bytestemplates/beat-cut/piece.jsonasset · 347 bytestemplates/beat-cut/src/bridges.jsruns · 837 bytestemplates/beat-cut/src/head.htmlasset · 3,658 bytestemplates/beat-cut/src/scenes.jsruns · 3,474 bytestemplates/beat-cut/src/score.jsruns · 865 bytestemplates/piece/LOG.mddoc · 251 bytestemplates/piece/brief.mddoc · 648 bytestemplates/piece/piece.jsonasset · 294 bytestemplates/piece/src/bridges.jsruns · 1,021 bytestemplates/piece/src/head.htmlasset · 4,447 bytestemplates/piece/src/scenes.jsruns · 4,132 bytestemplates/piece/src/score.jsruns · 1,328 bytestemplates/style/kit.jsruns · 3,930 bytestools/beats.mjsruns · 9,220 bytestools/build.mjsruns · 7,751 bytestools/capture.mjsruns · 2,770 bytestools/compare.mjsruns · 6,037 bytestools/export.mjsruns · 15,576 bytestools/framehash.mjsruns · 2,226 bytestools/gallery.mjsruns · 4,375 bytestools/gpu.mjsruns · 1,531 bytestools/measure/refs.mjsruns · 7,267 bytestools/measure/shotlog.pyruns · 4,845 bytestools/review.mjsruns · 31,352 bytestools/still.mjsruns · 2,592 bytestools/storyboard.mjsruns · 2,191 bytestools/textcheck.mjsruns · 8,698 bytestools/tile.mjsruns · 3,503 bytestools/voice.mjsruns · 7,907 bytestools/voice_words.pyruns · 1,006 bytes
Read excerpt
# Animate
You make short animated videos in code: one `<canvas>`, drawn and scored procedurally, deterministic frame by frame, rendered with a headless browser and ffmpeg. The story follows a grammar studied from strong short-form animation; the look is a **style** — a plug-in kit chosen from [styles/](styles/README.md) or made from the user's references with [new-style.md](new-style.md).
**Requirements:** Node 18+, Playwright with Chromium (`npm i -g playwright && npx playwright install chromium`), ffmpeg on PATH. Check them first; if one is missing, tell the user the install command and stop. For a voice-over, Python with `faster-whisper` (`pip install faster-whisper`) times every word; without it the word times are estimated.
All paths below are relative to this skill's base directory. Pieces live in the user's project at `pieces/<name>/` (create `pieces/` if needed); styles the user makes live in `<project>/styles/<name>/`.
## Non-negotiables
1. **No animating before the storyboard is approved.** The check-ins exist because a wrong story or look costs a full build.
2. **Look at references before drawing anything** — the user's, or the style's `sample.png` and demo. Then check every key frame against [grammar/FRAME.md](grammar/FRAME.md) and the style's own checklist in its `STYLE.md`.
3. **Every factual claim on screen is checked with a web search** and listed with its source in the brief. Never claim "first" without a source.
4. **Single file, all code:** one `index.html`; everything is drawn and synthesized in code — no image/audio/video files, no `data:` URIs, no URLs, no web fonts in the code. `tools/build.mjs` enforces it. Two opt-in exceptions, both the user's own: **assets** (screenshots and logos in `<piece>/assets/`, embedded by the build) and **a music track** (joined at export). See Assets and Music below.