Skip to content

Commit f4de298

Browse files
docs: require hygiene budgets on every showcase piece
Copied mesh-hygiene-audit combinatorics, grounded zmin, and BVH contact gaps are now conventions so the next visual pass inherits them. Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 13be9c1 commit f4de298

3 files changed

Lines changed: 20 additions & 11 deletions

File tree

docs/gallery/index.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,12 +1052,12 @@ <h2><a href="water-trough/">water-trough</a></h2>
10521052
</article>
10531053
<article class="card" data-tags="mesh export showcase">
10541054
<a class="card-media" href="hitching-post/" aria-label="hitching-post example detail page">
1055-
<img src="assets/hitching-post-hero.webp" alt="hitching-post — A procedural hitching post through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract." loading="lazy" decoding="async" />
1055+
<img src="assets/hitching-post-hero.webp" alt="hitching-post — A procedural hitching post (corner-aligned cap, stub-and-tenon arm, collar shoe, eye-threaded rings) through UVs, bake, LOD, collider, and Unity glTF" loading="lazy" decoding="async" />
10561056
</a>
10571057
<div class="card-body">
10581058
<h2><a href="hitching-post/">hitching-post</a></h2>
1059-
<p class="teaches">A procedural hitching post through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1060-
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 848 tris, two materials with 262 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.460×0.194×1.260 m, LOD ratios in band (5.2 COLLAPSE more aggressive on LOD2), convex collider 144 tris, non-empty glTF. --skip-decimate exits 9 on the LOD1 ratio budget.</p>
1059+
<p class="teaches">A procedural hitching post (corner-aligned cap, stub-and-tenon arm, collar shoe, eye-threaded rings) through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1060+
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 1598 tris, two materials with 269 wood and 532 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.460×0.191×1.258 m, zmin 0, hygiene 0, wood-metal BVH gap 0.45 mm, LOD ratios in band, convex collider 78 tris, non-empty glTF. --skip-decimate exits 9 on LOD1; --lift-z exits 16 on grounded zmin.</p>
10611061
<a class="card-link" href="hitching-post/">View example <span aria-hidden="true">&rarr;</span></a>
10621062
</div>
10631063
</article>
@@ -1162,12 +1162,12 @@ <h2><a href="wooden-ladder/">wooden-ladder</a></h2>
11621162
</article>
11631163
<article class="card" data-tags="mesh export showcase">
11641164
<a class="card-media" href="hay-bale/" aria-label="hay-bale example detail page">
1165-
<img src="assets/hay-bale-hero.webp" alt="hay-bale — A procedural bound hay bale with a bevelled loaf, end nap, and two sisal twine belts through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed" loading="lazy" decoding="async" />
1165+
<img src="assets/hay-bale-hero.webp" alt="hay-bale — A procedural bound hay bale with a cinched pillow loaf, end nap, and two sisal twine belts through UVs, bake, LOD, collider, and Unity glTF, asserting…" loading="lazy" decoding="async" />
11661166
</a>
11671167
<div class="card-body">
11681168
<h2><a href="hay-bale/">hay-bale</a></h2>
1169-
<p class="teaches">A procedural bound hay bale with a bevelled loaf, end nap, and two sisal twine belts through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1170-
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 252 tris, two materials with 66 hay and 60 twine faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.916×0.520×0.401 m, LOD ratios in band (5.2 COLLAPSE more aggressive), convex collider 68 tris, non-empty glTF. --skip-decimate exits 9 on the LOD1 ratio budget.</p>
1169+
<p class="teaches">A procedural bound hay bale with a cinched pillow loaf, end nap, and two sisal twine belts through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1170+
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 852 tris, two materials with 294 hay and 132 twine faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.920×0.517×0.426 m, zmin 0, hygiene 0, hay-twine BVH gap 0.07 mm, LOD ratios in band, convex collider 78 tris, non-empty glTF. --skip-decimate exits 9 on LOD1; --lift-z exits 16 on grounded zmin.</p>
11711171
<a class="card-link" href="hay-bale/">View example <span aria-hidden="true">&rarr;</span></a>
11721172
</div>
11731173
</article>

showcase/README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,16 @@ entry in `showcase/gallery.json`, and a rendered still.
3333
assigned `DECLARED` is not a check).
3434
- **Falsifier** breaks one pipeline stage so a **named** budget fails and
3535
the piece exits its documented code. Prove default and falsifier on
36-
4.5.11, 5.1.2, and 5.2.1.
36+
4.5.11, 5.1.2, and 5.2.1. `--skip-decimate` is the LOD-ratio
37+
falsifier (exit 9). `--lift-z` is the grounded-zmin falsifier (exit 16).
38+
- **Hygiene budgets.** Copied combinatorics from
39+
`examples/mesh-hygiene-audit` (do not import the example). Every piece
40+
asserts on the generated mesh: non-manifold edges 0, loose verts 0,
41+
loose edges 0, doubles at 1e-5 0, zero-area faces 0, n-gons 0, world
42+
AABB min Z within 1e-4 of 0. Multi-body props do **not** require Euler
43+
characteristic 2 — that is a single-shell contract. Pairs of parts
44+
meant to touch assert a BVH surface gap below a named epsilon
45+
(vert-vert is the wrong metric for thin straps and collars).
3746
- **Exit codes** are file-local: `0` success, argparse `2`, `3` and above
3847
in check order. `9` is legal. FATAL `sys.exit(1)` is a crash, never a
3948
named check.

showcase/gallery.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@
188188
{
189189
"name": "hitching-post",
190190
"dir": "showcase/hitching-post",
191-
"teaches": "A procedural hitching post through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
192-
"witnessesFix": "Recomputed: 848 tris, two materials with 262 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.460×0.194×1.260 m, LOD ratios in band (5.2 COLLAPSE more aggressive on LOD2), convex collider 144 tris, non-empty glTF. --skip-decimate exits 9 on the LOD1 ratio budget.",
191+
"teaches": "A procedural hitching post (corner-aligned cap, stub-and-tenon arm, collar shoe, eye-threaded rings) through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
192+
"witnessesFix": "Recomputed: 1598 tris, two materials with 269 wood and 532 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.460×0.191×1.258 m, zmin 0, hygiene 0, wood-metal BVH gap 0.45 mm, LOD ratios in band, convex collider 78 tris, non-empty glTF. --skip-decimate exits 9 on LOD1; --lift-z exits 16 on grounded zmin.",
193193
"hero": "docs/gallery/assets/hitching-post-hero.webp",
194194
"preview": "showcase/hitching-post/preview.webp",
195195
"tags": [
@@ -308,8 +308,8 @@
308308
{
309309
"name": "hay-bale",
310310
"dir": "showcase/hay-bale",
311-
"teaches": "A procedural bound hay bale with a bevelled loaf, end nap, and two sisal twine belts through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
312-
"witnessesFix": "Recomputed: 252 tris, two materials with 66 hay and 60 twine faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.916×0.520×0.401 m, LOD ratios in band (5.2 COLLAPSE more aggressive), convex collider 68 tris, non-empty glTF. --skip-decimate exits 9 on the LOD1 ratio budget.",
311+
"teaches": "A procedural bound hay bale with a cinched pillow loaf, end nap, and two sisal twine belts through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
312+
"witnessesFix": "Recomputed: 852 tris, two materials with 294 hay and 132 twine faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.920×0.517×0.426 m, zmin 0, hygiene 0, hay-twine BVH gap 0.07 mm, LOD ratios in band, convex collider 78 tris, non-empty glTF. --skip-decimate exits 9 on LOD1; --lift-z exits 16 on grounded zmin.",
313313
"hero": "docs/gallery/assets/hay-bale-hero.webp",
314314
"preview": "showcase/hay-bale/preview.webp",
315315
"tags": [

0 commit comments

Comments
 (0)