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
docs(gallery): regenerate pages and contact sheets for round-three redesigns
Rebuilds docs/gallery for swatch-grid, turntable, light-link-studio, image-pixels-testcard, attribute-domain-shear, street-lantern, hand-pump, anvil, campfire, water-trough, watchtower, fence-kit, wooden-ladder and hitching-post, and recomposites their contact sheets. Drops 'mirroring its staves' from the water-trough alt, since the committed hero shows no visible reflection. check_site_links: 91 pages, 2599 internal references, 0 failures.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
<imgsrc="../assets/attribute-domain-shear-hero.webp" alt="Two striped patio parasols labelled CORNER and POINT: the left has crisp crimson and cream stripes, the right has stripes smeared pink along the seams and a front panel turned cream." width="1280" height="720" loading="lazy" decoding="async" />
1338
+
<imgsrc="../assets/attribute-domain-shear-hero.webp" alt="Two patio parasols on a terracotta paver deck behind CORNER and POINT slate placards: the left has crisp crimson and cream stripes, the right has its stripes smeared pink." width="1280" height="720" loading="lazy" decoding="async" />
<imgsrc="../assets/swatch-grid-hero.webp" alt="Six material spheres on graphite plinths in two tiers: mirror gold, brushed copper and red behind; blue, a glowing orange emissive globe and matte white in front." width="1280" height="720" loading="lazy" decoding="async" />
1155
+
<imgsrc="../assets/swatch-grid-hero.webp" alt="Six material spheres in gunmetal collars on a two-tier walnut riser, each over an engraved brass plaque: gold, copper, red plastic behind; blue plastic, emissive, white rough in front." width="1280" height="720" loading="lazy" decoding="async" />
<imgsrc="../assets/image-pixels-testcard-hero.webp" alt="A monitor showing a colour-bar test card with a black circleand a greyscale strip." width="1280" height="720" loading="lazy" decoding="async" />
1173
+
<imgsrc="../assets/image-pixels-testcard-hero.webp" alt="A hooded broadcast reference monitor on a walnut desk showing a colour-bar test card with a black circle, a greyscale ramp and a PLUGE row." width="1280" height="720" loading="lazy" decoding="async" />
<imgsrc="../assets/attribute-domain-shear-hero.webp" alt="Two striped patio parasols labelled CORNER and POINT: the left has crisp crimson and cream stripes, the right has stripes smeared pink along the seams and a front panel turned cream." width="1280" height="720" loading="lazy" decoding="async" />
2323
+
<imgsrc="../assets/attribute-domain-shear-hero.webp" alt="Two patio parasols on a terracotta paver deck behind CORNER and POINT slate placards: the left has crisp crimson and cream stripes, the right has its stripes smeared pink." width="1280" height="720" loading="lazy" decoding="async" />
<imgsrc="../assets/turntable-hero.webp" alt="A smooth copper monkey head (Suzanne) turned three-quarters on a black turntablewith a brushed metal platter." width="1280" height="720" loading="lazy" decoding="async" />
1320
+
<imgsrc="../assets/turntable-hero.webp" alt="A copper Suzanne turned three-quarters on a lathed display turntable: vented motor base with a status lamp, a steel platter ticked every keyed frame, and an amber arrow on the mat." width="1280" height="720" loading="lazy" decoding="async" />
<imgsrc="../assets/turntable-hero.webp" alt="A smooth copper monkey head (Suzanne) turned three-quarters on a black turntablewith a brushed metal platter." width="1280" height="720" loading="lazy" decoding="async" />
1191
+
<imgsrc="../assets/turntable-hero.webp" alt="A copper Suzanne turned three-quarters on a lathed display turntable: vented motor base with a status lamp, a steel platter ticked every keyed frame, and an amber arrow on the mat." width="1280" height="720" loading="lazy" decoding="async" />
<metaproperty="og:image:alt" content="A run of three weathered post-and-rail fence sections on a packed-earth strip, joined post to post at the tile pitch, each with a diagonal board brace and dark iron bands." />
19
+
<metaproperty="og:image:alt" content="A weathered post-and-rail fence run of three sections on a packed-earth strip, one capped post at each joint, each bay with a diagonal board brace and dark iron bands." />
<metaname="twitter:description" content="A procedural post-and-rail fence section that fits its 1.60 m tile, with one-shell iron bands and a board brace housed in both posts, through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract." />
<metaname="twitter:image:alt" content="A run of three weathered post-and-rail fence sections on a packed-earth strip, joined post to post at the tile pitch, each with a diagonal board brace and dark iron bands." />
25
+
<metaname="twitter:image:alt" content="A weathered post-and-rail fence run of three sections on a packed-earth strip, one capped post at each joint, each bay with a diagonal board brace and dark iron bands." />
26
26
<style>
27
27
/* fonts are deployed by the landing build (docs/fonts/) */
<buttonclass="detail-hero" id="heroZoom" type="button" aria-label="View full size: A run of three weathered post-and-rail fence sections on a packed-earth strip, joined post to post at the tile pitch, each with a diagonal board brace and dark iron bands.">
355
-
<imgsrc="../assets/fence-kit-hero.webp" alt="A run of three weathered post-and-rail fence sections on a packed-earth strip, joined post to post at the tile pitch, each with a diagonal board brace and dark iron bands." width="1280" height="720" fetchpriority="high" />
354
+
<buttonclass="detail-hero" id="heroZoom" type="button" aria-label="View full size: A weathered post-and-rail fence run of three sections on a packed-earth strip, one capped post at each joint, each bay with a diagonal board brace and dark iron bands.">
355
+
<imgsrc="../assets/fence-kit-hero.webp" alt="A weathered post-and-rail fence run of three sections on a packed-earth strip, one capped post at each joint, each bay with a diagonal board brace and dark iron bands." width="1280" height="720" fetchpriority="high" />
356
356
</button>
357
357
<pclass="zoom-hint">Rendered headless by the showcase piece itself — click to zoom.</p>
358
358
<divclass="callout"><spanclass="tag">witnesses</span> Recomputed: 1012 tris, two materials with 116 metal and 390 wood faces, UVs in 0..1 with zero AABB overlap, outer AABB 1.596×0.134×1.232 m inside the 1.60 m tile, grounded zmin, 2 iron shoes, brace housed 12 mm in both posts and bearing 2 mm on the middle rail, rail-to-post gap 0.93 mm, rail span 1.362 m, LOD ratios in band (5.2 COLLAPSE leaner on LOD2), convex collider 24 tris, hygiene all zero, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z/--short-shoes 16; --short-brace 17; --gap-rails 18; --long-rails 19; --float-brace 20; --wide-tile 21.</div>
@@ -364,7 +364,7 @@ <h1>fence-kit</h1>
364
364
<sectionclass="detail-section md">
365
365
<p>A showcase piece, not an example. A procedural post-and-rail fence section (two posts, pyramidal caps, three rails, a kickboard, a board brace, iron shoes and U-bands), then the shipped pipeline: unique-cell UVs, a Cycles high-to-low normal bake, an LOD chain, a convex collider and a Unity glTF export.</p>
366
366
<p>Posts, rails, kick, brace and bands share named stations (<code>POST_XS</code>, <code>RAIL_ZS</code>, <code>SHOE_H</code>). The post stations come from the tile. The outer faces of the iron bands sit <code>KIT_CLEAR</code> (2 mm) inside the tile edge, so copies placed at the 1.60 m pitch meet band to band without interpenetrating or sharing a plane. Each band is one shell, mitred at the corners. A rail band is a U open toward the span, with its arms stopped inside the post's inner face. The brace is a board with plumb-cut ends, face-nailed to the middle rail and housed 12 mm into both posts. It clears the bottom rail at the left post and the top rail at the right one. Rails and kick tenon into the post volume.</p>
367
-
<p><strong>Hero.</strong> The still shows the kit doing its job: three linked duplicates of the one checked mesh at the 1.60 m pitch, so every joint in the picture is the tile fit the budgets assert — the paired posts meet band to band, <code>KIT_CLEAR</code> apart. The run stands in a render-only packed-earth strip, and the wood weathers in broad silver-grey patches (object-space noise) over the per-member tone and grain. The strip and the duplicates are staging; the asset sheet judges the single <code>FenceLow</code> section.</p>
367
+
<p><strong>Hero.</strong> The still shows a three-section run that reads as one fence, with one post at each joint. The leading section is the checked <code>FenceLow</code> mesh. Each follow-on section is a render-only copy with its first post group (post, cap, shoe and bands, found as mesh shells) removed, stepped at the post pitch <code>2·HX</code>. Its rails and brace then tenon into the previous section's trailing post. Placed whole at the 1.60 m tile pitch, the sections meet band to band, which is the tile fit the budgets assert, but every joint shows a doubled post. The earlier hero did exactly that. The run stands in a render-only packed-earth strip, and the wood weathers in broad silver-grey patches (object-space noise) over the per-member tone and grain. The strip and the trimmed copies are staging; the asset sheet judges the single <code>FenceLow</code> section.</p>
368
368
<p>It asserts <strong>budget conformance</strong> of the generated result. It does not witness an API contract. "It rendered without error" is not a check. This piece does not re-witness the <code>modular-kit-snap</code> snap contract.</p>
369
369
<p><strong>Composes</strong> skills <code>mesh-editing-and-bmesh</code>, <code>bake-high-to-low</code>, <code>depsgraph-and-evaluated-data</code>, <code>engine-export-presets</code>, and snippets <code>bake_normal_high_to_low.py</code>, <code>setup_bake_target_image.py</code>, <code>lod_chain.py</code> / <code>decimate_to_budget.py</code>, <code>convex_hull_collider.py</code>, <code>export_preset_unity.py</code> (helpers copied, not imported as a package). Hygiene combinatorics match <code>examples/mesh-hygiene-audit</code> (copied, not imported).</p>
370
370
<p>Intended size: 1.60 m tile, 1.14 m posts, 0.11 m post stock. Outer AABB 1.596 × 0.134 × 1.232 m.</p>
<imgsrc="../assets/fence-kit-hero.webp" alt="A run of three weathered post-and-rail fence sections on a packed-earth strip, joined post to post at the tile pitch, each with a diagonal board brace and dark iron bands." />
3422
+
<imgsrc="../assets/fence-kit-hero.webp" alt="A weathered post-and-rail fence run of three sections on a packed-earth strip, one capped post at each joint, each bay with a diagonal board brace and dark iron bands." />
0 commit comments