feat(showcase): add rope-bridge - #251
Merged
Merged
Conversation
A rope footbridge was the first unclaimed showcase candidate on the roadmap. Its failure mode no bounding box can see is the deck shape: two straight ramps with the same ends and sag pass every envelope check. The piece fits a least-squares parabola to the plank tops read off the mesh, and --vee-deck exits 19 on that fit while its sag stays in band. Also asserts named supports, rope-end and tenon bites, banded plank seats and lashing hoops, one connected assembly, plumb, plank pitch, rail height, edge treatment and baked texels per UV island, 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/rope-bridge. It is a rope footbridge with log posts and sills through-tenoned to the post centres. Twenty planks are seated on two laid foot ropes, the hand ropes are lashed to the posts, suspenders tie hand rope to foot rope, and the foot ropes are staked off behind each end.Selection: it is the first unclaimed candidate in the ROADMAP pool (line 136). It is a recognizable prop with no API contract, so it goes in showcase, not examples. No open PR or
feat/showcase-*branch covered it.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: deck parabola (exit 19)
A deck laid on two straight ramps has the same ends, sag, planks and bounding box as one that hangs, so no envelope check can tell them apart. The check fits a least-squares parabola to the plank top-face centres read off the mesh. Every plank must land within 6 mm of the fit, and the fitted sag must be 0.22 ± 0.015 m.
--vee-deck: its fitted sag is 0.215 m, still in band, and every other budget passes. It exits 19 only on the 32.5 mm residual. live-run-provenFalsifiers: exit codes per binary (live-run-proven)
--skip-decimate--stray-vert--lift-z--float-post--short-rails--float-planks--loose-lashings--float-suspenders--lean-post--vee-deck--drift-planks--slack-rails--sharp-plank--low-bake--output--skip-decimate--stray-vert--lift-z--float-post--short-rails--float-planks--loose-lashings--float-suspenders--lean-post--vee-deck--drift-planks--slack-rails--sharp-plank--low-bakeEnvelope: every falsifier stays inside
BBOX_TOL(20 mm). The worst cases are--float-postat +12 mm in Z and--loose-lashingsat +13 mm in X and Y. live-run-provenChecks run locally
tests/check_falsifier_targets.py: static check passes.--run <BLENDER> --only rope-bridgealso passes on all three binaries. live-run-proventests/smoke/run_example.py --forbid-skip:[PASS] rope-bridgeon 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_harness29 showcase pieces)All pass. live-run-proven
Determinism: every
measuredline is byte-identical across 4.5.11, 5.1.2, 5.2.1 and a second 5.2.1 run. That includes both LOD counts and the 300212 B glTF. Check-only wall-clock is about 2.0–2.2 s. live-run-provenEcosystem drift check: remote action, so CI-proven only.
4.5 / 5.2 smoke jobs: CI-proven on this PR.
needs-5.1is applied because the pipeline bakes.Findings the budgets forced during authoring
Visual gates
Contact sheet:
docs/gallery/contact-sheets/rope-bridge-contact-sheet.webp. The calibration band is armature-bend / damped-track-aim / bmesh-gear.The first draft's stage was 0.243, above the brightest calibration stage: a key light at 900 W flooded the back wall. It was relit at 660 W. inspection + measured
Asset sheet:
docs/gallery/asset-sheets/rope-bridge.webp. Verdict: passes. Rendered alone under neutral light, it carries more construction than any reference:It is not the least-designed object; the rocket and the mech arm are simpler. inspection-only
Close-ups inspected (sill wrap, post lashings, stake ties, plank seats from below, deck end, elevation):
The hero was rendered on 5.2.1 through
scripts/render_hero.py, andbuild_gallery.pywas run last. The generated<img alt>and witness callout ondocs/gallery/index.htmlanddocs/gallery/rope-bridge/index.htmlwere read and are complete. inspection-onlyNot applicable, with reasons (in the piece README)
🤖 Generated with Claude Code