Skip to content

Commit 5bce786

Browse files
TMHSDigitalclaude
andcommitted
docs(showcase): stop calling 90k-140k-triangle terrain tiles game-ready at LOD0
Five terrain pieces called themselves game-ready strategy-game map tiles while their base meshes run 90k to 140k triangles (9-15 MB glTF). Each README now says what each level is for: LOD0 is hero-diorama density for close renders, and the LOD2 the script already builds and gates (0.22 of base, about 20k to 31k) is the in-game asset. showcase/README.md also says what a re-fitted band is: a regression detector centred on the measurement, not an engine budget. A game-ready claim must name the asset that meets it. Closes #488 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
1 parent 94aea05 commit 5bce786

11 files changed

Lines changed: 24 additions & 12 deletions

File tree

‎docs/gallery/caldera-island-tile/index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ <h1>Caldera Island Tile</h1>
6262
</div>
6363
<nav class="jumpnav" aria-label="On this page"><span class="tag">jump to</span> <a href="#run">Run</a> <a href="#exit-codes">Exit codes</a> <a href="#source">Source</a> <a href="#related">Related</a></nav>
6464
<section class="detail-section md">
65-
<p>A showcase piece, not an example, in the <code>terrain</code> category. It builds a procedural, game-ready strategy-game map tile: a disc 2.40 m across with a volcanic island in the middle and the sea out to its rim on every side. The island is a stratovolcano whose summit has collapsed into a caldera, with a crater lake in it and a young cinder cone standing in the lake as an island.</p>
65+
<p>A showcase piece, not an example, in the <code>terrain</code> category. It builds a procedural strategy-game map tile at hero-diorama density (about 113k triangles at LOD0; the gated LOD2, about 25k, is the in-game asset): a disc 2.40 m across with a volcanic island in the middle and the sea out to its rim on every side. The island is a stratovolcano whose summit has collapsed into a caldera, with a crater lake in it and a young cinder cone standing in the lake as an island.</p>
6666
<ul><li><strong>The tile.</strong> A triangle lattice stretched radially onto the disc carries the island, the seabed and the rim; a skirt drops straight from the outline to a flat base at Z = 0, the ground in section. The rim is a flat band 40 mm wide, 18 mm over the water, its outer arris chamfered down to one canonical edge height (0.163 m) all the way round, so any neighbouring sea tile meets this one flush. The seabed shoals up to the rim over 70 mm.</li><li><strong>The volcano.</strong> A concave stratocone (its profile, before the gullies, falls about 37° under the rim and 26° on the lower flank), furrowed by fifteen barrancos and finer erosion rills in the loose ash under the rim. Its summit is gone: a caldera 0.72 m across (its rim wobbling round an ellipse, with chutes down its inner wall) holds a lake 0.22 m over the sea, the rim&#x27;s lowest pass 73 mm over the water. The inner walls show the cone&#x27;s stacked lava, scoria and tuff beds, with sulphur stains low down where the fumaroles were. Two parasitic cinder cones sit on the outer flanks.</li><li><strong>The cinder cone.</strong> Built to Porter&#x27;s (1972) cinder-cone ratios: height 0.18 and crater 0.40 of the base width, so its flanks stand at 31°, inside the 30–33° that loose scoria rests at (<a href="https://mssanz.org.au/MODSIM07/papers/21_s46/StudyOfVolcanic_s46_Parrot_.pdf">Porter&#x27;s ratios</a>). It is 0.27 m across at the waterline, its crater on its axis, and wooded with small conifers, like Wizard Island in Crater Lake, which stands 233 m over a lake in a 10 km caldera with a crater 90 m across (<a href="https://en.wikipedia.org/wiki/Crater_Lake">Crater Lake</a>).</li><li><strong>The lava flow.</strong> From a breached spatter cone on the front flank a channelled aa flow runs down to the sea between two levees, 72–128 mm wide down the flank (a channel about a third of the flow&#x27;s width, as in a channelled flow on Etna: a 16 m channel in a 52 m flow, levees 7 m high, <a href="https://www.earth-prints.org/handle/2122/5726?mode=full">Etna channel study</a>). Its surface is read off the ground along its line and held falling the whole way; it fans out over the small delta it has built and runs on under the sea. The channel is still incandescent in a few thin, broken cracks near the vent and black before the sea. A black-sand beach lies either side of the delta.</li><li><strong>Zoning.</strong> The flanks are zoned by height the way a wet volcanic island is: forest and meadow on the lowland, conifers above, heath, then bare ash to the rim, ochre on the spurs and red-brown scoria down the gullies.</li><li><strong>The sea.</strong> A rippled sheet at a declared level of 0.150 m over every lattice triangle that holds water, from under the shore out to under the rim, turquoise over the shelf round the island and deep blue to the rim, steep off the sea cliffs under the back-left flank and off the delta&#x27;s front. A foam line lies at the waterline round the coast, from one side of the delta round to the other, its land edge tucked under the beach.</li><li><strong>Rocks.</strong> Seven fractured crags on the caldera&#x27;s rim, eight volcanic bombs on the ash and fourteen boulders on the shore, half of them on the black beach, sealed all round and held apart.</li></ul>
6767
<p>Every seeded draw comes from <code>random.Random(SEED)</code> in <code>plan_scene()</code>, before anything is built: where each tree and rock stands and its size, tone and turn, the ripple and the foam&#x27;s phases. The ground is closed-form in plan position. No flag draws from the stream, so a falsifier changes only what it names.</p>
6868
<p>The volcano rises out of the shore&#x27;s plateau rather than on top of it, so the coast is where the shore&#x27;s rise starts from the sea&#x27;s level and the ground meets the water exactly there. The caldera is the smooth minimum of the cone&#x27;s flank and an inner wall that steepens from the floor&#x27;s edge to the rim; the cinder cone is the smooth minimum of its straight flank and its crater&#x27;s bowl. The flow is a nine-lane ribbon, levee crests over a channel, its top edges dropping to a foot 1.4 half-widths out sunk in the ground beside it; the ground under its top is held under its surface. The lake is a flat slab over the caldera&#x27;s lattice triangles that hold water; the sea one slab over the tile&#x27;s, running in under the lava where it enters until the bed carved under the flow closes its rim. The foam rises to a crest at the waterline over every ripple by more than a face tilts across the coplanarity range, and its land edge leans inland, so no face of it can lie in the sea&#x27;s plane or stand parallel to the sea&#x27;s walls. Rocks and trees landing in another shell&#x27;s plane turn 3° about their lowest point and sink half a millimetre (two trees on one contour carry level caps a turn leaves level), one shell of a pair at a time.</p>

‎docs/gallery/canyon-mesa-tile/index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ <h1>Canyon Mesa Tile</h1>
6262
</div>
6363
<nav class="jumpnav" aria-label="On this page"><span class="tag">jump to</span> <a href="#run">Run</a> <a href="#exit-codes">Exit codes</a> <a href="#source">Source</a> <a href="#related">Related</a></nav>
6464
<section class="detail-section md">
65-
<p>A showcase piece, not an example, and a <code>terrain</code> piece. It builds a procedural, game-ready strategy-game map tile of Colorado Plateau character: a square 2.40 m on a side with two mesas and a canyon between them at the back, a butte and a slender spire in front, and a dry wash crossing the tile from edge to edge.</p>
65+
<p>A showcase piece, not an example, and a <code>terrain</code> piece. It builds a procedural strategy-game map tile of Colorado Plateau character, at hero-diorama density (about 128k triangles at LOD0; the gated LOD2, about 28k, is the in-game asset): a square 2.40 m on a side with two mesas and a canyon between them at the back, a butte and a slender spire in front, and a dry wash crossing the tile from edge to edge.</p>
6666
<ul><li><strong>The tile.</strong> A square lattice carries the valley floor, the talus aprons and the wash&#x27;s channel; a skirt drops straight from the outline to a flat base at Z = 0, the valley&#x27;s red beds in section. The floor stands 0.10 m over the base, 10 mm higher at the back edge and lower at the front, with low drifts over all of it and a field of transverse dunes in the front corner (long stoss slopes, lee faces near the angle of repose).</li><li><strong>The layer cake.</strong> Every formation is cut from the same section, as in Monument Valley: an Organ Rock shale slope and talus apron up to the cliffs&#x27; foot, a cliff of De Chelly sandstone in five horizontal beds, a crumbling Moenkopi shale slope, and a Shinarump caprock on top, flat and overhanging the slope by 12 mm. The cliff is 0.28 m of the 0.483 m relief, the slope 0.055 m and the cap 0.028 m, the proportions of the real column (the cliff about two thirds of the relief, the cap a few percent). The beds run flush where they can; a ledge opens only where a strong bed sits on a weak one. Every bed stands as its own rounded band: its face rounds back over the outer fifth of its thickness into a parting 2.3–3.6 mm deep at each bedding plane, so the cliff reads in horizontal strata, the way the plateau&#x27;s walls do. Each bed carries its own colour, level and continuous round every formation: maroon at the foot where it grades from the Organ Rock, then red-orange, salmon, a pale cream bed, deep red, orange, and a bleached top, each with a dark seam at its parting and a few thin pale laminae. Vertical joints cut into every face but open and close up it (their depth swings between 45% and 100% from height to height), so they never read as one unbroken flute. Desert varnish hangs from the rim and the ledges in a few thin dark streaks, densest high up and fading down the cliff. The Moenkopi slope is red-brown shale in thin beds, a few of them grey-green; the caprock&#x27;s face is a dark, thinly bedded grey-brown ledge. The caps&#x27; tops are weathered slickrock: pale grey-buff where bare, red sand blown over the rest in soft-edged drifts, darker pans where rain stands.</li><li><strong>The formations.</strong> Two mesas at the back, a canyon between their walls; a butte in front, taller than it is wide; a spire that stands to the top of the cliff sandstone, its cap long gone, worn to a totem: its girth narrows fast off the talus (to 58% of its foot&#x27;s at a fifth of its height), then slowly up a slender shaft, its hardest bed left as a swelling knob under a 34% top, and every parting cut into it. Each formation sits on its own apron and runs 35 mm into it.</li><li><strong>The aprons.</strong> Talus at the angle of repose: 35.0° at the cliff&#x27;s foot easing to 31.0° at the toe, the concave profile scree takes (measured talus steepens upslope from 31–34° to 35–37°: <a href="https://en.wikipedia.org/wiki/Scree">Wikipedia, Scree</a>; <a href="https://en.wikipedia.org/wiki/Angle_of_repose">angle of repose</a>), then easing into the floor. Scree in the cliffs&#x27; own colours: angular fragments of every bed packed with dark gaps between them, coarser pieces among the fine, a few grey caprock chips, chutes of paler debris, and the Organ Rock&#x27;s banded red-brown shale showing through just under the bench.</li><li><strong>The wash.</strong> It enters at the back edge, runs down the canyon between the mesas and out across the valley between the butte and the spire, and leaves by the front edge, falling 22.5 mm the whole way and never rising. Its bed is read off the floor along its line, held falling, and cut 8 mm under it; a ribbon of buff sand lies on it, rippled across the flow, with gravel bars and cracked mud, its edges run under the banks. On a map, the wash carries on into the next tile.</li><li><strong>Scatter.</strong> 60 fallen blocks on the aprons and at their toes, cut angular by bedding and joint planes and hard-edged, the biggest rolled furthest out, sealed into the talus and held apart. Utah junipers and pinyon as low, broad, lopsided crowns of five dense clumps on short leaning stems, sweeping nearly to the sand; 118 low scrub cushions, big sagebrush silver grey-green with about one in three on the floor rubber rabbitbrush going olive-gold; six cottonwoods turning gold on the wash&#x27;s banks.</li></ul>
6767
<p>The tile&#x27;s colour reads the way a map does: red sand, darker hardpan and pale blown sheets and broad swings from deep terracotta to apricot on the floor, black desert pavement in patches, the aprons scree in the wall&#x27;s colours, the cliffs banded and lightly varnished, the caps weathered grey slickrock under red sand.</p>
6868
<p>Every seeded draw comes from <code>random.Random(SEED)</code> in <code>plan_scene()</code>, before anything is built: where each block and plant stands and its size, tone and turn. Each formation&#x27;s joints and erosion come from its own seeded stream. The ground is closed-form in plan position. No flag draws from the stream, so a falsifier changes only what it names.</p>

‎docs/gallery/hex-island-tile/index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ <h1>Hex Island Tile</h1>
6262
</div>
6363
<nav class="jumpnav" aria-label="On this page"><span class="tag">jump to</span> <a href="#run">Run</a> <a href="#exit-codes">Exit codes</a> <a href="#source">Source</a> <a href="#related">Related</a></nav>
6464
<section class="detail-section md">
65-
<p>A showcase piece, not an example, and the first piece built for the <code>terrain</code> category. It builds a procedural, game-ready strategy-game map tile: a flat-topped hexagon 2.60 m corner to corner (2.25 m flat to flat) with a mountain island in the middle and the sea out to its rim on every side.</p>
65+
<p>A showcase piece, not an example, and the first piece built for the <code>terrain</code> category. It builds a procedural strategy-game map tile at hero-diorama density: about 104k triangles at LOD0, for close renders; the gated LOD2 (0.22 of base, about 23k) is the in-game asset. The tile is a flat-topped hexagon 2.60 m corner to corner (2.25 m flat to flat) with a mountain island in the middle and the sea out to its rim on every side.</p>
6666
<ul><li><strong>The tile.</strong> A triangle lattice over the hexagon carries the island, the seabed and the rim; a skirt drops straight from the outline to a flat base at Z = 0, the ground in section. The rim is a flat band 40 mm wide, 18 mm over the water, its outer arris chamfered down to one canonical edge height (0.163 m) all the way round, so the six edges share one profile and any neighbouring sea tile meets this one flush. The seabed climbs to the rim over 70 mm.</li><li><strong>The island.</strong> A coastline 0.87 m out from its centre with a few lobes, sandy beaches with a gentle shore, and sea cliffs under the western peak. Two peaks (the higher 0.54 m over the sea), furrowed by radial gullies, with wandering spurs and ravines and finer ridges on the high ground; bare fractured rock on the steep faces and the summits, old snow in the highest hollows, and conifer forest on the upper slopes. Broadleaf trees, a few already turning, stand on the lowland.</li><li><strong>The river.</strong> From a tarn in a small cirque between the peaks it falls over a cascade and down a valley it has cut to a sandy estuary in the front cove. Its surface is read off the valley floor along its line and held falling the whole way; at the estuary&#x27;s head it is 2 mm over the calm sea it runs out onto, and it slides under the sea by its end. The sea runs up the estuary to meet it. The water lightens to the sea&#x27;s shallows over the mouth and breaks white where the river falls steeply.</li><li><strong>The terraces.</strong> A hill on the right cut into seven level fields on its contours, 30 mm a step (real paddy risers are 0.8–1.5 m, their treads 2–6 m: <a href="https://www.fao.org/4/ad083e/ad083e07.htm">FAO</a>). Each field its own crop, sown in rows: young rice, ripening grain, a flooded paddy that takes the sky, barley gold. Every riser is a dry-stone retaining wall traced along its own contour, its face stone, its coping turfed over just above the field it holds up. The steps soften into the natural slope at the hill&#x27;s edge.</li><li><strong>The sea.</strong> A rippled sheet at a declared level of 0.150 m over every lattice triangle that holds water, from under the shore out to under the rim, calm over the river&#x27;s mouth, darkening from turquoise shallows to deep water. A foam line lies at the waterline round the coast, from one bank of the mouth round to the other, its land edge tucked under the beach.</li><li><strong>Rocks.</strong> Nine fractured crags on the high flanks of the two peaks and twelve boulders on the beaches and the lowland, sealed all round and held apart.</li></ul>
6767
<p>The tile&#x27;s colour reads the way a map does: sand, meadow, forest, rock and snow by height and slope; the fields by their crop; the sea by its depth.</p>
6868
<p>Every seeded draw comes from <code>random.Random(SEED)</code> in <code>plan_scene()</code>, before anything is built: where each tree and rock stands and its size, tone and turn, the ripple and the foam&#x27;s phases. The ground is closed-form in plan position. No flag draws from the stream, so a falsifier changes only what it names.</p>

0 commit comments

Comments
 (0)