Skip to content

Commit 77375d0

Browse files
TMHSDigitalclaude
andcommitted
feat(showcase): add road-bicycle (vehicles)
The fifth piece in the vehicles category: a 1970s lugged-steel road bicycle leaning 5 deg onto its side kickstand. A 56 cm diamond frame in chromed spear-point lugs, tapered stays with chrome tips, a chrome-crowned fork; 700c wheels of 36 spokes laced three-cross from both flanges to nipples through box-section rims, QR skewers, tan-wall tyres; 52/42 crankset with quill pedals and toe clips, six-speed freewheel, a roller chain of 112 individual links solved round ring, cog and both jockeys, front and rear derailleurs, down-tube shifters, side-pull calipers, gum-hooded levers on cotton-taped drop bars, quill stem, leather saddle, a bottle in a bolted wire cage. Ten materials; metals carry the espresso-machine reflection studio. Budgets (measured, 5.2.1): 46092 tris (45600-46600), LOD 0.4995/0.2198, 10 materials with face floors, UVs 0..1 no overlap, AABB 1.6698x0.4376x0.9969 (1.670x0.438x0.997 +-0.01), collider 880 (<=970), hygiene 0 incl. 0 coplanar cross-shell pairs, tyres and foot zmin 0, hubs 0.000 mm off dropout eyes, spokes 3.00 mm into flanges and 4.50 mm into nipples, rims 0.000 mm off the frame plane, seat tube 0.5800 m, wheelbase 0.99982 m, trail 0.05536 m, lacing 36/36 18/18 pitch 0.000 deg cross 60.000 deg, 30 + 10 rollers seated 1.20-3.40 mm above root, chain line 0.000 mm, stance margin 0.0393 m at 11.80 kg, 1 component (685 shells). Two default runs print identical measurements. Falsifiers (flag -> measured -> exit): --skip-decimate LOD1 1.0000 -> 9; --stray-vert loose_v 1 -> 15; --lift-z zmin 0.05000 -> 16; --float-tyre rear tyre zmin 0.003 -> 16; --slip-wheel hub 0.00200 m off eye -> 17; --short-spoke end -0.00150 inside nipple -> 18; --dish-wheel rim 0.00299 m off plane -> 19; --steep-head trail -0.02926 m -> 20; --bunch-spokes pitch 4.000 deg -> 21; --lift-chain seat up to 8.11 mm -> 22; --shift-rollers roller 0.00150 m off the line -> 23; --tuck-stand margin -0.0062 m -> 24; --pop-bottle 2 components [2, 683] -> 25. Every one leaves the triangle count at 46092 and the budgets before it green. 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.666, y 0.778, margins >= 0.111; asset-quality floors pass (edge90 0.099). Asset sheet (docs/gallery/asset-sheets/road-bicycle.webp): not the least-designed object in the lineup; the hydrant and the wheelbarrow are plainer. Isolated it reads at once as a lugged road bike: lugs, laced wheels, tan walls, saddle, taped bars, chain and derailleurs all carry. Weak point: a long thin object, it fills little of its panel. Contact sheet (docs/gallery/contact-sheets/road-bicycle-contact-sheet.webp): luma 0.2382 against 0.2369-0.2428 (in band; first draft 0.2556, relit with a dimmer key and wedge). Stage 0.1952 against 0.1919-0.2517 (in band). Saturation 0.2335 against 0.1525-0.2367 (in band). Wedge warmth +0.0872 against -0.1440/+0.1052/+0.0921 (inside the spread). Thumbnail legible. Also updated: README, CLAUDE.md, AGENTS.md counts (55 -> 56), ROADMAP Vehicles list (road bicycle struck as shipped), asset_sheet.py SELECT row, catalog.json, plugin.json and the regenerated gallery. build_gallery, check_site_links (111 pages, 0 failures), check_falsifier_targets, check_exit_code_readme, check_engine_id, check_gallery_images and check_import_export_rules pass. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 4e18db9 commit 77375d0

71 files changed

Lines changed: 10340 additions & 121 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
@@ -193,6 +193,7 @@
193193
"showcase/cargo-loader",
194194
"showcase/archery-target",
195195
"showcase/cactus-garden",
196-
"showcase/espresso-machine"
196+
"showcase/espresso-machine",
197+
"showcase/road-bicycle"
197198
]
198199
}

‎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 55 showcase pieces (counts are CI-enforced against README.md)
24+
examples, and 56 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, 55 pieces, each with a gallery `category` (sibling of examples/; see showcase/README.md § Categories)
25+
showcase/<name>/ - Budget-conformance props, 56 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>55 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>56 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 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.
40+
This repository ships **16 skills, 9 rules, 3 templates, 27 snippets, 60 examples, and 56 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>55 showcase pieces</strong> — click to expand the preview grid</summary>
109+
<summary><strong>56 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>
@@ -164,6 +164,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
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>
166166
<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>
167+
<a href="showcase/road-bicycle/"><img src="showcase/road-bicycle/preview.webp" width="24%" alt="Road bicycle: a deep red lugged-steel road bicycle leaning on its kickstand, with chromed lugs and fork socks, tan-wall 700c wheels, a honey leather saddle, cream-taped drop bars and a chain over a double crankset" /></a>
167168
</p>
168169

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

273274
[`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.
274275

276+
[`road-bicycle`](showcase/road-bicycle/) — the fifth `vehicles` piece: procedural 1970s lugged-steel road bicycle leaning on its side kickstand (a 56 cm diamond frame in chromed, spear-pointed lugs, tapered stays with chrome tips, a chrome-crowned fork with socks; two 700c wheels of 36 spokes laced three-cross from both flanges of small-flange hubs to nipples through box-section rims, quick-release skewers, tan-wall tyres with a file-tread crown; a 52/42 crankset with quill pedals, toe clips and straps, a six-speed freewheel and a roller chain of 112 individual links solved round the ring, the cog and both jockeys; front and rear derailleurs, down-tube shifters, side-pull calipers, gum-hooded levers on cotton-taped drop bars, a quill stem, a leather saddle on rails, a bottle in a bolted cage), whose hubs coaxial with their dropouts, spoke seats in flange and nipple, wheels in the frame's plane, steering trail, three-cross lacing, chain seated on ring and cog, straight chain line, mass centre inside the tyres-and-foot triangle and one connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers `--float-tyre` exits 16, `--slip-wheel` 17, `--short-spoke` 18, `--dish-wheel` 19, `--steep-head` 20, `--bunch-spokes` 21, `--lift-chain` 22, `--shift-rollers` 23, `--tuck-stand` 24, `--pop-bottle` 25.
277+
275278
</details>
276279

277280
## Examples

0 commit comments

Comments
 (0)