Agent skill

Paper Cut-out Animation

by edenfunf in edenfunf/reelmimic

Builds paper cut-out, stop-motion style MP4 videos in code, with jointed paper puppets, torn or scissor-cut edges and soft shadows, rendered frame by frame in headless Chrome.

MITAuto-check passedMedia & Creative

Install Paper Cut-out Animation

skills CLI
$ npx skills add edenfunf/reelmimic --skill paper-cutout -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install edenfunf/reelmimic paper-cutout --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/edenfunf/reelmimic.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/paper-cutout .claude/skills/paper-cutout && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
paper-cutout
GitHub stars
1.9k
Token cost
~1.5k tokens
SKILL.md length
521 words
Files
17 (incl. scripts)
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Builds paper cut-out, stop-motion style MP4 videos in code, with jointed paper puppets, torn or scissor-cut edges and soft shadows, rendered frame by frame in headless Chrome.

  • Works in 5 steps: Scaffold — bash… → Storyboard with reads (what the viewer… → Build one IIFE file per shot in… → …
  • A brief or reference video calls for a paper craft or stop-motion look
  • SKILL.md covers Workflow, API in one screen (all angles…, Rules that matter most and Engine gotchas
  • Runs JavaScript and Shell scripts from its folder; calls node and bash

What it does

The skill is an engine for stop-motion paper videos. Every frame is a pure function of time, drawn with Canvas 2D in headless Chrome and encoded by ffmpeg, with puppets moving in 12 fps steps and materials such as construction paper, cardstock, kraft, felt and tissue given a photographed, warm-lamp finish. A scaffold script, `scripts/new_project.sh`, copies a template with `render.mjs`, a shared runtime in `src/kit.js`, the paper look in `src/cutout.js`, the puppets in `src/cast.js` and a demo scene.

The workflow is to scaffold, read `GUIDE.md`, storyboard the shots by what the viewer must understand, build one scene file per shot, review contact sheets and strips with `render.mjs`, then render frames and encode the video, optionally with audio. The rules say to draw everything through the paper helpers, to show depth with shadow rather than faked 3D, and to start shots on multiples of 1/12 second. It is used when a reference video or brief calls for a paper craft look.

When your agent uses it

  • A brief or reference video calls for a paper craft or stop-motion look
  • Making a kids' storybook collage animation
  • Building an animated scene with jointed paper puppets

Example prompts

  • “Make a short paper cut-out animation of a fox crossing a hill, in a stop-motion style.”
  • “Scaffold a paper-cutout project and show me the demo contact sheet.”
  • “Render the storybook intro in the paper craft look with a soft lamp-lit finish.”

Requirements

  • Node.js and headless Chrome to render the frames
  • ffmpeg to encode the MP4

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Scaffold — bash .claude/skills/paper-cutout/scripts/new_project.sh (add --keep-demo to keep
  2. Storyboard with reads (what the viewer must understand, when) — the same discipline as painted-animation's
  3. Build one IIFE file per shot in src/scenes/, each ending with shots([[t0, fn]]); add its to
  4. Look — node render.mjs --sheet=... --cols=4 --w=480 --out=out/check/a.jpg, --strip=a:b for motion,
  5. Render — node render.mjs --frames --workers=4 && node render.mjs --encode --out=out/video.mp4 [--audio=...].

What it can do on your machine

Read from SKILL.md and the folder at commit eac7fc7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript and Shell, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Paper Cut-out Animation loads about 1.5k tokens when it runs. Until then it costs about 154 tokens; SKILL.md has 521 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~154
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from edenfunf/reelmimic at commit eac7fc7, republished under its MIT licence (© edenfunf). 521 words, ~1,515 tokens.

Download SKILL.mdSave it as .claude/skills/paper-cutout/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.
name
paper-cutout
description
Make paper cut-out / stop-motion style animated videos (MP4) with code — handmade construction paper, cardstock, kraft, felt and tissue pieces with scissor-cut or torn edges and soft drop shadows, photographed on a table under a warm lamp; jointed paper puppets with brass split-pin joints, moving in 12 fps steps. Canvas 2D rendered frame by frame in headless Chrome, encoded with ffmpeg. Use when a reference video or brief calls for paper craft, cut-paper, papercraft, stop-motion paper, kids' storybook collage, 剪紙 / 紙片 / 紙偶 / 定格動畫 looks, or when the video-clone router picks the paper-cutout style.

Paper cut-out (stop-motion paper) engine

Every frame is a pure function of time t. studio.html loads src/kit.js (shared ReelMimic runtime: timeline, motion helpers, camera, render hooks), src/cutout.js (this look: materials, cut/torn pieces, shadows, set dressing, props, transitions, captions, the photographed finish), src/cast.js (the puppets) and one scene file per shot. render.mjs drives headless Chrome for contact sheets, strips, crops and the final frames.

Workflow

  1. Scaffold — bash .claude/skills/paper-cutout/scripts/new_project.sh <project-dir> (add --keep-demo to keep the example). Then read GUIDE.md (in this skill folder) in full, and look at docs/demo-sheet.jpg, docs/expressions.jpg (13 expressions × both puppets) and docs/poses.jpg.
  2. Storyboard with reads (what the viewer must understand, when) — the same discipline as painted-animation's ANIMATION_GUIDE.md (timing, one read at a time, anticipation → action → follow-through, transitions at every seam).
  3. Build one IIFE file per shot in src/scenes/, each ending with shots([[t0, fn]]); add its <script> to studio.html after cast.js. Set duration in src/config.js. Start shots on multiples of 1/12 s.
  4. Look — node render.mjs --sheet=... --cols=4 --w=480 --out=out/check/a.jpg, --strip=a:b for motion, --crop=x,y,w,h / --crop-at= for faces and hands. Open every image with Read. Fix, re-render.
  5. Render — node render.mjs --frames --workers=4 && node render.mjs --encode --out=out/video.mp4 [--audio=...].

API in one screen (all angles in DEGREES, sizes in px, time via sm(lt))

js
paperCam(lt, [[0,[cx,cy,zoom]], [2,[cx,cy,zoom]]], { stepped })   // camBegin with a (smooth | stepped) move
backdrop(PC.sky, { to })            layer(.5, () => ...)            // screen-fixed sheet; parallax depth plane
hills(x,y,w,h,col,{seed,torn})  grass(x,y,w,h,col,seed)  tree(x,y,s,{fruit,sway}) → {fruit:[[x,y]..]}  bush  flower
cloud(x,y,w,{hang:'string'|'stick'})  sun(x,y,r)  house(x,y,s)  bunting(x0,y0,x1,y1,n,cols)  stripes  confetti(lt,x,y,{t0})
piece(SH.xxx(...), { x,y,rot,sx,sy, col, mat, depth, torn, seed, alpha, jit })   // ONE cut-out; the base of everything
SH.ellipse/circle/rect/round/poly/smooth/capsule/blob/cloud/leaf/heart/star/drop/tri/band/zig/hills ; clipHalf ; xform
mat: 'paper' | 'card' | 'kraft' | 'felt' | 'tissue' | 'corr' | 'wood'       brad(x,y,r)  thread(pts)  popUp(k,x,y,fn)
PROPS.apple|balloon|flower|star|gift|letter(x, y, ang, s)
// transitions — call AFTER camEnd(), in the INCOMING shot, k = 0→1 on stepped time:
trBook(t,k)  trTear(t,k)  trFlip(t,k)  trSlide(t,k,{dir})  sheetIn(k)  sheetOut(k)
captionTrack([[t0, t1, '文字', { style: 'label' | 'letters', y, size }]])

// puppets (cast.js) — (x, y) = ground point, u = size unit
pom(x, y, u, opts)  lulu(x, y, u, opts)  → joints { hand:[L,R], elbow, shoulder, foot, head, top, mouth }
opts: face, view:'front'|'3q', flip, look, blink, armL/armR:[shoulder,elbow], footL/footR:[dx,dy], sq, dy, lean, tilt,
      holdL/holdR:'apple'|{prop,s,dy}|fn, jit, dry (measure only)
moods(lt, [[0,'sad'],[2,'surprised']])  walkCycle(lt,{stride,rate}) + walkSpeed()  jumpPose(lt,t0,t1,h)  emote(kind,x,y,s,age)
EXPR: neutral happy laugh sad cry angry surprised scared love sleepy wink determined shy

Rules that matter most

  1. Everything is paper. Draw only through piece() / the helpers (never raw fillRect/arc in scenes). Pick a material per object; torn edges for landscapes and labels, scissor edges for characters and props.
  2. Depth = shadow. Background layers depth .3–.8, set pieces ~1, puppets 1–1.3, things floating/held up 1.5–3. Parallax with layer(k). Never fake 3D.
  3. Stop-motion timing. Drive every puppet/prop pose with sm(lt) (12 steps/s). Puppets jitter a hair per step by themselves; set pieces stay glued (jit: 0). Camera moves may be smooth (motion control) or stepped.
  4. Replacement faces. Change expressions with moods() (blink hides the swap), not by flipping face per frame.
  5. Transitions from the kit of four (book fold, torn reveal, flip card, sheet slide) at every seam; the previous shot must NOT draw its own out-transition when the next shot uses one of them (they re-render it live).
  6. Legible at phone size: puppets big (pom u ≥ 55, lulu u ≥ 36 in a medium shot), captions ≥ 70 px.
  7. Captions only via captionTrack (overlay, CJK font "Chiron GoRound TC" → "Zen Maru Gothic" → "Noto Sans TC").
Show full SKILL.md (131 more words)Show less

Engine gotchas

  • Pure function of t: no Math.random(), no state between frames. Use hash/rnd/sway(key).
  • piece() caches the cut outline by shape key + seed. Give each distinct piece its own seed, or two identical shapes get identical wobble (fine for confetti, odd for a pair of trees).
  • The cut outline depends on the shape's size, so an animated size re-cuts every frame (edges shimmer). Scale with sx/sy or the camera instead of animating the shape's dimensions.
  • prevFrame() renders the previous shot at the CURRENT time (it keeps moving under a transition) and swaps G; scenes must use G, not a captured context.
  • Props held by a flipped puppet are un-mirrored automatically (text/asymmetric props stay readable).
  • Speed: ~5–30 ms draw per frame, ~130 ms/frame effective with 4 workers incl. JPEG encode at 1920×1080.

© edenfunf, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 16 other files (scripts) in .claude/skills/paper-cutout of edenfunf/reelmimic.

  • SKILL.md
  • GUIDE.md
  • docs/demo-sheet.jpg
  • docs/expressions.jpg
  • docs/poses.jpg
  • scripts/new_project.sh
  • template/.gitignore
  • template/LICENSE-render.mjs.txt
  • template/package-lock.json
  • template/package.json
  • template/render.mjs
  • template/src/cast.js
  • template/src/config.js
  • template/src/cutout.js
  • template/src/kit.js
  • template/src/scenes/demo.js
  • … and 1 more

Open the folder on GitHubat commit eac7fc7

Compare with similar skills

Paper Cut-out Animation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Paper Cut-out Animation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Paper Cut-out Animation this skilledenfunf/reelmimic1.9k—~1.5kAutomated safety check: PassMIT
HyperFrames Video Entry Pointheygen-com/hyperframes60k3 repos~5.2kAutomated safety check: PassApache-2.0
Cut Silencesnateherkai/hyperframes-student-kit1.3k—~1.2kAutomated safety check: PassCustom licence
p5 Paint Animationheygen-com/hyperframes-community-skills187—~1.8kAutomated safety check: PassApache-2.0
DoctorKumarSashank/motiscope122—~736Automated safety check: NotesMIT
Cut Mistakesnateherkai/hyperframes-student-kit1.3k—~1.1kAutomated safety check: PassCustom licence

Similar skills

  • HyperFrames Video Entry Point

    heygen-com/hyperframes

    Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.

    60k GitHub starsUsed in 3 repos~5.2k tokens
    Media & CreativeAuto-check passed
  • Cut Silences

    nateherkai/hyperframes-student-kit

    Agent 1 of the video editing pipeline. An agent skill from nateherkai/hyperframes-student-kit.

    1.3k GitHub stars~1.2k tokensUpdated 11 days ago
    Media & CreativeAuto-check passed
  • p5 Paint Animation

    heygen-com/hyperframes-community-skills

    Turns a text prompt, photo or short video into hand-made looking p5.js animation: self-writing handwriting, brushstroke repaints and living paintings rendered offline.

    187 GitHub stars~1.8k tokensUpdated 11 days ago
    Media & CreativeAuto-check passed
  • Doctor

    KumarSashank/motiscope

    Check and configure motiscope — verify ffmpeg/ffprobe are installed and scaffold the API-key config used for optional (stubbed) asset generation.

    122 GitHub stars~736 tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • Cut Mistakes

    nateherkai/hyperframes-student-kit

    Agent 2 of the video editing pipeline. An agent skill from nateherkai/hyperframes-student-kit.

    1.3k GitHub stars~1.1k tokensUpdated 11 days ago
    Media & CreativeAuto-check passed
  • Color Grading

    notivn/AIEV

    Color grading video in the AI Edit Video system - delog/tonemap HDR-HLG-log footage, apply the color preset the user approved in the UI, and the visual verification workflow.

    127 GitHub stars~932 tokensUpdated today
    Media & CreativeAuto-check passed

More from edenfunf/reelmimic

All 9 skills in this repo
  • Media Use

    edenfunf/reelmimic

    Agent Media OS, the single skill for every media need in a HyperFrames project.

    1.9k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Takes a reference video and a short brief, analyzes its cutting and visual style, then plans and builds a new MP4 in a matching style.

    1.9k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Anime Cel Video Maker

    edenfunf/reelmimic

    Builds Japanese TV-anime style MP4 videos in code, with cel-shaded characters, painted backgrounds and staging effects, rendered in headless Chrome and encoded with ffmpeg.

    1.9k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Blender Product Film

    edenfunf/reelmimic

    Renders premium 3D product films in headless Blender from JSON shot specs, building the product from a photo or procedurally, then finishing titles, music and cuts.

    1.9k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Crayon Storybook Animation

    edenfunf/reelmimic

    Builds children's picture-book MP4 animations drawn in crayon, colored pencil and pastel, rendered frame by frame with p5.js and encoded with ffmpeg.

    1.9k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Pixel Art Video Engine

    edenfunf/reelmimic

    Makes animated pixel-art videos in an indie-game style: a 480×270 canvas upscaled four times, limited palettes with dithering, procedural characters and dialogue captions, encoded as MP4.

    1.9k GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Works with

Questions about Paper Cut-out Animation

What does Paper Cut-out Animation do?

Builds paper cut-out, stop-motion style MP4 videos in code, with jointed paper puppets, torn or scissor-cut edges and soft shadows, rendered frame by frame in headless Chrome. The skill is an engine for stop-motion paper videos. Every frame is a pure function of time, drawn with Canvas 2D in headless Chrome and encoded by ffmpeg, with puppets moving in 12 fps steps and materials such as construction paper, cardstock, kraft, felt and tissue given a photographed, warm-lamp finish.

When should I use Paper Cut-out Animation?

Paper Cut-out Animation fits situations like: A brief or reference video calls for a paper craft or stop-motion look; making a kids' storybook collage animation; building an animated scene with jointed paper puppets.

How do I install Paper Cut-out Animation in Claude Code?

Run `npx skills add edenfunf/reelmimic --skill paper-cutout -a claude-code`. Or copy the skill folder (.claude/skills/paper-cutout in edenfunf/reelmimic) into .claude/skills/paper-cutout in your project. Claude Code loads it when a task matches its description.

How do I install Paper Cut-out Animation in Codex?

Run `npx skills add edenfunf/reelmimic --skill paper-cutout -a codex`. Or copy the skill folder (.claude/skills/paper-cutout in edenfunf/reelmimic) into .agents/skills/paper-cutout in your project. Codex loads it when a task matches its description.

Can I use Paper Cut-out Animation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add edenfunf/reelmimic --skill paper-cutout -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/paper-cutout, .gemini/skills/paper-cutout, .github/skills/paper-cutout and .opencode/skills/paper-cutout in your project.

What does Paper Cut-out Animation need to run?

Going by SKILL.md and its folder, Paper Cut-out Animation needs JavaScript and a shell for the scripts in its folder and the command-line tools its instructions call (node and bash). Our summary lists: Node.js and headless Chrome to render the frames; ffmpeg to encode the MP4.

Does Paper Cut-out Animation access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Paper Cut-out Animation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Paper Cut-out Animation use?

Paper Cut-out Animation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Paper Cut-out Animation use?

About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Paper Cut-out Animation?

Skills that share tags, products or a category with Paper Cut-out Animation: HyperFrames Video Entry Point (heygen-com/hyperframes, 60k stars), Cut Silences (nateherkai/hyperframes-student-kit, 1.3k stars), p5 Paint Animation (heygen-com/hyperframes-community-skills, 187 stars) and Doctor (KumarSashank/motiscope, 122 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Paper Cut-out Animation?

edenfunf (a GitHub user) maintains it in edenfunf/reelmimic, which has 1,943 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 9, 2026.

Source: edenfunf/reelmimic on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.