Skip to content

fix(examples): redesign shader-node-group as five dipped-glaze stoneware mugs - #276

Merged
TMHSDigital merged 2 commits into
mainfrom
fix/hero-shader-node-group
Sep 26, 2026
Merged

TMHSDigital merged 2 commits into
mainfrom
fix/hero-shader-node-group

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

What and why

The gallery review judged the shader-node-group hero programmer art: two plain glossy spheres, teal and magenta. The render did not show a shared group doing any work.

The redesign turns "one group, many tints" into a small glaze library:

  • The group is DippedGlaze, a designed stoneware shader. It has bare buff clay at the foot, a wavy dip line (Generated Z against object-space noise), iron speckle (Voronoi) through clay and glaze alike, a glaze that breaks back toward clay over the rim, and a coat only on the glazed part. All of this lives inside the group. The interface still exposes only Tint, Roughness and Shader.
  • The subject is five lathed stoneware mugs. Each has a foot ring, bellied wall, rolled lip and a swept oval handle, with subsurf at render. The tints run warm to cool: oxblood, amber, celadon, teal, cobalt.
  • The staging is a staggered shop-display lineup: the odd mugs stand on a low walnut riser behind the even ones. All handles turn the same way, so colour is the only thing that changes along the row. The foot band, dip line, speckle and rim break are visibly identical on every mug.
  • Render path only: the house wedge is added (the old stage had none), the key's spread is narrowed off the back wall, and the floor is darker. No floor labels.

Before/after: the contact sheet is committed at docs/gallery/contact-sheets/shader-node-group-contact-sheet.webp. The before is the two-sphere hero on main.

Check contract: at least as strict as before

Gate Before After
3 interface sockets Tint/Roughness/Shader unchanged
4 shared datablock users == 2 users == len(mugs) (5)
5 instance tree identity each of 2 each of 5
6 per-instance Tint a != b all 5 pairwise distinct

Gate numbers (5.2.1)

  • Framing: fill x=0.841 (band 0.70–0.90), y=0.489. Margins: L 0.100, R 0.059, B 0.206, T 0.306 (min 0.02). framing_ok.
  • Contact sheet (luma / stage / wedge warmth / saturation):
    • candidate: 0.2288 / 0.2043 / +0.0842 / 0.2188
    • armature-bend: 0.2787 / 0.2132 / -0.4279 / 0.1436
    • damped-track-aim: 0.1511 / 0.1448 / +0.2772 / 0.2305
    • bmesh-gear: 0.2358 / 0.1772 / +0.3027 / 0.2495
  • Verdicts:
    • Stage darkness: PASS. It sits inside the calibration range, darker than armature-bend.
    • Wedge warmth: PASS. It is positive, but milder than damped-track-aim and bmesh-gear.
    • Subject fill: PASS.
    • Saturation: PASS, within range.
    • Thumbnail legibility: PASS. Five coloured mugs with pale clay feet read at card size.
  • measure_hero_drift.py --only shader-node-group: mean_abs 0.00315, matches.
  • Hero 26 KB, preview 23 KB, both written by render_hero.py.
  • Asset-sheet gate: not run. This is a materials/shader example, not an asset-type (game prop/kit) entry.

Check runs

Binary (reported version) check-only --same-tint --output render
.scratch/blender-5.2.1-windows-x64/blender.exe (Blender 5.2.1 LTS) exit 0, users=5 exit 6 framing_ok, OK
.scratch/blender-5.1.2-windows-x64/blender.exe (Blender 5.1.2) exit 0, users=5 exit 6 framing_ok, OK
.scratch/blender-4.5.11-windows-x64/blender.exe (Blender 4.5.11 LTS) exit 0, users=5 exit 6 framing_ok, OK

Falsifiers (5.2.1)

  • Gate 6: --same-tint gives exit 6: instance Tint values not pairwise distinct [(0.42, 0.035, 0.03, 1.0) x5].
  • Gate 4: a probe adds a sixth material that instances the group, giving exit 4: group users 6 != 5 (not shared).
  • Gate 5: a probe points Mug.Celadon's group node at tree.copy(), plus a stray user so the count stays 5. This gives exit 5: Mug.Celadon instance points at a different tree. Without the stray user, gate 4 fires first (users 4 != 5).

Proven by live run vs established by inspection

Proven by live run:

  • Check-only and --same-tint on 5.2.1, 5.1.2 and 4.5.11.
  • The render path, including the framing gate, on all three.
  • The gate 4 and gate 5 probes on 5.2.1.
  • render_hero.py, contact_sheet.py and measure_hero_drift.py on 5.2.1.
  • build_gallery.py. The generated <img alt> in docs/gallery/index.html and docs/gallery/shader-node-group/index.html was read back, and so were the users == 5 witnesses.

By inspection only:

  • The hero's visual verdicts, judged by eye at full size and on the contact sheet.
  • CI smoke (pending on this PR).

🤖 Generated with Claude Code

TMHSDigital and others added 2 commits September 25, 2026 22:56
…are mugs

The gallery review judged the hero programmer art: two plain glossy
spheres, teal and magenta, with nothing to show that a shared group was
doing any work.

The group is now a designed DippedGlaze stoneware shader. It has bare buff
clay at the foot, a noise-wobbled dip line, iron speckle, and a glaze that
breaks back toward clay over the rim. It is instanced in five mug materials
(oxblood, amber, celadon, teal, cobalt). The mugs are lathed with a foot
ring, bellied wall and rolled lip, with a swept oval handle. They stand as
a staggered shop-display lineup on a walnut riser. Every mug carries the
same foot band, dip line and speckle field. Only the instance Tint differs,
which is the grouping contract made visible.

The check is at least as strict as before. users must equal the number of
materials (5, was 2), and all instance Tints must be pairwise distinct
(was a single a != b). --same-tint still lands on exit 6. The stage now
has the house wedge, and the key spread is narrowed off the back wall.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Signed-off-by: TMHSDigital <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Signed-off-by: TMHSDigital <[email protected]>
@github-actions github-actions Bot added examples Runnable smoke-gated examples under examples/ documentation Improvements or additions to documentation labels Sep 26, 2026
@TMHSDigital
TMHSDigital merged commit bd0671c into main Sep 26, 2026
11 checks passed
@TMHSDigital
TMHSDigital deleted the fix/hero-shader-node-group branch September 26, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation examples Runnable smoke-gated examples under examples/

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant