Skip to content

Commit af82b73

Browse files
authored
feat: add tavern-stool and iron-cauldron showcase pieces
Prompt list was already shipped. Next ROADMAP props: a round-seat tavern stool with turned legs, and a hanging iron cauldron on a timber tripod. Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
1 parent 639c4f6 commit af82b73

18 files changed

Lines changed: 4041 additions & 9 deletions

File tree

.cursor-plugin/plugin.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@
159159
"showcase/signpost",
160160
"showcase/chopping-block",
161161
"showcase/wooden-bucket",
162-
"showcase/wall-torch"
162+
"showcase/wall-torch",
163+
"showcase/tavern-stool",
164+
"showcase/iron-cauldron"
163165
]
164166
}

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ classifies it as a `cursor-plugin`. This is content the AI loads when the user
2121
asks Blender questions or works on Blender add-ons in Cursor or Claude Code.
2222

2323
The content base is 16 skills, 9 rules, 3 templates, 27 snippets, 59
24-
examples, and 22 showcase pieces (counts are CI-enforced against README.md)
24+
examples, and 24 showcase pieces (counts are CI-enforced against README.md)
2525
and the manifest). The full inventory tables and per-item purposes live in
2626
`CLAUDE.md`. Example anatomy and authoring rules: copy `examples/bmesh-gear/`;
2727
showcase conventions: `showcase/README.md`. The render look is specified

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ rules/<rule-name>.mdc - Anti-pattern rules, 9 total
2222
templates/<template-name>/ - Starter projects, 3 total
2323
snippets/<snippet-name>.py - Standalone code patterns, 27 total
2424
examples/<name>/ - Runnable smoke-gated examples, 59 total (+ gallery.json)
25-
showcase/<name>/ - Budget-conformance props, 22 pieces (sibling of examples/; see showcase/README.md)
25+
showcase/<name>/ - Budget-conformance props, 24 pieces (sibling of examples/; see showcase/README.md)
2626
scripts/build_gallery.py - Regenerates docs/gallery/ from examples/gallery.json + showcase/gallery.json
2727
scripts/site/ - Vendored landing-page build (Jinja2)
2828
docs/gallery/ - Committed generated gallery pages + hero renders

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
</p>
1919

2020
<p align="center">
21-
<strong>16 skills</strong> &nbsp;&bull;&nbsp; <strong>9 rules</strong> &nbsp;&bull;&nbsp; <strong>3 templates</strong> &nbsp;&bull;&nbsp; <strong>27 snippets</strong> &nbsp;&bull;&nbsp; <strong>59 examples</strong> &nbsp;&bull;&nbsp; <strong>22 showcase pieces</strong>
21+
<strong>16 skills</strong> &nbsp;&bull;&nbsp; <strong>9 rules</strong> &nbsp;&bull;&nbsp; <strong>3 templates</strong> &nbsp;&bull;&nbsp; <strong>27 snippets</strong> &nbsp;&bull;&nbsp; <strong>59 examples</strong> &nbsp;&bull;&nbsp; <strong>24 showcase pieces</strong>
2222
</p>
2323

2424
<p align="center">
@@ -37,7 +37,7 @@
3737

3838
## Overview
3939

40-
This repository ships **16 skills, 9 rules, 3 templates, 27 snippets, 59 examples, and 22 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 24 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.
4141

4242
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.
4343

@@ -97,6 +97,8 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
9797
<a href="showcase/chopping-block/"><img src="showcase/chopping-block/preview.webp" alt="Chopping block: a hooped timber stump with an embedded axe on a dark studio floor" /></a>
9898
<a href="showcase/wooden-bucket/"><img src="showcase/wooden-bucket/preview.webp" alt="Wooden bucket: a coopered bucket with overlapping staves, iron hoops, and a rope bail on a dark studio floor" /></a>
9999
<a href="showcase/wall-torch/"><img src="showcase/wall-torch/preview.webp" alt="Wall torch: a coursed stone plaque with an iron sconce, wooden haft, and flame on a dark studio floor" /></a>
100+
<a href="showcase/tavern-stool/"><img src="showcase/tavern-stool/preview.webp" alt="Tavern stool: a round wooden seat on turned splayed legs with stretchers and iron ferrules on a dark studio floor" /></a>
101+
<a href="showcase/iron-cauldron/"><img src="showcase/iron-cauldron/preview.webp" alt="Iron cauldron: a bulged iron pot hanging from a timber tripod on a dark studio floor" /></a>
100102

101103
[`shipping-crate`](showcase/shipping-crate/) — procedural crate through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets. Falsifier `--skip-decimate` exits 9.
102104

@@ -142,6 +144,10 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
142144

143145
[`wall-torch`](showcase/wall-torch/) — procedural wall-mounted torch sconce with a stone plaque, iron bracket, and flame through the same pipeline. Falsifier `--skip-decimate` exits 9.
144146

147+
[`tavern-stool`](showcase/tavern-stool/) — procedural tavern stool with turned legs, stretchers, and iron ferrules through the same pipeline. Falsifier `--skip-decimate` exits 9.
148+
149+
[`iron-cauldron`](showcase/iron-cauldron/) — procedural hanging iron cauldron on a timber tripod through the same pipeline. Falsifier `--skip-decimate` exits 9.
150+
145151
## Examples
146152

147153
Runnable, smoke-gated demos live in [`examples/`](examples/) — each is executed headless on

ROADMAP.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,10 @@ Not committed; target list for the next content version. (v0.3.0 shipped the smo
127127
- ~~Chopping block with embedded axe as a game-prop showcase piece~~ **SHIPPED** as `showcase/chopping-block/` — hooped timber stump, kerf, embedded axe; `--skip-decimate` exits 9 on the LOD1 ratio band
128128
- ~~Wooden bucket with iron bands and a rope bail as a game-prop showcase piece~~ **SHIPPED** as `showcase/wooden-bucket/` — overlapping staves, sealed bottom, iron hoops, ears, rope bail; `--skip-decimate` exits 9 on the LOD1 ratio band
129129
- ~~Wall-mounted torch sconce as a game-prop showcase piece~~ **SHIPPED** as `showcase/wall-torch/` — coursed stone plaque, iron bracket and cup, wooden haft, emissive flame; `--skip-decimate` exits 9 on the LOD1 ratio band
130-
- Wooden tavern stool (turned legs, round seat, stretchers) as a game-prop showcase piece
131-
- Cast-iron cooking cauldron on a tripod as a game-prop showcase piece
130+
- ~~Wooden tavern stool (turned legs, round seat, stretchers) as a game-prop showcase piece~~ **SHIPPED** as `showcase/tavern-stool/` — round seat, turned splayed legs, stretchers, iron ferrules; `--skip-decimate` exits 9 on the LOD1 ratio band
131+
- ~~Cast-iron cooking cauldron on a tripod as a game-prop showcase piece~~ **SHIPPED** as `showcase/iron-cauldron/` — bulged open pot, bail, timber tripod, hook; `--skip-decimate` exits 9 on the LOD1 ratio band
132+
- Wooden ladder (rungs, stiles, iron shoes) as a game-prop showcase piece
133+
- Bound hay bale as a game-prop showcase piece
132134
- ~~Small modular kit showcase on recognizable geometry (`modular-kit-snap` contract)~~ **SHIPPED** as `showcase/fence-kit/` — tiling post-and-rail section (AABB X is the tile width; does not re-witness the snap contract); `--skip-decimate` exits 9 on the LOD1 ratio band
133135

134136
- ~~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
12.9 KB
Loading
12.8 KB
Loading

docs/gallery/index.html

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ <h1>Examples Gallery</h1>
272272
autocomplete="off" spellcheck="false" aria-label="Search examples" />
273273
<button class="q-clear" id="qClear" type="button" aria-label="Clear search" hidden>&times;</button>
274274
</div>
275-
<span class="count" id="count" role="status" aria-live="polite">73 examples</span>
275+
<span class="count" id="count" role="status" aria-live="polite">75 examples</span>
276276
<div class="density" role="group" aria-label="Card density">
277277
<button class="density-btn" data-density="compact" type="button" aria-pressed="false">Compact</button>
278278
<button class="density-btn" data-density="detailed" type="button" aria-pressed="false">Detailed</button>
@@ -1127,6 +1127,28 @@ <h2><a href="wall-torch/">wall-torch</a></h2>
11271127
<a class="card-link" href="wall-torch/">View example <span aria-hidden="true">&rarr;</span></a>
11281128
</div>
11291129
</article>
1130+
<article class="card" data-tags="mesh export showcase">
1131+
<a class="card-media" href="tavern-stool/" aria-label="tavern-stool example detail page">
1132+
<img src="assets/tavern-stool-hero.webp" alt="tavern-stool — A procedural tavern stool with a round seat, turned splayed legs, stretchers, and iron ferrules through UVs, bake, LOD, collider, and Unity glTF, asserting…" loading="lazy" decoding="async" />
1133+
</a>
1134+
<div class="card-body">
1135+
<h2><a href="tavern-stool/">tavern-stool</a></h2>
1136+
<p class="teaches">A procedural tavern stool with a round seat, turned splayed legs, stretchers, and iron ferrules through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1137+
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 5396 tris, two materials with 2542 wood and 40 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.309×0.309×0.467 m, LOD ratios in band, convex collider 96 tris, non-empty glTF. --skip-decimate exits 9 on the LOD1 ratio budget.</p>
1138+
<a class="card-link" href="tavern-stool/">View example <span aria-hidden="true">&rarr;</span></a>
1139+
</div>
1140+
</article>
1141+
<article class="card" data-tags="mesh export showcase">
1142+
<a class="card-media" href="iron-cauldron/" aria-label="iron-cauldron example detail page">
1143+
<img src="assets/iron-cauldron-hero.webp" alt="iron-cauldron — A procedural hanging iron cauldron with a bulged open pot, bail, and timber tripod through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed…" loading="lazy" decoding="async" />
1144+
</a>
1145+
<div class="card-body">
1146+
<h2><a href="iron-cauldron/">iron-cauldron</a></h2>
1147+
<p class="teaches">A procedural hanging iron cauldron with a bulged open pot, bail, and timber tripod through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1148+
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 7012 tris, two materials with 2754 wood and 706 metal faces, UVs in 0..1 with zero AABB overlap, outer AABB 0.572×0.558×0.786 m, LOD ratios in band, convex collider 130 tris, non-empty glTF. --skip-decimate exits 9 on the LOD1 ratio budget.</p>
1149+
<a class="card-link" href="iron-cauldron/">View example <span aria-hidden="true">&rarr;</span></a>
1150+
</div>
1151+
</article>
11301152
</div>
11311153
<p class="noresults" id="noResults" hidden>No examples match the current filters.
11321154
<button class="chip" id="resetFilters" type="button">Clear search and tags</button></p>

0 commit comments

Comments
 (0)