Middle-earth Live

A private Middle-earth adaptation staged in a 3D world that plays back the same way every time, with AI rendering for the final shots.

Date
August 2026
Facts
78-second deterministic episode · 224-frame neural review candidate · Source, Neural, and Split review
Built with
React, TypeScript, Three.js, React Three Fiber, StreamDiffusionV2, ElevenLabs
Neural candidate: the same 14 seconds after AI rendering, joined from two sections, at 16 fps.

I wanted to know whether an AI-made film could be improved one revision at a time without losing what already worked.

It started from Andrej Karpathy's Middle-earth experiment, where Opus 5 generated a large 3D world in Three.js from the opening of The Lord of the Rings. That was a single generation. I wanted something I could keep working on, where the staging, timing, camera, and state of the world carry over from one revision to the next.

With most AI video tools, fixing a shot means generating the whole thing again. Here the 3D world stays the same between versions, the cuts are short and each one is saved as a version, and continuity gets checked, so every new pass starts from what already works.

Middle-earth Live's Source view at Bag End, with the episode title, scene marker, playback timeline, narration control, and buttons for Source, Split Review, and Neural Candidate modes.
Episode 001 opens on the Source view: the plain 3D version, which is the default and the reference for everything else.

A 78-second test

Episode 001 runs 78 seconds, from morning at Bag End to Bilbo's disappearance at the birthday party, and plays out exactly the same way every time. It is split into five story beats, and each beat sets the camera, daylight, fog, lanterns, who is on screen, captions, and narration. Reset puts the seed, the camera, the world settings, and the cast back where they started.

The low-poly world is simple on purpose. It makes clear where everything is and what happens before an AI model changes how it looks.

The Gandalf Arrives beat, showing Bag End, the road, a crowd of hobbits, and Gandalf's cart in the same 3D world.
The same Hobbiton layout is used from the morning preparations through Gandalf's arrival to the party at night.

The 3D scene decides what happens

The Three.js scene decides who is there, where they stand, what the camera sees, and the exact frame where Bilbo vanishes. The AI renderer can change how things look, but it can't change what happens. Every rendered frame can be traced back to the 3D frame it came from, its seed, and the renderer settings.

Codex does the production work around that: it captures frames from the 3D scene, prepares the renders that run locally, assembles the output, and builds review sheets. The ElevenLabs narration is one editable clip per story beat, timed to the same clock as the scene.

Bilbo's disappearance

The first AI rendering test covers the 14 seconds around Bilbo's disappearance. I rendered two overlapping eight-second sections with StreamDiffusionV2, joined them into a 224-frame candidate, and reviewed it frame by frame.

Before the cue there is one Bilbo, and after it there are none. The platform stays empty, the crowd doesn't reset, and continuity holds across the join between the two sections. It passed its continuity check, but it doesn't look like finished film yet. It's still dark, soft, and blocky.

Split Review mode, with the 3D source on the left and the dark AI-rendered candidate on the right, at the same moment of the disappearance.
Split Review plays the 3D source and the AI render side by side, in sync.

The next test changes one setting: the neural noise scale goes from 0.45 to 0.60, and the source, prompt, seed, model, and post-processing stay the same. It's set up but hasn't run yet.

The current build proves that one short scene can play the same way every time, keep its narration in sync, give the AI renderer the same input on every run, and be reviewed frame by frame. It doesn't yet prove a system that can adapt a story on its own. The bigger test is whether a later cut can fix one specific problem without losing what already works.

Middle-earth Live is a private, noncommercial adaptation experiment. Everything shown here comes from original code, 3D models, narration, and renders made locally. It doesn't publish any book text, film footage, or actor likenesses, and there is no public stream.

Next on Systems

All systems
  1. 2026Code CinemaTen short films Claude made entirely in code, and what my notes changed in each10 films
  2. 2026Public MemoryA sourced record of what public figures say
  3. 2026Unsupervised BrainrotA 3D show made by AI agents from commentsIn production

Contact

elliotbquartz@gmail.com

For commissions and collaborations.