HandDraw Skill
Create an editable animation project, validate the DSL, render it, and verify the MP4. Use the portable scripts/handdraw.mjs CLI from this skill root.
Workflow
- Convert the request into short scenes with one visual concept each.
- Create
project.jsonfrom the schema in references/dsl.md. Use seconds for all timing. - Use only local, path-oriented SVG assets. Put them in an
assets/folder next to the project. Do not use raster images or text-to-video models. - Keep each scene at eight objects or fewer. Give every visible object an explicit animation.
- Run
node scripts/check-environment.mjsonce on a new machine. Fix every missing dependency. - Run
node scripts/handdraw.mjs validate <project.json>and fix every error. - When narration is requested, add
audio.narrationclips as described in references/dsl.md. Use the free Edge TTS provider by default; it needs network access but no API key, account, or paid API. - Render with
node scripts/handdraw.mjs render <project.json> --output <video.mp4> --assets <assets-dir>. - Confirm the MP4 exists and contains both video and audio streams when narration was requested.
Animation choices
- Use
drawfor SVG line art. - Use
writefor text; it is a deterministic reveal, not true handwriting stroke order. - Use
move,rotate, andscalesparingly to direct attention. - Use
fadefor entrances and exits. - Prefer 3–8 second scenes; avoid simultaneous unrelated motion.
Constraints
- Do not edit renderer implementation just to accommodate an invalid DSL; correct the project first.
- Do not rely on external URLs for assets.
- Preserve the requested aspect ratio, duration, and language.
- If no duration is requested, target 30 seconds and state the assumption in the project title or handoff.