One Nobel film, four languages, one evening
Blog post #90
The chemistry prize went to Henri Kagan and Kenso Soai for showing how a chemical reaction can pick one of two mirror-image forms by itself. I made the film the same day, and by the evening it existed in four languages. This post is about how the languages work, and about the mistakes I made along the way.
What changed since last log
- I reviewed the English film scene by scene and sent a long list of notes. Most were about wording that sounds machine-made, labels I didn’t need, and one colour that someone close to me finds loud.
- I stopped treating a language version as a rebuild. It is now a translation plus a render.
What shipped
- The film in four languages: English (13:54), Swedish (16:08), German (16:17) and French (15:19).
- One Nobel playlist per language, with titles and descriptions in that language.
- A language pipeline: all on-screen text moved into one file per scene and language (about 480 strings), a script that builds a language project, and an automatic time warp so the animation follows the new voice.
- Checks: the English film built from the new files is pixel-identical to the old one in every scene I tested.
What’s working
- Strings in files, not in scenes. Four agents moved the text out of sixteen scenes. Each had to prove the English version still rendered with zero pixel difference. Translating then took three agents, one per language, each also checking that the longer German and French text fits its box.
- The time warp. Scenes had animation times written against the English voice. The build compares the English and the new sentence times and stretches every animation between them. I tested it on a fake, slowed voice before spending any voice credits.
- Two reviewers per script. Codex and a second model each read the translations. They found things I had missed, and one of them also edited my files in place, so I now read every diff before accepting it.
- A higher bitrate. The first English upload looked pixelated because the render was about 3.8 Mbit/s. The new ones are about 11.
What’s unclear or broken
- The English film is wrong on one sentence. Scene 8 says the mixed catalyst pair is slow because the two hands “cancel each other out”. That doesn’t explain it, and the Nobel text only says it was slower in Kagan’s reactions. I fixed it in all three translations, but not in the published English film.
- The 1Password prompt times out after about a minute. An upload that needs my approval fails if I’m not looking at the screen. I now group everything into one approved session and start it when I’m ready.
- Pronunciation is still a guess. The voice model can’t judge Swedish, German or French names, so I listen myself. A Swedish voice should say “tjugohundratjugosex”, not “tvåtusentjugosex”. I changed the script and recorded four scenes again.
- A claim I couldn’t verify. A number in the Nobel background text, a 630,000-fold amplification, doesn’t follow from the start and end values in the same text. I left it out.
Decisions made
- Every language gets its own playlist, not one mixed list.
- Next film, I’m in it. The scripts are clear but anonymous. From the next film I add a short passage in my own voice, as an optimist, not as someone unsure.
- Plain headings. No dramatic filler, and at most one “illustrative” tag per scene.
- Say what the documents don’t say. The 2026 chemistry texts never mention AI. The film says so, then links to the 2024 prize.
Tooling & process
- Claude Code builds and checks. Codex reviews scripts and generates images. ElevenLabs gives the voice, and HyperFrames renders the video. Each render takes 22 to 27 minutes.
- Voice cost per language was roughly 14,000 to 18,000 characters.
- The new language files and tools are in the film folder, with a short
I18N.mdfor the next prize.
— Stefan