From 39a0f503c2262d045cfdaefafa977aebf766e542 Mon Sep 17 00:00:00 2001 From: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Date: Fri, 25 Sep 2026 22:56:00 -0400 Subject: [PATCH 1/2] fix(examples): redesign shader-node-group as five dipped-glaze stoneware 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) Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> --- README.md | 7 +- .../assets/shader-node-group-hero.webp | Bin 15916 -> 26064 bytes .../shader-node-group-contact-sheet.webp | Bin 51598 -> 42284 bytes examples/gallery.json | 6 +- examples/shader-node-group/README.md | 39 ++- examples/shader-node-group/preview.webp | Bin 14606 -> 23050 bytes .../shader-node-group/shader_node_group.py | 282 ++++++++++++++---- 7 files changed, 257 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index bf88fde0..b26eaf05 100644 --- a/README.md +++ b/README.md @@ -246,15 +246,16 @@ mapping (`BLENDER_EEVEE` on 5.x, `BLENDER_EEVEE_NEXT` on 4.2-4.5). -Shader node group: a teal sphere and a magenta sphere sharing one TintedGloss node group with different Tint parameters +Shader node group: five speckled stoneware mugs in oxblood, amber, celadon, teal and cobalt sharing one DippedGlaze node group with different Tint parameters ### [shader-node-group](examples/shader-node-group/) -One reusable `TintedGloss` group declared via `tree.interface.new_socket`, instanced in two +One reusable `DippedGlaze` group declared via `tree.interface.new_socket`, instanced in five materials with different Tint values. Witnesses the grouping contract: shared datablock -(`users == 2`), parameters on the group **node** — two spheres, one group, two colors. +(`users == 5`), parameters on the group **node** — five mugs share one foot band, dip line +and speckle, and differ only in colour. diff --git a/docs/gallery/assets/shader-node-group-hero.webp b/docs/gallery/assets/shader-node-group-hero.webp index f15d876db2e4c24ba2cb7c6d3b87c612592a748a..12727e6dbf6641f01a081a2c270f5147ad9f6f18 100644 GIT binary patch literal 26064 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 bB8jQy?Vtbv4kn3u6Q}?J;TvF=O#lD@F5KTx literal 15916 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%0DTcQllWc;|{7@D!@nlaSc+u<`;`1=r={ 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�cnDxY> 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 n000000000000000000000000000000000000000000000uLK*8 diff --git a/examples/gallery.json b/examples/gallery.json index 4a695b7a..ff8aaea4 100644 --- a/examples/gallery.json +++ b/examples/gallery.json @@ -99,9 +99,9 @@ { "name": "shader-node-group", "dir": "examples/shader-node-group", - "teaches": "One reusable shader group declared via tree.interface.new_socket, instanced in two materials with different Tint values — two spheres, one group, two colors.", - "alt": "Two glossy spheres, one teal and one magenta, sharing one shader group.", - "witnessesFix": "Grouping contract: interface sockets appear on every instance, both materials share one group datablock (users == 2), and per-material parameters live on the group node, not inside the tree.", + "teaches": "One reusable shader group declared via tree.interface.new_socket, instanced in five materials with different Tint values — one dipped-glaze group, five stoneware mugs, five colors.", + "alt": "Five speckled stoneware mugs in oxblood, amber, celadon, teal and cobalt on a walnut riser, each with the same bare clay foot and wavy dip line from one shared glaze group.", + "witnessesFix": "Grouping contract: interface sockets appear on every instance, all five materials share one group datablock (users == 5), and per-material parameters live on the group node, not inside the tree.", "hero": "docs/gallery/assets/shader-node-group-hero.webp", "preview": "examples/shader-node-group/preview.webp", "tags": [ diff --git a/examples/shader-node-group/README.md b/examples/shader-node-group/README.md index aabff350..d5ad4443 100644 --- a/examples/shader-node-group/README.md +++ b/examples/shader-node-group/README.md @@ -1,24 +1,33 @@ # Shader Node Group -A runnable example that declares a reusable `TintedGloss` shader group through +A runnable example that declares a reusable `DippedGlaze` shader group through `tree.interface.new_socket` — the 4.x/5.x API that replaced `tree.inputs`/`tree.outputs` — -and instances it in two materials with different parameters, following +and instances it in five mug materials with different parameters, following [`procedural-materials-and-shaders`](../../skills/procedural-materials-and-shaders/SKILL.md) and the [`shader-node-group`](../../snippets/shader-node-group.py) snippet. **What it witnesses:** the grouping contract. Sockets declared on the interface appear on -every group-node instance; both materials share ONE group datablock (`users == 2`); and the -per-material Tint lives on the group **node**, not inside the group — set it inside the tree -and every material changes at once. The render is the proof: two spheres, one group, two -colors. +every group-node instance; all five materials share ONE group datablock (`users == 5`); and +the per-material Tint lives on the group **node**, not inside the group — set it inside the +tree and every mug changes at once. + +**The render is the proof.** The group is a dipped stoneware glaze: bare buff clay at the +foot, a wavy dip line, iron speckle through clay and glaze alike, and a glaze that breaks +back toward clay over the rim. All of that lives inside the group, so the five mugs — a +warm-to-cool lineup of oxblood, amber, celadon, teal and cobalt — carry the same foot band, +the same dip line, the same speckle field and the same rim break. Only the instance-level +Tint differs. If Tint were baked into the group, the lineup would be one colour; if each +material built its own tree, the shared character would be a copy rather than one +datablock (the check's `users` gate). ## Staging -The still renders under the Standard view transform on the dark house -stage; it had no view transform set, so AgX washed both tints toward -pastel over a lighter floor. The key is larger and softer (the glossy -spheres had mirrored it as a hard white square), and the camera aims -at the sphere centres. Render path only. +A staggered shop-display lineup on the dark house stage: the odd mugs stand on a low +walnut riser behind the even ones, so five mugs fill the frame without shrinking to a +thin strip. Handles all turn the same way so the only thing that changes along the row is +colour. The still renders under the Standard view transform (AgX would wash the five +tints toward pastel); the key's spread is narrowed so it lights the mugs, not the back +wall, and a warm wedge sits between the riser and the wall. Render path only. ## Run @@ -30,8 +39,8 @@ blender --background --python shader_node_group.py -- blender --background --python shader_node_group.py -- --same-tint # Also render a still (EEVEE on a GPU host; use --engine cycles on GPU-less hosts): -blender --background --python shader_node_group.py -- --output spheres.png -blender --background --python shader_node_group.py -- --output spheres.png --engine cycles +blender --background --python shader_node_group.py -- --output mugs.png +blender --background --python shader_node_group.py -- --output mugs.png --engine cycles ``` ## Exit codes @@ -45,9 +54,9 @@ against it. `10` is the shared framing helper. | 1 | Uncaught exception (FATAL wrapper) | | 2 | argparse / usage | | 3 | Interface sockets missing Tint / Roughness / Shader | -| 4 | Group datablock `users` ≠ 2 | +| 4 | Group datablock `users` ≠ number of mug materials (5) | | 5 | Instance points at a different node tree | -| 6 | Instance Tint values identical (`--same-tint` lands here) | +| 6 | Instance Tint values not pairwise distinct (`--same-tint` lands here) | | 7 | `--output` produced no file | | 10 | Gallery framing violation | diff --git a/examples/shader-node-group/preview.webp b/examples/shader-node-group/preview.webp index 76b6bbe315be952cb60d4a0fa9fdf4205c6d7981..3c932b36d9d8e13fedbd9db6547bceb93951d049 100644 GIT binary patch literal 23050 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 literal 14606 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 E0Awy~vj6}9 diff --git a/examples/shader-node-group/shader_node_group.py b/examples/shader-node-group/shader_node_group.py index d4b80894..3d0d0b84 100644 --- a/examples/shader-node-group/shader_node_group.py +++ b/examples/shader-node-group/shader_node_group.py @@ -1,15 +1,25 @@ -"""One shader node group, two materials — a runnable example. +"""One shader node group, five materials — a runnable example. Witnesses the node-group socket workflow from procedural-materials-and-shaders: group sockets are declared through `tree.interface.new_socket` (the 4.x/5.x API that replaced `tree.inputs`/`tree.outputs`), and per-material parameters -live on the GROUP NODE instance, not inside the group. The check asserts the -interface carries the declared sockets, both materials share the same group -datablock (users == 2), and their instance-level Tint values differ — the -whole point of grouping. - -``--same-tint`` copies SphereA's Tint onto both instances and still asserts -the values differ. That is the falsifier (``--same-axis`` in +live on the GROUP NODE instance, not inside the group. + +The subject is a glaze library: one `DippedGlaze` stoneware shader group — +bare buff clay at the foot, a wavy dip line, iron speckle, a glaze that +breaks back toward clay at the rim — instanced in five mug materials. Only +the instance-level Tint differs, so the five mugs carry an identical foot +band, dip line, speckle field and rim break in five colours. If the Tint +lived inside the group every mug would be the same colour; if each material +built its own tree the shared character would be a copy, not one datablock. + +The check asserts the interface carries the declared sockets, every material +shares the same group datablock (users == number of mugs), each instance +points at that tree, and the instance-level Tint values are pairwise +distinct — the whole point of grouping. + +``--same-tint`` copies the first mug's Tint onto every instance and still +asserts the values differ. That is the falsifier (``--same-axis`` in export-preset-axis). By default it runs only the correctness check (no render) — the CI smoke @@ -17,36 +27,113 @@ blender --background --python shader_node_group.py -- # check only blender --background --python shader_node_group.py -- --same-tint # must fail - blender --background --python shader_node_group.py -- --output s.png # + render + blender --background --python shader_node_group.py -- --output m.png # + render """ import bpy, bmesh, sys, os, math, argparse +from mathutils import Vector # Shared Layer 1 framing measurement (render path only) — see gallery_framing.py sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir)) sys.dont_write_bytecode = True # keep examples/__pycache__ out of the repo tree import gallery_framing +# One glaze library, five tints, ordered as a warm-to-cool progression. TINTS = { - "SphereA": (0.012, 0.32, 0.30, 1.0), # teal - "SphereB": (0.42, 0.02, 0.20, 1.0), # magenta + "Mug.Oxblood": (0.42, 0.035, 0.03, 1.0), + "Mug.Amber": (0.62, 0.26, 0.025, 1.0), + "Mug.Celadon": (0.16, 0.34, 0.16, 1.0), + "Mug.Teal": (0.015, 0.26, 0.28, 1.0), + "Mug.Cobalt": (0.03, 0.08, 0.40, 1.0), } +RISER_H, RISER_Y = 0.34, 0.62 # display riser the back-row mugs stand on + +CLAY = (0.50, 0.37, 0.24, 1.0) # buff stoneware body +IRON = (0.07, 0.04, 0.025, 1.0) # iron speckle + def build_group(): - """A reusable 'TintedGloss' shader group: Tint + Roughness in, Shader out.""" - tree = bpy.data.node_groups.new("TintedGloss", 'ShaderNodeTree') + """A reusable 'DippedGlaze' shader group: Tint + Roughness in, Shader out. + + Everything that makes the glaze a glaze — the unglazed foot, the wavy dip + line, the iron speckle, the rim break — lives INSIDE the group, so every + instance shares it. Only Tint and Roughness are exposed per instance. + """ + tree = bpy.data.node_groups.new("DippedGlaze", 'ShaderNodeTree') tree.interface.new_socket(name="Tint", in_out='INPUT', socket_type='NodeSocketColor') rough = tree.interface.new_socket(name="Roughness", in_out='INPUT', socket_type='NodeSocketFloat') - rough.default_value = 0.2 + rough.default_value = 0.12 tree.interface.new_socket(name="Shader", in_out='OUTPUT', socket_type='NodeSocketShader') - gi = tree.nodes.new('NodeGroupInput') - go = tree.nodes.new('NodeGroupOutput') - bsdf = tree.nodes.new('ShaderNodeBsdfPrincipled') - tree.links.new(gi.outputs["Tint"], bsdf.inputs["Base Color"]) - tree.links.new(gi.outputs["Roughness"], bsdf.inputs["Roughness"]) - tree.links.new(bsdf.outputs["BSDF"], go.inputs["Shader"]) + N, L = tree.nodes, tree.links + gi = N.new('NodeGroupInput') + go = N.new('NodeGroupOutput') + coord = N.new('ShaderNodeTexCoord') + sep = N.new('ShaderNodeSeparateXYZ') + L.new(coord.outputs["Generated"], sep.inputs[0]) + + # wavy dip line: glaze covers Generated Z above ~0.2, wobbled by noise + wobble = N.new('ShaderNodeTexNoise') + wobble.inputs["Scale"].default_value = 2.2 + wobble.inputs["Detail"].default_value = 1.0 + L.new(coord.outputs["Object"], wobble.inputs["Vector"]) + wob_s = N.new('ShaderNodeMath'); wob_s.operation = 'MULTIPLY_ADD' + L.new(wobble.outputs["Fac"], wob_s.inputs[0]) + wob_s.inputs[1].default_value = 0.16 + wob_s.inputs[2].default_value = 0.13 # line sits at z ~0.21 +- 0.04 + dip = N.new('ShaderNodeMapRange') + dip.interpolation_type = 'SMOOTHSTEP' + zline = N.new('ShaderNodeMath'); zline.operation = 'SUBTRACT' + L.new(sep.outputs["Z"], zline.inputs[0]) + L.new(wob_s.outputs[0], zline.inputs[1]) + L.new(zline.outputs[0], dip.inputs["Value"]) + dip.inputs["From Min"].default_value = -0.004 + dip.inputs["From Max"].default_value = 0.006 # glaze mask 0 (clay) .. 1 (glaze) + + # rim break: glaze thins toward clay over the lip + brk = N.new('ShaderNodeMapRange') + brk.interpolation_type = 'SMOOTHSTEP' + L.new(sep.outputs["Z"], brk.inputs["Value"]) + brk.inputs["From Min"].default_value = 0.90 + brk.inputs["From Max"].default_value = 0.985 + brk.inputs["To Max"].default_value = 0.55 + tint_broken = N.new('ShaderNodeMix'); tint_broken.data_type = 'RGBA' + L.new(brk.outputs["Result"], tint_broken.inputs["Factor"]) + L.new(gi.outputs["Tint"], tint_broken.inputs["A"]) + tint_broken.inputs["B"].default_value = CLAY + + # glaze vs clay + body = N.new('ShaderNodeMix'); body.data_type = 'RGBA' + L.new(dip.outputs["Result"], body.inputs["Factor"]) + body.inputs["A"].default_value = CLAY + L.new(tint_broken.outputs["Result"], body.inputs["B"]) + + # iron speckle: small dark dots through clay and glaze alike + vor = N.new('ShaderNodeTexVoronoi') + vor.inputs["Scale"].default_value = 26.0 + L.new(coord.outputs["Object"], vor.inputs["Vector"]) + spk = N.new('ShaderNodeMapRange') + L.new(vor.outputs["Distance"], spk.inputs["Value"]) + spk.inputs["From Min"].default_value = 0.10 + spk.inputs["From Max"].default_value = 0.06 + speckled = N.new('ShaderNodeMix'); speckled.data_type = 'RGBA' + L.new(spk.outputs["Result"], speckled.inputs["Factor"]) + L.new(body.outputs["Result"], speckled.inputs["A"]) + speckled.inputs["B"].default_value = IRON + + # roughness: glaze takes the instance Roughness, bare clay stays matte + rmix = N.new('ShaderNodeMix'); rmix.data_type = 'FLOAT' + L.new(dip.outputs["Result"], rmix.inputs["Factor"]) + rmix.inputs["A"].default_value = 0.85 + L.new(gi.outputs["Roughness"], rmix.inputs["B"]) + + bsdf = N.new('ShaderNodeBsdfPrincipled') + L.new(speckled.outputs["Result"], bsdf.inputs["Base Color"]) + L.new(rmix.outputs["Result"], bsdf.inputs["Roughness"]) + L.new(dip.outputs["Result"], bsdf.inputs["Coat Weight"]) # glossy glaze coat + bsdf.inputs["Coat Roughness"].default_value = 0.06 + L.new(bsdf.outputs["BSDF"], go.inputs["Shader"]) return tree @@ -64,24 +151,83 @@ def material_from_group(name, tree, tint): return mat +# (radius, z) lathe profile of a thrown stoneware mug, closed: foot ring, +# bellied wall, rolled lip, inner wall, well floor. +MUG_PROFILE = [ + (0.0, 0.0), (0.30, 0.0), (0.335, 0.012), (0.35, 0.045), (0.365, 0.075), + (0.40, 0.14), (0.435, 0.32), (0.445, 0.52), (0.435, 0.72), (0.425, 0.88), + (0.425, 0.96), (0.418, 0.99), (0.402, 1.0), (0.386, 0.99), (0.382, 0.96), + (0.388, 0.80), (0.395, 0.52), (0.380, 0.30), (0.345, 0.16), (0.28, 0.105), + (0.0, 0.095), +] + + +def _bezier(p0, p1, p2, p3, t): + u = 1.0 - t + return p0 * u ** 3 + p1 * 3 * u * u * t + p2 * 3 * u * t * t + p3 * t ** 3 + + +def build_mug_mesh(name): + """Lathe body plus a swept loop handle in one mesh (one Generated space).""" + me = bpy.data.meshes.new(name) + bm = bmesh.new() + try: + verts = [bm.verts.new((r, 0.0, z)) for r, z in MUG_PROFILE] + edges = [bm.edges.new((verts[i], verts[i + 1])) for i in range(len(verts) - 1)] + bmesh.ops.spin(bm, geom=verts + edges, cent=(0, 0, 0), axis=(0, 0, 1), + angle=math.tau, steps=72, use_merge=True) + bmesh.ops.remove_doubles(bm, verts=bm.verts[:], dist=1e-5) + + # handle: an oval section swept along a cubic C from the upper to the + # lower wall, both ends buried in the body + p0, p1 = Vector((0.36, 0.0, 0.80)), Vector((0.80, 0.0, 0.86)) + p2, p3 = Vector((0.78, 0.0, 0.26)), Vector((0.37, 0.0, 0.30)) + rings, seg = [], 14 + steps = 28 + for i in range(steps + 1): + t = i / steps + c = _bezier(p0, p1, p2, p3, t) + tan = (_bezier(p0, p1, p2, p3, min(t + 0.01, 1.0)) + - _bezier(p0, p1, p2, p3, max(t - 0.01, 0.0))).normalized() + nrm = tan.cross(Vector((0, 1, 0))).normalized() + ring = [] + for k in range(seg): + a = math.tau * k / seg + off = nrm * (0.042 * math.cos(a)) + Vector((0, 1, 0)) * (0.075 * math.sin(a)) + ring.append(bm.verts.new(c + off)) + rings.append(ring) + for ra, rb in zip(rings, rings[1:]): + for k in range(seg): + bm.faces.new((ra[k], ra[(k + 1) % seg], rb[(k + 1) % seg], rb[k])) + bm.to_mesh(me) + finally: + bm.free() + for poly in me.polygons: + poly.use_smooth = True + return me + + def build_scene(same_tint=False): bpy.ops.wm.read_factory_settings(use_empty=True) tree = build_group() objs = [] + first = next(iter(TINTS.values())) + n = len(TINTS) for i, (name, tint) in enumerate(TINTS.items()): - me = bpy.data.meshes.new(name) - bm = bmesh.new() - try: - bmesh.ops.create_uvsphere(bm, u_segments=48, v_segments=24, radius=1.0) - bm.to_mesh(me) - finally: - bm.free() + me = build_mug_mesh(name) obj = bpy.data.objects.new(name, me) - obj.location = (-1.35 + i * 2.7, 0.0, 1.0) - for poly in me.polygons: - poly.use_smooth = True - inst_tint = TINTS["SphereA"] if same_tint else tint - me.materials.append(material_from_group(f"Mat.{name}", tree, inst_tint)) + # a staggered shop-display lineup read left to right: even mugs on + # the floor in front, odd mugs on the riser behind, handles all right + u = i - (n - 1) / 2 + back = i % 2 == 1 + obj.location = (u * 0.98, RISER_Y if back else -0.45, RISER_H if back else 0.0) + obj.rotation_euler = (0.0, 0.0, math.radians(-38)) + sub = obj.modifiers.new("Smooth", 'SUBSURF') + sub.levels = 1 + sub.render_levels = 2 + inst_tint = first if same_tint else tint + me.materials.append(material_from_group(f"Glaze.{name.split('.')[1]}", tree, + inst_tint)) bpy.context.collection.objects.link(obj) objs.append(obj) return tree, objs @@ -96,12 +242,12 @@ def check(tree, objs): print(f"ERROR: interface sockets {names} missing {expect - names}", file=sys.stderr) return 3 - # one shared group datablock, instanced by both materials - if tree.users != 2: - print(f"ERROR: group users {tree.users} != 2 (not shared)", file=sys.stderr) + # one shared group datablock, instanced by every material + if tree.users != len(objs): + print(f"ERROR: group users {tree.users} != {len(objs)} (not shared)", file=sys.stderr) return 4 - # per-instance parameters live on the group NODE, and they differ + # per-instance parameters live on the group NODE, and they all differ tints = [] for obj in objs: node = next(n for n in obj.data.materials[0].node_tree.nodes @@ -110,12 +256,12 @@ def check(tree, objs): print(f"ERROR: {obj.name} instance points at a different tree", file=sys.stderr) return 5 tints.append(tuple(round(c, 3) for c in node.inputs["Tint"].default_value)) - if tints[0] == tints[1]: - print("ERROR: instance Tint values are identical — parameters leaked into " - "the group instead of the instance", file=sys.stderr) + if len(set(tints)) != len(tints): + print(f"ERROR: instance Tint values not pairwise distinct {tints} — parameters " + "leaked into the group instead of the instance", file=sys.stderr) return 6 - print(f"group=TintedGloss users={tree.users} instance_tints={tints[0]} vs {tints[1]}") + print(f"group={tree.name} users={tree.users} instance_tints={tints}") return 0 @@ -135,44 +281,68 @@ def render_still(objs, path, engine): fmat = bpy.data.materials.new("Studio") fmat.use_nodes = True fb = fmat.node_tree.nodes["Principled BSDF"] - fb.inputs["Base Color"].default_value = (0.03, 0.032, 0.037, 1.0) - fb.inputs["Roughness"].default_value = 0.7 + fb.inputs["Base Color"].default_value = (0.018, 0.019, 0.022, 1.0) + fb.inputs["Roughness"].default_value = 0.8 floor_me.materials.append(fmat) floor = bpy.data.objects.new("Floor", floor_me) scene.collection.objects.link(floor) wall = bpy.data.objects.new("Wall", floor_me.copy()) - wall.location = (0.0, 9.0, 0.0) + wall.location = (0.0, 3.2, 0.0) wall.rotation_euler = (math.radians(90), 0.0, 0.0) scene.collection.objects.link(wall) + # a low dark-walnut display riser for the back row (staging, not hero) + riser_me = bpy.data.meshes.new("Riser") + bm = bmesh.new() + try: + bmesh.ops.create_cube(bm, size=1.0) + bmesh.ops.scale(bm, vec=(5.4, 0.9, RISER_H), verts=bm.verts[:]) + bmesh.ops.translate(bm, vec=(0.0, RISER_Y, RISER_H / 2), verts=bm.verts[:]) + bmesh.ops.bevel(bm, geom=bm.edges[:], offset=0.025, segments=3, + affect='EDGES', profile=0.5) + bm.to_mesh(riser_me) + finally: + bm.free() + for poly in riser_me.polygons: + poly.use_smooth = True + rmat = bpy.data.materials.new("Walnut") + rmat.use_nodes = True + rb = rmat.node_tree.nodes["Principled BSDF"] + rb.inputs["Base Color"].default_value = (0.045, 0.026, 0.016, 1.0) + rb.inputs["Roughness"].default_value = 0.45 + riser_me.materials.append(rmat) + riser = bpy.data.objects.new("Riser", riser_me) + scene.collection.objects.link(riser) + world = bpy.data.worlds.new("World") world.use_nodes = True world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.02, 0.021, 0.025, 1.0) scene.world = world - def light(name, loc, energy, size, col, rot): + def light(name, loc, energy, size, col, rot, spread=180.0): ld = bpy.data.lights.new(name, 'AREA') ld.energy = energy; ld.size = size; ld.color = col + ld.spread = math.radians(spread) ob = bpy.data.objects.new(name, ld) ob.location = loc ob.rotation_euler = tuple(math.radians(a) for a in rot) scene.collection.objects.link(ob) - # a large soft key: at 5.5 m the glossy spheres mirrored it as a hard - # white square - light("Key", (-4.0, -5.0, 6.5), 1100.0, 9.0, (1.0, 0.98, 0.94), (46, 0, -35)) - light("Fill", (5.5, -4.0, 3.0), 280.0, 8.0, (0.82, 0.88, 1.0), (63, 0, 48)) - light("Rim", (0.5, 6.0, 4.0), 900.0, 3.5, (1.0, 0.74, 0.46), (-62, 0, 175)) + # a soft key so the glossy glaze mirrors a soft window, not a hard white + # square; its spread is narrowed so it lights the mugs, not the back wall + light("Key", (-4.0, -5.0, 6.0), 540.0, 3.0, (1.0, 0.96, 0.9), (46, 0, -35), spread=55) + light("Fill", (5.5, -4.0, 2.0), 30.0, 9.0, (0.75, 0.85, 1.0), (70, 0, 52)) + light("Rim", (1.8, 1.9, 3.8), 170.0, 2.5, (0.6, 0.78, 1.0), (-40, 0, -25), spread=45) + # wedge: between the riser and the wall, raking a warm pool behind the mugs + light("Wedge", (-0.6, 2.2, 0.7), 170.0, 4.0, (1.0, 0.76, 0.5), (105, 0, 0)) cam_data = bpy.data.cameras.new("Cam") cam_data.lens = 50.0 cam = bpy.data.objects.new("Cam", cam_data) - cam.location = (0.0, -8.4, 3.3) + cam.location = (0.0, -8.5, 3.15) scene.collection.objects.link(cam) - # aim at the spheres' centres so they sit mid-frame, not above a band of - # empty floor aim = bpy.data.objects.new("Aim", None) - aim.location = (0.0, 0.0, 1.0) + aim.location = (0.0, 0.15, 0.78) scene.collection.objects.link(aim) track = cam.constraints.new('TRACK_TO') track.target = aim @@ -182,7 +352,7 @@ def light(name, loc, energy, size, col, rot): scene.render.engine = 'CYCLES' if engine == 'cycles' else eevee_engine_id() if engine == 'cycles': - scene.cycles.samples = 32 + scene.cycles.samples = 48 else: try: scene.eevee.taa_render_samples = 64 @@ -192,7 +362,7 @@ def light(name, loc, energy, size, col, rot): scene.render.resolution_y = 720 scene.render.image_settings.file_format = 'PNG' scene.render.filepath = path - # AgX would wash both tints toward pastel (docs/VISUAL-STYLE.md) + # AgX would wash the five glaze tints toward pastel (docs/VISUAL-STYLE.md) scene.view_settings.view_transform = 'Standard' # Layer 1 framing gate (silhouette matte) — exit 10 on violation, before # the beauty render so a defective composition ships no artifact. @@ -200,7 +370,7 @@ def light(name, loc, energy, size, col, rot): scene, cam, hero=list(objs), elements=list(objs), - stage=[floor, wall], + stage=[floor, wall, riser], ) if fcode: return fcode From 688df1efbc547d2a3378ed5226bc5748b23c793a Mon Sep 17 00:00:00 2001 From: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Date: Fri, 25 Sep 2026 22:57:00 -0400 Subject: [PATCH 2/2] chore(gallery): regenerate pages for the shader-node-group mug lineup Co-Authored-By: Claude Opus 5.5 (1M context) Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> --- docs/gallery/index.html | 6 +- docs/gallery/shader-node-group/index.html | 315 +++++++++++++++++----- 2 files changed, 246 insertions(+), 75 deletions(-) diff --git a/docs/gallery/index.html b/docs/gallery/index.html index 162f151b..db5c26cb 100644 --- a/docs/gallery/index.html +++ b/docs/gallery/index.html @@ -420,12 +420,12 @@

bmesh-gear

shader-node-group

-

One reusable shader group declared via tree.interface.new_socket, instanced in two materials with different Tint values — two spheres, one group, two colors.

-

witnesses Grouping contract: interface sockets appear on every instance, both materials share one group datablock (users == 2), and per-material parameters live on the group node, not inside the tree.

+

One reusable shader group declared via tree.interface.new_socket, instanced in five materials with different Tint values — one dipped-glaze group, five stoneware mugs, five colors.

+

witnesses Grouping contract: interface sockets appear on every instance, all five materials share one group datablock (users == 5), and per-material parameters live on the group node, not inside the tree.

View example shader-node-group
diff --git a/docs/gallery/shader-node-group/index.html b/docs/gallery/shader-node-group/index.html index 52c47531..8c4b076f 100644 --- a/docs/gallery/shader-node-group/index.html +++ b/docs/gallery/shader-node-group/index.html @@ -4,25 +4,25 @@ shader-node-group — Examples — Blender Developer Tools - + - + - + - + - +