Skip to content

fix(showcase): iron-cauldron and shipping-crate visual quality pass - #176

Merged
TMHSDigital merged 2 commits into
mainfrom
showcase/qpass-cauldron-crate
Sep 16, 2026
Merged

TMHSDigital merged 2 commits into
mainfrom
showcase/qpass-cauldron-crate

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Summary

Visual quality pass on iron-cauldron and shipping-crate (worst remaining after grindstone/wheelbarrow then treasure-chest/tavern-stool). Inspection sheets in .scratch/ (untracked). Three rounds plus a 3b verify of unfinished structural fixes. showcase/README.md already had hygiene conventions — no extra commit.

Picked because they had no hygiene section and the heroes hid the joints (flattering three-quarter with materials on).

iron-cauldron

Defects (inspection)

  1. Ferrules / front+side ortho + ferrule close-up. Vertical world-Z cups sat while the poles leaned, so the pole sliced the downhill lip instead of sitting in a well.
  2. Ears / three-quarter + clay. Pancake torus ears; bail punched through a flat disk rather than a ring with thickness.
  3. Pot rim / top ortho + clay. Single-wall lathe with a sharp lip; no rolled rim catching light.
  4. Ground / ground-contact close-up. Ferrule downhill rim not at Z=0 because the cup was a world-Z bucket, not coaxial with the pole.
  5. Bail–hook / joint close-up. Hook hovered or mashed depending on bail radius; gap not measured in pole/hook frame.

Generator fixes (structural)

  • Ferrule is a shoe lofted along the pole axis, then shifted along the downhill tangent so the outer rim is Z=0. Pole starts at shifted + tangent * (FERRULE_FLOOR + 0.002) — shared plane, not a magic Z.
  • ferrule_bite uses pole-axis radius and only samples wood inside the cup's own axis span, so a pole hovering above the well cannot fake a seat.
  • Dual-wall lathe + rolled rim. Ear rings are short pipes, not pancakes.
  • --pipe-ferrule keeps the same cup and lifts the pole above the well so the falsifier hits exit 18 only (not zmin/AABB/supports first).

Hygiene (all three binaries)

Non-manifold/loose/doubles/zero-area/n-gons/z-fight 0. zmin 0. 3 cups at z 0. Bite −0.00185. Hook gap 0. Pot 0.3545 × 0.3340 m. Clearance 0.0464. Collider 250. Export 287916 / 287916 / 287904.

Defaults 0. --skip-decimate 9. --stray-vert 15. --lift-z / --short-legs 16. --float-hook 17. --pipe-ferrule 18.

Tris 3388 → 3664. Framing fill y 0.750, margins ≥ 0.02 (no deviation=). Inspection rounds: 3 + 3b.

Hero still reads as a hanging iron pot on a timber tripod. Faceted ear pipes remain a nit.

shipping-crate

Defects (inspection)

  1. Skid / bottom ortho + ground close-up. Skids sat inside the footprint; posts hung over a cave instead of a mortise.
  2. Handle / three-quarter + handle close-up. 90° loft sat the bar on the plate; pipe did not enter the plate.
  3. Slats / side ortho + wireframe. No bottom sills; slats floated off posts or butted without tenons.
  4. L-straps / joint close-up. Straps hovered off the slat face.
  5. Form / clay. Beveled cube with glued-on slats; silhouette did not read as a crate.

Generator fixes (structural)

  • Skids computed from post outer XY so they sit under the posts. --short-skids lifts skid_z0 to 0.055 (0.04 made skid tops coplanar with sills → zfight 4, exit 15 before 16).
  • Handle bails use quarter-circle corners; plates sit on the slat face; pipe ends in wood. Gap measured as handle-end BVH.
  • Bottom sills + post tenons. Slat-post BVH gap gated.
  • --omit-slats hits exit 18 only.

Hygiene (all three binaries)

Non-manifold/loose/doubles/zero-area/n-gons/z-fight 0. zmin 0. 3 skids at z 0. Handle gap 0. Slat-post gap 0. Body 1.056 × 0.716 m. Collider 76. Export 197408 / 197408 / 197392. LOD2 0.2193 / 0.2193 / 0.2057.

Defaults 0. --skip-decimate 9. --stray-vert 15. --lift-z / --short-skids 16. --float-handle 17. --omit-slats 18.

Tris 624 → 2508. Framing fill y 0.728, margins ≥ 0.02. Inspection rounds: 3 + 3b.

Hero still reads as a post-and-slat shipping crate. Nits: handle plates straddle a slat gap; L-straps do not wrap onto the sill; bail still faceted.

Evidence

  • Live run: check-only + all falsifiers on 4.5.11, 5.1.2, 5.2.1; hero --output on 5.2.1 with framing gate.
  • Inspection: .scratch/qpass/{cauldron,crate}/round-{1,2,3,3b}/ (not committed).
  • Gallery: python scripts/build_gallery.py → 77 pages; alts/witnesses read back.

Test plan

  • needs-5.1 applied via REST; 5.1 smoke job appears
  • blender-smoke 5.2 / 5.1 / 4.5 green
  • validate + drift-check + Socket green
  • squash-merge, tag, Pages, gallery 200

TMHSDigital and others added 2 commits September 16, 2026 16:59
World-Z cups let leaning poles slice the lip. Coaxial shoes plus pole-axis bite keep the joint closed without a magic offset.

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

Posts hung over a skid cave and 90-degree handle lofts sat on the plates. Shared post/skid planes and quarter-circle bails close those joints without magic offsets.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 16, 2026
@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 16, 2026
@TMHSDigital
TMHSDigital merged commit 7a732f3 into main Sep 16, 2026
13 checks passed
@TMHSDigital
TMHSDigital deleted the showcase/qpass-cauldron-crate branch September 16, 2026 21:06
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