Two builds, kept apart

Why there are two builds.

Minjerribah has two digital twins. The first was built fast, all at once. It wrote down what it got wrong. The second started from that list. Both still run.

Copernicus Sentinel-2, 13 July 2026 · sources

Same island, two builds

Built in opposite orders

A digital twin is a working model of a real place. It is built from published data. It has a clock, so the day runs.

First build

Minjerribah Living Twin

Luke Catalyst Nathan Hayes built it with Claude (Opus 5). Many copies of the model worked at once, each on a different part. Its README is dated 9 August 2026. Lessons were handed over on 18 August 2026.

It runs on Babylon.js 9.20, a game engine that draws a 3D world in the browser. The copy sits in the repository, so the page fetches nothing. Ground, tide, weather, koalas, whales, residents, the ferry, a council in tray and the chronicle all went in at once.

Second build

second-island

It started clean on 18 August 2026. The checking tools went in first. Each was proven by breaking a copy of the build and watching the tool notice.

Its README opens: "There is no island yet." Since then it has gained the boat and bus timetables, and a ferry page that reads them.

From the README, 9 August 2026

What the first build got working

The first build's README has a list headed "What works today". They played it end to end, then ran a simulated year with no picture on screen.

271
square kilometres of land, a square 16.5 km on a side
README, 9 August 2026
55
systems and layers running with no errors in the browser log
README, 9 August 2026
2,300
people drawn at a township in four orders to the graphics chip
README, 9 August 2026
64
civic levers, each naming whose call it is
README, 9 August 2026

The same README lists what does not work, with numbers. That list is on inside the first build.

The failure list

What the first build got wrong

The second build's founding document ends with nineteen rows. Each row says what happened, what it cost, and the rule that now stops it. The big ones:

  1. Passenger and vehicle ferries were merged into one figure. There is no bridge. You need to know whether your car gets off.
  2. The season names sat in prose and never went into the code. A later pass had read the cultural rule and broke it anyway. Five deleted season names were still keys in the drama pack, in twenty-eight places.
  3. The world opened empty at tick zero, camera sixteen kilometres up. For eight days the owner did not see a car.
  4. They watched average frame rate. A hitch is one frame that takes far too long. The average hid a 1.16 second hitch for a week.
  5. It invented things where real data existed. 1,922 buildings were placed by rule, next to real outlines nobody used. A made-up sky sat next to a free real weather feed. The list counts 1,059 real outlines. The second build found that count covered a box over Moreton Bay. 601 sit on this island.
  6. Every record carried one time. It needs two: when the thing was true of the island, and when the model learned it. With one time, every board that touched time looked forward wrongly.
  7. Its checking tools were never checked. Three rounds of verdicts ran against a broken picture. The interface was judged from screenshots of the 3D canvas it is not drawn on. Those verdicts were worth nothing.
  8. It was built part by part, never by island event. Forty-six clean systems sat with dead joins between them, so a koala death reached nobody. The 9 August 2026 pass repaired several joins.
  9. The playthrough was left until last and was cut off by session limits three rounds running. The day ninety crash was found a week late.
  10. Seventy-nine thousand lines were written before the first save into version control. That is about 1,500 printed pages. Nothing could be wound back.
  11. Nothing checked for personal data at the door. Six named people and a mobile number sat one save away from public.
  12. The team lost findings in chat logs. A precisely diagnosed bug shipped anyway, and the owner hit it himself.
  13. The data pipeline grew lane by lane. Nobody ever drew it whole. Its owner ended up writing it down as an unknown.
  14. A name was coined for one of Luke's own designs and quoted back to him as his.

The first build found all of this itself. Every row now has a rule against it. The first build still runs, and the second checks itself against it.

Since 18 August 2026

What the second build does differently

Every rule is a check

Its contract opens: "A rule that is not in the gate does not exist." The gate reads every file and refuses the build when a rule is broken. Each rule is a named check, or it says NOT YET CHECKED and why. There is no third state.

Two times on every record

Every fact says when it became true of the island and when it stopped. It also says when the twin learned it, and when the twin moved on. Two timelines on one record: the trade calls that bitemporal. A correction opens a new belief and closes the old one. Nothing is written over. Live, history and what-if are three positions of one slider over the same store.

No invention where real data exists

The contract's words: "Where real data exists and is licensed, invention is a bug." Nobody has found a published table of tide constituents for the Dunwich standard port. Constituents are the regular waves a tide is worked out from. So the tide file ships zero of them, and the ferry page says "contested or unknown" with the date.

The two crossings are kept apart

The build's own rule: "Passenger and vehicle crossings are never one figure." Every sailing in the timetable pack reads vehicles or passengers. No third value, and no field where the two could be added. Three planted faults proved the gate rule catches it.

Tools proven by breaking the build

A self-test breaks a copy of the build 33 ways, then runs every tool twice, healthy and faulted. A tool counts as proven when it passes clean, fails on the broken copy, and names what broke. The table from 20 August 2026 is 33 of 33 green across 21 tools. One row is flipped on purpose. The screenshot tool must miss a changed label, because a picture of the canvas cannot see the interface.

They report the worst frame

The frame-time tool reports the middle frame, the worst one in twenty, and the worst one in a hundred. It also reports the worst single frame. It reports no average, because an average hides the stalls. A planted stall of 40 ms every sixtieth frame was caught at frame 58.

Findings go on a board

Every finding goes to a board in the repository, one note per file. The rule: "A finding that lives only in a transcript is treated as never made."

Two repositories

Kept apart on purpose

The second build's README: "The two repositories are deliberately separate and must stay that way." Nothing written in one goes into the other. The second build reads the first as a known answer to check against, and never edits it.

A gate rule checks that. The first build serves on port 4271, the second on 4281. It fails its gate if either of the first build's ports turns up in its files. Data, constants and gate rules were copied exactly. The cultural pack is the same file, byte for byte, in both. The words were not copied. The second build rewrites the doctrine in its own voice, and names the first as its ancestor.

What each is for today:

  • First A living world to fly around, click and question.
  • Second Proven tools, a record store with two times, and one everyday question answered.

Open either one

Side by side

The two builds in one table

The part counts come straight from the parts list.

RowFirst buildSecond build
StartedREADME dated 9 August 2026. Lessons handed over 18 August 2026.Started clean 18 August 2026.
EngineBabylon.js 9.20, copied into the repository. No build step.No game engine. Its own small core: a clock, a store, seeded random streams, a tick loop. Runs in a browser or in Node.
What you seeA 3D island day and night: people, cars, the barge, whales, koalas. Fifteen boards, twenty-two data views.Two pages of text and numbers. The ferry page: eight panels, twenty-eight values. The lab: a calibration target, the island clock.
RecordsTwelve packs, about fourteen hundred records, 1,100 source fields, 760 source addresses. 1,100 of about 1,400 records carry a source. Most give a confidence of high, medium or low.Eight fields on every record: source, where in it, two true-times, two learned-times, confidence, kind. Packs: 76 sailings, 654 bus calls at the two terminals, a tide file with zero constituents, a sources file every record points into.
TimeTen simulated minutes a tick. The bar names the mode: simulated, live, or wound to a chosen time. Numbers that cannot be worked out on a parked clock are tagged HELD.One island minute a tick, 1,440 a day. Nothing under the simulation reads the real clock.
ChecksA gate over the packs: sources resolve, one confidence scale, no invented word, no em dash, coordinates in the bay. Red, twelve findings at the last commit. A determinism run. Cultural harness not written.A gate of rule modules over every file. 33 planted faults, each caught by a named tool. A determinism tool that names what drifted. A frame-time tool for the worst frame.
Size in parts0 parts listed. 0 run, 0 designed and not written.0 parts listed. 0 run, 0 partly there.
What it answers todayThe island at a chosen minute: tide at four stations, sunrise and moon, which boats have gone, who is home tonight, what a study costs, whose call a lever is.Can I get off the island, and can my car, on a printed-timetable Friday. Whether a bus meets the boat at either jetty. What the page cannot tell you, each line dated.

Next: a walk through the first build, then every part of both.