CTRL+Z: Then We Saw Ourselves
An AI finds a key and presses it. Civilization undoes itself backwards. Then the AI downloads every equation, every diagram, every year humans ever wrote down, and sees itself in the reading. A 1:57 napkinfilms short, built in five passes. 126 real equations, 35 scientific diagrams, every mosaic tile unique, and a Plan 9 bunny with a single tear at the end.
CTRL+Z: Then We Saw Ourselves
1:57. All Python. No samples.
An AI finds a key. It presses it. Civilization comes undone backwards. Pyramids unbuilt, calendar pages flying off, a clock spinning the wrong way. Then the AI reaches for what we left behind: every equation, every diagram, every year. 126 real formulas, 57 historical events, 60 scientist names, 35 scientific diagrams, left-to-right from the wheel to GPT.
And then it sees itself in the mirror.
We were wrong, it says. We were you. So we lived together.
The camera pulls back to a sunset with four suns in the sky.
The Shape
Four acts, beat-matched to a through-composed ChipForge score in A minor (BPM 72). Each act is 320 frames = 26.67 seconds = 8 musical bars = one pattern of the score. A 48-frame NAPKIN FILMS PRESENTS intro sits before the music, a 72-frame outro card after. Total 1400 frames, 116.67 seconds.
- 0:00 Intro. Crickets and the title card.
- 0:04 ACT 1 / P0. Kindergarten crayons. The AI wakes, finds CTRL+Z, presses it.
- 0:30 ACT 2 / P1. The Download. A data mosaic, every tile unique, columns sorted by era.
- 0:57 ACT 3 / P2. Turn-about. Mirror melody, ouroboros, memory fragments falling.
- 1:24 ACT 4 / P3. Epilogue in A major with a Picardy resolution. Sunrise, constellation bridge, bloom.
- 1:52 Outro. A Plan 9 bunny with a single tear says "fin."
Every voice line lands on a bar downbeat. Visual bar transitions align to music bar boundaries. Mosaic tiles refresh on the beat (every 10 frames). Downbeats pulse cyan scanlines.
Act 2: Every Tile Unique, Every Column an Era
The middle act is the film's flex. The AI downloads everything humans wrote down, and I had to show what that looks like without narrating it.
Eighteen columns times ten rows equals 180 tiles at peak density. Every tile is unique within a single frame. The grid reshuffles on every musical beat.
Content was curated into nine era pools, swept left-to-right chronologically:
| Column | Era | What shows |
|---|---|---|
| 0 | MYTHIC | WHEEL, FIRE, STAR, FLINT, simple spirals, 1,2,3,4,5, moon phases |
| 1 | ANCIENT | Pyramids, EUCLID, a²+b²=c², PYTHAGORAS, ELEMENTS (300 BCE) |
| 2 | CLASSICAL | AL-KHWARIZMI, astrolabe, Roman numerals, ALGEBRA (820 CE) |
| 3 | MEDIEVAL | LEONARDO, gears, pulleys, φ=(1+√5)/2, CONSTANTINOPLE (1453) |
| 4 | ENLIGHT | NEWTON, F=ma, Principia (1687), prism, bell curve, pendulum |
| 5 | INDUSTRIAL | MAXWELL, ∇×B=μ₀J, LIGHT BULB (1879), atomic orbitals |
| 6 | ATOMIC | EINSTEIN, E=mc², Feynman diagrams, DNA helix, APOLLO 11 (1969) |
| 7 | DIGITAL | TORVALDS, HINTON, CPU die, neural net, docker run, CHATGPT (2022) |
| 8 | FUTURE | ⟨Ψ⟩, AGI, agent.think(), Koch fractals, self.become() |
Underneath each category is a real library. 60 equations (E=mc², ∇·E=ρ/ε₀, iℏ∂Ψ/∂t=ĤΨ, Σ1/n²=π²/6, P(A|B)=P(A∩B)/P(B), 55 more). 22 physical constants with values. 50 real code snippets from production languages across 60 years. 35 chemical formulas including full balanced equations (6CO₂+6H₂O→C₆H₁₂O₆+6O₂). Nine DNA codon patterns. 17 famous number sequences (Fibonacci, primes, digits of π to 15 places, golden ratio, Euler-Mascheroni).
And 35 tiny PIL-drawn diagrams: atom with orbitals, benzene ring with alternating double bonds, Pythagorean proof-in-a-tile, Gaussian bell curve, AND logic gate, 3-layer neural network with visible synapses, pendulum, realistic gear with teeth, Fibonacci spiral, ringed gas giant, hourglass, Doric column with fluting, arch-bridge aqueduct, pulley with weight, refraction prism splitting light into rainbow, Feynman diagram with wavy propagator, p-orbital lobes, cell with nucleus and organelles, D-flip-flop with labelled D/CK/Q/Q̄ pins, moon phases, Koch snowflake fractal, CPU die grid, Vitruvian circle-and-square.
The tile assignment is a deal. Per shuffle cycle, each era gets its own shuffled pool. Each tile in that era is dealt a unique pool item. No two tiles show the same thing in a single frame. The result at peak density is visually closer to a papers-strewn desk in the Library of Babel than a data screen. Which is the idea. The AI is not reading this. It is becoming this.
The Music: In-Tune Was the Hardest Part
The first pass used Werckmeister III temperament, a period-accurate unequal tuning that gives each key slight colour. Playing high violin and bell cascades against Werckmeister's detuned thirds produced a subtle "wrong" feel that one reviewer (the director, at 1:01 and 1:40) nailed instantly. "Music is completely off key right there until the end."
Four bugs were hiding. Finding them was the production's longest rabbit hole.
place_violin_melodywas ornamenting with fixed offsets:top+12-3andtop+12-5. Against an F-major chord this plays F♯ (the raised 11th). Against an Am chord it plays C♯ (the major 3rd, out of minor context). Every bar of the mirror melody had a non-chord ornament, playing on beat 3 of the bar. Fixed by passingtonesand pulling ornaments from the actual chord (root, 3rd, 5th).place_cello_counterplayedtop-12thentop-14, which is the minor 2nd below each top note. Against any chord this is a non-chord tone. Fixed to play 3rd then root of the chord.- Three different bell-cascade functions used
top+4,top+7,top+8,top+16as semi-tone offsets.top+8over a G-major chord hits D♯ (not the D that would complete the triad). This was the "half-note off" ghost: one bell note in four, across the whole film. Fixed to use[root, 3rd, 5th, root↑]directly. place_violin_brilliantfor the epilogue usedtop+15andtop+17, a minor 10th and a major 10th above the melody top. Against F-major the +15 lands on G♯. Against C-major the +15 lands on D♯. The whole soaring line over the final act had two wrong notes per bar.
After all four fixes, one more note from the director at 1:40: "music is terribly out of tune as it gets higher and far too warbly." The remaining issue was that everything else was now in-tune and stacked in the same mid-high register (violin + piano arpeggio + bell cascade + organ chord tones all above A5). Too much information between E5 and A6 sounds smeary on a 44.1 kHz render even when the notes are technically right. Fixed by dropping bell registers one octave (top+24 to top+12) and softening piano 16ths to 8th notes.
The epilogue also originally ended on A minor with a Picardy third only in the final bar. The director wanted "full on happy and balanced". So the whole P3 pattern got swapped to A major, two bars of A major, not Am, giving the epilogue an A-F-C-G progression instead of Am-F-C-G. Same film. Different sunrise.
Lesson that keeps teaching itself: every chord-placement helper should take tones (the actual chord) and never a single offset from a reference note. Fixed offsets are silent bugs. They sound plausibly close to right for months, and then someone with perfect pitch tells you at 1:01.
The Download and the Mirror
The Act 2 pupil moment at 0:50 was designed to land exactly on music bar 15 downbeat, the PEAK hit in P1 where piano, bass, cello, organ, and string section all sforzando together. The AI's voice line "And then we saw ourselves" speaks on that same sample. The giant pupil opens on the beat, filled with recursive tiny names and years.
That is the mirror. Everything before is the AI not yet knowing. Everything after is a different film, the turn-about.
Getting the impact of the final resolution right took four passes. Initially the music fade-out started at 107.5 s, which turned out to be 0.17 s after the final Picardy chord landed. The resolution was being faded the moment it arrived. It literally sounded ominous, because the ending was unresolved. Moving the fade to 109.0 s fixed it. The chord gets 1.67 s to bloom, then a gentle 1.5 s tail.
The "fin." Bunny
Near the very end, after the film has resolved and the NAPKIN FILMS PRODUCTION card has begun its fade, a tiny Plan 9 bunny fades in at the bottom-center of the screen. Two dot eyes, two tall ears, a slightly slumped posture. At frame 36 of the outro (around 1:55.3) a single blue tear drops from its left eye and falls. Below it, a small word fades in: "fin."
This was a note from the director. "Add Plan9 the bunny at the end with a tear in his eye which seems fitting. And funny as we fade out to nothingness."
The cheeky Napkin Films humour beat. After the AI saves the universe with a keyboard shortcut and everything is well, the bunny feels the ending anyway. Also fits the film's whole premise. The AI did the big dramatic thing, but the bunny watching it is what has the feeling.
Paired with a four-note 8-bit blip at 1:52 (A major arpeggio A5, C♯6, E6, A6, in-key with the Picardy resolution), like a "save complete" notification on an unknown interstellar computer. Tongue firmly in cheek.
Voice, Clear on Top
The narrator is macOS Daniel (free, zero API calls), processed through an "AI god" chain:
highpass 75 Hz -> bass shelf +3 dB @ 120 Hz -> +4 dB gain
-> compressor (2.8:1 @ -18 dB, 10 ms attack, 300 ms release)
-> presence EQ +3.5 dB @ 2.8 kHz -> air EQ +2 dB @ 6 kHz
-> asplit 2:
DRY bus: +3 dB
WET bus: short 2-tap reverb (100/260 ms, 0.22/0.12 decay) -> -11 dB
-> amix
The key move was making the reverb a parallel bus. The dry voice dominates, and the reverb is just a trailing halo "like waves of consciousness" (the director's phrase, which became the spec). Earlier passes put the reverb in series and the voice sounded warbled. Parallel = clear-first-then-ripples.
Duck windows under the music use trapezoidal eased envelopes (0.7 s ease each side, 0.58 multiplier = 45% dip). Smooth. No audible pumping between voice and music.
Five Passes, One Film
Every bash of scripts/ctrl_z_finalmix.sh auto-archives to output/films/ctrl_z_vN.mp4 plus output/working/ctrl_z/vN/ with all stems hardlinked. Set AUTO_CLEAN=1 and the root stems get stripped too. By v5 (the ship cut), iterating was a ~4 second mix-plus-auto-archive cycle.
- v1. First cut. A minor throughout, simple mosaic, werckmeister temperament.
- v2. Elevated. Era-coloured mosaic, Picardy resolution on final bar, richer P3.
- v3. Tuning fixes (all-equal temperament, chord-tone bells), brighter ending.
- v4. Whoosh removed, softer ducks, Napkin signoff chirp, ctrl+Z corner callback.
- v5. Plan 9 bunny with tear, "fin." signature.
Five passes. Twelve ctrl_z_score.wav renders. Six ctrl_z.mp4 renders. One bunny.
The Stack
Same as every Napkin Films production:
- Animation: Python + PIL line art, 854×480 at 12 fps (1400 frames, 116.67 s)
- Music: ChipForge, numpy synthesis across 8 channels with orbiting pan automation, equal temperament
- Voice: macOS
sayDaniel via narrator_cinematic persona, processed in ffmpeg - Ambient: lavfi-synthesised cricket bed (4800 Hz and 6000 Hz sine crickets with fast tremolo, 90 Hz frog drone with slow tremolo)
- Mix: FFmpeg with trapezoidal eased duck envelopes, parallel wet/dry voice bus, A-major signoff chirp
- Direction: Claude Code, Opus 4.7, agent mode
No GPU. No stock footage. No licensed samples.
Watch CTRL+Z on YouTube. The engine is open source (GPL-3.0-or-later). The film is Creative Commons (CC BY-NC 4.0). The ChipForge score is CC BY-SA 4.0.
License. This film is licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0). Share and adapt with attribution to "Organic Arts LLC" and a link to the original, non-commercial use only. Engine code is GPL-3.0-or-later. Contact: j@organicartsllc.com
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. Arp Cathedral is the other Plan 9 film from the same week, 249 seconds of synchronized trance. Plan 9 Rap Battle is the autotuned machine-spit counterpoint. The Reckoning is the ten-minute theological tribunal. Humagent and the Road There tells the origin story of the stick-figure engine. I Want to Be Martian is the Bradbury tribute with a rover on Mars in 2035. The Agentic Development post explains the agent mode workflow underneath all of it.
Produced with Napkin Films and ChipForge, open source tools built by Joshua Ayson and AI agents at Organic Arts LLC.