Brian Andrew Mulrooney

2026-08-18

Gap: River junctions had inconsistent water levels

The previous build had each river carve its own copy of ground, with a later merge step reconciling differences inconsistently. This work replaced it with one network-wide solve, tracing several unrelated defects to a single cause.

Gap: River junctions had inconsistent water levels

Each river cut its terrain independently under the old system; where cuts overlapped at a junction, the merge step picked a winner inconsistently, producing stair-step drops, mismatched confluence heights, and carved floors wandering into neighbouring terrain.

A river junction under the old pipeline, showing a visible stair-step drop between two merging channels
Before: two rivers meeting at different carved levels — the merge step picked a winner, and the loser shows as a visible step.

The replacement solves the river network in three stages. The first solves every junction's water level as one system across all 164 rivers. The second carves the terrain once, assigning each of 215,726 cells to its nearest river centreline. The third lays water at the solved levels for 164 qualifying rivers, the first time every river completes in one build.

The same river junction under the new pipeline, showing a single continuous water surface with no visible step
After: the same junction under the new approach, one continuous confluence at the solved shared level.

Gap: River cuts extended past their own endpoints

Each river's cut previously extended past its endpoints: a downhill river's deepest point near its lower end bled into the next river's terrain, producing channels up to 0.8 metres deeper than designed, water sitting above the true floor. Assigning each cell to its nearest centreline removes the overshoot.

Gap: Twelve rivers had been excluded despite already-carved valleys

Twelve rivers had been excluded from earlier builds on failed validation, though their carved valleys, dry, existed. Under the network-wide solve, all twelve now clear validation, the solver resolving junctions as one connected system.

A previously dry carved valley now carrying flowing water
A formerly dry valley, now flowing: the carved shape was already there from an earlier build.

Gap: A stricter validation check is blocking the final merge

A check refusing any cell where water sits more than a centimetre above carved ground is blocking this work. Part is geometric: the grid's 4-metre resolution cannot represent a centimetre-tight surface at steep transitions. Part is a defect: a handful of coastal sites with steep slopes are hard to carve to that tolerance. Deciding the tolerance, and whether it needs a different form, is the next task; the diagnostic build is already playable.

‹›