You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 0a995d2
Browse filesBrowse the repository at this point in the historyBrowse files
fix(showcase): close river-delta-tile's boat ends with quads, not a sliver n-gon
The boat's bow section is a few millimetres wide, so its 14-point hull
ring closed as one n-gon was nearly collinear, and bmesh.ops.triangulate
splits it differently by version: 4.5.14 cut a zero-area sliver
(8.7e-11 m^2), failing hygiene (exit 15) on the 4.5 smoke job while 5.2
passed. Both hull ends are now closed by six quads across the wall,
outer to inner: the same area, no version-dependent triangulation.
Verified on 5.2.1 and 4.5.14: happy path and all 15 falsifiers exit
their declared codes on both; base triangles unchanged (140150); hero
re-render differs only by render noise (mean 0.06/255), committed
assets kept.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
<pclass="teaches">A procedural strategy-game map tile of a river delta — a square 2.40 m on a side, low and flat, where a river comes in through the back edge and forks twice at the angle natural deltas grow toward into four distributaries, each child's width set by hydraulic geometry so the widths squared balance at every fork; its water falling along every channel and level with the sea through the backwater reach to every mouth; natural levees holding each channel over the marsh; a farmed upper plain in a patchwork of fields, a wild lower plain of marsh, salt marsh and mud with an oxbow lake and ponds; a lobed coast with tan silt plumes fanning into the sea and marsh-crowned bars off the mouths; reed beds, weeping willows and poplars, drift logs afloat and stranded, and a fisherman's stilt hut with its jetty, boat and fish weir — through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1801
-
<pclass="witnesses"><spanclass="tag">witnesses</span> Recomputed: 140150 tris, seven materials with 53503 ground, 46711 water, 17418 reed, 998 timber, 646 bark, 5420 foliage and 9855 plinth faces, UVs in 0..1 with zero AABB overlap, outer AABB 2.400×2.400×0.296 m, zmin 0, hygiene 0 including zero coplanar cross-shell pairs, the water never rising along any of the four courses (largest step 2e-7 m over 2863 samples, max 1e-6), the children's wetted widths squared over the parent's 0.960, 1.008 and 0.991 at the three forks (band 0.88–1.12) and the forks opening 73.3°, 73.6° and 74.0° (band 58–82), every mouth's course wet all the way and ending 0.00004 m off the sea's level, every levee crest at least 0.0078 m over its channel and 0.0021 m over the marsh behind at 228 stations, all six islands' cores 0.0037–0.0050 m out of the water round them, the sea at 0.1500 m with a 0.0024 m ripple and the ponds flat, every water rim at least 0.0025 m under the ground, all 4351 reed blades 0.0036–0.0059 m in the ground, the floating logs and the boat 0.33–0.55 of their height under the water and the stranded logs sealed in every sector, all 28 stilts, jetty posts and stakes footed 0.0099–0.0155 m in the bed with their tops over the water, all 35 trunks 0.009–0.011 m in the ground, LOD ratios in band, eight-hull collider 174 tris, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --uphill-channel 17; --choke-branch 18; --splay-fork 19; --plug-mouth 20; --breach-levee 21; --drown-islet 22; --flat-sea 23; --short-sea 24; --float-reeds 25; --sink-logs 26; --lift-hut 27; --float-trees 28.</p>
1801
+
<pclass="witnesses"><spanclass="tag">witnesses</span> Recomputed: 140150 tris, seven materials with 53503 ground, 46711 water, 17418 reed, 986 timber, 646 bark, 5420 foliage and 9855 plinth faces, UVs in 0..1 with zero AABB overlap, outer AABB 2.400×2.400×0.296 m, zmin 0, hygiene 0 including zero coplanar cross-shell pairs, the water never rising along any of the four courses (largest step 2e-7 m over 2863 samples, max 1e-6), the children's wetted widths squared over the parent's 0.960, 1.008 and 0.991 at the three forks (band 0.88–1.12) and the forks opening 73.3°, 73.6° and 74.0° (band 58–82), every mouth's course wet all the way and ending 0.00004 m off the sea's level, every levee crest at least 0.0078 m over its channel and 0.0021 m over the marsh behind at 228 stations, all six islands' cores 0.0037–0.0050 m out of the water round them, the sea at 0.1500 m with a 0.0024 m ripple and the ponds flat, every water rim at least 0.0025 m under the ground, all 4351 reed blades 0.0036–0.0059 m in the ground, the floating logs and the boat 0.33–0.55 of their height under the water and the stranded logs sealed in every sector, all 28 stilts, jetty posts and stakes footed 0.0099–0.0155 m in the bed with their tops over the water, all 35 trunks 0.009–0.011 m in the ground, LOD ratios in band, eight-hull collider 174 tris, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --uphill-channel 17; --choke-branch 18; --splay-fork 19; --plug-mouth 20; --breach-levee 21; --drown-islet 22; --flat-sea 23; --short-sea 24; --float-reeds 25; --sink-logs 26; --lift-hut 27; --float-trees 28.</p>
Copy file name to clipboardExpand all lines: docs/gallery/river-delta-tile/index.html
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@ <h1>River Delta Tile</h1>
53
53
<imgsrc="../assets/river-delta-tile-hero.webp" alt="A square delta map tile: a river splitting twice into four channels across fields and marsh, tan silt plumes and sandy bars off the mouths, and a stilt hut by a jetty." width="1280" height="720" fetchpriority="high" />
54
54
</button>
55
55
<pclass="zoom-hint">Rendered headless by the showcase piece itself. Select it to enlarge.</p>
56
-
<divclass="callout"><spanclass="tag">witnesses</span> Recomputed: 140150 tris, seven materials with 53503 ground, 46711 water, 17418 reed, 998 timber, 646 bark, 5420 foliage and 9855 plinth faces, UVs in 0..1 with zero AABB overlap, outer AABB 2.400×2.400×0.296 m, zmin 0, hygiene 0 including zero coplanar cross-shell pairs, the water never rising along any of the four courses (largest step 2e-7 m over 2863 samples, max 1e-6), the children's wetted widths squared over the parent's 0.960, 1.008 and 0.991 at the three forks (band 0.88–1.12) and the forks opening 73.3°, 73.6° and 74.0° (band 58–82), every mouth's course wet all the way and ending 0.00004 m off the sea's level, every levee crest at least 0.0078 m over its channel and 0.0021 m over the marsh behind at 228 stations, all six islands' cores 0.0037–0.0050 m out of the water round them, the sea at 0.1500 m with a 0.0024 m ripple and the ponds flat, every water rim at least 0.0025 m under the ground, all 4351 reed blades 0.0036–0.0059 m in the ground, the floating logs and the boat 0.33–0.55 of their height under the water and the stranded logs sealed in every sector, all 28 stilts, jetty posts and stakes footed 0.0099–0.0155 m in the bed with their tops over the water, all 35 trunks 0.009–0.011 m in the ground, LOD ratios in band, eight-hull collider 174 tris, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --uphill-channel 17; --choke-branch 18; --splay-fork 19; --plug-mouth 20; --breach-levee 21; --drown-islet 22; --flat-sea 23; --short-sea 24; --float-reeds 25; --sink-logs 26; --lift-hut 27; --float-trees 28.</div>
56
+
<divclass="callout"><spanclass="tag">witnesses</span> Recomputed: 140150 tris, seven materials with 53503 ground, 46711 water, 17418 reed, 986 timber, 646 bark, 5420 foliage and 9855 plinth faces, UVs in 0..1 with zero AABB overlap, outer AABB 2.400×2.400×0.296 m, zmin 0, hygiene 0 including zero coplanar cross-shell pairs, the water never rising along any of the four courses (largest step 2e-7 m over 2863 samples, max 1e-6), the children's wetted widths squared over the parent's 0.960, 1.008 and 0.991 at the three forks (band 0.88–1.12) and the forks opening 73.3°, 73.6° and 74.0° (band 58–82), every mouth's course wet all the way and ending 0.00004 m off the sea's level, every levee crest at least 0.0078 m over its channel and 0.0021 m over the marsh behind at 228 stations, all six islands' cores 0.0037–0.0050 m out of the water round them, the sea at 0.1500 m with a 0.0024 m ripple and the ponds flat, every water rim at least 0.0025 m under the ground, all 4351 reed blades 0.0036–0.0059 m in the ground, the floating logs and the boat 0.33–0.55 of their height under the water and the stranded logs sealed in every sector, all 28 stilts, jetty posts and stakes footed 0.0099–0.0155 m in the bed with their tops over the water, all 35 trunks 0.009–0.011 m in the ground, LOD ratios in band, eight-hull collider 174 tris, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --uphill-channel 17; --choke-branch 18; --splay-fork 19; --plug-mouth 20; --breach-levee 21; --drown-islet 22; --flat-sea 23; --short-sea 24; --float-reeds 25; --sink-logs 26; --lift-hut 27; --float-trees 28.</div>
<p>The collider is eight convex hulls joined in one mesh, built from points only: the plinth up to the water, and the delta's plain in seven fans from the apex, each from where it comes in over the back edge out to the coast or a side. Boats sail the water; units walk the land.</p>
73
73
<h2id="budgets">Budgets<aclass="anchor" href="#budgets" aria-label="Link to this section">#</a></h2>
74
74
<p>Every budget is declared as a named constant. Every gate <strong>recomputes</strong> its value from the mesh, materials, UVs, evaluated LOD, collider, or export file.</p>
75
-
<divclass="table-wrap"><table><thead><tr><thscope="col">Axis</th><thscope="col">Declared</th><thscope="col">Measured (5.2.1)</th></tr></thead><tbody><tr><td>Base triangles</td><td>138000–142500</td><td>140150</td></tr><tr><td>LOD1 ratio</td><td>0.32–0.62 of base</td><td>0.5000</td></tr><tr><td>LOD2 ratio</td><td>0.10–0.35 of base</td><td>0.2200</td></tr><tr><td>Materials</td><td>exactly 7 distinct; face floors ground ≥51900, water ≥45300, reed ≥16880, timber ≥955, bark ≥627, foliage ≥5257, plinth ≥9560</td><td>7 slots; 53503 / 46711 / 17418 / 998 / 646 / 5420 / 9855</td></tr><tr><td>UVs</td><td>in <code>0..1</code>, AABB overlap ≤ 1e-5</td><td>in range, overlap 0</td></tr><tr><td>Outer AABB</td><td>(2.4000, 2.4000, 0.2960) m ± 0.01</td><td>(2.4000, 2.4000, 0.2960), zmin 0</td></tr><tr><td>Collider tris (eight hulls)</td><td>≤ 360</td><td>174</td></tr><tr><td>Export</td><td>written, size > 0, removed after measuring</td><td>14563016 bytes</td></tr></tbody></table></div>
75
+
<divclass="table-wrap"><table><thead><tr><thscope="col">Axis</th><thscope="col">Declared</th><thscope="col">Measured (5.2.1)</th></tr></thead><tbody><tr><td>Base triangles</td><td>138000–142500</td><td>140150</td></tr><tr><td>LOD1 ratio</td><td>0.32–0.62 of base</td><td>0.5000</td></tr><tr><td>LOD2 ratio</td><td>0.10–0.35 of base</td><td>0.2200</td></tr><tr><td>Materials</td><td>exactly 7 distinct; face floors ground ≥51900, water ≥45300, reed ≥16880, timber ≥955, bark ≥627, foliage ≥5257, plinth ≥9560</td><td>7 slots; 53503 / 46711 / 17418 / 986 / 646 / 5420 / 9855</td></tr><tr><td>UVs</td><td>in <code>0..1</code>, AABB overlap ≤ 1e-5</td><td>in range, overlap 0</td></tr><tr><td>Outer AABB</td><td>(2.4000, 2.4000, 0.2960) m ± 0.01</td><td>(2.4000, 2.4000, 0.2960), zmin 0</td></tr><tr><td>Collider tris (eight hulls)</td><td>≤ 360</td><td>174</td></tr><tr><td>Export</td><td>written, size > 0, removed after measuring</td><td>14562248 bytes</td></tr></tbody></table></div>
76
76
<p>DECIMATE COLLAPSE triangle counts are not identical across Blender series, so the LOD gate is a ratio band, not an exact count. Bake pixels are stochastic, so the bake gate is <code>has_data</code> plus operator <code>FINISHED</code>, not byte-identity. The plan is seeded and nothing else is random; two default runs print identical measurements.</p>
77
77
<h3id="hygiene">Hygiene<aclass="anchor" href="#hygiene" aria-label="Link to this section">#</a></h3>
78
78
<p>Recomputed from the generated mesh, not asserted about the script.</p>
Copy file name to clipboardExpand all lines: showcase/gallery.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1125,7 +1125,7 @@
1125
1125
"category": "terrain",
1126
1126
"teaches": "A procedural strategy-game map tile of a river delta — a square 2.40 m on a side, low and flat, where a river comes in through the back edge and forks twice at the angle natural deltas grow toward into four distributaries, each child's width set by hydraulic geometry so the widths squared balance at every fork; its water falling along every channel and level with the sea through the backwater reach to every mouth; natural levees holding each channel over the marsh; a farmed upper plain in a patchwork of fields, a wild lower plain of marsh, salt marsh and mud with an oxbow lake and ponds; a lobed coast with tan silt plumes fanning into the sea and marsh-crowned bars off the mouths; reed beds, weeping willows and poplars, drift logs afloat and stranded, and a fisherman's stilt hut with its jetty, boat and fish weir — through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
1127
1127
"alt": "A square delta map tile: a river splitting twice into four channels across fields and marsh, tan silt plumes and sandy bars off the mouths, and a stilt hut by a jetty.",
1128
-
"witnessesFix": "Recomputed: 140150 tris, seven materials with 53503 ground, 46711 water, 17418 reed, 998 timber, 646 bark, 5420 foliage and 9855 plinth faces, UVs in 0..1 with zero AABB overlap, outer AABB 2.400×2.400×0.296 m, zmin 0, hygiene 0 including zero coplanar cross-shell pairs, the water never rising along any of the four courses (largest step 2e-7 m over 2863 samples, max 1e-6), the children's wetted widths squared over the parent's 0.960, 1.008 and 0.991 at the three forks (band 0.88–1.12) and the forks opening 73.3°, 73.6° and 74.0° (band 58–82), every mouth's course wet all the way and ending 0.00004 m off the sea's level, every levee crest at least 0.0078 m over its channel and 0.0021 m over the marsh behind at 228 stations, all six islands' cores 0.0037–0.0050 m out of the water round them, the sea at 0.1500 m with a 0.0024 m ripple and the ponds flat, every water rim at least 0.0025 m under the ground, all 4351 reed blades 0.0036–0.0059 m in the ground, the floating logs and the boat 0.33–0.55 of their height under the water and the stranded logs sealed in every sector, all 28 stilts, jetty posts and stakes footed 0.0099–0.0155 m in the bed with their tops over the water, all 35 trunks 0.009–0.011 m in the ground, LOD ratios in band, eight-hull collider 174 tris, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --uphill-channel 17; --choke-branch 18; --splay-fork 19; --plug-mouth 20; --breach-levee 21; --drown-islet 22; --flat-sea 23; --short-sea 24; --float-reeds 25; --sink-logs 26; --lift-hut 27; --float-trees 28.",
1128
+
"witnessesFix": "Recomputed: 140150 tris, seven materials with 53503 ground, 46711 water, 17418 reed, 986 timber, 646 bark, 5420 foliage and 9855 plinth faces, UVs in 0..1 with zero AABB overlap, outer AABB 2.400×2.400×0.296 m, zmin 0, hygiene 0 including zero coplanar cross-shell pairs, the water never rising along any of the four courses (largest step 2e-7 m over 2863 samples, max 1e-6), the children's wetted widths squared over the parent's 0.960, 1.008 and 0.991 at the three forks (band 0.88–1.12) and the forks opening 73.3°, 73.6° and 74.0° (band 58–82), every mouth's course wet all the way and ending 0.00004 m off the sea's level, every levee crest at least 0.0078 m over its channel and 0.0021 m over the marsh behind at 228 stations, all six islands' cores 0.0037–0.0050 m out of the water round them, the sea at 0.1500 m with a 0.0024 m ripple and the ponds flat, every water rim at least 0.0025 m under the ground, all 4351 reed blades 0.0036–0.0059 m in the ground, the floating logs and the boat 0.33–0.55 of their height under the water and the stranded logs sealed in every sector, all 28 stilts, jetty posts and stakes footed 0.0099–0.0155 m in the bed with their tops over the water, all 35 trunks 0.009–0.011 m in the ground, LOD ratios in band, eight-hull collider 174 tris, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --uphill-channel 17; --choke-branch 18; --splay-fork 19; --plug-mouth 20; --breach-levee 21; --drown-islet 22; --flat-sea 23; --short-sea 24; --float-reeds 25; --sink-logs 26; --lift-hut 27; --float-trees 28.",
0 commit comments