Skip to content

Commit 29cffbc

Browse files
TMHSDigitalclaude
andcommitted
feat(showcase): add espresso-machine (household)
The fifth piece in the household category: a prosumer E61 semi-automatic espresso machine on a honed limestone countertop. A black chassis behind a brushed stainless front panel, a back panel and two side panels folded round the front and back edges, each one manifold sheet with two banks of seven louvred vent slots cut through it (add_sheet: a sheet swept along a plan path, each grid cell metal or a walled slot; the drip grate's 31 slots are the same helper). Adjustable feet (rubber pad, chrome stem, hex nut); a pressed warmer tray with a rail bent from one bar, two posts and four upturned cups. The chromed E61 group: cast neck, thermosiphon pipe, skirted bayonet ring with a rubber gasket, waisted body, mushroom cap, chimney with two lug posts and bosses, the lever's hub on a domed pin, bakelite ball. A spouted portafilter with ears and a turned walnut handle locked against the gasket; steam and hot-water valves with fluted bakelite knobs, wands on ball joints; twin gauges side by side above the group with printed dials (ticks, long every fourth, a red band), needles and domed glasses in chrome bezels; a toggle and amber pilot lamp; a drip tray with a shot cup of espresso on its grate; a knock box with pucks, a tamper and a milk pitcher. Fourteen materials. Stainless and chrome carry a studio in the material: the reflection vector looks up a horizon-band ramp added as emission, so metal reads as metal on the dark stage and the asset sheet's stage alike (a ramp bright only above the horizon left vertical panels black). Budgets (5.2.1): 43636 tris (band 43000-44300), LOD 0.5000 / 0.2200, 14 materials with face floors, UVs 0..1 overlap 0, AABB 0.6700 x 0.6550 x 0.4755 m, collider 447 tris, hygiene 0 incl. coplanar cross-shell. Pads sunk 0.00025-0.00070 m (0.0001-0.0008); lever pin 0.000000 m off both bosses and the hub, tilt 0.0000 deg; five cups seated 0.00020-0.00074 m on tray or grate (0.0001-0.0009); width 0.30000 m, tray height 0.39070 m; portafilter and gasket 0.000000 m off the group axis, rim 0.00040 m into the gasket (0.0001-0.0008); gauge glasses 0.0034 m behind the bezel lips (0.0015-0.0050); drip tray margin 0.0250 m, tuck 0.0170 m; mass centre 0.1064 m inside the feet (floor 0.060) at 39.83 kg; 1 component of 94 shells. Falsifiers (each breaks only its own budget, every other budget green; tris unchanged; AABB unchanged except --sink-cup, 0.4725 m in tolerance): - --skip-decimate -> r1 1.0000 -> 9 - --stray-vert -> loose_v 1 -> 15 - --lift-z -> zmin 0.05000 -> 16 - --float-foot -> one pad seat -0.00230 m -> 16 - --offset-pin -> pin 0.001500 m off -> 17 - --sink-cup -> cappuccino cup seat 0.00356 m -> 18 - --narrow-body -> width 0.28300 m -> 19 - --offset-pf -> portafilter 0.001200 m off axis -> 20 - --drop-pf -> seat -0.00160 m -> 21 - --proud-gauge -> recess -0.0011 m -> 22 - --shift-tray -> margin -0.0050 m -> 23 - --bunch-feet -> stance margin -0.1613 m -> 24 - --loose-knob -> 2 components -> 25 Two default runs print identical measurements. Coplanar fixes were all made in the model (staggered stems, lug posts, glass radius, right gauge 0.4 mm prouder, steep pad chamfer, narrow body clearing the fold); the contact graph skips faceless shells so --stray-vert trips hygiene only. Blender: E:\Blender-Developer-Tools\.scratch\5.2\blender-5.2.1-windows-x64\blender.exe, reports "Blender 5.2.1 LTS". 4.5 LTS left to CI. Render: render_hero.py wrote hero and preview; framing fill x 0.606, y 0.806, margins >= 0.083; asset-quality floors pass (edge90 0.080). Asset sheet (docs/gallery/asset-sheets/espresso-machine.webp): not the least-designed object in the lineup; the hydrant and the wheelbarrow are plainer. Isolated it reads at once as an E61 machine: stainless reads as metal, gauges, group, knobs, wands, cups and rail all carry. Weak point: the chassis is a plain box and the panel's crop hides the props. Contact sheet (docs/gallery/contact-sheets/espresso-machine-contact-sheet.webp): luma 0.2426 against 0.2369-0.2428 (in band; first draft 0.2635, relit with a softer key and fill, dimmer steel studio and greyer porcelain). Stage 0.1940 against 0.1919-0.2517 (in band; wedge raised to hold it). Saturation 0.1709 against 0.1525-0.2367 (in band). Wedge warmth -0.0185 against -0.1440/+0.1052/+0.0921 (inside the spread). Thumbnail legible. Also updated: README, CLAUDE.md, AGENTS.md counts (54 -> 55), ROADMAP Household list (espresso machine struck as shipped), asset_sheet.py SELECT row, catalog.json, plugin.json and the regenerated gallery. build_gallery, check_site_links (110 pages, 0 failures), check_falsifier_targets, check_exit_code_readme, check_engine_id, check_gallery_images, check_import_export_rules and the count check pass. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent a41ed6b commit 29cffbc

70 files changed

Lines changed: 7607 additions & 119 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.cursor-plugin/plugin.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@
192192
"showcase/stand-mixer",
193193
"showcase/cargo-loader",
194194
"showcase/archery-target",
195-
"showcase/cactus-garden"
195+
"showcase/cactus-garden",
196+
"showcase/espresso-machine"
196197
]
197198
}

‎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, 60
24-
examples, and 54 showcase pieces (counts are CI-enforced against README.md)
24+
examples, and 55 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, 60 total (+ gallery.json)
25-
showcase/<name>/ - Budget-conformance props, 54 pieces, each with a gallery `category` (sibling of examples/; see showcase/README.md § Categories)
25+
showcase/<name>/ - Budget-conformance props, 55 pieces, each with a gallery `category` (sibling of examples/; see showcase/README.md § Categories)
2626
scripts/build_gallery.py - Regenerates docs/gallery/ from examples/gallery.json + showcase/gallery.json
2727
scripts/site/ - Vendored landing-page build (Jinja2); tokens.css is the shared palette
2828
tests/check_site_links.py - Internal link/anchor/alt gate over the built site (docs/)

‎README.md‎

Lines changed: 6 additions & 3 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>60 examples</strong> &nbsp;&bull;&nbsp; <strong>54 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>60 examples</strong> &nbsp;&bull;&nbsp; <strong>55 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, 60 examples, and 54 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, 60 examples, and 55 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 reading these files directly from a checkout — **there is no MCP server in this repository, and none is required**. Cursor applies `rules/*.mdc` automatically wherever their scope globs match and takes skills by name in chat; Claude Code reads `skills/` and `rules/` from the project workspace, or from this repo kept as a referenced checkout. Any agent that can read files in a workspace can use it the same way. There is no build step for the content — edit the Markdown and Python files directly.
4343

@@ -106,7 +106,7 @@ per-script exit-code model, are in
106106
Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](showcase/README.md).
107107

108108
<details>
109-
<summary><strong>54 showcase pieces</strong> — click to expand the preview grid</summary>
109+
<summary><strong>55 showcase pieces</strong> — click to expand the preview grid</summary>
110110

111111
<p align="center">
112112
<a href="showcase/shipping-crate/"><img src="showcase/shipping-crate/preview.webp" width="24%" alt="Shipping crate: a wooden slat crate stencilled PORT ROYAL and NO 17, with iron corner brackets and an end handle, on a dark studio floor, warm wedge on the back wall" /></a>
@@ -163,6 +163,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
163163
<a href="showcase/cargo-loader/"><img src="showcase/cargo-loader/preview.webp" width="24%" alt="Cargo loader: a yellow bipedal powered-lift exoframe in a crouch, hydraulic rams and pinned clevises on its legs and arms, an open roll-cage cockpit with a seat, harness and amber beacon, a power pack behind, holding a corrugated blue-grey crate on two forks, on a dark studio floor" /></a>
164164
<a href="showcase/archery-target/"><img src="showcase/archery-target/preview.webp" width="24%" alt="Archery target: a straw boss with a gold, red, blue, black and white face and five arrows, leaning on a timber easel numbered 12 with a hinged rear leg and a splay chain, on a turf patch with a leather quiver and a snapped arrow in the grass, on a dark studio floor" /></a>
165165
<a href="showcase/cactus-garden/"><img src="showcase/cactus-garden/preview.webp" width="24%" alt="Cactus garden: a ribbed saguaro with three arms, rows of spines and cream flowers on its crown, a barrel cactus with red hooked spines and yellow fruit, a prickly pear with magenta fruit, an agave rosette and sandstone rocks on a raised sand disc, on a dark studio floor" /></a>
166+
<a href="showcase/espresso-machine/"><img src="showcase/espresso-machine/preview.webp" width="24%" alt="Espresso machine: a brushed stainless E61 espresso machine with twin gauges, a chrome group head and a walnut-handled portafilter over a shot cup, cups on its warmer tray, beside a tamper, milk pitcher and knock box on a stone counter" /></a>
166167
</p>
167168

168169
[`shipping-crate`](showcase/shipping-crate/) — procedural crate through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets. Falsifier `--skip-decimate` exits 9.
@@ -269,6 +270,8 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
269270

270271
[`cactus-garden`](showcase/cactus-garden/) — the fifth `nature` piece: procedural Sonoran cactus garden on a raised sand-and-gravel disc (a 2.2 m saguaro of fourteen pleated ribs with rounded crests, three arms leaving the trunk through a smooth collar and turning up through wide elbows, a corky boot and scars, felt areoles with radiating spine clusters down every crest and cream flowers on the crown; a fishhook barrel cactus with a red hooked central at every areole and a ring of yellow fruit; a prickly pear of twelve broad sage paddles fused pad on pad in four tiers, with glochids and magenta fruit; a blue agave rosette, cleaved sandstone rocks, a bleached branch, fallen saguaro ribs, dry bunchgrass and gravel), whose arms biting into the trunk, pads jointed into their parents, plumb saguaro with its mass over its foot, ribs at equal stations, spines rooted in the skin, plants bedded in the sand and cover joined to the sand are recomputed from the mesh, through the same pipeline. Falsifiers `--short-arm` exits 17, `--shallow-pad` 18, `--lean-saguaro` 19, `--skew-ribs` 20, `--float-spines` 21, `--perch-barrel` 22, `--float-cover` 23.
271272

273+
[`espresso-machine`](showcase/espresso-machine/) — the fifth `household` piece: procedural prosumer E61 espresso machine on a honed stone countertop section (a black chassis behind a brushed stainless front panel, side panels folded round its edges with louvred vent slots cut through each sheet, a warmer tray with a bent rail and four upturned cups, adjustable feet; the chromed E61 group with its neck, gasket, mushroom cap and a lever pinned through two bosses; a spouted portafilter with a walnut handle; steam and hot-water valves with fluted bakelite knobs and wands on ball joints; twin gauges with printed dials in chrome bezels; a toggle and pilot lamp; a drip tray whose slotted grate carries a shot cup of espresso; a knock box, a tamper and a milk pitcher), whose feet on the counter, lever pin coaxial through its bosses, cups seated on their hosts, body size, portafilter coaxial and seated to the gasket, gauge glasses recessed in their bezels, drip tray inside the footprint, mass centre inside the feet and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers `--float-foot` exits 16, `--offset-pin` 17, `--sink-cup` 18, `--narrow-body` 19, `--offset-pf` 20, `--drop-pf` 21, `--proud-gauge` 22, `--shift-tray` 23, `--bunch-feet` 24, `--loose-knob` 25.
274+
272275
</details>
273276

274277
## Examples

0 commit comments

Comments
 (0)