Papercut Storyboard logo

Papercut Storyboard

Community
0xS4N4TG
papercut-storyboard

Storyboard a papercut script before any code. Writes the Camera / Cut table, one block per scene with frame-level events on each stressed word, the SFX plan and the proof beat. Use for "storyboard this script" or "plan the camera moves and cuts".

Overview

Publisher0xS4N4TG
Repositorypapercut-explainer
Skill namepapercut-storyboard
Stars
106
Forks
10
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by 0xS4N4TG on GitHub. Read the source before you install it.

Installation

Install the Papercut Storyboard AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/0xS4N4TG/papercut-explainer/tree/main/skills/papercut-storyboard
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/0xS4N4TG/papercut-explainer.git /tmp/papercut-explainer
mkdir -p .claude/skills
cp -r /tmp/papercut-explainer/skills/papercut-storyboard .claude/skills/papercut-storyboard
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Papercut Storyboard in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Papercut Storyboard on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Papercut Storyboard is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Papercut storyboard

The storyboard is the plan every scene is built from. It names the camera move and the cut for every scene, so the scene agent doesn't invent them. A brief that says "CameraPush or your own transform" gets a flat push or a hand-rolled zoom in every scene, and the kit's camera moves go unused.

Preflight

  • Install: Minimal is enough. With a library, check library/papercut/CATALOG.md (sections "paper/camera.tsx" and "paper/transitions.tsx") for each move's props and when it fits. If the file is missing or stale, run python3 $PAPERCUT_LIB/tools/catalog.py. Resolve $PAPERCUT_LIB from the environment, else the PAPERCUT_LIB= line in ~/.config/papercut-explainer/config.env, else ask once.
  • Needs narration/script.json and papercut/STORYBOARD.md with the HOOK block and the staging table (banner, set, prop, UI moment, mascot, gag per row). Missing: run papercut-hook and papercut-script.
  • Backdrop sheet for choosing sets: library/papercut/public/bg/backdrops/_sheet.jpg. Open only what the step needs.

1. Global rules

Put these at the top of STORYBOARD.md, under the HOOK block. Palette by role (rotate background colours per set): ../papercut-explainer/references/style-guide.md section 5. Fonts: section 6. Canvas and zones: section 4. A feature-unlock that suits one extended metaphor can use section 12.

  • 1080x1920, 30 fps. Banner at 14-21% height, caption band 68-80% (it shifts per scene to stay off faces), bottom 20% clear.
  • Light from the top-left. Saturation only on characters, captions and signals.

2. Camera / Cut table

One row per scene, before the scene blocks. Every row names a component from the kit's paper/camera.tsx and the CutSeries kind (from paper/transitions.tsx) for the cut into that scene.

SceneCamera (paper/camera.tsx)Cut in (CutSeries kind)
S01HookOrbitCamera + Depth, SnapZoom on ""none
S04NameCrane rise to tearAway
S09PeakCrabTrack along whip
S10CTARackFocus to phonetapePull
  • Camera options: OrbitCamera + Depth, SnapZoom, Crane, CrabTrack, DollyZoom, RackFocus, ForegroundPass, DutchTilt, FocusPulse, FreezeFrame, PullBack, PovMask, TimeRamp, TiltShift, FocusHunt, Handheld, and CameraPush (from paper/kit.tsx). The catalog's paper/camera.tsx section says when each fits.
  • Cut options: hard, whip, zoomThrough, pageTurn, tearAway, tapePull, stampCut, infiniteZoom, popUpBook, keyhole, burnAway.
  • A plain CameraPush is allowed on at most a third of the scenes.
  • Copy each row's camera into its scene block header. The cut column goes into episode.json as "cuts": {"S04Name": {"kind": "tearAway"}} (no entry means a hard cut), which papercut-build fills.

3. Scene blocks

One block per scene, 1.5-5 s each, cutting on sentence boundaries:

## S03: <beat>  (5.6-8.2 s, 78 f)   BANNER: <TAKEAWAY IN CAPS>
Location/bg: <world location + bg colour>     Camera: <camera.tsx component + params, from the table>   Cut in: <kind>
Cast: <who, accessories>                       Caption band: y=0.76
| VO word (stressed) | frame | event                                    | motion spec                   |
| "<word>"           | +6    | <prop enters / state flips / acts>       | <spring/slide/swap + frames>  |
Ambient: <LED blink, idle bob, stars, screen waveform>
Boil: banner + labels, +-1.5 px every 2 frames
SFX: <pop, chime, click...>
  • Expand each staging-table row into frame-level events: one per stressed word (every 0.4-0.8 s), ambient motion always on. Frames are offsets from the word, later read with cueOf(ID)(word, n).
  • Product UI is the rough rebuild on a paper monitor or laptop, with fake interactions (cursor click, typing, progress, waveform, list scroll).
  • Proof: once per reel, a real screenshot of the source page (a browser capture via library/tools/capture.mjs, not a redraw) taped onto a paper card, with a red marker circle drawing itself around the key line. Everything else stays a rough papercut rebuild.
  • One callback to an earlier set before the CTA.

4. Camera and transition rules

  • Every scene has one move. A slow push is the baseline. Add a parallax orbit on lit sets for depth, a punch-in or snap zoom on the stressed word for numbers and jokes, a foreground pass (blurred paper object across the lens) or rack focus, a pull-back to reveal scale, and a freeze frame with a label on the struggling-mascot beat.
  • Mostly hard cuts on the banner change. A whip-pan with motion blur on 2-3 topic changes, a zoom-through when going "inside" a screen, door or mirror, at most one page turn or tear per reel (on the catch or a before/after contrast), and the tape pull into the CTA (a plain kraft strip, with an optional label to print a word on it).
  • The cut out of the hook carries motion through it. Apply the rule from papercut-hook to S01 and S02.
  • Transitions run 6-12 frames, each with its SFX (whip, zoom, page-flip, rip, tape-peel).
  • In a library project, chain scenes with the kit's transition series, which keeps every scene start on its plan.json frame so the voice stays in sync.

5. SFX plan

  • Air sounds (whoosh, slide, whip, zoom) together: at most one every 2.5 s of reel. cues.py prints a note above that. For scale, 12 in 33 s is fine and 24 in 26 s is distracting.
  • Entrances get contact sounds (pop, thud, stamp) or silence. Count them in tools/cues.json before the audio render.
  • Name SFX from library/audio/CATALOG.md in each block's SFX: line. Scene agents write the real rows to tools/cue_sheet.d/<Scene>.json.
  • Pick the bed preset (episode.json "bed") and set cutSfx to match the cut kinds: tearAway rip, tapePull tape-peel.

Gate

  • Every scene has a camera and a cut-in, and a plain CameraPush is on at most a third of them.

  • Every stressed word has an event; ambient motion is listed.

  • One proof beat, one callback, the tape pull or whip into the CTA.

  • At most one page turn or tear; air sounds within budget.

  • Name the anticipation and the one exaggerated beat in each scene block's event table. The 12 principles, mapped to kit components, are in ../papercut-explainer/references/motion-principles.md.

Hand-off

Next is papercut-build, which scaffolds the project and turns the Camera / Cut table and scene boundaries into episode.json. It reads STORYBOARD.md and narration/script.json. The Timing section of STORYBOARD.md is generated later, after the voice, so leave it out.

Frequently asked questions

What does the Papercut Storyboard AI skill do?

Storyboard a papercut script before any code. Writes the Camera / Cut table, one block per scene with frame-level events on each stressed word, the SFX plan and the proof beat. Use for "storyboard this script" or "plan the camera moves and cuts".

Why use Papercut Storyboard on TypingMind?

Because you install it once and use it with any model. Papercut Storyboard is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Papercut Storyboard in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/0xS4N4TG/papercut-explainer/tree/main/skills/papercut-storyboard. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Papercut Storyboard?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Papercut Storyboard?

As many as you like. As long as a model supports skills, you can use Papercut Storyboard with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Papercut Storyboard AI skill free?

Yes. It is published on GitHub by 0xS4N4TG under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇