feat(showcase): add book-trolley - #284
Merged
Merged
Conversation
The library book trolley was the first unclaimed candidate in the ROADMAP pool. What a sloped shelf adds over the bookshelf's flat ones is a second support: a book in a trough stands on the shelf and rests against the backrest. A book seated on the shelf but standing off the backrest passes every seat, the bounding box, the triangle count and the overlap budget (which must exempt both designed contacts). The piece pairs each tilted shelf with the backrest biting into it, reads the backrest face plane off the mesh and asserts every trough book's fore-edge sits 0.3-2.0 mm behind it; --off-back and --deep-back exit 21 on it. Also asserts four wheels on the floor, ten cross members housed in both end panels, caster plates seated in the skids, X/Y mirror symmetry of carcass and casters, page blocks, gilt bands, book seats along the shelf normal, size spread, zero unplanned book overlaps and no right-angle wood edges, 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) <[email protected]> Signed-off-by: TMHSDigital <[email protected]>
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.
Selection
MODE: auto,SUBJECT: auto. The first unclaimed item in the ROADMAP candidate pool was "Library ladder or book trolley with loose books" (the bookshelf shipped in #283). I built the trolley half as a showcase piece, because it is a prop with no API contract. Its value is a budget no shipped piece exercises: a two-point support. The ladder half goes back into the pool as its own candidate, a hook riding a round rail.What it budgets
A double-sided library book truck. It has arched end panels standing in skids on four swivel casters, a flat deck, and on each side two troughs sloped 14°. Each trough is a tilted shelf with a backrest square to it. 47 hardbacks stand spines-out in the troughs and 5 lie in two loose stacks on the deck. Like every showcase piece it goes through UVs, a normal bake, LOD1/LOD2, a convex collider and a Unity glTF export.
The budget that matters (exit 21): a trough book rests on two supports, its tail on the shelf and its fore-edge against the backrest. If a book sits correctly on the shelf but stands off the backrest, it still passes every seat check, the AABB, the tri count and the overlap budget (which has to exempt both designed contacts). To catch that, the piece:
Falsifiers — exit codes, live-run-proven on all three binaries
Binaries (local
.scratch/):blender-4.5.11-windows-x64(4.5.11 LTS),blender-5.1.2-windows-x64(5.1.2),blender-5.2.1-windows-x64(5.2.1 LTS).--skip-decimate--stray-vert--lift-z--float-caster--short-shelves--loose-pages--float-books--float-bands--drop-plates--skew-caster--uniform-books--off-back--deep-back--crowd-books--sharp-deckAlso live-run-proven:
python tests/check_falsifier_targets.py(static): passes, 342 falsifiers across 36 pieces.--run <5.2.1> --only book-trolley: every falsifier observed at its declared code.tests/smoke/run_example.py --name book-trolley:[PASS]on 4.5.11, 5.1.2 and 5.2.1.build_gallery.pyoutput is committed.Default budgets are identical on all three binaries: 17704 tris, LOD 8852/3894, the same face counts, AABB 0.768×0.530×1.000, collider 308 tris. The only difference is the glTF size, 8 bytes smaller on 5.2 (exporter metadata, not a budget).
Findings fixed during authoring (live-run-proven)
--drop-platesfirst exited 15, not 18. A 2 mm drop put the plate's lower chamfer and the fork's upper chamfer on the same 45° plane (8 coplanar pairs). The drop is now 2.5 mm.Visual gates
docs/gallery/contact-sheets/book-trolley-contact-sheet.webp, measured withscripts/contact_sheet.py. Calibration band: luma 0.151–0.279, stage 0.145–0.213.docs/gallery/asset-sheets/book-trolley.webp, against collision-hull-proxy, socket-attach-points, vertex-color-ao, wheelbarrow and apothecary-shelf. Verdict pass (inspection-only): the trolley is not the least-designed object in the lineup. It has chamfered carcass, turned rail, four-part casters, 52 individually tinted, banded books and grained wood, and sits alongside apothecary-shelf in detail.Labels
blender-smoke4.5/5.2, plus 5.1 vianeeds-5.1).🤖 Generated with Claude Code