Skip to content

Commit 39573d7

Browse files
TMHSDigitalclaude
andcommitted
feat(showcase): add go-kart (vehicles)
The eighth piece in the vehicles category, things that move: a rental go-kart (generic, no marks or text) parked on a patch of kart-track asphalt, broken on three edges and running straight against a red and white kerb. A 30 mm tube chassis whose main loop (both rails, front and rear crossmembers) is one bar swept round every bend; seat and column cross tubes ending on the rails' centre lines with welded gussets; bearing hangers; kingpin C-brackets (a web welded to the rail, two lugs square to the kingpin); spindles (sleeve, stub, spacer, arm) on kingpin bolts with 14 deg caster; a three-spoke wheel on a raked column in a bushing, a steering plate and two tie rods on rod-end eyes and pins. Bolted bodywork: a low nose on bumper bars, side pods on nerf bars, a curved front panel on bracket rods; a tubular rear bumper. A moulded seat on a cross tube with stays to the hangers, a floor tray, pedals, a strapped fuel tank with its line, a three-plate lead ballast block. A finned four-stroke clamped to the right rail (bearing cover, fan shroud and pull-start, air-box, carburettor, plug, exhaust to a silencer) drives the live 40 mm axle through a clutch, an 88-link 3/8 in chain and a 60-tooth sprocket; the engine's station is solved so the chain is a whole number of pitches. Bearing carriers with collars, a brake disc and caliper. Four loaded slicks on split rims (split bolts, hub studs, valve stems), 10 in fronts narrower than 11 in rears, their tread flattened into a contact patch. Thirteen materials; a PartTone face attribute tones every part and paints the kerb stripes. Budgets (measured, 5.2.1): 73294 tris (72500-74100), LOD 0.5000/0.2200, 13 materials with face floors, UVs 0..1 no overlap, AABB 2.0115x1.8172x 0.6397 (+-0.01, read off the vertices), collider 710 (<=780), hygiene 0 incl. 0 coplanar cross-shell pairs, zmin 0; 4 tyres pressed 1.5 mm into the asphalt (0.8-3.0), patches in one plane; 4 hubs and 2 bearings 0.0 mm off their axles (0.3 mm, 0.3 deg); 4 tie-rod eyes 0.0 mm off their pins, biting their plates 0.3/0.5 mm (0.2-1.5); tyre beads seated 0.864-1.000 mm (0.4-2.0); chain inner edge 1.911 and 1.943-1.946 mm under both tooth-root circles (0.8-3.0), chainline 0.005/0.006 mm (0.5); frame and bodywork mirrored within 0.043 mm, wheels 0.0001 mm (0.5); wheelbase 1.0400, tracks 1.1000/1.2000 (+-4 mm); caster 14.0 deg (10-18); mass centre 0.368 m inside the support polygon (>= 0.312, 30% of the wheelbase; 88.3 kg); one assembly of 285 shells. Two default runs print identical measurements; 4.5.11 and 5.1.2 print the same measurements (export differs by 80 bytes). The first draft measured 725 coplanar pairs: hex heads turned by their own bolt-circle step shared flats (each head now turns a further, non-commensurate step), equal bores on the axle shared facet planes (every axle part likewise), the axle end sat on the rear split-bolt heads' plane, stacked ballast plates of one size, a brake carrier face on the caliper's, gusset edges on one plane, a clamp face on a cross-tube end cap, and a sprocket root flat on the chain's waist face. Mirrored fastener rays onto the bodywork hit 2.3 mm apart until its lofts were split on their short diagonals. Falsifiers (flag -> measured -> exit), 5.2.1, 4.5.11 and 5.1.2 identical; tris 73294 and envelope unchanged in all: --skip-decimate LOD1 1.0000 9 --stray-vert loose_v 1 15 --lift-z zmin 0.05000 16 --float-tyre left front sink -2.5 mm 16 --cock-hub left rear hub 1.5 mm off the axle 17 --drop-bearing right bearing 2.0 mm off the axle 17 --short-tierod left outer eye 6.0 mm off its pin 17 --sink-tyre right rear bead seat 3.000 mm 18 --lift-chain chain seat -2.089 / -2.060 mm 18 --toe-wheel wheel mirror 4.539 mm 19 --wide-track rear track 1.2080 m 19 --odd-frame frame mirror 1.819 mm 19 --no-caster caster 0.0 deg 19 --aft-ballast stance margin 0.2887 m 20 --loose-ballast 2 components [5, 280] 21 --lift-chain at 1.7, 2.0, 2.5, 3.0 and 3.5 mm put a chain face within 0.1 mm of a tooth flat's plane and exited 15; it now moves the chain alone (teeth keep the seated chain's phase) by 4 mm. The assembly falsifier first lifted a side pod, which broke the bodywork mirror and exited 19; the ballast stack is measured by nothing else. --toe-wheel turns the corner about the vertical through the kingpin and rebuilds the tie rod to the arm. tests/check_falsifier_targets.py --run --only go-kart passes. Blender: E:\Blender-Developer-Tools\.scratch\5.2\blender-5.2.1-windows-x64\blender.exe, reports "Blender 5.2.1 LTS"; default and every falsifier also run on .scratch\blender-4.5.11-windows-x64 ("Blender 4.5.11 LTS") and .scratch\blender-5.1.2-windows-x64 ("Blender 5.1.2"). Render: render_hero.py wrote hero (42458 B) and preview (38408 B); framing fill x 0.769, y 0.722, margins >= 0.056; asset-quality floors pass (13 materials, edge90 0.064). Default stage, no deviation. Asset sheet (docs/gallery/asset-sheets/go-kart.webp): not the least-designed object; the hydrant is plainer. Isolated, it reads at once as a kart: chassis, seat, engine and chain, bodywork, bumper, slicks. Weak point: the patch makes the kart small in its panel. Contact sheet (docs/gallery/contact-sheets/go-kart-contact-sheet.webp): luma 0.2371 against 0.2369-0.2428 (in band, after relighting from 0.2796); stage 0.2022 against 0.1919-0.2517; saturation 0.1780 against 0.1525-0.2367; wedge warmth +0.2878 is outside the -0.1440/+0.1052 spread because the brightest tenth of the lower half is the yellow bodywork, not the wall pool (the pool was cooled and dimmed; the reading stayed with the subject's colour). Thumbnail legible. Also updated: README, CLAUDE.md, AGENTS.md counts (62 -> 63), ROADMAP Vehicles list (go-kart struck as shipped), asset_sheet.py SELECT row, catalog.json, plugin.json and the regenerated gallery. build_gallery, check_site_links (118 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 19135c2 commit 39573d7

78 files changed

Lines changed: 11253 additions & 135 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
@@ -200,6 +200,7 @@
200200
"showcase/wingback-armchair",
201201
"showcase/planet-rover",
202202
"showcase/traffic-cones",
203-
"showcase/mushroom-stump"
203+
"showcase/mushroom-stump",
204+
"showcase/go-kart"
204205
]
205206
}

‎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 62 showcase pieces (counts are CI-enforced against README.md)
24+
examples, and 63 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, 62 pieces, each with a gallery `category` (sibling of examples/; see showcase/README.md § Categories)
25+
showcase/<name>/ - Budget-conformance props, 63 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>62 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>63 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 62 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 63 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>62 showcase pieces</strong> — click to expand the preview grid</summary>
109+
<summary><strong>63 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>
@@ -171,6 +171,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
171171
<a href="showcase/planet-rover/"><img src="showcase/planet-rover/preview.webp" width="24%" alt="Planet rover: a six-wheeled rocker-bogie rover with gold-foil sides, a camera mast, a dish antenna and a finned power unit, its arm drilling a boulder on red-grey regolith" /></a>
172172
<a href="showcase/traffic-cones/"><img src="showcase/traffic-cones/preview.webp" width="24%" alt="Traffic cones: orange cones with white reflective collars on a patch of asphalt with a worn white line, three standing in a row, three nested in a stack and one knocked over showing its open base, before a striped A-frame barricade with an amber warning lamp" /></a>
173173
<a href="showcase/mushroom-stump/"><img src="showcase/mushroom-stump/preview.webp" width="24%" alt="Mushroom stump: a sawn tree stump with ringed, cracked end grain and torn splinters on a sloping soil disc, buttress roots in the soil, moss, banded shelf fungi, honey mushroom clusters, red fly agarics, ferns and fallen leaves" /></a>
174+
<a href="showcase/go-kart/"><img src="showcase/go-kart/preview.webp" width="24%" alt="Go-kart: yellow go-kart on a patch of track asphalt before a red and white kerb: bent red tube chassis, black seat, finned engine with chain to the rear axle, slick tyres on silver rims." /></a>
174175
</p>
175176

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

294295
[`mushroom-stump`](showcase/mushroom-stump/) — the seventh `nature` piece: procedural felled-tree stump on a sloping forest-floor soil disc (one furrowed lathe about a plumb axis flaring through five buttresses into the ground, plated bark peeled to sapwood in two patches, a level saw cut with weathered growth rings round a dark heartwood, radial drying checks notching the rim and a strip of torn holding wood with long splinters, five surface roots lying in the soil and diving into it, moss on the shaded flank, two tiers of turkey-tail brackets, three fly agarics with warted caps, pleated gills, a volva and a hanging skirt, two clusters of ringed honey fungus out of a root and the stump's foot, fallen leaves, ferns, twigs and pebbles), whose foot sealed in the soil all round, caps seated on their stipes, level cut and stated size, roots bedded along their run, stipes rooted in their soil or wood, brackets rooted in the bark, moss on up- and shade-facing surfaces and ground cover joined to the soil are recomputed from the mesh, through the same pipeline. `--perch-stump` exits 17 on the stump sealed all round, `--float-caps` 18 on every cap seated on its stipe, `--tilt-cut` and `--fat-stump` 19 on the level cut and stated size, `--arch-roots` 20 on the roots bedded, `--float-mushrooms` 21 on every stipe rooted in its host, `--float-brackets` 22 on the brackets rooted in the bark, `--sunny-moss` 23 on moss facing up or into the shade, `--float-cover` 24 on the ground cover joined to the soil, while the envelope holds.
295296

297+
[`go-kart`](showcase/go-kart/) — the eighth `vehicles` piece: procedural rental go-kart on a patch of kart-track asphalt against a red and white kerb (a 30 mm tube chassis whose main loop is one bar swept round every bend, cross tubes ending inside the rails with welded gussets, bearing hangers and kingpin C-brackets; spindles on kingpin bolts with 14° caster; a three-spoke wheel on a raked column in a bushing, a steering plate and two tie rods on rod-end eyes; a bolted nose, side pods on nerf bars and a curved front panel; a moulded seat on stays, a floor tray, two pedals, a strapped fuel tank with its line and a lead ballast block; a finned four-stroke clamped to the right rail with a pull-start, air-box and silencer, driving the live rear axle through a clutch, an 88-link chain solved to a whole number of pitches and a 60-tooth sprocket; bearing carriers, a brake disc and caliper; a tubular rear bumper; four loaded slicks on split rims with valve stems, the fronts narrower than the rears), whose tyres pressed into the asphalt in one plane, hubs and bearings coaxial with their axles, tie-rod eyes on their pins, tyre beads and chain seated, frame, bodywork and wheels mirrored at the stated wheelbase and tracks, caster, mass centre inside the support polygon and one connected assembly are recomputed from the mesh, through the same pipeline. `--float-tyre` exits 16 on every tyre grounded, `--cock-hub`, `--drop-bearing` and `--short-tierod` 17 on joint fit, `--sink-tyre` and `--lift-chain` 18 on the bead and chain seats, `--toe-wheel`, `--wide-track`, `--odd-frame` and `--no-caster` 19 on mirror, size and caster, `--aft-ballast` 20 on the stance, `--loose-ballast` 21 on one connected assembly, while the envelope holds.
298+
296299
</details>
297300

298301
## Examples

0 commit comments

Comments
 (0)