hand-drawn-canvas-animation

alesha-pro/tools · Agent Skill

Hand-drawn films in code: the agent draws in ink, pencil, riso or doodles on photos and renders an MP4 — no Blender or video models.

Jump to install ↓

Overview

Publisheralesha-proCommunity
Repositoryalesha-pro/tools ↗
Skill folderhand-drawn-canvas-animation
Stars616
Forks66
Bundled files57
LicenseMIT
Last updatedSeptember 25, 2026
LinksSkill source ↗ · Repository ↗

Mozgi check

What we found in the skill files. Details come with a subscription.

Security
elevated risk · 3 points need attention
Compatibility
needs extra software
Similar skills
58 similar skills found
Also with subscription

About this skill

Hand-drawn canvas animation teaches an AI agent (Claude Code, Codex and others) to make short hand-drawn films in code — JavaScript and Canvas 2D. The output is an HTML film player and a finished MP4 with sound. No Blender, WebGL or video models: every frame is drawn with strokes, like real animation.

Becoming — a 60-second example film: five drawing styles, sand animation and a pop-up book

What makes it different

Instead of a puppet built from blobs, the skill works like an animator: whole-pose drawings (keys and breakdowns), expressive pressure strokes, intentional holds and an exposure sheet. Motion reads as drawn by hand.

The main study: nine whole-body keys, assisted inbetweens and a replacement blink

Five looks

  • Ink — confident brush gestures, black masses and white gaps.
  • Riso — overprinted colours, halftone, slight misregistration.
  • Screen print — flat opaque shapes, stencil edges, wear.
  • Pencil — thin graphite, open contours, form hatching.
  • Doodles on photos — a cut-out photo on pastel paper with brush-pen drawings that draw themselves.
Doodles on open-access photos from The Met

Three extra techniques

  • Found motion — trace real movement from a video into strokes.
  • Sand animation — a backlit sand table, poured, wiped and blown in one take.
  • Paper in space — drawn sheets stand up in 3D as a pop-up book.
Found motion, sand and paper in space

How to use

Ask for a film with a subject, length and look, e.g.:

20 seconds, the life of a request inside a GPU server, riso look

Requirements

  • Node.js 22.12+, Chrome or Chromium and ffmpeg for rendering.
  • Python with numpy scipy scikit-image pillow for found motion.
  • rembg for clean photo cut-outs in the doodle look.
Night shift — a 31-second chase where light is a character

By alesha-pro, MIT license. Not for UI animation or slide decks.

Installation

A skill is a folder with a SKILL.md file. Pick your agent and run the commands in a terminal (macOS, Linux or Git Bash on Windows) from your project root.

Copy the prompt into Claude, Codex or another assistant: it will review the skill and install it for you.

Install the “hand-drawn-canvas-animation” skill from mozgi.io (https://mozgi.io/skills/hand-drawn-canvas-animation/) for me.

1. Download the archive: https://mozgi.io/skills/hand-drawn-canvas-animation/download
   If it fails, take the skill folder from the source: https://github.com/alesha-pro/tools/tree/main/skills/hand-drawn-canvas-animation
2. Read SKILL.md and the other files. Check the skill is safe: no hidden commands, no sending data elsewhere, no scripts doing something other than described. If anything looks suspicious, stop and tell me.
3. Put the “hand-drawn-canvas-animation” folder into your agent's skills folder: .claude/skills/ for Claude Code, .agents/skills/ for Codex, .cursor/skills/ for Cursor, .gemini/skills/ for Gemini CLI. Inside the project if we are in one, otherwise in the home folder (~/.claude/skills/ etc.).
4. Make sure <skills folder>/hand-drawn-canvas-animation/SKILL.md exists.
5. Briefly tell me what this skill does and offer to try it on my task.

If you cannot do a step yourself, tell me what to click or type.

Review the source files

57 files Download Zip

Read SKILL.md and any companion files before deciding whether to install. Click a file to preview it.

SKILL.md contents

Original author text · read-only

Hand-drawn canvas animation

Produce a film that feels drawn by hand in both its marks and its movement.

For character animation, default to whole-pose drawings, expressive strokes and

intentional exposure. Design the keys and breakdowns before any rig or texture.

A rig may guide construction and contacts; the final drawing must carry the pose.

Canvas 2D is the renderer; SVG path data may be used for authored shapes. No

Blender or video model is needed. WebGL is not a dependency. Deliver an HTML

film with its local modules and an offline MP4. Length and format follow the

brief; a short, finished action is the starting point for a longer film.

Choose the right references

  • Read style.md ↗ for the five looks and their quality gates.
  • For a film combining looks or techniques, read

mixed-media.md ↗. Plan why the material changes and

what carries through the transition before drawing separate style samples.

stroke-led character workflow, whole cels, assisted inbetweens and exposure sheets.

contact IK and materials for optional deformation and construction helpers.

found-motion.md ↗ for traced movement;

sand.md ↗ or paper3d.md ↗ for those media.

reference-films.md ↗ contain optional palettes,

scene devices and historical references. They are not mandatory film structures.

Workflow

1. Fill brief-template.md ↗. Infer routine choices;

ask only for missing decisions that materially affect the result. Specify the

intended material and acting reference separately. Pick a primary aspect ratio;

alternate formats need composition review, not just a different canvas size.

2. Create one project folder. Copy assets/core.js, assets/studio.js,

assets/cels.js, optional assets/materials.js, scripts/render.mjs and

scripts/package.json into it. For characters, study

examples/sketchbook-bird.html and build an original cast with whole drawings.

Its example imports use ../assets/; change these to local module paths in a

standalone project. assets/film-template.html is a legacy rig demonstration,

useful for runtime wiring, not the default visual model. Install the local

renderer dependencies with npm i --no-audit --no-fund; system Chrome and ffmpeg

are required. Keep reusable engine edits in the skill, not in film copies.

3. Establish the drawing: silhouette, proportions, expressions, necessary views,

line hierarchy, recognizable stroke gestures and a few material samples. Render at delivery size and at

240 px. A material cannot rescue an unclear pose. Use designed curves and

replacement drawings where simple primitives fail.

4. Plan the keys and breakdowns of the hardest action. Mark contacts, gaze,

anticipation, weight transfer and reaction. Use enough controls to express it;

there is no fixed part count or parameter limit. Build a finite exposure sheet

of whole drawings. Use geometric inbetweens only for corresponding forms;

redraw changed overlaps, head angles, compressed silhouettes and expressions.

Establish timing without decorative textures first. Do not add springs to rigid or motor-driven motion.

5. Finish one representative production shot before building the whole film.

Evaluate normal-speed playback, consecutive-frame strips and stills. Correct

anatomy, spacing, contacts and line stability before adding more scenes.

6. Build the remaining shots using a beat sheet: start, duration, what the viewer

notices, main action, camera and sound cue. Cuts, transitions, blueprint views,

montages, anchors and sign-offs are artistic choices. Give each action time to

read. When mixing materials, carry the character's action, position or a

physical object across the change. A palette swap alone does not establish

a new style; several impressive but disconnected shots do not establish a story.

7. Render and inspect. Start with --grid 24, then use --strip 48,12 around

a fast action or contact, and --only 48 for full-size detail. Run the full

renderer for the MP4 and generated score. A contact sheet alone cannot pass

motion QA. If playback is unavailable, explicitly report that limitation.

8. Deliver the source, dependencies/assets, MP4, contact sheet and the remaining

known limitations. Verify duration, dimensions, frame count and successful

decode. Never call a film studio-quality solely because its code or checklist

passed; assess the actual result against the chosen visual reference.

Production invariants

  • defineFilm defaults to 24 fps. A scene receives continuous tau; i

remains the legacy 12 Hz index for pulse, boil and older clips. Use exposure

tracks per action. Ones, twos, threes and held drawings are all valid.

  • Separate camera timing, drawing exposure and root motion. Check their combined

screen-space motion, especially in a tracking shot. Avoid quantizing twice.

  • Randomness is seeded. Make strokes once per drawing, with stable semantic ids.

A held drawing holds its marks too. Seed changes belong to a new drawing, not

every output frame. In a deformation workflow, use stable rest-space marks. Specify

whether a texture belongs to the paper, an object or the screen. A fixed seed

does not prevent swimming if sampling positions or topology change.

  • Each frame must reproduce after seeking in the same pinned runtime. Sand uses

fixed-step simulation and bounded checkpoints. Font and browser differences

can change pixels between machines; provide fonts or use path lettering when

reproducibility matters. Allow fonts and photos to load before export.

  • Preserve physical contacts until their planned release. IK clamps unreachable

targets; check the returned error and fix the pose rather than stretching bones.

  • Record sources/licences for external media. Use only assets permitted for the

intended delivery. Optional SVG is path geometry, not automatic rigging.

Quality gates

Drawing: clear silhouette; consistent proportions across views; controlled

outer/inner line weights; purposeful pressure, taper and gaps; no accidental

tangencies or broken joints. Avoid assembled oval limbs with a texture laid over

them. Clean curves and aligned fills remain valid for the selected medium, but

the default sketch should retain visible drawing gestures. Wobble,

misregistration and boil require a purpose.

Motion: whole poses that feel redrawn, meaningful keys, readable breakdowns, deliberate spacing, convincing

weight and planted contacts. Inspect overshoot, camera tracking, topology changes

and fast movement at normal speed and frame by frame. Use a designed smear when

needed; legacy smear() makes a ghost trail, not a new drawing.

Material: ink hatching follows form; graphite respects pressure and tone;

riso plates register coherently; screen ink may be solid; doodles interact with

the photo. Avoid excessive grain, changing raster phase and unintended shimmer.

For mixed-media work, inspect the transitions as actions, not only a style board.

If weather drives the scene, its force should affect both setting and character.

If paper unfolds, show a compact starting state, the hinges and an attached base.

Delivery: no page errors, accidental blank frames, clipped action, stale

frames or unfinished final lettering. If a closing card is requested, let it

finish and hold long enough to read. Check the encoded video, not only PNGs.

Working examples and commands

examples/becoming-phoenix/phoenix.html ↗

is a complete 60-second film with original music. It combines all five looks,

sand and paper projection through one story. Study inkScene for a moving

storm, ensurePrintedPage for an actual print becoming a page, and

unfoldPhoenix for staggered wing and tail opening. Its branding is specific

to the example. Use the techniques that serve the new brief, not its shot list.

examples/sketchbook-bird.html is the primary pencil/ink drawing study: nine

whole-body keys, assisted inbetweens, a replacement blink and an exposure sheet.

examples/weight-study.html is a secondary seven-second contact/weight study rendered in

five looks with --look ink|pencil|riso|screen|doodle. It demonstrates mechanisms,

not the aesthetic target for redrawn characters or proof of feature-film quality. examples/material-studies.html adds sand-displacement and page-curl close-ups. Earlier

examples remain useful for particular scene devices; see their references above.

node scripts/render.mjs examples/sketchbook-bird.html --look pencil --grid 18 --out /tmp/pencil-preview
node scripts/render.mjs examples/sketchbook-bird.html --strip 58,24 --out /tmp/motion-preview
node scripts/render.mjs examples/sketchbook-bird.html --width 1920 --out /tmp/drawn-film
node scripts/verify.mjs

The renderer honours the film's aspect ratio unless --ar is supplied. Each full

render stages its own frames, then replaces that film's outputs after successful

encoding. Old PNGs cannot extend a shorter revision. --grid, --strip and

--only are preview modes and do not replace the full MP4.

For Remotion integration use timebase conversion:

drawFrame(Math.min(__NDRAW - 1, Math.floor(frame * __fps / compositionFps))).

With film and composition both at 24 fps this is simply drawFrame(frame).

Frequently asked questions

What does the hand-drawn-canvas-animation skill do?

Hand-drawn films in code: the agent draws in ink, pencil, riso or doodles on photos and renders an MP4 — no Blender or video models.

How do I install hand-drawn-canvas-animation?

Open the “Installation” block on this page and pick your agent — Claude Code, Codex, Cursor or Gemini CLI — for ready-made commands that copy the skill folder to the right place. Or copy the prompt from the “Via assistant” tab and let the assistant review and install the skill.

Which AI models work with hand-drawn-canvas-animation?

Skills are plain Markdown instructions (the Agent Skills format), so hand-drawn-canvas-animation works with any agent that reads SKILL.md: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and more. The model loads the instructions only when a task matches the skill's description.

Is hand-drawn-canvas-animation free?

The skill is published openly by alesha-pro under the MIT license. The skill itself costs nothing — you only pay your AI provider for the tokens you use.

Is it safe to install skills?

A skill is a set of instructions your agent will follow, so read SKILL.md and its companion files before installing. Scripts in the skill folder only run if your agent runs them — keep an eye on what it does and do not grant unnecessary permissions.

How is a skill different from an MCP server or a plugin?

An MCP server or plugin gives the model new tools — code that runs and returns a result. A skill gives it knowledge and process: how to approach a task, which steps to follow and what good output looks like. It needs no server or API key.

Related skills

All skills →
review-animations Review animation quality, timing, and motion consistency with a production-critical eye. emilkowalski49.9k improve-animations Survey a codebase's animation and motion code as a senior motion advisor, then produce prioritized audit and self-contained implementation plans. Read-only on source code - it plans improvements, it does not apply them. Use when the user asks to improve animations, audit motion, make an app feel better, or wants a roadmap of animation fixes rather than a review of a single diff. emilkowalski49.9k find-animation-opportunities Find high-conviction opportunities for useful interface motion while rejecting animation that adds noise or slows users down. emilkowalski49.9k animate Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations. emilkowalski49.9k animation-vocabulary Sharpen motion language so animation choices feel deliberate and consistent. emilkowalski49.9k apple-design Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces. emilkowalski49.9k