Skip to content

fix: hitching-post, hand-pump, shader-node-group and driver-wave quality pass - #236

Merged
TMHSDigital merged 5 commits into
mainfrom
fix/quality-pass-post-pump-examples
Sep 23, 2026
Merged

TMHSDigital merged 5 commits into
mainfrom
fix/quality-pass-post-pump-examples

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Quality pass: four items, two showcase (Track A) and two gallery examples (Track B). Every pathology/cross-version example (Track C) had already been reviewed. Everything below comes from live runs on .scratch/blender-{4.5.11,5.1.2,5.2.1}-windows-x64/blender.exe, which report 4.5.11 LTS / 5.1.2 / 5.2.1 LTS, unless it is labelled inspection. Baselines were taken on the pristine tree before any edit.

(The prompt asks for "four or five pieces" in its intro and "two or three items" in Step 2. This run takes four.)

A — showcase/hitching-post

Took 1 inspection round.

Defects

  1. Small black slits up the post faces (mid and foot close-ups, three-quarters). The two iron bands were sized from half - grip: an inner half-width of 53 mm and an outer of 61 mm, against a 62.5 mm post face. They sat inside the post, and only the chamfered corners broke the surface.
  2. Flat single-tone wood; iron at metallic 1.0 (hero).
  3. The back wall's left edge showed in the corner of the hero (the stage grid was 14 m).
  4. The temp .glb export leaked. The bevel input was a Python set of edges (the face-order hazard found in fix: wooden-ladder, wheelbarrow, curve-bevel-arc and sky-texture-sun-elevation quality pass #235).

Fixes, and why each is structural

  • 1: bands are sized from the post face: the inner face bites BAND_BITE 1.5 mm in, and the band stands BAND_T − BAND_BITE proud. The shoe collar is unchanged.
  • 2: per-shell PlankTone/GrainDir wood (post, rail, cap) and rusted iron. 3: stage 60 m. 4: export removed after measuring; bevel input sorted by edge index.

New budget, identical on 4.5.11, 5.1.2 and 5.2.1:

Budget Band Measured
Band seat (exit 18) each band above the shoe stands ≥ 0.004 m proud of the post faces 0.00650

The existing band_gap check could not catch the defect: a sunk band overlaps the wood, and overlap passes.

Triangles: 1680 → 1680. Same-binary deterministic (three runs).

Falsifier: --sunk-bands restores the old bands → 18 on all three binaries (proud −0.0015 m).

Existing exit codes, before → after, identical on all three: default 0→0, --skip-decimate 9→9, --stray-vert 15→15, --lift-z 16→16, --short-post 19→19, --twin-sole 15→15, --clip-ring 18→18.

Hero: check_framing without deviation=. Contact sheet: docs/gallery/contact-sheets/hitching-post-contact-sheet.webp, luma 0.179 (band 0.151–0.305), stage 0.179.

A — showcase/hand-pump

Took 1 inspection round. No geometric defect found. Every joint in the sheet (spout root, flange bolts, head and handle pivot, column step, plinth) seats as its budget says. The defects were surface:

  1. The iron read as chrome: metallic 1.0, roughness 0.38 (hero, every close-up).
  2. Flat single-tone plinth and grip.
  3. The wall edge in the corner of the hero (14 m stage).
  4. Temp .glb leak; set-ordered bevel input.

Fixes: near-black painted cast iron (metallic 0.55, roughness 0.52) with dark rust in the pores; per-piece wood; stage 60 m; export removed; bevel input sorted. With no new geometric defect there is no new budget, and I did not invent one.

Triangles: 1064 → 1064. Same-binary deterministic (three runs).

Existing exit codes, before → after, identical on all three: default 0→0, --skip-decimate 9→9, --stray-vert 15→15, --lift-z 16→16, --float-flange 18→18, --float-spout 17→17, --skinny-col 19→19.

Hero: framing passes without deviation=. Contact sheet: docs/gallery/contact-sheets/hand-pump-contact-sheet.webp, luma 0.160.

B — examples/shader-node-group

Presentation changes (render path only): the Standard view transform (none was set, so AgX washed both tints toward pastel); the house dark stage (the floor was 0.055 and the world 0.008); a larger, softer key (the glossy spheres had mirrored a hard white square); a 50 mm lens and a Track-To aim at the sphere centres. README: staging note.

Contract unchanged. Before → after, identical on all three binaries: default 0 → 0, --same-tint 6 → 6.

Framing: check_framing passes (fill x 0.762, margins 0.119 / 0.217). Contact sheet: docs/gallery/contact-sheets/shader-node-group-contact-sheet.webp, luma 0.284, stage 0.255.

B — examples/driver-wave

Presentation changes (render path only): the camera is raised to look down about 18° (from 86° pitch, nearly level), so the column tops and their shadows read as a wave instead of a flat bar chart. README: staging note.

Contract unchanged. Before → after, identical on all three binaries: default 0 → 0, --flat-expr 3 → 3.

Framing: check_framing passes (fill x 0.884, min margin 0.056). Contact sheet: docs/gallery/contact-sheets/driver-wave-contact-sheet.webp, luma 0.192.

Also

  • showcase/README.md conventions: A band wraps its host; it is never sunk into it; Iron is not chrome; The stage is bigger than the frame.
  • Gallery alts, witnessesFix text and root README alts updated. Gallery regenerated, with the generated <img alt> read back.
  • Known gaps, not closed here:

🤖 Generated with Claude Code

TMHSDigital and others added 5 commits September 23, 2026 16:38
The bands were sized inside the post and only the chamfered corners showed,
as black slits; they now wrap it 6.5 mm proud (band seat, exit 18,
--sunk-bands). Per-piece wood, rusted iron, 60 m stage, sorted bevel input,
temp glb removed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
No geometric defect found. The iron read as chrome (metallic 1.0, roughness
0.38); it is now painted cast iron with dark rust. Per-piece wood, 60 m
stage, sorted bevel input, temp glb removed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Render path only: Standard view transform, dark stage, softer key, camera
aimed at the spheres. Contract and exit codes unchanged on 4.5.11, 5.1.2
and 5.2.1.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Render path only: the camera looks down 18 degrees so the column tops and
shadows read as a wave. Contract and exit codes unchanged on 4.5.11, 5.1.2
and 5.2.1. Also regenerates the gallery index for all four items.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
From the hitching-post and hand-pump passes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.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 23, 2026
@github-actions github-actions Bot added examples Runnable smoke-gated examples under examples/ showcase Budget-conformance props under showcase/ documentation Improvements or additions to documentation labels Sep 23, 2026
@TMHSDigital
TMHSDigital merged commit 819420e into main Sep 23, 2026
13 checks passed
@TMHSDigital
TMHSDigital deleted the fix/quality-pass-post-pump-examples branch September 23, 2026 20:45
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 examples Runnable smoke-gated examples under examples/ 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. showcase Budget-conformance props under showcase/

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant