Arp Cathedral: 150 Stick-Figure Bunnies, All in Unison, Each Their Own Dance
A 249-second trance music video for a congregation of Bell Labs Plan 9 bunnies. They pound their chests in unison. They build a rocket. They count down together. They launch. They ride a million tiny rockets through deep space in a choreographed finale. Daniel says one word at the end. All Python, no samples.
Arp Cathedral: 150 Stick-Figure Bunnies, All in Unison, Each Their Own Dance
249 seconds. One congregation. A rocket. And one word at the end.
One bunny stands alone in a cathedral of blue light. Then ten. Then a hundred. They pound their chests in unison on every beat. They build a rocket together, some carrying crates overhead, some hammering while welding sparks fly. They count down, every one of them jumping with both arms raised. They launch. They ride a million tiny rockets through deep space in a choreographed four-beat dance, a hero bunny with a crown front and center, cycling through smirks and wide-eyed surprise. Then, over the pad's dying fade, Daniel's British narrator voice delivers one deadpan word that names the entire cast.
This is the companion piece to Plan 9 Rap Battle. Where the rap battle was 128 seconds of Ice Cube-delivered autotuned aggression, Arp Cathedral is 249 seconds of patient Eric Prydz "Opus"-shaped trance — same Glenda bunny, same Bell Labs lineage, different emotional register. Joy, not grit. Congregation, not solo. It is about what happens when many things move together while each is still itself.
The Film
Seven acts, each aligned to a pattern boundary in the ChipForge score. No act transitions fight the music.
0:00-0:08 Intro. Dark starfield. A pulsing green "alien" pinpoint in the upper right. Title cards fade in: "PLAN 9 AND FRIENDS" / "ROCKET TRAVELERS EXTRAORDINAIRE." Night-ambient audio layers synthesized crickets (4800 Hz and 6000 Hz sines with fast tremolo, 90 Hz frog drone with slow tremolo) with discrete FM-pulse chirp clusters drifting across the stereo field.
0:08-0:38 Pad and bass. One bunny silhouette stands in the blue cathedral light. The first bass pulse at 0:23 triggers the first slow chest-pound. By 0:38 there are three bunnies, pounding on every other beat.
0:38-1:47 The congregation. The kick enters. The filter-opening supersaw arpeggio begins unfolding. The crowd fills back-to-front across seven depth rows, scale 18 in the far distance to scale 68 in the front. By 1:47 there are over 150 bunnies, each with a seeded dance style: chest pound, one-handed fist pump (left or right), alternating fist pump, both-hands cheer, vertical jump, foot tap, left or right point. Accessories appear on about 40 percent of visible bunnies: bowties, headphones, monocles, crowns, medals, scarves. A sweeping spotlight passes left to right every eight seconds. Rising multi-color confetti sparks grow in density. A stadium wave travels through the crowd every eight beats. From 1:25, a few preview crate carriers begin walking across the stage, hinting at what comes next.
1:47-2:05 Rocket construction. The micro-drop hits and the rocket begins building itself tail-first from zero to one hundred percent completeness. Ten carrier bunnies march in and out carrying crates, staggered on six-second loops. Six stationary builder bunnies at three heights on the rocket do a hammering motion, arms up on the beat. Weld-spark bursts erupt on peak beats. A stack of crates at the base grows with completeness.
2:05-2:20 Boarding. Two marching lines of bunnies shuffle toward the rocket from both sides. Pre-ignition smoke builds at the base. Engine pre-glow warms up.
2:20-2:50 Final countdown. The golden drop lands exactly when it should. Daniel's voice counts down from ten at three-second intervals. Every bunny in the scene overrides their seeded dance to JUMP with both hands raised — unison override. Camera shake grows with each number. "Liftoff." lands precisely on F_LAUNCH at 2:50.
2:50-3:03 Liftoff. The rocket rises, accelerating. Heavy smoke trail. Atmosphere gradient transitions from orange at the base to deep space at the top. Ground bunnies still pound, now receding and shrinking as the camera tracks up.
3:03-3:48 Interstellar. Six parallax layers of rockets with bunny riders fill the starfield. At 3:10, the crowd locks into a synchronized four-beat dance: CHEER → POUND → FIST_R → FIST_L, all bunnies in sync. At 3:20, a second hero bunny fades in, joining the first, each playing to a different side of the audience, expressions staggered by two bars. Fireworks burst every four seconds in gold, pink, cyan, green, and orange. Bar-downbeat word flashes pop in rotating corners: "GO!" "UP!" "YES!" "HEY!" "FLY!" "YEAH!" Daniel delivers two mantras in the spaces the music gives him: "Among the stars, together." and "In unison, forever."
3:48-3:58 Outro. "A NAPKIN FILMS PRODUCTION." A tiny bunny peeks up from the bottom-right corner. Daniel says one word. Silence.
The Hardest Problem: Unison with Personality
The original brief was "all in unison — the chest-pound is the point." A later brief evolved: "unique and move differently but all in sync since timing is everything. so many bunnies, so many personalities and flavors!"
Those sound contradictory. They are not. The resolution — the single technical insight that made the whole film work — is: different poses, same beat-weight curve.
def _beat_weight(frame, divisor=1):
phase = beat_phase(frame, divisor)
w = (math.cos(phase * 2 * math.pi) + 1.0) / 2.0
snap = math.exp(-((phase if phase < 0.5 else phase - 1) * 8) ** 2) * 0.15
return min(1.0, w + snap)
Every dance style — chest pound, one-hand fist pump, alternating fist pump, both-hands cheer, jump, foot tap, point-left, point-right — is lerp_pose(rest, peak, w) against this same curve. At phase 0, the beat impact, every bunny reaches its peak pose, no matter which peak pose it picked. At phase 0.5, between beats, every bunny is back in its rest pose. The crowd breathes together while each individual does its own move.
Distribution is tuned so chest-pound stays dominant (25 percent) — the film's signature gesture still reads from any shot. One-handed fist pump is next (24 percent, split left and right). Alternating fist pump (10 percent) swaps sides each bar for a more natural party-bro feel. Twelve percent do the both-hands cheer, eight percent jump, eight percent foot-tap, thirteen percent point. Every bunny still peaks on the beat.
Two Phase Overrides That Turn the Crowd Into a Character
Pure per-bunny dance is organic but never unified. Two moments needed the crowd to act on purpose — where they all suddenly do the same thing.
Countdown (2:20 to 2:50). Every bunny overrides their seeded style and leaps with both arms up in the JUMP pose, with a fourteen-pixel body-lift on peak. The brief was five exclamation marks worth of clear: "right before takeoff they all should be jumping and raising both hands excited this is countdown!!!! INTERSTELLAR!"
Choreographed finale (3:10 to end). A synchronized four-beat sequence: CHEER → POUND → FIST_R → FIST_L, all bunnies in sync. K-pop-style unison close. Plus a single large hero bunny in the foreground — crown on its head, feet running below frame — cycling facial expressions once per bar (neutral → smirk → shocked → sarcastic), alternating which side it faces every two bars. At 3:20, a second hero bunny joins, expression cycle staggered by two bars. Two performers playing off each other over a field of dancing rockets.
The crown was a gift from the seeded accessory system — row=101 happened to hash to "crown" for that position, so the hero gets one for free. Production lesson: seeded randomness is a feature. Sometimes you pick the seed until the hash lands where you want.
The Score: Arp Cathedral in the Shape of Eric Prydz "Opus"
ChipForge produced the score in one pattern: fifteen 15.24-second patterns in F minor at 126 BPM, totaling 228.57 seconds. The harmonic cycle is Fm → A♭maj → D♭maj → E♭maj (i → III → VI → VII), the classic minor-lift progression that holds tension in the i and releases through the major chords above.
The DNA distilled from Prydz's "Opus" (no sampling — original composition in the style):
- Patient build. The signature 16th-note detuned-supersaw arpeggio does not enter until pattern 3 (45 seconds in), and does not hit full brightness until past the midpoint.
- Three arp instruments.
arp_dark,arp_mid,arp_bright— the engine swaps between them to simulate the slow filter-cutoff sweep without actually automating a filter. - Cathedral supersaw pad. Holds each chord for the whole bar, heavy reverb (0.65 on the pad channel), circle-breathing stereo automation.
- Low-in-mix kick. Prydz never lets the kick dominate. It is the anchor, not the event.
- Harmonic drop, not bass drop. At pattern 9 — the golden point, 0.618 of total runtime, which lands at 141.3 seconds — the arp, pad, and bass all lock in together. No sub-bass drop. The harmony does the lifting.
- One main arrival. Variations after. Pattern 9 is the peak. Patterns 10-11 sustain and extend the main melody. Patterns 12-14 cool down with descending top-lines and fading arp.
Spatial automation runs under the whole piece: the pad circle-breathes throughout, the arp escalates from static to orbit to figure-eight at the drop, kick and bass stay centered as anchors, the shimmer-bell spin-accelerates from the golden point to the outro.
The Voice
Daniel. macOS built-in narrator_cinematic voice. Zero dollars, zero API calls. But run through a two-tap cathedral reverb chain (80 ms and 160 ms delays at 0.22 and 0.10 decay, with high-pass at 80 Hz and low-pass at 10 kHz). The voice reads fully — each word is intelligible — but sits back in the mix and expands wide in the stereo field. An earlier pass used four long delay taps out to 560 ms; the tails ran into each other and the final word got buried. Shorter taps read cleanly.
Daniel's lines in order:
- Countdown at 2:20-2:50, eleven beats at three-second intervals: "Ten. Nine. Eight. Seven. Six. Five. Four. Three. Two. One. Liftoff." The last word lands precisely on F_LAUNCH.
- Mantra 1 at 3:03: "Among the stars, together."
- Mantra 2 at 3:38: "In unison, forever."
- The Close at 3:58: one word.
The Close
First pass ended with Daniel saying "A Napkin Films production. Plan 9. Certainly." Two bits of brand-signature.
The direction pushed back. "Don't have Daniel say 'a napkin films production' or 'plan 9 certainly.' Maybe just one word to close it all. Something grand and definitive. And open-ended. Be philosophical."
Then, after a test of "Begin.", the reverb washed it out and a second review asked for "something worth saying, or at least ironic. Or tongue in cheek or off the wall funny."
The chosen word: "Bunnies."
Grand by being ungrand. After all the cathedral and the rocket and the interstellar choreography and the crown-wearing hero, Daniel flatly names the entire cast in one deadpan word. It is the narrator breaking character at the end. It earns a smile. It tells you exactly what you just saw.
The Alien-Cricket Intro
The intro opens on eight seconds of night-ambient before the music enters. Two layers stacked:
Base (continuous drone). Three ffmpeg lavfi sine layers — 4800 Hz cricket with fast tremolo, 6000 Hz cricket with slightly different tremolo, 90 Hz sine with slow tremolo for the frog drone — plus one subtle 320 Hz phaser-swept tone for the "alien" twist. This recipe was ported byte-for-byte from the finalmix script for Plan 9 Rap Battle, which used it at the intro and outro to good effect.
On top (discrete chirps). ChipForge's songs/stranger-things/007_intro_chirp.py extended to eight seconds. Fifteen chirp clusters — groups of two to four short FM pulses with per-pulse alien warble (80-140 Hz wobble, 25-65 Hz depth) — scattered across the stereo field with per-cluster panning from minus 0.8 to plus 0.8. Each pulse is bit-crushed to five bits, soft-distorted, tape-saturated with flutter, low-passed at 8.5 kHz. A quiet LFO'd tape-noise bed sits underneath for the alien-radio undertone.
Together: a continuous night-ambient drone with irregular alien chirps floating across the field. Same as the opening of Stars Press Start, where this exact ChipForge recipe originated.
The Stack
- Animation: Python + PIL. Plan 9 bunny stick figures drawn frame by frame at 854x480 and 12 fps. Seven-row non-overlapping depth grid for the crowd. Opaque fur-filled head masks so overlapping bunnies do not show through each other. Per-bunny seeded accessories, dance styles, expressions.
- Music: ChipForge. One score in the shape of Eric Prydz "Opus" — F minor, 126 BPM, 15 patterns, arp escalation, cathedral pad. Plus one ChipForge chirp stem for the intro.
- Voice: macOS
say(the Daniel cinematic voice,narrator_cinematicpersona), two-tap cathedral reverb in the finalmix. - Chant layer: macOS
say "hey"at fast rate looped at 126 BPM, volume-enveloped to fade in with the crowd, duck under voice, return in interstellar. Pullback-able via a single env var. - Assembly: FFmpeg. Five-stem finalmix — voice with reverb, music with adelay and ducking windows, lavfi intro bed, ChipForge intro chirp, chant loop. Auto-archive runs at the tail of every mix so nothing silently overwrites.
- Direction: Claude Code, Opus 4.7, agent mode, one afternoon of directed iteration.
No GPU. No subscriptions. Zero API costs. Nothing in the film is sampled.
The Easter Eggs
If you freeze-frame during the interstellar act:
- The "P9" constellation spelled out in the star field, upper right, gently pulsing.
- Comets streak diagonally across the frame every roughly 15 seconds.
- Heart-eyes bunnies (about 3 percent of the crowd, seeded by position hash) have pink heart-shaped pupils instead of dot pupils.
- Accessories on roughly 40 percent of visible bunnies: bowties, headphones, monocles, crowns, medals, scarves — all seeded by the bunny's row and x position. Never change between frames. The same bunny always wears the same accessory.
- The crown on the hero foreground bunny for the final 40 seconds, plus a different accessory on the second hero who joins at 3:20.
- A single alien pulse — a green pinpoint blinking in the upper right during the intro, matched to the alien tone in the ambient track.
- A tiny bunny peeking up from the bottom-right of the Napkin Films end card. You almost miss it. It is watching you.
What This Proves
Plan 9 Rap Battle, released on the same day, tested whether the autotune pipeline could carry a short aggressive rap over a harpsichord-trap beat. It almost works — the pocket is solid, the autotune gives melodic contour the performance does not earn. Arp Cathedral tests a different question: whether a single scene file plus a single ChipForge score can carry 249 seconds of synchronized-but-individual crowd animation with minimal voice, minimal camera work, and no edits to the score. Can the scene breathe with the music if the visuals sit in the music's existing pockets?
The answer is yes. The per-bunny dance-style system means every one of 150+ bunnies has personality, but they all peak on the same beat, so the crowd reads as one organism. The two phase overrides — countdown and finale — turn that organism into a character when it counts. The one-word close ("Bunnies.") is, appropriately, the film commenting on itself.
The Lineage
If you want the full origin story of the Napkin Films stack, Four Films From Code covers how the architecture works and why constraint is the feature. Stars Press Start walks through 21 passes of TTS voice engineering and introduced the ChipForge Stranger Things intro-chirp that Arp Cathedral now uses. The Reckoning is the ten-minute theological tribunal. I Want to Be Martian is the Bradbury tribute with three voices and a Holst-Mars ostinato. Deduct Yourself proved double-time rap delivery at 10 passes. The rap battle Plan 9 Rap Battle is the companion to this one. The Agentic Development post explains the agent mode workflow underneath all of it.
Watch Arp Cathedral on YouTube. The engine is open source (GPL-3.0). The film is Creative Commons (CC BY 4.0). The ChipForge scores are CC BY-SA 4.0.
License. This film is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). Share, adapt, and use commercially with attribution to "Organic Arts LLC" and a link to the original. Engine code is GPL-3.0-or-later. ChipForge music is CC BY-SA 4.0. No samples used. All audio procedurally generated. Contact: j@organicartsllc.com
Produced with Napkin Films and ChipForge, open source tools built by Joshua Ayson and AI agents at Organic Arts LLC.