Terrain that stops repeating

The floor of Veyra-9 used to give the game away. Stand still, look down, and you could see the machine: the same little square of dirt stamped over and over, a grid of identical 48-pixel tiles marching off in every direction. And where two biomes met, they met along a ruler-straight line — sand stops here, rock starts here, no negotiation.
This update was about making the ground look like ground. Two changes did most of the work.
1. World-anchored UVs: kill the stamp
The old renderer drew the same texture frame on every tile. Cheap, fast, and unmistakably repetitive — your eye locks onto the pattern instantly.
The new approach anchors the texture to world coordinates instead of to each tile. A biome's texture spans an 8×8 block of tiles, and every tile samples its own sub-rectangle of that larger image. The result: one continuous, seamless photo flowing across the floor, instead of the same postage stamp restamped a thousand times. Same draw cost, completely different feel.

On top of the base layer we blend overlay layers — patches of grit, cracks, and discoloration — using value noise. The noise is windowed so most of the map stays clean base texture with organic patches of overlay breaking it up, and it's sampled at the shared corners of neighboring tiles, which is the trick that keeps the blend seam-free across tile edges.
2. Crossfade the biome boundaries
The second eyesore was the hard line where biomes touched. Real terrain doesn't do that — sand bleeds into rock, rock crumbles into sand.
So biome seams are now a crossfade band instead of a line. Across roughly eight tiles, one biome fades into the next, and the seam itself is jittered by noise (up to a few tiles of wander) so it's a wavering, natural edge rather than a straight cut. Like the overlays, the fade is evaluated per shared corner, so neighboring tiles always agree and there's no visible seam in the blend.

Deterministic on purpose
One detail we're quietly proud of: all of this is fully deterministic. The same world coordinate always produces the same overlay weight and the same boundary fade — no per-frame randomness, no flicker, identical on every device. The noise helpers are even dependency-free so our terrain verification can import them in plain Node and assert the math stays seam-free as the renderer evolves.
It's the kind of change that's easy to miss when it's done right — and that's exactly the point. The ground should just look like a place, not a spreadsheet.