fix(examples): redesign attribute-domain-shear as striped patio parasols - #272
Merged
Merged
Conversation
The gallery review judged the hero weak. The "wrong" POINT umbrella read as a smoother, arguably prettier rainbow gradient, which undercut the message, and the small floor labels could not be read at card size. The render now shows two striped patio parasols. Each is eight named parts with five materials: canopy, ribs, brass fittings, teak poles and a cast-iron base. The canopy is the check's fan grown into fabric: eight gores around one shared apex, with every gore vertex on a seam, painted by the same assign_corner / assign_point_naive functions the check asserts. CORNER keeps crisp crimson and cream stripes. Naive POINT smears them pink along the seams, and gore 0 (crimson by intent, turned to face the camera) renders cream because gore 7 wrote its seam and the apex last. The render uses a two-tone palette. The check keeps its eight distinct hues, since an off-by-two ordering bug would pass unnoticed under a period-2 palette. There is one bold standing label per parasol. The render path now also runs the asset-quality floors (exit 11). The authoring functions gained a faces_per_wedge stride (wedge-major face order). On the check's fan it is 1 and the write order is unchanged. The check output is identical on 4.5.11, 5.1.2 and 5.2.1, and all five falsifiers were re-proven. 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.
What changed and why
The gallery review judged the
attribute-domain-shearhero weak. The "wrong" POINT umbrella read as a smoother, arguably prettier rainbow gradient, which undercut the lesson. The "CORNER" / "POINT — last write wins" floor labels could not be read at card size.Redesign: two striped patio parasols.
Canopy(attribute fabric, fully matte),Ribs(aluminium ribs and stretchers),Runner/Finial/TiltKnuckle(brass),PoleUpper/PoleLower(teak), andBase(cast iron, lathe-turned). The canopy tilts 24° toward the camera so the whole top reads.assign_corner/assign_point_naivefunctions the check asserts. CORNER (left) keeps crisp crimson and cream stripes. Naive POINT (right) smears the stripes pink along every seam. Gore 0, crimson by intent and turned to face the camera, renders cream, because gore 7 wrote its seam and the apex last. At a glance it reads as broken, not as a nicer gradient.CORNERandPOINT. Both read at 427×240.assign_corner/assign_point_naivegained afaces_per_wedgestride (wedge-major face order). On the check's fan it is 1, the write order is unchanged, and the check output is identical.gallery_asset_quality(exit 11) on one parasol.Evidence
docs/gallery/assets/attribute-domain-shear-hero.webpdocs/gallery/contact-sheets/attribute-domain-shear-contact-sheet.webpGate numbers (5.2.1 render path)
framing_ok.aq_ok.measure_hero_drift.py --only attribute-domain-sheargives mean_abs 0.00321 andmatches.Contact sheet verdicts
Check-only runs (
tests/smoke/run_example.py)E:\Blender-Developer-Tools\.scratch\blender-5.2.1-windows-x64\blender.exeE:\Blender-Developer-Tools\.scratch\blender-5.1.2-windows-x64\blender.exeE:\Blender-Developer-Tools\.scratch\blender-4.5.11-windows-x64\blender.exeThe render path also ran on 4.5.11 (
framing_ok,aq_ok, still written).Falsifiers (re-proven on 5.2.1 after the authoring-function change)
--no-overwriteProven by live run vs established by inspection
Proven by live run:
render_hero.pyon 5.2.1, and the drift check reportsmatches.contact_sheet.py.build_gallery.pywas re-run after rebasing onto main, and the generated<img alt>was read indocs/gallery/index.htmlanddocs/gallery/attribute-domain-shear/index.html.Established by inspection only:
Asset sheet: not committed. This is an attributes teaching example, not an asset-type prop, so the gate does not formally apply. I still ran
scripts/asset_sheet.pyas a sanity check. The parasol is clean and plausible, but it is the simplest object in that lineup of hydrant, drone, well, wheelbarrow and shelf.🤖 Generated with Claude Code