Skip to content

fix(showcase): market-stall and watchtower visual quality pass - #179

Merged
TMHSDigital merged 2 commits into
mainfrom
fix/showcase-stall-tower-quality
Sep 17, 2026
Merged

TMHSDigital merged 2 commits into
mainfrom
fix/showcase-stall-tower-quality

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Summary

Visual quality pass on market-stall and watchtower — the two largest remaining pieces that had never had one. Four inspection rounds on 5.2.1 (round 3 still showed a wood-U roof and a floating ladder pad; round 4 closed both). Fixes are in the generators. Hygiene 15–19 already live in showcase/README.md; this PR does not change that file.

Picks: never-passed. Next run should take stone-well / street-lantern (largest remaining unpassed silhouettes).

Market stall

Defects (inspection sheet, rounds 1–3)

  1. Post-bottom cubes sat coplanar with the post end-caps and z-fought at Z=0 — bottom ortho, ground-contact, joint-post-foot.
  2. Counter-leg pads shared the same bottom plane as the legs — bottom ortho.
  3. Side braces occupied the counter volume (visible interpenetration) — front ortho, joint-brace, clay.
  4. Awning underside sat below the front header; the hanging valance top was counted as the seat face — joint-rafter-awning, front ortho.
  5. Identical slats, no roller/hem, valance read as a floating stripe slab — three-quarter, front ortho.
  6. Wrap-foot audit split four plates into eight corners (round(cx*4)/4) — audit, not a silhouette defect.

Generator fixes (structural)

  • Wrap plinths (add_wrap) stand off the post by half + t/2 + 0.002; Y-plates span host+2t so corners meet without coplanar overlap. No capped foot cube.
  • Counter legs go to Z=0; pads removed.
  • Braces sit on the post-bay centreline, not through the counter.
  • Awning centreline is FRONT_H+0.012 / BACK_H+0.012; seat measures stripe faces with zmax > FRONT_H so the valance top cannot pass as the canopy.
  • Slat jitter from sin(i) increased; front roller/hem added.
  • Support audit clusters wraps by quadrant (sign(cx), sign(cy)).
  • Camera pulled back from span-relative 1.78/2.42 to 2.17/2.95 so Layer 1 fill sits in band after the taller valance.

Hygiene (all three binaries)

Axis Declared 4.5.11 / 5.1.2 / 5.2.1
tris 3900–5200 4324 / 4324 / 4324
hygiene (loose/nonman/doubles/zero-area/ngon/zfight) 0 0
zmin / feet / foot_z 0 / 4 / ≤1e-3 0 / 4 / 0
brace overlap / header engage / awning seat / plumb ≤1e-6 / ≥0.4·tenon / −0.002–0.010 / ≤0.008 0 / 0.0595 / 0.00378 / 0
collider ≤80 58
LOD1 / LOD2 0.32–0.62 / 0.10–0.35 0.5000 / 0.2197

Before/after tris: 4404 → 4324.

Falsifiers (same code on 4.5.11, 5.1.2, 5.2.1)

Flag Budget Exit
(default) 0
--skip-decimate LOD1 ratio 9
--stray-vert loose verts 15
--lift-z zmin 16
--short-feet named wrap feet 16
--low-brace brace-vs-counter 17
--float-awning awning seat 18
--rake-posts post plumb 19

Inspection rounds: 4. Framing on 5.2.1: fill y=0.783, margins min 0.056. No deviation=. Landing-page-worthy.

Watchtower

Defects (inspection sheet, rounds 1–3)

  1. Shake courses did not cover the cone; the deck-rail wood U showed through the roof — top ortho, clay, three-quarter.
  2. Girt iron and girt wood shared a midplane (z-fight) — joint, wire.
  3. Kick bottom coplanar with sill bottom — ground-contact, bottom ortho.
  4. X-brace inner faces occupied one plane — front ortho.
  5. Collar inner verts sat on post faces (doubles); 4-plate collars overlapped at corners — clay, wire.
  6. Shingle row 0 at t=0 collapsed to the peak (4 zero-area faces) — top ortho, hygiene.
  7. Shoes added before zmin snap, then lifted (~3 mm) — ground-contact.
  8. Ladder stiles started on a 32 mm pad, so they floated — front ortho, ground-contact.
  9. PLAN_XY was the post bay (1.13 m) against an eave AABB of 1.594 m — would have fired 19 on a correct plan.

Generator fixes (structural)

  • Solid 4-cone plus courses with t0=(row+0.14)/N, t1=min(0.96,(row+1)/N), offset along face normal so peak/eave verts are not doubled.
  • Iron collars standoff 0.002; X-plates span POST, Y-plates span POST+2t (miter, not overlap). Collars after zmin snap (z<0.005 → 0).
  • Members tenon with section = POST*0.70 so end verts are not on post faces.
  • Kick sits on the sill, inset 0.020 from the post plane.
  • X-braces offset k*(BRACE_T+0.008).
  • Ladder stiles from Z=0 (no separate foot cubes).
  • PLAN_XY = 2*EAVE_HALF. Camera pulled back 1.55/2.15 → 1.98/2.75 for the taller roof.

Hygiene (all three binaries)

Axis Declared 4.5.11 / 5.1.2 / 5.2.1
tris 6200–8200 6408 / 6408 / 6408
hygiene 0 0
zmin / shoes / shoe_z 0 / 4 / ≤1e-3 0 / 4 / 0
rail engage / band seat / plumb ≥0.012 / ≤0.010 / ≤0.010 0.0180 / 0.00200 / 0
collider ≤180 150
LOD1 / LOD2 0.32–0.62 / 0.10–0.35 0.5000 / 0.2197 (5.2 LOD2 0.2185)

Before/after tris: 5220 → 6408 (taller eave-true roof and coursed shakes, not hidden faces). Collider ceiling 80 → 180 to match the new pyramidal silhouette (measured 150).

Falsifiers (same code on 4.5.11, 5.1.2, 5.2.1)

Flag Budget Exit
(default) 0
--skip-decimate LOD1 ratio 9
--stray-vert loose verts 15
--lift-z zmin 16
--short-shoes named shoes 16
--short-rails rail-to-post 17
--float-band collar seat 18
--rake-posts post plumb 19

Inspection rounds: 4. Framing on 5.2.1: fill y=0.767, margins min 0.083. No deviation=. Landing-page-worthy.

Test plan

  • Default + 7 falsifiers × 2 pieces × 4.5.11 / 5.1.2 / 5.2.1 (exit codes above)
  • Framing gate on 5.2.1, no deviation=
  • CI blender-smoke 4.5, 5.1 (needs-5.1 via REST), 5.2
  • Post-merge: tag, Pages, gallery 200

TMHSDigital and others added 2 commits September 17, 2026 08:19
…ning

Capped foot cubes and counter-leg pads z-fought at Z=0, and braces punched the counter. Wrap plates and a post-bay brace plane are durable; per-coordinate nudges are not.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…d stiles

Incomplete courses left a wood U through the eave, and shoes lifted after the zmin snap. A solid cone plus post-snap collars are durable; per-coordinate nudges are not.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@TMHSDigital TMHSDigital added the needs-5.1 Opt-in Blender 5.1 smoke on this PR. Default matrix stays 4.5 + 5.2. Auto-label will not apply this. label Sep 17, 2026
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 17, 2026
@TMHSDigital
TMHSDigital merged commit 1c9c022 into main Sep 17, 2026
13 checks passed
@TMHSDigital
TMHSDigital deleted the fix/showcase-stall-tower-quality branch September 17, 2026 12:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation needs-5.1 Opt-in Blender 5.1 smoke on this PR. Default matrix stays 4.5 + 5.2. Auto-label will not apply this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant