The seam where the ground stopped updating: a ledge left along every cliff
Once the land began reshaping itself while you stood on it, a step of old ground appeared along the top of every cliff: about three and a half voxels of land that had stopped listening, right where a valley rim or a worn coast is meant to show its age. The mechanism was working. Its edges were not.
That mechanism is a seam we added between the erosion simulation and the terrain you can actually see. Erosion had been running and saving faithfully for a while by then, but ground already drawn in front of you never went back to ask for a fresher answer, so the carving only surfaced when a block of land happened to be rebuilt from scratch. The seam closes that gap: on each beat of the world’s clock, roughly once a second, it reconciles the land around you toward the base ground plus everything the water has piled onto it since. What that feels like from inside the world is a separate write-up. This one is about the seam’s edges, because a system that rewrites ground has to agree with itself at every boundary it touches, and ours disagreed at three of them.
A skip decided in squares, a write done in columns
Reconciling the whole landscape every second is not affordable, and the first version of the seam tried anyway. It rewrote every patch that differed from the land the seed had grown, on every sweep, and came in between fifteen and two hundred and sixty-six times over the frame budget. That is not a number you tune down. It is a number telling you the question is wrong.
So we changed the question. Rather than asking whether a patch differs from the original ground, the seam asks whether it has moved by at least half a voxel since the last time we wrote it. A patch that has settled goes silent until the water drifts it again, and the cost falls to whatever is actually in motion. The new question also noticed ground filling back up as well as ground wearing away, which the first version’s test had missed entirely.
That skip is where the seam grew its first edge. The decision to skip was made per square of the erosion grid, one square covering roughly eight metres of world. The writing was done per vertical column of voxels, and a column does not stand alone: it blends toward its neighbours so the surface reads as land rather than as stairs. A square that had not moved could therefore sit right beside one that had, with the columns along its border left holding ground that no longer existed.
A square where nothing happened could still owe its edges an update.
We measured it at a deliberately steep test cliff, and the stale lip stood about three and a half voxels proud of the shelf behind it. A voxel here is a quarter to half a metre, so that is a metre or more of wrong land, standing exactly at the rim where the design most wants erosion to be legible. None of our reproducibility checks could have found it: those prove that two players entering the same world code get the same world, and this seam was perfectly reproducible and wrong at the same time.

The first proposed fix was thrown out before anyone wrote a line of it. It cleared a patch’s pending mark as soon as a neighbour reconciled, which sounds reasonable until you follow the rolling cursor that sweeps the world a few squares at a time. Depending on the direction the cursor arrived from, a cliff edge could have its mark cleared by the very neighbour whose drift had earned it, and then sit stale for good rather than for a moment.
What shipped is duller and survives contact with the cursor. A patch raises a mark on each of its neighbours, and that mark holds until those neighbours are genuinely rewritten, not until something nearby catches up. Order of visit stops mattering. We proved it by switching the mark off and watching the check go red first, because a green result on its own is not evidence of much.
Sixty-six passes for one burst of weather
The second edge is time. Erosion does not arrive evenly. A stretch of world crosses the drift threshold together, and all of it wants writing in the same instant. Land that instant on a single frame and the player feels the world stumble, which is a poor way to deliver news about a hillside.
We had already learned what the writing costs the blunt way: putting voxels down one at a time ran about three hundred and ten microseconds each, which settles any argument about bulk writes before it starts. The pass as a whole measured between twenty and a hundred-odd milliseconds, against a stutter budget of forty-five. Our earlier estimates had put it far lower. They were guesses wearing the clothes of numbers.
The repair was a budget and a smaller search. A cap now limits how much ground may be rewritten in any one frame, and the hunt for patches still owed an update, which had been scanning the entire world each time, was folded into the same moving window that does the writing. One burst of erosion then spread itself across sixty-six passes instead of landing on one, and the world held sixty frames a second while rewriting the ground under the camera, against a floor of fifty. It is the same manoeuvre that let a meadow grow in without a stutter: let the work fall behind the clock, and dribble it out.
Two ways to make ground, one shape
The third edge is the one we were not looking for. Two separate paths produce terrain in this game. The seam edits land that is already loaded; a builder makes a block of ground from nothing, when you reopen a world that has been running a while or walk into country nobody has visited. Both have to arrive at the same shape, or the world takes on a different character depending on how you got there.
They didn’t, and turning the erosion strength up until the reshaping was visible is what exposed it. The builder carries a shortcut: for each block it works out the band of heights the surface could occupy, and if the whole block falls clear above or below that band it declares it all air or all rock and never inspects it. The band described the land as the seed grew it, before a drop of water had been applied. While erosion moved hundredths of a voxel, that was harmlessly wrong. Once it moved whole voxels, settled hills came back clipped flat and carved valleys came back filled in. Teaching the band about erosion before it answers was the last correctness fix of the arc, and it left a rule worth keeping: the fast path may decline to look, but it may never delete ground that is really there. The same shortcut also handed a reloaded world the wrong land.
The edge we could only settle by going to look
That leaves the boundary we could not reason our way to. The seam edits the finest level of detail, the version of the land you are standing in. Distance is drawn from coarser copies, cheap stand-ins for ground too far off to be worth the fidelity. If those copies never hear about a fine edit, a bank could be worn hollow beside you and pristine from across the valley, and a world that ages while you watch would stop ageing the moment you walked away from it.
There is a version of this project where we read the rendering code until we felt satisfied. There was one for the last promise we had to walk by hand too. Instead we carved a hole thirty voxels in radius, walked out until the coarse copy was what the camera was actually drawing, and looked. Four hundred and twenty-two pixels of the far hillside moved. We did it a second time before believing it, and we claim only what we saw: one level of detail out from the finest, with the further ones inferred rather than witnessed.

Four boundaries, then. Between a patch and its neighbour. Between one frame and the next. Between land edited and land rebuilt. Between what you see up close and what you see from far off. Three were defects and one was a question, and all four are closed. The next one is not an engineering problem at all: water that reshapes the world will eventually reshape ground a player deliberately raised, and that we promised comes back exactly. A hill slowly reclaimed by rain is true to the world we are building. It is also the world undoing something someone meant. We have not decided which of those should win.



