i just made this stickman animation in full code with claude opus 5.5
took me 20 mins and spent $0 on videos or images
promised you guys id give a free claude skill to re create any code format so here it is
hand this prompt to your claude code and thank me later ↓
<inputs>
Ask me for: my video idea (one line is fine), the setting, the length (60-90 s) and the narrator (an ElevenLabs voice, or "free" for a local text-to-speech). Everything is built in code: no AI images, no AI video. Make it MY story, not a copy of an example.
</inputs>
<format>
The style is a second-person survival thriller with stickmen, built as a series:
- "Imagine you…" hook with a time stamp in the first 3 s
- a HUD with the DAY number and a clock that moves forward through the episode
- 3-4 RULES, each one paid off on screen
- a threat that escalates and is mostly shown, not told
- a twist that makes one rule impossible
- a two-choice ending ("DO YOU OPEN IT?" style, a green and a red option, "COMMENT BELOW") and "FOLLOW FOR DAY 2"
Around 20-30 voice lines, 60-90 s, a new shot every 1.5-3 s.
</format>
<story>
Write a beat sheet and the script first and show me both before building anything.
- One line = one visual. Rules are short commands.
- Open a new question every ~10 s and only answer it with a bigger one.
- Put the viewer in POV for the scary parts: what you see through a door, a window, a phone, a peephole.
- The ending is a choice where both options look bad.
- Write numbers twice: the caption form ("11:58 PM") and the spoken form ("eleven fifty-eight P M") for the text-to-speech.
- Rotate settings between episodes (apartment, subway, school at night, hospital, cabin, plane, office, motel) and fit the threat to the setting.
</story>
<look>
Pick a palette per story, but keep the language:
- real 3D low-poly sets with real lights and shadows; the mood comes from light (one warm practical, one cold fill, one strong accent such as a door gap, a screen or a siren)
- the stickman is flat and 2D-looking: a light body with a thick dark outline, round strokes, dot eyes, no mouth; give the main character one mark (a scar, a cap, a colour) so doubles and callbacks read
- the overlay: a monospace HUD top-left, chunky captions (1-3 words, key words in an accent colour), a tilted rule sticker with a big condensed title, phone screens drawn in 2D
- banned: AI frames, glossy 3D characters, emojis, music with vocals, long captions
</look>
<shots>
A library to adapt to the story (never use all of them):
- the opener: a camera move that starts tight on you and pulls out to show where you are
- POV phone in your hands (2D phone UI, two stick thumbs)
- a macro on the one detail that matters
- outside chaos from above (balcony, bridge, window): physics vehicles, a running crowd, something collapsing or burning
- third-person action in the room: walking with planted feet, reaching, hesitating, barricading
- POV interaction: throwing, holding a torch, opening something
- a close-up of your face for the reaction
- a low angle on a door or vent: light leaking in, shadows moving
- knocks, shakes, things falling
- a fisheye peephole, camera or window view of the threat stepping closer
- the choice screen and the end card
</shots>
<tools>
What each tool is for. Install whatever is missing, and ask me before anything paid:
- three . js: the 3D engine; it runs inside a web page. Download its module file locally so renders don't depend on the internet. Use its post-processing passes for bloom, plus one custom lens shader for vignette, grain, fisheye and colour fringing.
- cannon-es: a JavaScript physics engine for vehicles, falling debris and collapses.
- Playwright (Python): opens the page in a real browser (Edge or Chrome with the GPU on) and captures every frame as an image.
- ffmpeg: the command-line video and audio tool. It joins the frames into an MP4, cuts and filters the audio (highpass, lowpass and echo for voices behind doors), mixes, normalises loudness and makes the phone-size copy.
- ElevenLabs, or Kokoro (free local text-to-speech), for the narrator.
- faster-whisper: free local speech-to-text with word timestamps. Use it to cut the voice cleanly and to time every caption.
- numpy and Pillow: to check audio levels and make contact sheets of stills.
- Sound: free downloaded sound effects from Mixkit (never synthesized) and a dark cinematic drone or tension bed with no vocals.
</tools>
<build>
1. One HTML page (film . html) with the 3D renderer at 1080x1920 drawn into a 2D canvas that also holds the overlay. A function window . seek (t) draws frame t and must be a pure function of time; every cut, sound and move is keyed to the word times.
2. Stickman. Draw each figure with 2D canvas strokes onto its own texture and put it on a plane that always faces the camera, with an alpha test so it casts a real shadow and slight emissive so it reads in the dark. Pose with joint angles, and walk with 2-bone IK so the planted foot never slides.
3. Physics and cloth. Simulate once at load with a fixed timestep, record the positions, then sample them by time, so every render is identical. Cloth (sheets, curtains, flags) is a verlet particle grid with wall and floor collisions and pinned points you can release.
4. Voice. If you generate one long take, never cut it at the API's character timestamps: they drift and slice words. Transcribe the take with faster-whisper word timestamps, match it to the script, cut only in real silence between lines, and only add pause where the natural one is too short.
5. Captions. Re-transcribe each final line, normalise numbers ("6:42" = "6 42", "AM" = "a m"), align the caption words to what was heard, and snap each word to its real start in the audio. Check that every caption has voice under it within ~120 ms.
6. Render. Playwright steps window . seek through every frame at 30 fps, and ffmpeg encodes a high-quality master, then a phone copy under 30 MB.
7. Mix with ffmpeg: the voice on top, the music about 12-14 dB under it, one sound effect per event, a dip before the big moment, loudness at -14 LUFS, then a scan for dropouts.
</build>
<gotchas>
- is narrow: a normal lens sees very little sideways, so use wider lenses indoors and keep the subject close to the aim point.
- Glass behind a solid frame is invisible: build mirrors and windows as a frame around a real hole.
- Dust spread everywhere reads as stars, so keep it inside light beams.
- Night shots go black after compression, so give each one a cold fill light.
- Fog swallows distant things.
- Never judge a reference or your own render from one frame every few seconds; check motion at the full frame rate.
- Check cuts, captions and audio joints with numbers before every full render.
</gotchas>
<start>
Ask me for the idea, show me the beat sheet and script, then 6 stills of the key shots before rendering the full video.
</start>
Art, video & music
A 20-minute stickman survival thriller made entirely in code
Finn built a second-person stickman survival thriller with Claude Opus 5.5, using three.js for low-poly 3D sets, cannon-es physics, and Playwright and ffmpeg to render frames. No AI images or video; voice comes from ElevenLabs or Kokoro, and captions are timed with faster-whisper.
373likes
28reposts
640saves
21Kviews
- Made with
- Claude Opus 5.5, ElevenLabs, Kokoro, faster-whisper, three.js, cannon-es, Playwright, ffmpeg
- Posted









