fix: wooden-ladder, wheelbarrow, curve-bevel-arc and sky-texture-sun-elevation quality pass - #235
Merged
Merged
Conversation
Rung heights were jittered up to 18 mm; they now sit at one pitch (rung pitch, exit 19, --drift-rungs). Per-piece wood, rusted iron, bevel inputs sorted so face order is stable run to run, temp glb removed. The hero leans the ladder against a render-only wall section. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Side and front walls are two boards with a 2 mm seam (wall boards, exit 17, --wide-seams); the audits take a wall as the union of its boards. The boards are paid for by skipping bevels on buried and underside tray edges, so the triangle ceiling holds. Per-board wood, rusted iron, sorted bevel inputs, 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 camera looks along the direction both capped ends face, so the witness (use_fill_caps) shows twice. 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: a pale glaze and dimmed studio lights let the sky, the variable under test, light the jar, so the two elevations differ. The committed hero had drifted from the code. Zenith probe values 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>
…erator input order From the wooden-ladder and wheelbarrow 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-ladderTook 1 inspection round plus two hero passes.
Defects
RUNG_Z_OFFSETSjittered them up to ±18 mm, and the barrel thickness varied from 0.82× to 1.22× (front ortho: the gaps alternated at about 53/40/52/40/50 px). An even pitch is part of what a ladder is..glbexport leaked.setof edges was handed tobmesh.ops.bevel. Found by the determinism re-run, where onemat_index_countsprint came out in a different key order; every measured value was identical. The same pattern was in the pristine script.Fixes, and why each is structural
DRIFT_Z_OFFSETSkeeps the old values for the falsifier only.RUNG_BARREL_SCALEnow varies within ±4%.PlankTone/GrainDirwood (fromshipping-crate), rusted iron.bm.edges.index_update()and sort by index before every bevel. Three repeat runs are now identical.New budget, identical on 4.5.11, 5.1.2 and 5.2.1:
Triangles: 2536 → 2536 (same topology). Same-binary deterministic (three runs).
Falsifier:
--drift-rungsrestores the old heights → 19 on all three binaries (worst gap 0.03287 m off the mean).Existing exit codes, before → after, identical on all three: default 0→0,
--skip-decimate9→9,--stray-vert15→15,--lift-z16→16,--short-stile18→18,--twin-sole15→15,--fat-rungs17→17.Hero:
check_framingwithoutdeviation=(fill y 0.883, min margin 0.044). Contact sheet:docs/gallery/contact-sheets/wooden-ladder-contact-sheet.webp, luma 0.174 (band 0.151–0.305), stage 0.171.A —
showcase/wheelbarrowTook 1 inspection round.
Defects
tray_floorclose-up, front ortho)..glbexport leaked.Fixes, and why each is structural
add_board_stack: the side and front walls are 2 boards with a 2 mm seam (WALL_BOARDS,WALL_SEAM), held by the existing straps; the low rear wall stays one board.tray_sizeandwall_floor_seatnow take a side wall as the union of its boards. Before, they matched a single shell ofWALL_H.New budget, identical on all three binaries:
Falsifier:
--wide-seamsopens the seams to 8 mm → 17 on all three binaries. The first version,--one-piece-walls, built single slabs and exited 4: fewer boards took the count under the 2300 triangle floor.--wide-seamskeeps the same boards and triangles, so only the seam band fails.Existing exit codes, before → after, identical on all three: default 0→0,
--skip-decimate9→9,--stray-vert15→15,--lift-z16→16,--short-legs16→16,--float-walls17→17,--pipe-rim18→18,--fat-spokes17→17.Hero:
check_framingpasses withoutdeviation=. Contact sheet:docs/gallery/contact-sheets/wheelbarrow-contact-sheet.webp, luma 0.172.B —
examples/curve-bevel-arcPresentation changes (render path only): both ends of the semicircle face −Y, so the camera now looks from −Y and shows both filled caps (
use_fill_caps, the witness) face-on, with the arc behind them. The old angle showed one cap and the other end edge-on. The cap's 12-sided outline is the pinned tessellation (EXPECT_VERTS1044), which a presentation pass cannot change. README: staging note.Contract unchanged. Before → after, identical on all three binaries: default 0 → 0,
--no-caps6 → 6.Framing:
check_framingpasses (fill x 0.847, min margin 0.062). Contact sheet:docs/gallery/contact-sheets/curve-bevel-arc-contact-sheet.webp, luma 0.181.B —
examples/sky-texture-sun-elevationThe committed hero showed "sun_elevation 8 deg" labels that the current code does not draw, so the still had drifted from the code. Rendering the pristine script confirmed it: no labels, and the jar almost identical in both panels.
Presentation changes (render path only):
Stage deviationupdated.Framing deviationno longer cites the removeddeviation=flag.Contract unchanged. The zenith probe values are identical before and after (low 0.1557, high 0.3520, rise 2.2607 on 5.2.1). Before → after exit codes, identical on all three binaries: default 0 → 0,
--unlink-sky6 → 6.Framing: this diptych is not wired to
check_framing(a documented world-contract deviation). Contact sheet:docs/gallery/contact-sheets/sky-texture-sun-elevation-contact-sheet.webp. Luma 0.359 is above the dark-stage band; the committed drifted hero measured 0.271.docs/VISUAL-STYLE.md§ "The contact-sheet gate under deviation" makes luma information, not pass/fail, for sky-texture contracts. Verdict: a bright daylight sky that belongs to this gallery on materials, view transform and legibility.Also
showcase/README.mdconventions: Variation goes into surface, never into function; A plank wall is boards, and extra boards are paid for; Sort bmesh operator inputs; A leaning prop is staged against something.witnessesFixtext and root README alts and lines updated. Gallery regenerated, with the generated<img alt>and witness callouts read back.🤖 Generated with Claude Code