Elliot Quartz

Middle-earth Live

A private Middle-earth adaptation built in a deterministic 3D world, with AI rendering for final shots.

August 2026 · Software / systems · AI Film, Three.js, Generative Video

78-second deterministic episode · 224-frame neural review candidate · Source, Neural, and Split review

A low-poly view of Bag End in the deterministic Middle-earth Live source world.

I wanted to know whether an AI movie could get better without forgetting what it had already solved.

The project grew from Andrej Karpathy's Middle-earth experiment, where Opus 5 generated a large Three.js world from the opening of The Lord of the Rings. I wanted to turn that kind of one-off generation into a production system that could keep its staging, timing, camera, and world state between revisions.

Most AI video workflows reroll the whole shot. Middle-earth Live uses one persistent 3D world, short versioned cuts, and continuity checks so each new pass starts from decisions that already work.

Middle-earth Live source broadcast at Bag End with episode title, scene marker, playback timeline, narration control, and Source, Split Review, and Neural Candidate modes.
Episode 001 opens directly into the source broadcast. Source 3D remains the default and canonical view.

A 78-second test

Episode 001 is a reproducible 78-second sequence from morning at Bag End to Bilbo's disappearance at the birthday party. Five story beats control the camera, daylight, fog, lanterns, cast, captions, and narration. Reset returns to the same seed, camera, world values, and cast.

The low-poly world is intentionally simple. Its job is to make the geography and action unambiguous before a generative model touches the image.

The Gandalf Arrives beat in Middle-earth Live, showing Bag End, the road, gathered hobbits, and Gandalf's cart in the same persistent source world.
The same Hobbiton geography carries from morning preparations into Gandalf's arrival and the night party.

Source first

Three.js owns the story. It decides who is present, where they stand, what the camera sees, and the exact frame where Bilbo vanishes. The neural renderer can change the appearance, but it cannot rewrite the event. Every rendered frame remains traceable to its source frame, seed, and renderer settings.

Codex runs the production loop around that rule: capturing source frames, preparing local renders, assembling the output, and building review sheets. ElevenLabs narration is stored as one editable clip per beat and follows the same story clock.

Bilbo's disappearance

The first neural test covers the 14 seconds around Bilbo's disappearance. I rendered two overlapping eight-second windows with StreamDiffusionV2, assembled a 224-frame candidate, and reviewed it frame by frame.

Bilbo remains singular before the cue and absent afterward. The platform stays empty, the crowd does not reset, and the join holds. The candidate passed its continuity check, but not as final movie imagery. It is still dark, soft, and blocky.

Middle-earth Live in Split Review mode, with deterministic source truth on the left and the dark neural candidate on the right at the same disappearance moment.
Split Review keeps source truth and neural appearance synchronized on the same story clock.

The next test changes one variable: neural noise scale moves from 0.45 to 0.60, while the source, prompt, seed, model, and post-processing stay fixed. It is prepared but has not run.

The current build proves that one short scene can have deterministic performance, synchronized narration, reproducible neural input, and frame-by-frame review. It does not yet prove an autonomous adaptation system. The larger test is whether later cuts can fix a specific failure without losing what already works.

Middle-earth Live is a private, noncommercial adaptation experiment. Everything shown here comes from original code, geometry, narration, and local renders. The project does not publish book text, film footage, actor likenesses, or a public stream.

Have a project in mind?

Email me · View my CV