fix: wooden-barrel, wooden-bucket, wave-displace and color-attribute-wheel quality pass - #233
Merged
Merged
Conversation
…oops Heads are four boards cut from the croze outline, with a head-board budget (exit 17, --one-piece-head). Per-stave tone and grain, rusted iron hoops, the temp glb removed after measuring, and the gallery alt fixed (it said three hoops; there are four). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
The bail is three-strand rope and its rings now stand clear of the ear plates the old rope ran through (exit 17, --sunk-rope). The bottom is three boards (exit 17, --one-piece-bottom). OUTER_SIZE refit to the honest envelope; --float-handle now keeps the envelope still. Per-stave wood, iron hoops, 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: a skirted copy of the checked grid stands on the floor instead of bleeding off three frame edges. 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 zero-thickness disc gets a Solidify body and rests on a plinth with a strut, instead of hovering above the floor. 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>
…arance From the wooden-barrel and wooden-bucket 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). 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/wooden-barrelTook 1 inspection round plus the hero.
Defects
.glbexport leaked into the working directory.Fixes, and why each is structural
HEAD_BOARDS= 4 boards with a 1.5 mmBOARD_SEAM(add_board_disk, a Sutherland-Hodgman clip of the outline). Every board's outer edge is still the croze, so the seat is unchanged: head-croze gap 0.00698 → 0.00710.head_gapnow classifies a head board by its span in plan (≥BOARD_MIN_SPAN), not by a radius; the old "round" test would have dropped the edge boards.PlankTone/GrainDirface attributes andwood_material(copied fromshipping-crate), so grain runs up each curved stave and across each head board. Hoops use the crate's rusted-iron recipe.New budget, identical on 4.5.11, 5.1.2 and 5.2.1:
Triangles: 7216 → 7312 (ceiling 8500). Same-binary deterministic.
Falsifier:
--one-piece-headbuilds each head as a single slab → 17 on all three binaries (1 + 1 boards).Existing exit codes, before → after: identical on all three binaries: default 0→0,
--skip-decimate9→9,--stray-vert15→15,--lift-z16→16,--short-staves16→16,--float-head17→17,--round-band18→18.Hero:
check_framingruns withoutdeviation=. Contact sheet:docs/gallery/contact-sheets/wooden-barrel-contact-sheet.webp, luma 0.176 (band 0.151–0.305), stage 0.166, warmth +0.136.A —
showcase/wooden-bucketTook 1 inspection round, plus one fix the matrix forced (below).
Defects
RING_MAJOR * 0.25, putting the rope's axis 3.25 mm off the plate with an 8 mm radius. The ring hid it in the old stills. Found while sizing the rope..glbexport leaked.Fixes, and why each is structural
add_rope_curvelofts a three-lobed section of 9 vertices turned one vertex step per ring, so the lobes wind along the path as strands. The frame is fixed to the bail's plane, so the lay does not jump where the ends turn vertical. The ends now run 14 mm on through the rings.BAIL_SEGS24 → 48. The unusedadd_pipe_curveis removed.RING_OFFSET= rope lobe radius + 0.5 mm. Asserted as a new budget.OUTER_SIZEwas re-fitted to the honest envelope, (0.383, 0.346, 0.527) → (0.396, 0.346, 0.534): 12.5 mm wider across the ears and 6 mm taller.BOTTOM_BOARDS, 1.2 mm seams).floor_gapclassifies boards by plan span.Matrix-forced fix: after the refit,
--float-handleexited 8 (envelope) instead of 17 on 4.5.11. On the baseline it sat just 1.1 mm inside the envelope tolerance (z 0.5131 against 0.527 ± 0.015). Following "keep a falsifier's envelope still", the smaller bail is now lifted by exactly what it lost (0.28 * rx), so its top stays at 0.5339 and only the bail-ear gap fails (0.0388 m). The flag still targets the same budget.New budgets, identical on all three binaries:
Triangles: 4872 → 5458 (ceiling 5800). Collider 302 → 276. Same-binary deterministic.
Falsifiers:
--one-piece-bottom→ 17 (1 board);--sunk-roperestores the old ring offset → 17 (19 rope vertices inside a plate). Both on all three binaries.Existing exit codes, before → after: identical on all three: default 0→0,
--skip-decimate9→9,--stray-vert15→15,--lift-z16→16,--short-staves16→16,--float-handle17→17,--float-bottom17→17,--round-band18→18.Hero: framing passes without
deviation=. Contact sheet:docs/gallery/contact-sheets/wooden-bucket-contact-sheet.webp, luma 0.166, stage 0.176.B —
examples/wave-displaceThe still was an edge-to-edge field: the sheet bled off the left, right and bottom edges on a black void, and the README documented a
deviation=call thatgallery_framingno longer has.Presentation changes (render path only):
Waveobject is untouched and hidden from the render.Contract unchanged. Before → after: identical on all three binaries: default 0 → 0,
--flat4 → 4.Framing: measured externally (the render path has no
check_framing): fill 0.753 x / 0.761 y, min margin 0.117. Contact sheet:docs/gallery/contact-sheets/wave-displace-contact-sheet.webp, luma 0.217, stage 0.222. The first pass measured stage 0.2465, above the brightest calibration stage (0.2368), so key and fill were lowered.B —
examples/color-attribute-wheelThe disc is zero-thickness. The still showed it as a paper-thin oval hovering 8 cm above the floor.
Presentation changes (render path only):
Contract unchanged. Before → after: identical on all three binaries: default 0 → 0,
--point-domain5 → 5.Framing: measured externally: fill 0.794 y, min margin 0.094. Contact sheet (new):
docs/gallery/contact-sheets/color-attribute-wheel-contact-sheet.webp, luma 0.288, stage 0.193.Also
showcase/README.mdconventions: coopered staves and forged-iron hoops (under "Identical boards read as CG"); A head or bottom is boards, not a slab; Rope is laid, not piped; What passes through a part must clear its mount.witnessesFixtext, and the root README image alts and summary lines updated; gallery regenerated, and the generated<img alt>and witness callouts were read back indocs/gallery/index.htmland the four detail pages.🤖 Generated with Claude Code