Skip to content

fix: anvil, signpost, text-version-stamp and cross-version-property-delete quality pass - #237

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

TMHSDigital merged 5 commits into
mainfrom
fix/quality-pass-anvil-signpost-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 pick I dropped: swatch-grid was picked for Track B, then left alone. Its contract samples the rendered PNG (verify_png() reads fixed grid-cell positions under a fixed ortho camera), and the flat emissive orange swatch is part of what it witnesses. Any change to layout or camera would touch an assertion. uv-layer-grid (verify_still samples pixel patches) is locked the same way. cross-version-property-delete took the slot.

A — showcase/anvil

Took 1 inspection round.

Defects

  1. The waist was a turned funnel. It was lofted from ellipses, so under the rectangular face it read as a lathe part, not a forged anvil (every ortho, anvil_seat close-up, hero).
  2. The steel read as chrome (metallic 0.92, roughness 0.32); flat single-tone wood (hero).
  3. The wall edge showed in the corner of the hero (14 m stage).
  4. The temp .glb export leaked.

Fixes, and why each is structural

  • 1: the waist is a superellipse section (WAIST_P 4.5) lofted through five stations that flare from the foot in to a pinch and out to the body. The section is squared; the ellipse was the parameter at fault.
  • 2: dark forged steel with rust; per-piece wood. 3: stage 60 m. 4: export removed after measuring.

New budget, identical on 4.5.11, 5.1.2 and 5.2.1:

Budget Band Measured
Waist form (exit 19) corner reach at the pinch ring ≥ 0.80 (the most a section vertex fills its bounding rectangle's corner; an ellipse is 0.707) 0.8572

Triangles: 2988 → 3052 (two more waist stations; ceiling 4500). Same-binary deterministic (three runs). The stave bevel input is built from an ordered vertex list, so it was already deterministic.

Falsifier: --round-waist sets the section exponent to 2 → 19 on all three binaries (0.7071).

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-staves 16→16, --float-anvil 17→17, --round-band 18→18.

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

A — showcase/signpost

Took 1 inspection round. No geometric defect found: boards, straps, bands and shoe seat as their budgets say. The defects were surface:

  1. Flat pale-yellow boards.
  2. Iron read as chrome (metallic 1.0, roughness 0.38).
  3. The wall edge in the corner of the hero (14 m stage).
  4. Temp .glb leak; set-ordered bevel input.

Fixes: cream paint worn through to the wood by a noise mask, a shade apart per board (board_material); rusted iron; per-piece post wood; stage 60 m; export removed; bevel input sorted by edge index. No new budget.

Triangles: 376 → 376. 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, --short-shoe 16→16, --float-strap 18→18, --gap-board 17→17, --yaw-boards 19→19.

Hero: framing passes. Contact sheet: docs/gallery/contact-sheets/signpost-contact-sheet.webp, luma 0.167.

B — examples/text-version-stamp

Presentation changes (render path only): the numerals stand on a dark plinth with the steel caption set into its front face. The caption used to float in the air above the stamp, and an emissive bar lay along the bottom edge of the frame. Also: Standard view transform, the house stage floor, and the camera reframed. README: staging note.

Contract unchanged. Before → after, identical on all three binaries: default 0 → 0, --wrong-body 4 → 4.

Framing: check_framing passes (fill x 0.784, min margin 0.044). Contact sheet: docs/gallery/contact-sheets/text-version-stamp-contact-sheet.webp, luma 0.285.

B — examples/cross-version-property-delete

Presentation changes (render path only): the two tags hang from the stand's bar on steel rods. The bar used to run 0.17 m behind the plates with nothing joining them, and the "rings" were solid discs (now hidden), so the plates hung on air. The bar now spans both plates, the post rises to it, and the base is as wide as what it carries. The camera was reframed. README: staging note.

Contract unchanged. The check reads ID properties, never geometry. The pristine script was run from a scratch copy for the baseline. Before → after, identical on all three binaries: default 0 → 0, --skip-delete 7 → 7, --unset-instead 7 → 7.

Framing: check_framing passes (fill y 0.733, min margin 0.072). Contact sheet: docs/gallery/contact-sheets/cross-version-property-delete-contact-sheet.webp, luma 0.207.

Also

  • showcase/README.md conventions: A forging is not a turning; Paint wears through to what is under it.
  • 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 17:11
The waist was lofted from ellipses and read as a funnel; it is now a squared
superellipse section flaring foot to pinch to body (waist form, exit 19,
--round-waist). Dark forged steel, per-piece wood, 60 m stage, 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. Boards are cream paint worn through to the wood,
the iron is rusted instead of chrome, 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: the numerals stand on a plinth with the caption set into
its face; the floating caption and edge glow bar are gone. Standard view.
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>
…tand

Render path only: the tags hang from the bar on rods instead of floating in
front of it. 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 anvil and signpost 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 8799122 into main Sep 23, 2026
14 checks passed
@TMHSDigital
TMHSDigital deleted the fix/quality-pass-anvil-signpost-examples branch September 23, 2026 21:17
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