fix: wheelbarrow and gltf-skin-roundtrip quality pass - #249
Merged
Merged
Conversation
…pper tray The barrow read as a crate on legs. Each shaft was three boxes: a handle stopping at the tray's rear corner, a level run hidden exactly under the side wall, and a fork turning in a 50-degree V to the hub. The tray was a square box, a spreader stood inside the wheel touching neither fork, and the iron straps ran 12 mm above the wall tops. - Each shaft is one mitred sweep grip -> tray rear -> tray front -> axle, narrowing in plan the whole way, legs and a bearer hung from it. - The tray is a hopper between a bottom and a top outline: sides flared 15 deg, front raked 30 deg over the wheel, rear leaning 12 deg; end boards housed into the sides; straps follow the wall and stop below it. - Seams and seats are measured in each wall's own plane, taken from the boards' faces; AABB tests lie on leaning boards. New budgets: shaft runs = 2 (exit 20, --split-shafts), flare >= 10 deg and rake >= 20 deg (exit 21, --box-tray, same top outline). The handle-join budget is gone: the handle is the shaft. Outer AABB and tray size re-fitted. Tris 2536 -> 2440. Same codes on 4.5.11, 5.1.2 and 5.2.1. Asset sheet added. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
…hoppers Extends "A bent bar is one sweep" to timber that carries a load end to end, and adds two conventions from the wheelbarrow pass: a tray emptied by tipping is built as a hopper with a flare floor (falsifier keeps the top outline), and a leaning board is measured in its own plane, from its own faces. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
The tail curls in each rig's Y-Z plane, and the camera looked at both scorpions head-on, so the curl was seen end-on and the tail stood straight up like a chimney: a boxy robot, not a scorpion. Both armatures are now yawed -50 deg about their own origins, composed into the world matrix because the glTF importer leaves its armature in quaternion mode, and set 1.0 m either side of centre. Render path only. Exit codes unchanged on 4.5.11, 5.1.2 and 5.2.1 (default 0, --no-skins 5, --output 0) and every measured line matches the baseline. Shared gallery index rides here. 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.
A quality pass on two items, both taken from the last run's (#248) list of weakest remaining content:
wheelbarrow(Track A, showcase)gltf-skin-roundtrip(Track B, gallery example)Binaries:
.scratch/blender-4.5.11-windows-x64(reportsBlender 4.5.11 LTS)blender-5.1.2-windows-x64(Blender 5.1.2)blender-5.2.1-windows-x64(Blender 5.2.1 LTS)The heroes were rendered on 5.2.1 through
scripts/render_hero.py. The inspection renders stayed in.scratch/.wheelbarrow(Track A)Inspection sheet: six orthographic views, two three-quarter views, clay, wireframe, six joint close-ups and a ground-contact view.
Defects (round 0):
joint_wheel_axle).joint_tray_corner,joint_tray_floor, the nubs inortho_top). They were sized from the floor bottom plus the wall height, but each wall sitsWALL_SEATinto the floor.Generator changes, and why each is structural:
WALL_SEAT12 → 8 mm. A raked board's outer bottom edge sitsWALL_T·sin(RAKE)= 11 mm below its inner one, so a 12 mm seat would break through the 22 mm floor's underside.Removed budget: the handle-join budget is gone, because the handle no longer joins anything; it is the shaft. The shaft-run budget replaces it.
New budgets. Every value is identical on 4.5.11, 5.1.2 and 5.2.1:
Existing budgets, re-measured:
Re-fitted:
Triangles: base 2536 → 2440, inside the unchanged 2300–2800 band. The collider went from 90 to 80.
Falsifiers. Each new one violates only its own new budget:
--split-shaftsbuilds the three boxes again: 0 shaft runs.--box-traystands every wall vertical on the flared tray's top outline, so the envelope and tray size stay put: 0° / 0°.Because exit 17 covers several joint gates, I checked that each 17 falsifier fails on its own gate's message.
--skip-decimate--stray-vert--lift-z--short-legs--fat-spokes--float-walls--pipe-rim--wide-seams--split-shafts--box-tray--outputInspection rounds: 1 for geometry. The round-1 sheet showed the flared hopper, the shafts running unbroken under the tray, and every joint closed. The hero read as a wheelbarrow with no further change.
Framing: fill 0.728, minimum margin 0.067, with no
deviation=.Determinism: the default and
--outputruns on 5.2.1 report identical measured lines. Across binaries, only the LOD2 decimation count (inside its ratio band) and the export byte count differ, as before.Contact sheet: wheelbarrow.
It sits inside the band and is legible at card size.
Asset sheet: wheelbarrow. Verdict: passes clearly. The piece is rendered alone and neutrally beside the four pinned asset references. The flared, strapped, raked tray with per-board tone puts it among the more designed objects in the lineup, level with the hydrant.
Convention changes (their own commit, in
showcase/README.md):gltf-skin-roundtrip(Track B)Defect: the camera looked at both scorpions head-on. The tail curls in each rig's own Y-Z plane, so it was seen end-on: it stood straight up behind the body like a chimney, and the pair read as boxy robots in cone hats.
Not changed, because it is the contract:
Presentation change: both armatures are yawed −50° about their own origins and set 1.0 m either side of centre (they were 1.1 m). The tail now arcs over the head in profile, with the claws forward and the legs down the flanks.
rotation_euler, turned only the authored rig.Contract confirmation: the contract, assertions and exit codes are unchanged. I diffed every measured-value line across all 9 runs against the pre-change baseline logs, and there are no differences.
--no-skins--outputContact sheet: gltf-skin-roundtrip.
The existing alt text ("…with curled tails and glowing cyan stingers…") now matches what the still shows.
Checks
Run locally and passing:
check_exit_code_readme.pycheck_gallery_images.pycheck_falsifier_targets.py(229 falsifiers across 28 pieces)build_gallery.pywas run last. I read the generated alt text indocs/gallery/index.htmland on the wheelbarrow detail page.🤖 Generated with Claude Code