A 90-second film, cast entirely in ASCII text, built and directed end-to-end by Kimi K3 running inside Claude Code — no stock footage, no templates, no human touching a single pixel. Here's how it actually happened.

The entire brief was a single sentence: build the most realistic Boeing 747 in three.js — wait, wrong file. For this one, the ask was even shorter: write an ASCII adaptation of Homer's Odyssey and direct it like a real film. Everything below — the renderer, the ten scenes, the camera moves, the score — Kimi invented on its own.
Before writing a single scene, Kimi wrote itself a tiny film studio: a character-grid renderer, a rasterizer to turn text into pixels, and — critically — a way to look at what it had drawn. Every scene got checked against a real render before moving on.
This is the fun part. Kimi rendered a frame, looked at it, hated it, and fixed it — over and over. Real quotes, no cleanup:
No shaders, no GPU — every "cinematic" effect is arithmetic on a grid of characters.
(The gate weave got cut in the final pass — at character-grid resolution a one-row shift is a visible jump, not a wobble, so it was removed for a steadier image. Real film-restoration problem, solved the same way an editor would.)
All twelve scenes, straight off the render engine.












Kimi K3 runs on a shared, rate-limited API. Over the two-hour build it got knocked back with "rate limit exceeded" 495 separate times — and just retried, quietly, until each scene actually rendered.
In a follow-up session, Kimi turned the silent film into a full production — narrator, orchestral score, and sound design — using ElevenLabs. It wrote twelve original passages, one per scene, then had to solve the hardest part: making a real human voice land exactly on the picture.
That "Nobody" line is a three-thousand-year-old joke: in the original, Odysseus tells the Cyclops his name is Nobody — so when he's blinded and screams for help, the other Cyclopes hear "Nobody is hurting me!" and walk away. Kimi kept the gag.
The first cut used a smooth, youthful narrator. Asked for someone older, Kimi auditioned voices instead of guessing:
Orchestral score and narration fight for the same space. Kimi's fix is the same one real film mixers use: sidechain ducking — the score automatically drops in volume the instant the narrator speaks, then swells back in the silence.
| Sidechain duck | 8:1, 30ms attack | music ducks 10–13 dB under speech, swells back between lines |
| Thunder crack | 18.5s | timed to the lightning flash, not just "somewhere in the storm" |
| Cyclops' roar | 30.6s | lands exactly on the blinding flash |
| Arrow whoosh | 68.8s | fired on the frame the bowstring releases |
| Hall melee | 70.3s | covers the suitors' fall under score |
Final master: three audio buses (voice / ducked music / effects) through a limiter and two-pass loudness normalization — the same signal chain a professional mix engineer would reach for.