fix: market-stall, stone-well, gltf-export-roundtrip and prop-origin-transform quality pass - #238
Merged
Merged
Conversation
The side braces stopped at mid-depth, 0.43 m short of the front post, and were so nearly level the joint audit never classed them as braces. They now run front post to back post, and a brace-in-post seat budget asserts both ends (exit 17, --short-brace). Grained per-piece wood, canvas stripes, sorted bevel input, 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; the diagonal posts are deliberate and budgeted. Each stone takes its own shade, the roof and posts take grain and a tone per piece, and the hoops and crank are rusted iron instead of chrome. Sorted bevel input and a 60 m stage. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
…gate Render path only: both twins turn 22 degrees to show a side, and the render now calls check_framing, which it never did. Exit 10 is a check code here, so a framing violation is remapped to 22. 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 origin markers were buried in the plinth. The X and Y stubs now cross under each base and exit it on the floor; labels are legible at card size. 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 market-stall and stone-well passes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Quality pass: four items, two showcase (Track A) and two gallery examples (Track B). No pathology/cross-version example (Track C) was left unreviewed. 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/market-stallTook 1 inspection round.
Defects
ortho_left,ortho_right,joint_awning_corner,three_quarter_b). Each started at the back post and stopped at y = +0.04, 0.43 m short of the front post, nearly level, joined to nothing at the front.dz > 0.35), so the brace-vs-counter check was measuring the side plates, not the braces..glbleak; bevel input built from a set, so face order depended on memory addresses.Fixes, and why each is structural
PlankTone/GrainDirface attributes, seeded), matte canvas stripes with faint dirt. 4: stage 60 m. 5: export removed after measuring; bevel input sorted by edge index.New budget, identical on 4.5.11, 5.1.2 and 5.2.1:
Triangles: 4324 → 4324 (the brace moved; nothing was added). Same-binary deterministic (three runs of the measured output hash identically).
Falsifier:
--short-bracestops the front end at the old mid-depth point, inside the envelope → 17 on all three binaries (−0.4181 m).--low-bracestill exits 17 on the overlap check.Existing exit codes, before → after, identical on all three: default 0→0,
--skip-decimate9→9,--stray-vert15→15,--lift-z16→16,--short-feet16→16,--float-awning18→18,--low-brace17→17,--rake-posts19→19.Hero:
check_framingwithoutdeviation=(fill y 0.783, min margin 0.056). Contact sheet:docs/gallery/contact-sheets/market-stall-contact-sheet.webp, luma 0.185 (band 0.151–0.305).A —
showcase/stone-wellTook 1 inspection round. No geometric defect found. The four posts stand on the diagonals, which looks odd in the front and side orthos, but it is deliberate: they carry the hip corners, and the
--turn-postsbudget asserts it. The defects were surface:Fixes: a value shift per stone from the seeded
PlankToneattribute; rusted iron; grained per-piece wood; stage 60 m; bevel input sorted by edge index. No new budget.(Inspection note: the inspection sheet's bright lighting washes the stone to white in both rounds. The stone was judged in the hero.)
Triangles: 9380 → 9380. Same-binary deterministic (three runs).
Existing exit codes, before → after, identical on all three: default 0→0,
--skip-decimate9→9,--lift-z16→16,--float-stone16→16,--shallow-tenon18→18,--stand-posts15→15,--turn-posts19→19,--drop-bucket18→18.Hero: framing passes (fill y 0.861, min margin 0.033). Contact sheet:
docs/gallery/contact-sheets/stone-well-contact-sheet.webp, luma 0.186.B —
examples/gltf-export-roundtripChecked first: the render path samples no pixels, so the layout is free to change.
Presentation changes (render path only):
QUATERNIONrotation mode, so the render switches it toXYZfirst.check_framing. The helper returns 10, which is already a check code here (POSITION count), so the call site remaps a framing violation to 22, following the showcase remap convention.Framing gate falsified: a scratch copy with the lens at 110 mm exits 22 (fill 1.000, all four edges touched). Restored.
Contract unchanged. Before → after, identical on all three binaries: default 0 → 0,
--no-yup9 → 9.Framing: passes (fill x 0.853, min margin 0.059). Contact sheet:
docs/gallery/contact-sheets/gltf-export-roundtrip-contact-sheet.webp, luma 0.232.B —
examples/prop-origin-transformChecked first: the render path samples no pixels.
Presentation changes (render path only):
Contract unchanged. Before → after, identical on all three binaries: default 0 → 0,
--skip-mpi8 → 8.Framing: passes (fill x 0.816, min margin 0.069). Contact sheet:
docs/gallery/contact-sheets/prop-origin-transform-contact-sheet.webp, luma 0.250.Also
showcase/README.mdconventions: A brace joins two members (exit 17); Laid stone and cut timber vary piece by piece.witnessesFixtext and root README alts updated. Gallery regenerated, with the generated<img alt>read back (one alt was 211 chars and the build refused it; shortened to 186).tests/check_falsifier_targets.py: passed, 201 falsifiers across 28 pieces.🤖 Generated with Claude Code