Skip to content

Commit 26b3489

Browse files
TMHSDigitalclaude
andcommitted
docs(showcase): conventions for face-seated fixtures, ferrule grip, bake texels
Also refreshes the gallery cards and root README alts for the restaged stills and regenerates docs/gallery. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
1 parent e416233 commit 26b3489

4 files changed

Lines changed: 38 additions & 14 deletions

File tree

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
130130
<a href="showcase/signpost/"><img src="showcase/signpost/preview.webp" width="24%" alt="Signpost: a timber post with two painted fingerboards, iron straps, and a pyramidal cap on a dark studio floor" /></a>
131131
<a href="showcase/chopping-block/"><img src="showcase/chopping-block/preview.webp" width="24%" alt="Chopping block: a bark-sided log round with growth rings and drying checks on its sawn top, a riveted iron hoop, and a felling axe buried in the top, on a dark studio floor" /></a>
132132
<a href="showcase/wooden-bucket/"><img src="showcase/wooden-bucket/preview.webp" width="24%" alt="Wooden bucket: a coopered pail with a three-strand rope bail through iron ear rings and chord-lofted iron hoops on a dark studio floor" /></a>
133-
<a href="showcase/wall-torch/"><img src="showcase/wall-torch/preview.webp" width="24%" alt="Wall torch: a dressed stone plaque with an iron sconce, wooden haft, and flame on a dark studio floor" /></a>
134-
<a href="showcase/tavern-stool/"><img src="showcase/tavern-stool/preview.webp" width="24%" alt="Tavern stool: a round wooden seat on turned splayed legs with stretchers and iron ferrules on a dark studio floor" /></a>
133+
<a href="showcase/wall-torch/"><img src="showcase/wall-torch/preview.webp" width="24%" alt="Wall torch: a dressed stone plaque with an iron plate and arm holding a cup, a leaning wooden torch with a pitch-wrapped head and a bright flame, on a dark studio floor" /></a>
134+
<a href="showcase/tavern-stool/"><img src="showcase/tavern-stool/preview.webp" width="24%" alt="Tavern stool: a round wooden seat on turned splayed legs with stretchers at two heights and iron ferrules on flat treads, on a dark studio floor" /></a>
135135
<a href="showcase/iron-cauldron/"><img src="showcase/iron-cauldron/preview.webp" width="24%" alt="Iron cauldron: a round-bellied cast-iron pot hanging by its bail from a timber tripod on a dark studio floor" /></a>
136136
<a href="showcase/wooden-ladder/"><img src="showcase/wooden-ladder/preview.webp" width="24%" alt="Wooden ladder: a raked timber ladder with six evenly spaced rungs and iron shoes, leaning against a dark wall section" /></a>
137137
<a href="showcase/hay-bale/"><img src="showcase/hay-bale/preview.webp" width="24%" alt="Hay bale: a bound straw bale with two sisal twine belts on a dark studio floor" /></a>

‎docs/gallery/index.html‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,23 +1135,23 @@ <h2><a href="wooden-bucket/">wooden-bucket</a></h2>
11351135
</article>
11361136
<article class="card" data-tags="mesh export showcase">
11371137
<a class="card-media" href="wall-torch/" tabindex="-1" aria-hidden="true">
1138-
<img src="assets/wall-torch-hero.webp" alt="A wall torch: a stone-block plaque with an iron bracket holding a bowl with a flame, casting warm light on the floor." loading="lazy" decoding="async" />
1138+
<img src="assets/wall-torch-hero.webp" alt="A wall torch: a dark-jointed stone plaque with a round iron plate and level arm holding a cup, from which a leaning wooden torch with a pitch-wrapped head burns above the cornice." loading="lazy" decoding="async" />
11391139
</a>
11401140
<div class="card-body">
11411141
<h2><a href="wall-torch/">wall-torch</a></h2>
1142-
<p class="teaches">A procedural wall-mounted torch sconce with a dressed stone plaque, iron bracket, wooden haft, and emissive flame through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1143-
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 1528 tris, four materials with 540 stone, 228 metal and 78 flame faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.304×0.293×0.424 m at zmin 0, LOD ratios in band, convex collider 60 tris, non-empty glTF. Hygiene all zero. Arm-to-cup gap 0.87 mm, plate-to-plaque gap 4 mm, plaque width 0.280 m. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --float-arm 17; --float-plate 18; --skinny-plaque 19.</p>
1142+
<p class="teaches">A procedural wall-mounted torch sconce: an iron plate bolted to the stone face, a level arm, an open cup holding a leaning haft with a pitch wrap and upright flames, through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1143+
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 2004 tris, five materials with 540 stone, 318 metal, 50 wood, 180 flame and 60 pitch faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.304×0.322×0.485 m at zmin 0, LOD ratios in band, convex collider 116 tris, non-empty glTF. Hygiene all zero. Arm level 0.000°, plate 13 mm proud of the stones and 3 mm into them, arm-to-cup gap 0.07 mm, plaque width 0.280 m, bake 27.7 texels per UV cell. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --float-arm 17; --float-plate 18; --skinny-plaque 19; --droop-arm 20; --sink-plate 21; --low-bake 22.</p>
11441144
<a class="card-link" href="wall-torch/">View showcase piece<span class="sr-only"> wall-torch</span> <span aria-hidden="true">&rarr;</span></a>
11451145
</div>
11461146
</article>
11471147
<article class="card" data-tags="mesh export showcase">
11481148
<a class="card-media" href="tavern-stool/" tabindex="-1" aria-hidden="true">
1149-
<img src="assets/tavern-stool-hero.webp" alt="A wooden tavern stool with a round seat, turned splayed legs and stretcher rungs." loading="lazy" decoding="async" />
1149+
<img src="assets/tavern-stool-hero.webp" alt="A wooden tavern stool with a grained round seat, turned splayed legs, stretcher rungs at two heights, and dark iron ferrules on flat treads." loading="lazy" decoding="async" />
11501150
</a>
11511151
<div class="card-body">
11521152
<h2><a href="tavern-stool/">tavern-stool</a></h2>
1153-
<p class="teaches">A procedural tavern stool with a lathed seat, turned splayed legs, tenoned stretchers, and iron ferrule cups through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1154-
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 2528 tris, two materials with 1168 wood and 256 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.340×0.340×0.470 m, LOD ratios in band, convex collider 396 tris, non-empty glTF. Hygiene all zero, four ferrule cups at zmin 0, stretcher-leg gap 0, ferrule clearance −1.25 mm. --float-stretchers exits 17 on the stretcher join; --pipe-ferrule exits 18 on the ferrule bite band.</p>
1153+
<p class="teaches">A procedural tavern stool with a lathed seat, turned splayed legs, staggered stretchers, and iron ferrules gripping each leg on its own axis over a level tread, through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1154+
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 3040 tris, two materials with 1168 wood and 576 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.341×0.341×0.470 m, LOD ratios in band, convex collider 468 tris, non-empty glTF. Hygiene all zero, four treads at zmin 0, stretcher-leg gap 0, ferrule grip 1.20 mm on each leg&#x27;s axis, leg ends 1.1 mm above their treads, bake 22.4 texels per UV cell. --float-stretchers exits 17; --pipe-ferrule 18; --sink-legs 20; --low-bake 21.</p>
11551155
<a class="card-link" href="tavern-stool/">View showcase piece<span class="sr-only"> tavern-stool</span> <span aria-hidden="true">&rarr;</span></a>
11561156
</div>
11571157
</article>

‎showcase/README.md‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,30 @@ entry in `showcase/gallery.json`, and a rendered still.
552552
by 24 mm, while its README said the width *was* the tile. `--wide-tile`
553553
restores the old stations. Check it before the AABB gate, or the envelope
554554
check fires first.
555+
- **A fixture is bolted to the face it is seen on (file-local code).** A
556+
wall plate seated on the backing slab, behind the face of the stones
557+
laid over it, is buried: `wall-torch` showed only its four bolt heads.
558+
A plate-to-plaque gap budget passed, because the plate still touched the
559+
slab. Derive the seat from the proudest face (`stone_face_y()`), and
560+
assert two things from the mesh: the fixture stands proud of that face
561+
by a named minimum, and its back bites the face within a band.
562+
`--sink-plate` restores the old seat.
563+
- **A ferrule grips the leg on the leg's axis (exit 18/20).** A vertical
564+
cup on the floor under a splayed leg can't hold it. The leg either
565+
saws through the wall or, as `tavern-stool` shipped, stops above an open
566+
ring with air around the foot. Build the sleeve on the leg's own axis,
567+
with its inner radius a named grip inside the leg. Bury its raked bottom
568+
in a level tread, and end the leg inside the sleeve above the tread.
569+
Measure the grip radially about the leg's principal axis, not by
570+
nearest-face signed distance: points in an open sleeve's hollow read as
571+
inside its wall.
572+
- **Bake texels per UV cell (file-local code).** One UV cell per face
573+
and a 256 px bake gives a 1,700-face piece about 6 px per cell. The
574+
render's bilinear lookup then reads the next cell's normals across the
575+
border, as dark slivers on the hero (`tavern-stool`). Assert the smallest
576+
UV cell's extent in baked texels, from the mesh's UVs and the image's
577+
actual size, against a floor (12 px). `--low-bake` bakes at 256 px and
578+
is the falsifier.
555579
- **Level on the stage.** A hero that tilts the piece about X, even by 2°,
556580
sinks one row of feet into the floor and lifts the other. Turn the piece
557581
only about Z.

‎showcase/gallery.json‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -285,9 +285,9 @@
285285
{
286286
"name": "wall-torch",
287287
"dir": "showcase/wall-torch",
288-
"teaches": "A procedural wall-mounted torch sconce with a dressed stone plaque, iron bracket, wooden haft, and emissive flame through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
289-
"alt": "A wall torch: a stone-block plaque with an iron bracket holding a bowl with a flame, casting warm light on the floor.",
290-
"witnessesFix": "Recomputed: 1528 tris, four materials with 540 stone, 228 metal and 78 flame faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.304×0.293×0.424 m at zmin 0, LOD ratios in band, convex collider 60 tris, non-empty glTF. Hygiene all zero. Arm-to-cup gap 0.87 mm, plate-to-plaque gap 4 mm, plaque width 0.280 m. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --float-arm 17; --float-plate 18; --skinny-plaque 19.",
288+
"teaches": "A procedural wall-mounted torch sconce: an iron plate bolted to the stone face, a level arm, an open cup holding a leaning haft with a pitch wrap and upright flames, through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
289+
"alt": "A wall torch: a dark-jointed stone plaque with a round iron plate and level arm holding a cup, from which a leaning wooden torch with a pitch-wrapped head burns above the cornice.",
290+
"witnessesFix": "Recomputed: 2004 tris, five materials with 540 stone, 318 metal, 50 wood, 180 flame and 60 pitch faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.304×0.322×0.485 m at zmin 0, LOD ratios in band, convex collider 116 tris, non-empty glTF. Hygiene all zero. Arm level 0.000°, plate 13 mm proud of the stones and 3 mm into them, arm-to-cup gap 0.07 mm, plaque width 0.280 m, bake 27.7 texels per UV cell. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --float-arm 17; --float-plate 18; --skinny-plaque 19; --droop-arm 20; --sink-plate 21; --low-bake 22.",
291291
"hero": "docs/gallery/assets/wall-torch-hero.webp",
292292
"preview": "showcase/wall-torch/preview.webp",
293293
"tags": [
@@ -299,9 +299,9 @@
299299
{
300300
"name": "tavern-stool",
301301
"dir": "showcase/tavern-stool",
302-
"teaches": "A procedural tavern stool with a lathed seat, turned splayed legs, tenoned stretchers, and iron ferrule cups through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
303-
"alt": "A wooden tavern stool with a round seat, turned splayed legs and stretcher rungs.",
304-
"witnessesFix": "Recomputed: 2528 tris, two materials with 1168 wood and 256 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.340×0.340×0.470 m, LOD ratios in band, convex collider 396 tris, non-empty glTF. Hygiene all zero, four ferrule cups at zmin 0, stretcher-leg gap 0, ferrule clearance −1.25 mm. --float-stretchers exits 17 on the stretcher join; --pipe-ferrule exits 18 on the ferrule bite band.",
302+
"teaches": "A procedural tavern stool with a lathed seat, turned splayed legs, staggered stretchers, and iron ferrules gripping each leg on its own axis over a level tread, through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.",
303+
"alt": "A wooden tavern stool with a grained round seat, turned splayed legs, stretcher rungs at two heights, and dark iron ferrules on flat treads.",
304+
"witnessesFix": "Recomputed: 3040 tris, two materials with 1168 wood and 576 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.341×0.341×0.470 m, LOD ratios in band, convex collider 468 tris, non-empty glTF. Hygiene all zero, four treads at zmin 0, stretcher-leg gap 0, ferrule grip 1.20 mm on each leg's axis, leg ends 1.1 mm above their treads, bake 22.4 texels per UV cell. --float-stretchers exits 17; --pipe-ferrule 18; --sink-legs 20; --low-bake 21.",
305305
"hero": "docs/gallery/assets/tavern-stool-hero.webp",
306306
"preview": "showcase/tavern-stool/preview.webp",
307307
"tags": [

0 commit comments

Comments
 (0)