You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add street-lantern and treasure-chest showcase pieces (#154)
* feat: add street-lantern showcase piece
Named well/barrel/campfire/stall list is exhausted; this is the ROADMAP hanging-lantern silhouette prop with budgets fitted to the generated mesh.
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* feat: add treasure-chest showcase piece
Companion ROADMAP silhouette prop: slatted open chest with iron bands; budgets fitted to the generated mesh.
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
This repository ships **16 skills, 9 rules, 3 templates, 27 snippets, 59 examples, and 5 showcase pieces** for Blender Python development targeting Blender 5.2 LTS (current stable) with Blender 4.5 LTS fallback support. Blender 5.1 is prior stable.
40
+
This repository ships **16 skills, 9 rules, 3 templates, 27 snippets, 59 examples, and 7 showcase pieces** for Blender Python development targeting Blender 5.2 LTS (current stable) with Blender 4.5 LTS fallback support. Blender 5.1 is prior stable.
41
41
42
42
The content is consumed by AI coding agents (Cursor, Claude Code, any MCP-capable client) when working on Blender add-ons, geometry nodes scripts, batch pipelines, or animation tooling. There is no build step. Edit the markdown and Python files directly.
43
43
@@ -80,6 +80,8 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
80
80
<ahref="showcase/wooden-barrel/"><imgsrc="showcase/wooden-barrel/preview.webp"alt="Wooden barrel: a staved barrel with iron hoops on a dark studio floor, warm wedge on the back wall" /></a>
81
81
<ahref="showcase/campfire/"><imgsrc="showcase/campfire/preview.webp"alt="Campfire: a two-course stone fire ring with a tripod of logs on a dark studio floor, warm wedge on the back wall" /></a>
82
82
<ahref="showcase/market-stall/"><imgsrc="showcase/market-stall/preview.webp"alt="Market stall: a timber frame with post feet, slatted counter, rafters, and a striped awning on a dark studio floor, warm wedge on the back wall" /></a>
83
+
<ahref="showcase/street-lantern/"><imgsrc="showcase/street-lantern/preview.webp"alt="Street lantern: an iron post with brass collars, a braced arm, and a muntined amber cage on a dark studio floor" /></a>
84
+
<ahref="showcase/treasure-chest/"><imgsrc="showcase/treasure-chest/preview.webp"alt="Treasure chest: a slatted wooden chest with iron bands, corner brackets, and an open lid on a dark studio floor" /></a>
83
85
84
86
[`shipping-crate`](showcase/shipping-crate/) — procedural crate through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets. Falsifier `--skip-decimate` exits 9.
85
87
@@ -91,6 +93,10 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
91
93
92
94
[`market-stall`](showcase/market-stall/) — procedural timber stall with striped awning and counter through the same pipeline. Falsifier `--skip-decimate` exits 9.
93
95
96
+
[`street-lantern`](showcase/street-lantern/) — procedural hanging lantern with iron post, brass fittings, and amber cage through the same pipeline. Falsifier `--skip-decimate` exits 9.
97
+
98
+
[`treasure-chest`](showcase/treasure-chest/) — procedural slatted chest with iron bands, corner brackets, and an open lid through the same pipeline. Falsifier `--skip-decimate` exits 9.
99
+
94
100
## Examples
95
101
96
102
Runnable, smoke-gated demos live in [`examples/`](examples/) — each is executed headless on
Copy file name to clipboardExpand all lines: ROADMAP.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -112,7 +112,9 @@ Not committed; target list for the next content version. (v0.3.0 shipped the smo
112
112
-~~Campfire showcase~~**SHIPPED** as `showcase/campfire/` — two-course fire ring, log tripod; `--skip-decimate` exits 9 on the LOD1 ratio band
113
113
-~~Market stall showcase~~**SHIPPED** as `showcase/market-stall/` — timber frame, slatted counter, striped awning; `--skip-decimate` exits 9 on the LOD1 ratio band
114
114
- Procedural terrain or landscape showcase using Geometry Nodes scatter
115
-
- Hero prop with a more complex silhouette (lantern or treasure chest) as a second showcase piece
115
+
-~~Hero prop with a more complex silhouette (lantern or treasure chest) as a second showcase piece~~**SHIPPED** as `showcase/street-lantern/` and `showcase/treasure-chest/` — hanging iron lantern with muntined amber cage; slatted chest with iron bands and an open lid; `--skip-decimate` exits 9 on the LOD1 ratio band
116
+
- Wrought-iron park bench (slatted seat, scrolled legs) as a game-prop showcase piece
117
+
- Wooden wheelbarrow (staved tray, single wheel, handles) as a game-prop showcase piece
116
118
- Small modular kit showcase on recognizable geometry (`modular-kit-snap` contract)
117
119
118
120
-~~Custom ID-property delete witness~~**SHIPPED** as `examples/cross-version-property-delete/` — IDs built via `bpy.data.objects.new` (not `active_object`); `property_unset` is TypeError and leaves the key; `del` removes it on 4.5 LTS and 5.x
<aclass="card-media" href="street-lantern/" aria-label="street-lantern example detail page">
945
+
<imgsrc="assets/street-lantern-hero.webp" alt="street-lantern — A procedural hanging street lantern through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract." loading="lazy" decoding="async" />
<pclass="teaches">A procedural hanging street lantern through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
950
+
<pclass="witnesses"><spanclass="tag">witnesses</span> Recomputed: 3520 tris, three materials with 24 glass and 94 brass faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.403×0.892×1.404 m, LOD ratios in band, convex collider 84 tris, non-empty glTF. --skip-decimate exits 9 on the LOD1 ratio budget.</p>
951
+
<aclass="card-link" href="street-lantern/">View example <spanaria-hidden="true">→</span></a>
<aclass="card-media" href="treasure-chest/" aria-label="treasure-chest example detail page">
956
+
<imgsrc="assets/treasure-chest-hero.webp" alt="treasure-chest — A procedural slatted treasure chest through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract." loading="lazy" decoding="async" />
<pclass="teaches">A procedural slatted treasure chest through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
961
+
<pclass="witnesses"><spanclass="tag">witnesses</span> Recomputed: 5724 tris, two materials with 180 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.776×0.549×0.631 m, LOD ratios in band, convex collider 138 tris, non-empty glTF. --skip-decimate exits 9 on the LOD1 ratio budget.</p>
962
+
<aclass="card-link" href="treasure-chest/">View example <spanaria-hidden="true">→</span></a>
963
+
</div>
964
+
</article>
943
965
</div>
944
966
<pclass="noresults" id="noResults" hidden>No examples match the current filters.
945
967
<buttonclass="chip" id="resetFilters" type="button">Clear search and tags</button></p>
0 commit comments