fix(examples): redesign degenerate-bevel-weld as rugged cases with a traced collapse seam - #270
Merged
Merged
Conversation
…traced collapse seam The gallery review found the hero unreadable: two near-identical teal slabs shot front-on (which hides the only face the collapse changes), tiny orange dots and floor labels too small to read at card size. The shells are now the check's two meshes, beveled_box(DIMS, 0.10) and beveled_box(DIMS, 0.20), dressed as hard-shell equipment cases (handle, draw latches, molded frame, purge valve, ID plate, feet) with every fitting inside the front land both offsets keep. The cases turn their end panels to the camera so the difference is silhouette: a flat end framed by chamfer bands versus a rim rolled into a knife ridge. The collapsed seam is traced in hot red from live mesh data (edges of faces under 1e-6 area) with a bead on each of the 12 zero-area faces the check counts. Labels removed. The stage turns instead of the props, so the cases stay axis-aligned for the asset sheet. The render path now also runs the asset-quality floors (exit 11) on the clean case; asset_sheet.py gains its SELECT row. Check path unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Signed-off-by: TMHSDigital <[email protected]>
Union of asset-sheet SELECT rows; generated gallery pages regenerated. 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.
What changed and why
The gallery review judged the
degenerate-bevel-weldhero weak. It showed two near-identical teal slabs, shot front-on, which hid the one face the collapse changes. The tiny orange dots and floor labels could not be read at card size, so at thumbnail the two slabs looked like the same object.This is a redesign:
beveled_box(DIMS, 0.10)andbeveled_box(DIMS, 0.20), built out as a rugged hard-shell equipment case. Fittings: a D-handle on pivots, twin draw latches with anodized levers, a lid seam, hasps, a molded reinforcement frame, ribs, a purge valve, an ID plate and rubber feet. That is 22 named parts in 6 materials. Every fitting sits inside the front land that survives both offsets, so the bevel is the only difference between the two cases.-CASE_YAWafter staging. The image does not change (mean abs diff 0.019/255 against the un-turned build), and the cases stay axis-aligned in world space, which is what the asset-sheet panel's three-quarter camera expects. A first attempt with rotated cases produced a cropped end-on panel.gallery_asset_quality.check_asset_quality(exit 11) on the clean case.scripts/asset_sheet.pygains thedegenerate-bevel-weldSELECT row (^CaseSafe\.).examples/gallery.jsonteaches/alt, and the root README gallery-row alt. Gallery regenerated.The check path is unchanged:
check(), the constants and the exit codes 3–8 are untouched.Gates (Blender 5.2.1 LTS,
E:\Blender-Developer-Tools\.scratch\blender-5.2.1-windows-x64\blender.exe)framing_ok.aq_ok.measure_hero_drift.py --only degenerate-bevel-weld): mean_abs 0.00345, gt2pct 0.95 %, verdict matches.render_hero.py.Contact sheet:
docs/gallery/contact-sheets/degenerate-bevel-weld-contact-sheet.webpVerdicts:
Asset sheet:
docs/gallery/asset-sheets/degenerate-bevel-weld.webpLineup: the candidate (the clean case,
CaseSafe.*), then collision-hull-proxy, socket-attach-points, vertex-color-ao, wheelbarrow and apothecary-shelf, read from CLAUDE.md on main.Verdict: ships, but it is among the simpler objects in the lineup. It reads as a manufactured object with assembled hardware, treated edges and a real material split. It is on a par with the hydrant for form complexity and below the drone, wheelbarrow and shelf. It is not clearly identifiable as the least-designed object in the lineup.
Check runs (
python tests/smoke/run_example.py, check-only path).scratch\blender-5.2.1-windows-x64\blender.execollapse 12f/16v ships 32 degenerate tris in the GLB.scratch\blender-5.1.2-windows-x64\blender.exe.scratch\blender-4.5.11-windows-x64\blender.exeThe render path (
--output) also ran clean on 4.5.11 LTS:render_defects thin_faces=16 zero_area_faces=12 seam_segments=32,framing_ok,aq_ok.Falsifiers
--both-safeon 5.2.1 exits 4 withERROR: degenerate bevel produced 0 zero-area faces, closed form 12.--both-safestops at exit 4 before any render.Proven by live run
--both-safeexit 4.render_hero.pyregeneration, the contact sheet, the asset sheet and the drift check.build_gallery.pyafter the rebase onto main. The generated<img alt>indocs/gallery/index.htmlanddocs/gallery/degenerate-bevel-weld/index.htmlwas read back and is the new one-sentence alt (181 chars).Established by inspection only
🤖 Generated with Claude Code