zippr
All prompts

Paper craft

The Key, in paper craft

Cut from card, moved like stop motion.

Paste it into Claude or ChatGPT, answer its questions, and it makes the video. It works best in an app that can run code.

Make me a short film for my product the same way zippr made one particular film: "The Key, in paper craft" (zippr.to). In it, a small blue mascot, cut out of paper, is locked out of a card door. It pays gold coins into a paper thought cloud until the cloud crumples into a key. A page turns: the next time, one turn of the key opens the door at once, and no coin moves. Everything is cut from coloured card and moved in small held steps on a table, like stop motion. Below is the exact recipe zippr used: the tools, the steps, the settings and the timings. Follow it as closely as you can. Only the parts about my product change.

WHAT IT COSTS

- The code tools in this recipe are free and open source. - zippr made it with Claude (Opus 5.5) on a paid Claude plan. Any AI app that can run code can follow it. - One step was paid: zippr's mascot was drawn once with Google's Nano Banana Pro image model, 3 pictures at about $0.14 each (about $0.42). You can skip it: use a picture you already have, or have the hero cut from card in code for free.

STEP 1: ASK ME FIRST

Before you make anything, ask me these questions. Use your question tool if you have one. Otherwise ask them one at a time in the chat. If I skip one, suggest an answer and tell me what you picked. 1. What is your product or business, in a sentence or two? 2. What is the one thing a viewer should take away? (zippr's: "Pay for thinking once.") 3. Who is going to watch it, and where: reels, a website, a talk? 4. Length and shape. zippr's film is 10 seconds, portrait 1080x1920 (a landscape 1920x1080 cut exists too). Keep 10 s, or stretch every beat evenly to 20 or 30 s? Portrait or landscape? 5. Your brand colours (hex codes if you have them), and your product's name as it should appear on the paper tag at the end. 6. The words at the end, as two short cut-paper lines (zippr's: "Pay for" / "thinking once."), or none. 7. Your story in zippr's shape. Who is the hero, and what do they want (zippr's: to get through a door)? What does getting it cost the first time (zippr's: coins, paid one by one into a slow thought)? What does your product turn that into (zippr's: the thought crumples into a key)? And what does the next time look like (zippr's: a page turns, then one turn, instant, nothing paid)? 8. The hero's picture: (a) you have one: a mascot, product photo or logo, ideally 3 poses (looking up, facing us, jumping for joy) as PNGs with transparent backgrounds. It becomes a printed paper cut-out with a white edge; (b) you want one generated like zippr's with Nano Banana Pro (paid, about $0.14 a picture; you run it, or give me access); (c) I cut it from card in code (free). 9. The card colours. zippr's: a terracotta wall, a cream floor, a navy door in a cream frame, gold-foil coins and key, and a white paper cloud. Put your brand colours on the colour roles in the recipe below, or keep zippr's warm set?

STEP 2: THE RECIPE (exactly how zippr made this film)

Where the method came from The prompt behind a stop-motion paper-craft explainer about Docker, shared on Reddit's r/claude. zippr kept its shape: one line naming the medium, length, style, audio and topic, then a story paragraph, a line asking for production value, "you create everything", and a spend cap. The paragraph zippr's film was built from (only its two pointers to zippr's own files are left out): "Create a pure javascript animation. 10s 9:16 stop motion paper craft style video with appropriate audio on the topic pay for thinking once. The hero is zippr, a small blue vinyl toy creature [its three pictures were attached]. zippr is locked out of a little door. Opening it takes thinking, and the thinking eats zippr's coins: coin after coin goes into the lock's thinking until the thinking turns into a key. The next time, at the same door, zippr just turns the key: no thinking, no coins, and it opens at once. End on "Pay for thinking once." and then "zippr". No other words on screen, no people, nothing green. Entire video should be as high of a production value as possible. Please spend your time on this, it's very important. No voiceover. Use the film's own sounds on their frames over room tone, with no music under them. You can use any tools you can find on this machine. You create the script, the assets, the animation, concept, everything. work autonomously until done. Quality is paramount. Production value should be on professional level. One more thing: max spend is $0. No paid APIs, no image or video models, install nothing." Every shot, colour and sound below was the builder's choice from that paragraph. Follow the choices below to get the SAME film, not a new one.

The tools - Claude (Opus 5.5): made every choice from the paragraph, wrote all the code, made every fix, and ran the fresh-eyes checks. - A web page with an HTML canvas: every paper piece is drawn in JavaScript as a pure function of time. No animation library, no images except the hero's 3 pictures. - Playwright for Python driving headless Chromium: opens the page, calls seek(t) for each frame and screenshots it. - ffmpeg with libx264 and AAC: joins the frames and the sound. - Python with numpy and SciPy: makes every paper sound from scratch. There are no recordings. - The font: Geist (weight 600), free under the SIL Open Font License. - Paid, once, before this film: Nano Banana Pro (Google's gemini-3-pro-image, through Vertex AI, at 2K) drew the mascot's 3 poses, about $0.14 each by usage.

The steps, in order 1. A short plan: the story in one paragraph and a timed beat table, made from the paragraph above. 2. One plan file holds every time, counted in STEPS: 15 steps a second in a 30 fps film, so each pose is held for 2 frames. The picture and the sound both read it. 3. The page: seek(t) takes step = floor(t x 15) and draws every piece from the step alone. There is no clock and no Math.random; every wobble comes from fixed seeds. 4. Render: Playwright screenshots each frame, piped straight into ffmpeg. 5. The sound: numpy builds each sound at the times in the plan file. Mix, master, join. 6. Fresh eyes, then fixes. A separate AI (Claude Opus 5.5) is told nothing. It sees one frame every 0.2 s at phone width (390 px), with no sound, and says what happens and what it means. Fix what it misses, then ask a NEW reader. zippr ran 3 rounds; each read was about 80,000 tokens. 7. Check the finished file (below), then export.

The look (every value is zippr's) - Every piece is flat coloured card with a paper-fibre texture. The texture is one 1024 px tile of soft blotches plus 3,200 short fibre strokes and a little noise, laid over each piece at about 50% (overlay). Each piece has a soft drop shadow, rgba(60,22,12,0.40), blur 14, offset 4 px right and 9 px down, as if it sits a few millimetres above the table. - Hand-cut edges: every outline is re-sampled every 5 to 14 px, and each point is pushed 0.5 to 3 px along the edge's normal by a smooth wobble, so no edge is perfectly straight. - Stop motion: 15 poses a second, each held 2 frames. Every step, each piece shifts up to 1.1 px and turns up to 0.2 degrees, seeded per piece and step, like hand-placed pieces "boiling". There is no smooth tweening. - The table lamp: a warm key light from the upper left. It is a radial gradient, multiplied at 55%, from warm white to (150,110,96) at the edges, so it doubles as the vignette. It flickers by up to 1.4% each step, with a 5% film-grain overlay. - The camera is locked off, looking at the table. There are no pans, pushes or cuts. The one scene change is a page turn. - The colours are ROLES. My brand colours go onto the roles; zippr's value stays for any role my colours don't fill. The shades of a role (a back, a band, a highlight) are the same hue, lighter or darker. - WALL, the backdrop and most of the frame: zippr's terracotta #B9563A, with a deeper band #A34A31 above the floor. Mine: my strongest brand colour, or a darker tone of it. - FLOOR, the table top: cream #EAD7B8, front lip #D9BF97. Mine: my lightest neutral. - THE THING WANTED, the door: navy card #233863 (its back #1A2A4C, planks #2C4577) in a cream frame #F1E4CC. Mine: my darkest colour. It must stand clearly apart from the wall. - THE COST AND THE KEY (coins, lock, key): gold foil #E2AE3E, highlight #F8D97C, dark #A87622. Keep gold unless my brand has its own gold or yellow. It must differ from both the wall and the door. - THE SLOW WORK, the cloud: white paper #FFFBF3, its dots in the door's colour. - LIGHT through the open door: butter-yellow vellum #FFE6A0. - LETTERS: #FFF8EE. They must read clearly on the wall at phone size; if my wall colour is light, darken the wall, not the letters. - THE TAG: the door's colour (#233863) with cream ink #FFF3DE. - Keyhole #1B130E. Twine #7C2A22. - zippr's film has no green anywhere. That is zippr's rule, not mine: if my brand is green, use it. - The hero is a printed sticker cut-out. Stamp its picture at 28 angles around it, at radii of 7, 14 and 19 px, and fill that with off-white #FFFAF1 to make a white die-cut edge. Lay the paper texture over the edge at 35%, then the picture on top, with a drop shadow (blur 16, offset 6, 11). Poses change by swapping cut-outs (looking up, facing us, jumping), never by bending. Flat half-lids are drawn over the eyes in the screen's own colour. The key hangs on a twine loop on its belly, 9 px wide. - Layout (portrait, 1080x1920): floor line y 1462, front lip y 1760. The arched door runs x 64 to 424, from y 780 to 1470, with its lock at (372, 1142): a plate 74 x 128 px with rounded corners. The coin stack is at x 526, base y 1480: 16 coins, each 118 x 18 px. The hero stands at x 832, feet at y 1488, 440 px tall. The cloud is at (300, 574): 7 overlapping round lobes, 1.12x. Three small puffs rise from the lock. - The door opens like a card on a hinge, in held steps. Its width goes 0.8, 0.5, 0.12, -0.22, -0.4, -0.46 the first time (below zero, its plain back swings toward us), and 0.3, -0.3, -0.46 the second time. - The page turn takes 7 steps. The page peels from the bottom-right corner along a fold line: the fold travels 0.07, 0.17, 0.30, 0.45, 0.61, 0.77 and 0.92 of the way, its angle easing from 214 to 194 degrees. The page's plain back (#F2E6D2) curls over with soft shading, and a shadow falls just past the fold. - The words are each ONE cut piece of cream letters (Geist 600, 128 px), pressed onto the wall whole, with one tap. Letters typed one by one looked like a glitch in paper. The name goes on a small navy paper tag at the end.

The hero's pictures (the one paid step; follow this only if I chose (b)) - The model: Nano Banana Pro (Google's gemini-3-pro-image), through Vertex AI, at 2K, 16:9. It cost about $0.14 a picture by usage; Google's price page said $0.134 for a 1K or 2K picture. - What kept the character identical in 33 of 34 pictures: - one locked description, pasted word for word into every prompt; - the character's clean reference picture passed in with every call; - each new pose made as an EDIT of an existing picture, with one change per edit. - zippr's locked description: "a small chunky soft-vinyl toy creature: one rounded bean-shaped piece for head and body in matte cornflower-blue vinyl (#5387D8), with a pale periwinkle (#9DACD0) oval belly patch, two short rounded stub arms and two short round stub feet in the body's blue. The upper front of the bean is a large, softly rounded-rectangle screen set into the body, glowing a soft warm white (#FBE5CA). On that screen, and only on it, sit two small round glossy black eyes, each in a thin clear glossy rim and each carrying one round white catchlight. Two soft floppy dog ears in warm cream vinyl (#E6C28E) hang from the top of the head, one on each side. No mouth, no nose, no neck, and no marks, letters or numbers on the body." - The three pose prompts. Every one ends with: "The face-screen shows only its two eyes: no mouth, no nose, no symbol, no logo. No words, letters or numbers anywhere in the picture." 1. Standing, an edit of the character's first picture: "Edit this image. Keep the identical character: its shape, proportions, pose, colours, matte soft vinyl, face-screen glow, eyes and catchlights, and the same camera angle and framing. Only change: the setting. [The old background] is replaced by a plain, seamless, evenly lit light-grey studio backdrop that curves smoothly into the floor: one smooth neutral grey (about #C8C8C8), with no texture, no props, no doodles and no horizon line. The character stands on it with only a soft contact shadow under its feet. Soft, even studio light from the upper left, so its colours read true." 2. Looking up, an edit of picture 1 with the reference passed in: "The first image is the picture to edit. The second image shows a character, for reference only; copy its exact design, proportions, colours and material. Edit the first image. Keep the identical character (exactly as in the second image: its shape, proportions, colours and matte soft vinyl), the plain light-grey studio backdrop, the light and the framing; only change: its pose and expression, to hopeful. Its body turns a little toward the left of the picture (a three-quarter view, never more, the face-screen fully visible) and it looks up and to the left, as if at someone taller. The head tips back slightly. The two eyes are open wide and round, glossy, with bright round catchlights, gazing upward. The two stub arms are held together in front of the belly. The face-screen keeps its soft warm-white glow. It stands on the floor with a soft contact shadow." 3. The jump, an edit of picture 1 with the reference passed in. The opening is the same as prompt 2, then: "only change: its pose and expression, to a delighted jump. It is in mid-air, both feet well off the floor, a small happy hop; both stub arms thrown up high; both floppy ears flung up and outward by the jump. It faces the camera. The face-screen glows a brighter lime green, almost white-hot at its centre; the two eyes open wide and round, each with two big round catchlights, bright and glossy. A soft shadow on the floor below it, separate from its feet." - Then, free, in code: - cut each picture out of its grey backdrop (a model of the grey per row, plus a colour gate); - measure each pose once: its feet centre, its screen box and its eye ellipses (the half-lids are drawn over those); - mirror the looking-up pose so it faces the door; - recolour the jump's lime screen to warm white. - Designing the character in the first place took zippr several earlier rounds of pictures. Those are not in the $0.42.

zippr's story, beat by beat (10.0 s; 15 steps a second; frame = seconds x 30) - 0.00 s: the card door, the gold lock, a tall stack of 16 gold coins, and the hero (a sticker cut-out) looking up at the lock. Something moves at once: the first paper puff rises at 0.13 s. - 0.13 to 0.40 s: three paper puffs rise from the keyhole. 0.53 s: a white paper cloud pops open with "...". Its dots rise in turn, one wave every 0.4 s. - 0.80 to 2.07 s: three coins hop off the stack into the cloud (they land at 1.2, 1.7 and 2.1 s). - 2.00 to 3.20 s: the stream. Eight coins, one every 0.13 s, each hop 0.2 s. The dots speed to one wave every 0.2 s. The stack drains, and the hero's lids drop (from 2.4 s). - 3.20 s: the thinking stops. 3.27 to 3.53 s: the cloud crumples, turns gold, and flips over into a key. The gold matters: white crumpled paper read as "a feather". - 3.80 to 4.13 s: the key goes into the lock and turns. CLACK at 4.13 s. - 4.20 to 4.60 s: the card door swings open onto butter-yellow light, and the key comes back to the hero on its twine loop. Route the key low, under the face, on its way to and from the hero: a key or card that crosses the face hides the eyes. The hero turns to face us. - 5.00 to 5.47 s: the page turns. It lands at 5.5 s: the next page, with the door shut again. - 5.47 to 5.80 s: the hero hops back in, wearing the key, in three hops (the last two at 5.7 and 5.8 s). Hopping back in is what makes the page turn read as "the next time" and not a rewind. - 5.87 to 6.20 s: the key goes in, and ONE click at 6.2 s. 6.27 to 6.40 s: the door flies open. No cloud appears, and no coin moves. - 6.53 to 7.07 s: the hero jumps for joy, and lands at 7.1 s. Short arms raised beside the head read as ears: throw them out to the sides, clear of the head's outline. - 7.33 s: "Pay for" is pressed on, one tap. 7.73 s: "thinking once." is pressed on, one tap. - 8.67 s: the navy paper tag "zippr" is stamped on. Hold it still to 10.0 s.

The sound (no music; the paper's own sounds are the rhythm) - Made in numpy at 48 kHz, from tones and filtered noise, with a fixed random seed. There is no music and no voice. - Under everything: a quiet table-top room tone (band noise 60 to 900 Hz, plus a fifth of 0.9 to 9 kHz) at -50 dB. - The sounds and their gains in dB: - paper puffs (soft air, 400 to 3200 Hz, with a small round body), -13; - the cloud's paper pop (noise 0.5 to 6 kHz over a falling 260 Hz body), -9; - pencil taps on card, one per dot wave (noise 1.2 to 5 kHz with a short ring), -21, and 3 dB louder in the stream; - a coin tink per coin (a sine with partials at 2.41x and 3.9x), pitched from MIDI note 84 and rising 2 semitones per coin: -11 for the first three, about -15 in the stream; - a crumple (paper grains getting denser, ENDING on the fold's last step), -15; - a short high bell (1568 Hz) as the key forms, -13; - a metal slide in, -10; - the CLACK, -6; - a card flap as the door swings (air and a soft card bend), -17; - two tiny tinks as the key lands on the twine, -12; - a page swoosh (a fluttering sweep ENDING as the page lands), -17; - the page landing flat (a soft 95 Hz thump), -8; - three little vinyl hops, -12 to -16; - ONE round click (12 ms of noise, 1.5 to 6 kHz, over modes at 480, 1250 and 2300 Hz), -5; - the hero's two-note chirp (1320 Hz, then 1980 Hz), -9; - a soft landing, -12; - a paper tap plus a soft thump for each pressed line, -14; - the tag's stamp (a 110 Hz press), -11, with one dry bell (C5, 523 Hz), -9. - The hits and their frames (at 30 fps): puffs 4, 9, 12; cloud pops 16; coins into the cloud 36, 51, 63, then the stream; key forms 106; key goes in 120; CLACK 124; key on the twine 138; page lands 165; hops 171, 174; key goes in 183; ONE click 186; chirp 196; landing 213; "Pay for" 220; "thinking once." 232; tag and bell 261. - Every sound that goes with something you see starts 2 frames BEFORE that frame; the ear hears that as exactly on time. The crumple, flap and swoosh END on their frame instead. - Mix: one clear sound per key moment, at least 6 dB louder than whatever is under it. Master with a look-ahead peak limiter (no saturation) to -16 LUFS, true peak at or below -2.5 dBTP.

The finish - 1080x1920 (or 1920x1080), 30 fps, 10.0 s. H.264 High, level 4.0, yuv420p, crf 18, capped at 12 Mbit/s, tagged BT.709 (convert with ffmpeg's out_color_matrix=bt709, so colours don't shift). AAC 192 kbit/s at 48 kHz stereo, with +faststart. zippr's file came out at about 6 MB.

STEP 3: SWAP IN MY PRODUCT

Keep the paper look, the held steps, the locked camera, the page turn, the timings and the sound design exactly. Change only these: - zippr's mascot becomes my hero, from question 8, as a white-edged sticker cut-out. - The door becomes the thing my hero wants, and the coins become what it costs the first time. - The cloud becomes the slow work, and "it crumples into a key" becomes what my product gives, in paper: crumple, fold or unfold into it, and change its colour so nobody misses the change. - "One turn, the door flies open" becomes my one-step payoff. - The two pressed lines become my words, and the "zippr" tag becomes my name. - The card colours become mine (question 9), put on the colour roles. Keep the lamp, the texture and the shadows.

STEP 4: SHOW ME THE PLAN, THEN WAIT

Write my story in two sentences, then my beat table with times in zippr's format, then my colours on their roles. If you can run code, show me 4 stills in the finished paper look (for example at 0.8 s, 3.4 s, 5.3 s and 9.5 s). Wait for my yes before you build the whole film.

STEP 5: MAKE IT

If you are an AI app that can run code and save files, follow the recipe and give me the MP4 with sound. Ask me before installing anything. If there's no browser to step through, draw the same pieces with Python (numpy and Pillow) and tell me. If you can't run code, build it as one self-contained web page that plays in the chat. Draw every paper piece on a canvas, and make the sounds live in the browser. Add a big Play button (browsers only play sound after a tap), a Replay button, and a "Save as video" button if the browser allows. Tell me how to screen-record it with sound on a phone and on a computer.

STEP 6: CHECK IT BEFORE YOU GIVE IT TO ME

- Put one frame from every 0.5 s on a contact sheet and look at it at phone size. Could someone who never saw this message say what the film means from the frames alone? Fix what doesn't read. - On the file: it plays start to end; poses change only every 2 frames; each hit sound starts 2 frames before its picture and is clearly audible; the loudness is -16 LUFS and the peaks are below -1 dB. - Then give me the file, one still, and one honest line on anything you couldn't do. Never use copyrighted music.