geo
The geometry the Luteway is carved from. Pure Luau: every builder returns the four flat arrays a mesh takes — positions, indices, normals, uvs — so a shape can be built, measured and rebuilt without a frame passing.
luteway.cliff.geo
The geometry the Luteway is carved from. Pure Luau: every builder returns the four flat arrays a mesh takes — positions, indices, normals, uvs — so a shape can be built, measured and rebuilt without a frame passing.
The game is 2.5D and the camera looks down -Z at a flat play plane, so the builders are shaped around that view:
| Builder | What it makes |
|---|---|
reliefWall(opts) | The cliff: a grid in XY pushed out along Z by fractured noise, its outer edge ragged so the rock ends against the sky in a broken silhouette, folding back along that edge so the silhouette has body. |
slab(opts) | One ledge of the route: a worked top face over a broken front and two broken ends. The walking surface sits at local y = 0. |
stack(opts) | A flat, broken-topped silhouette — sea stacks, the far headland, the shoulders of the island. |
wavyStrip(opts) | A quad with a running wave on one edge (fadeDown puts it on the bottom, farAmp breaks the other edge too): foam at the tide line, the band of first light, the edge of the night. |
vein(opts) | A wandering ribbon that widens and narrows along its run — the ochre lute seams. |
nest(radius, seed) | A ring of packed pebbles seen from the side. |
noise2 / fbm2 / ridge2 are the deterministic fields the builders sample:
the same seed replays the same rock on every machine and every run. ridge2 is
the one that makes stone read as fractured rather than as dough.
builder() is the primitive underneath: push vertices, push triangles, and
finish() computes area-weighted normals from the faces that were pushed, so the
normals always agree with the winding rather than with what the author meant.
Scoped to this part · feeds back into the world's score.