You are my motion designer and sound designer. Build a 9.5 second vertical stop-motion "paper note" video end to end and render it to an MP4. Work in this folder. Do everything yourself: write the code, install what you need (Node, Puppeteer, ffmpeg, Python with numpy + scipy), render, look at the frames, fix problems, and give me the finished file.
MY TEXT (lines 1-3 in capitals, exactly like this):
LINE 1: [I MADE THIS]
LINE 2: [WITH AI]
LINE 3: [COMMENT "PROMPT"]
SIDE NOTE: [it's free]
SIGNATURE: [@YOURHANDLE]
The last word of line 3 is the punchline.
FORMAT
- 1080x1920 (9:16), 30 fps, 9.5 s = 285 frames. H.264 High yuv420p, CRF 18, +faststart. AAC 48 kHz stereo 320k, -14 LUFS, true peak -1.4 dBTP. Save it as out/paper_note.mp4.
- Frame 0 is already interesting: a crumpled paper ball on a painting. No fade at the end: the last 3 frames are identical and show the finished note.
- All text stays between 12 % and 78 % of the height (Instagram UI safe band).
HOW TO BUILD IT
- One HTML page with a canvas (three.js for the paper). It exposes window.V = { W: 1080, H: 1920, dur: 9.5, ready(), seek(t) }. Every visual state is a pure function of time t, so frames can render in any order. Seeded random only, never Math.random at render time.
- A Node + Puppeteer script opens the page, calls seek(frame / 30) for every frame, screenshots it and pipes the frames to ffmpeg. Max 2 parallel workers.
- The page exports its event list (time, type, x position of every letter, word, mark, doodle, tape, confetti burst). A Python script (numpy/scipy) synthesises the music and every sound effect from scratch from that list, so each sound lands on its visual frame. No downloaded samples needed.
- One command (render.sh) runs everything: scene -> audio -> frames -> MP4.
TWO CLOCKS (this is what makes it feel hand-made)
- The world runs at 12 fps stop-motion: stop k = floor(t * 12). Paper pose, unfold state, background painting and doodle loops only change on a stop, which gives the 3:2 hold cadence at 30 fps.
- The juice runs on a 24 fps sub-clock j = floor(t * 24): letter pops, ink drops, sparkles, punch-ins, mark draw-ons, confetti.
- Tempo 90 BPM: 1 beat = 8 stops = 0.667 s. Letters land on 8th and 16th notes, the LAST letter of each word lands on a beat.
BACKGROUND
- Use the painted artworks in bg/ (portrait images, cover-crop to 1080x1920). If bg/ is empty, paint 8 procedural plates in code (swirls, starry skies, engravings).
- Flip to a new plate on EVERY stop (12 times a second) in a shuffled order that never shows the same plate twice in a row. It never stops flipping, also not during the ending.
- Darken each plate to about 40-50 % (its own gain, so all plates look equally dark) with a soft vignette, so the white paper pops.
THE PAPER
- Off-white lined notebook paper (RGB about 244, 244, 240), grey-blue rules every 5.4 % of the sheet height (first rule at 9 %), a torn top edge, a torn spiral-perforation right edge and a fine fibre texture. Sheet width 0.55 of the frame, centred just above the middle.
- It unfolds in 5 states during the first second: tight crumpled ball (about 0.23 of the frame wide, big flat facets, sharp creases, rules visible on the facets) -> half-open with a standing flap -> crumpled flat-ish -> wrinkled full sheet -> flat sheet. Build it as a real folded mesh (a subdivided plane folded around hinge lines that unfolds as c goes from 1 to 0), lit by a key and a fill light with soft self-shadow. Not a 2D image swap.
- Two shadows under the sheet: a tight contact shadow and a wide soft ambient one.
- On every stop the sheet boils a little (+-0.3 deg, +-1.6 px). Each time a word finishes, re-pose it like a new photo (+-1.6 deg, +-1 % shift). Single letters never re-pose it, so the text stays readable.
- Faint hand-made detail: a pencil ghost sketch of every letter before it is inked, pencil baseline guides, an eraser smudge with crumbs, a broken coffee ring, an old fold crease, and two translucent tape strips with torn ends on the top corners (from tape/ if it has images) that slap on at 1.0 s and 1.17 s.
- SIGNATURE: write [@YOURHANDLE] in marker along the bottom edge of the paper, visible from the first flat frame to the last, so it bulges with the paper and stays readable at the end.
LETTERS
- Blue paint-marker capitals (RGB about 44, 119, 159), drawn from hand-made skeleton strokes, not a font. Each letter gets its own small wobble, rotation, size and baseline jitter, streaky ink and a faint bleed. Wide tracking. The first word of line 3 is in red marker and smaller.
- Letters appear ONE AT A TIME and pop on whole (never stroke by stroke), starting at 1.33 s. Pop on the sub-clock: frame -1 squash (1.16 x 0.60), frame 0 stretch-overshoot (1.10 x 1.24, +-4 deg), then 0.96, 1.015, rest. Anchor on the baseline. With each pop the paper dips 0.7 % and recovers, 3-5 ink droplets fly out (2 stay on the paper as dots) and 2 tiny sparkles appear.
- Size order: lines 1 and 2 big, the first word of line 3 small, the PUNCHLINE the biggest thing on the page.
WORD REWARDS (every finished word)
- A burst of 14-16 small 4-point paper sparkles and dots (0.65 s), a camera punch-in of +2.8 % with a damped spring settle. The camera keeps +1.7 % of each punch-in, so it slowly creeps closer.
- A mark draws on in a second colour: an orange underline under one key word of line 2, a two-pass yellow highlighter swipe (streaky, slightly wavy edges) on the punchline, a red hand-drawn circle around the punchline a beat later, then a thick magenta arrow pointing down to the comments with the handwritten side note [it's free] and a small heart.
- From the first letter to the climax something new lands every 0.17-0.5 s.
DOODLES
- 6-10 colourful marker doodles around the text: sparkles, a star, a small robot head, a chat bubble, a heart. Use the PNGs in doodles/ if there are any, otherwise draw them with wobbly hand strokes. If doodles/, tape/ or confetti/ hold sheet images with several items on white, cut them out yourself (key out the white with soft edges, slice into single items).
- Each doodle pops with a big overshoot (1.3 -> 0.9 -> 1.05), then lives on the 12 fps clock, locked to the beat: twinkle, heartbeat double pulse, wiggle, bob, blink. Doodles stay in the margins, never over the words.
CLIMAX
- 7.33-7.58 s: anticipation. The sheet squashes to 0.95 and trembles.
- Then it grows toward the camera with an ease-in (power 2.2) that lands exactly on the bar downbeat at 8.000 s, with a lens bulge (barrel distortion: the top edge bows about 7 % of the sheet height, the sides 6-7 % of its width) and a +6 % overshoot spring. Final sheet about 0.75 of the frame width.
- At 8.000 s: about 70 pieces of matte cut-paper confetti (rectangles, circles, triangles, strips; from confetti/ if it has images), 45 % bursting from behind the sheet and the rest from its edges outward, each with its own soft shadow, spin and flip shading on the 12 fps clock, drag and flutter. Plus a ring of 18 sparkles around the sheet. Nothing crosses the punchline.
- 8.0-9.5 s: a lively hold (doodle loops, a twinkle on every beat, confetti drifting down). Freeze the last 3 frames.
SOUND (original, synthesised, ear candy)
- Music bed: soft, floaty, hypnotic and positive, 90 BPM, F major with a lydian colour. Chords: Bbmaj9#11 (0-1.33 s), Fmaj9 (to 4.0 s), Bbmaj9#11 (to 5.33 s), Gm9 (to 6.67 s), Bbmaj9#11 (to 7.33 s), Csus4add9 (to 8.0 s), Fmaj9 on the climax and the hold.
- Layers: a warm detuned pad with a slowly opening low-pass, a kalimba-like pluck playing a 7-step rhythm against a 5-note pattern on 16ths, a soft mallet on dotted 8ths, a gentle sub, a shimmer of tiny bell grains, long soft reverb. No kick, clap or hi-hat. Dip 2.5-6 kHz so it is easy on the ears. The bed starts at a whisper and swells into the climax.
- Sound effects, each on its exact frame and panned to its element's x position on screen:
- Frame 0: a crisp paper grab plus two soft pickup bells. Paper crinkle grains on every ball stop, paper swishes on the unfold, a paper flap when it lands, tape rip + slap.
- Each letter: a soft felt-marker tap plus a glassy pling one chord tone higher than the last (a rising combo ladder). Each word lands one rung higher than the word before.
- Each word reward: 2-3 bell notes (the first one = the last letter's note), a soft low "thup", tonal glitter. Duck the music 3 dB under it.
- Marker-stroke sounds timed to the underline, highlighter, circle and arrow draw-ons.
- Build (6.67-8.0 s): a riser that keeps climbing to F7, a reversed shimmer swell, a paper-flick roll (16ths, then 32nds) into the downbeat.
- 8.000 s: a soft sub thump, an F major bell strum from left to right, glitter, confetti flutter on both sides.
- Every tonal note is a chord tone of the current chord AND in F major pentatonic (F G A C D), so nothing clashes. No typing sounds, nothing harsh, crunchy or cartoonish, never the same sound twice in a row.
- Master to -14 LUFS integrated, true peak -1.4 dBTP.
CHECK IT BEFORE YOU HAND IT OVER
- Render stills at 0.05, 1.0, 3.3, 6.4, 7.6, 8.0 and 9.4 s and look at every one. Fix anything wrong: spelling, text outside the 12-78 % band, punchline not the biggest, anything covering the punchline, a ball that does not read as real crumpled paper, backgrounds too bright.
- Check the MP4 with ffprobe (1080x1920, 30 fps, 285 frames) and ffmpeg ebur128 (-14 LUFS).
- Then tell me the file path and how to change the text and re-render with one command.
Comments
Loading…