feat(showcase): add grain-sacks - #252
Merged
Merged
Conversation
Grain sacks were the next unclaimed showcase candidate. What an envelope check cannot see on a sack is whether it has settled: an egg-bottomed sack still touches the floor at its lowest vertex, so zmin and the per-sack support gate both pass it. The piece sums the flat-on-floor face area under each sack, and --round-bottom exits 19 with every patch at 0 while zmin and the supports still pass. Also asserts each twine tie sits in its neck's waist, bites the cloth by a banded depth, and that the sacks press into one another and carry their belly low, each with a falsifier proven 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>
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.
Adds
showcase/grain-sacks, a pile of three burlap grain sacks. Two stand and one lies slumped in front. Each is gathered at the neck under a two-turn twine tie with a pleated crown, settled onto a flat base, and pressed into its neighbour.Selection: it is the first unclaimed candidate in the ROADMAP pool now that rope-bridge has shipped. It is a prop, so it goes in showcase. There were no open PRs; the only
feat/showcase-*refs are already-merged work.Binaries (all local,
.scratch/):blender-4.5.11-windows-x64, reportsBlender 4.5.11 LTSblender-5.1.2-windows-x64, reportsBlender 5.1.2blender-5.2.1-windows-x64, reportsBlender 5.2.1 LTSThe budget that matters: contact patch (exit 19)
A sack full of grain settles onto a flat patch. An egg-bottomed sack still touches the floor at one vertex, so both zmin and the per-sack support gate pass it. The check sums, per sack, the area of faces lying flat on the floor.
--round-bottom: keeps the same sink and fold height and every sack's single lowest point on the floor. It exits 19 with every patch at 0 while zmin and the supports pass. live-run-provenFalsifiers: exit codes per binary (live-run-proven)
--skip-decimate--stray-vert--lift-z--float-sack--slip-tie--loose-tie--part-sacks--round-bottom--high-belly--output--skip-decimate--stray-vert--lift-z--float-sack--slip-tie--loose-tie--part-sacks--round-bottom--high-bellyEnvelope: every falsifier stays inside the 20 mm
BBOX_TOL. The worst cases are--high-bellyat −16.2 mm in Y and--part-sacksat +15.5 mm in Y. live-run-provenChecks run locally
tests/check_falsifier_targets.py: static check passes.--run <BLENDER> --only grain-sackspasses all 9 on each of the three binaries. live-run-proventests/smoke/run_example.py --forbid-skip:[PASS] grain-sackson 4.5.11, 5.1.2 and 5.2.1. live-run-provenOther local checks:
check_exit_code_readme,check_import_export_rules,check_engine_id,check_gallery_images,test_harness30 showcase pieces)All pass. live-run-proven
Determinism: every
measuredline is byte-identical across 4.5.11, 5.1.2 and 5.2.1, including both LOD counts and the glTF byte count. The piece uses no RNG at all. Check-only wall-clock is about 1.7–2.1 s. live-run-provenEcosystem drift check is a remote action, so it is CI-proven only. The 4.5 / 5.1 / 5.2 smoke jobs are CI-proven on this PR.
Findings the budgets and inspection forced
frontand the cloth coordinate is centred on it. inspection-onlyVisual gates
Contact sheet:
docs/gallery/contact-sheets/grain-sacks-contact-sheet.webpAsset sheet:
docs/gallery/asset-sheets/grain-sacks.webp. Verdict: passes. Rendered alone under neutral light, the pile carries more than the rocket or the arm: weave, pleated crowns, twine ties and stripes. It sits level with the hydrant. The helper's standard camera clips the lying sack's base at the panel edge; that is the helper's framing rule, not the model. inspection-onlyClose-ups (neck ties, sack-to-sack press, ground contact, back, top, and a clay pass of each): the ties hug the pleated necks, the bases sit flat, and the press reads as a clean seam. There is no z-fight speckle and no faceting on the bodies. The crown tip is slightly pointed, which I judged acceptable. inspection-only
The hero was rendered on 5.2.1 through
scripts/render_hero.py, andbuild_gallery.pywas run last. I read the generated alt text and witness callout indocs/gallery/index.htmlanddocs/gallery/grain-sacks/index.html. inspection-only🤖 Generated with Claude Code