Skip to content

Commit c894e0b

Browse files
TMHSDigitalclaude
andcommitted
feat(showcase): add cargo-loader (vehicles)
The fourth piece in the vehicles category: a generic sci-fi industrial cargo loader, a bipedal powered-lift exoframe standing in a crouch and holding a corrugated cargo crate 1.00 m off the ground on two forged L-tines. Broad flat feet (rubber sole, cast foot, grip cleats, toe bumper); box-section shins and thighs pinned at the ankle, knee and hip; arms hung from shoulder yokes on towers. Every joint is a clevis: two lug bushings straddle an eye bushing, a chrome pin through all three. Eight rams (hip, knee, shoulder, elbow), each a collared steel cylinder with a chromed rod, a pinned bracket at each end and a port hose. Fork carriages with hazard-striped faces; an open roll-cage cockpit with bucket seat, four-point harness, joystick consoles, amber beacon and two work lights; a power pack with grille, fins, hazard bands, exhaust stacks and cable looms; a hydraulic tank under the pelvis. Ten materials: paint, hazard stripes, chrome, gunmetal steel, rubber, seat vinyl, harness webbing, emissive beacon, emissive work light, crate paint. 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 and 5.1 are left to CI (not run locally). Recomputed budgets (5.2.1): - 44600 tris (band 44000-45000); LOD1 0.5000, LOD2 0.2190 - 10 materials: paint 2736, hazard 608, chrome 3128, steel 15328, rubber 2740, seat 480, webbing 640, beacon 256, light 152, crate 516 faces - UVs in 0..1, overlap 0; AABB 2.8272 x 1.6890 x 2.9740 m, zmin 0; collider 710 tris (ceiling 760); bake FINISHED; glTF 3461604 B - hygiene all 0, zero coplanar cross-shell pairs. The first draft had 1185 (buried cleat caps on one plane, beacon cap on the lens top, crate posts on the wall cap); later ones cage collars on tube ends, fin inner faces, a post against its casting. All fixed by staggering, never bands. - soles: 2, zmin 0, 0; flat 0.000 mm, tilt 0.000 deg (caps 0.5 mm, 0.2) - clevis joints: 28 x (1 pin + 3 bushings), 0.000 mm off axis, 0.000 deg (caps 0.3 mm, 0.3 deg) - crate: bite 0.0020 m at every 10 mm station on both tines (band 0.0010-0.0040, ray down onto the tine, ray up into the base), 0.74 m run - rams: 8 rods 0.000 mm off their cylinders, 0.0096 deg (caps 0.3 mm, 0.3 deg); exposed 0.1591-0.2858 m (band 0.080-0.340), engaged 0.060 (floor 0.040) - stance: loader and crate 2380.6 kg (457.3 kg cargo), mass centre 0.4473 m inside the soles' polygon (floor 0.200) - one connected assembly, 414 shells - two default runs print identical measurements Falsifiers (flag -> measured -> exit): - --skip-decimate -> LOD1 ratio 1.0000 -> 9 - --stray-vert -> loose_v 1 -> 15 - --lift-z -> zmin 0.05000 -> 16 - --float-foot -> left sole zmin 0.00500 -> 16 - --offset-pin -> left knee pin 0.002500 m off its bushings -> 17 - --lift-crate -> bites -0.0040 m on both tines -> 18 - --tilt-sole -> spread 0.012545 m, tilt 0.600 deg -> 19 - --skew-rod -> rod tilt 1.0000 deg, 0.002184 m off -> 20 - --bottom-ram -> exposed 0.0440 m -> 21 - --overload -> 6401.9 kg cargo, margin -0.3853 m -> 22 - --loose-light -> 2 components -> 23 Tris (44600) and AABB identical under every falsifier; every budget checked before each target stayed green. Render: render_hero.py wrote the hero and preview. Framing fill y 0.850, x 0.431 (a tall subject; the height axis carries the band), margins >= 0.067. Asset-quality floors pass (edge90 0.115); a violation remaps to 24. Asset sheet (docs/gallery/asset-sheets/cargo-loader.webp): not the least-designed object in the lineup; the hydrant and the wheelbarrow are plainer. Isolated, it reads at once as a power loader: rams, clevises, cage, seat and harness, beacon, pack grille and fins, crate on forks. Weak points: the tines are mostly under the crate, and the panel is small for a 3 m machine, so the joint detail reads as dark knuckles. Contact sheet: luma 0.2376 against calibration 0.2369-0.2428 (in band; first draft 0.2264). Stage 0.2202 against 0.1919-0.2517 (in band). Saturation 0.1862 against 0.1525-0.2367 (in band; first draft 0.2636). Wedge warmth +0.1580 against -0.1440/+0.1052/+0.0921: above the spread, because the lower half's brightest tenth is the yellow feet; a neutral wedge only moved it to +0.13 and cost the warm wall pool, so the warm wedge was kept. Thumbnail legibility good. Also updated: README, CLAUDE.md and ROADMAP counts and entries (cargo loader struck in the Vehicles list as shipped), the asset_sheet.py SELECT row, catalog.json, plugin.json and the regenerated gallery. build_gallery, check_site_links (107 pages, 0 failures), check_falsifier_targets, check_exit_code_readme, check_engine_id, check_gallery_images and the count check all pass. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 047e244 commit c894e0b

66 files changed

Lines changed: 7718 additions & 112 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
@@ -189,6 +189,7 @@
189189
"showcase/motor-scooter",
190190
"showcase/bowling-pins",
191191
"showcase/pond-edge",
192-
"showcase/stand-mixer"
192+
"showcase/stand-mixer",
193+
"showcase/cargo-loader"
193194
]
194195
}

‎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, 51 pieces, each with a gallery `category` (sibling of examples/; see showcase/README.md § Categories)
25+
showcase/<name>/ - Budget-conformance props, 52 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>51 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>52 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 51 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 52 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>51 showcase pieces</strong> — click to expand the preview grid</summary>
109+
<summary><strong>52 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>
@@ -160,6 +160,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
160160
<a href="showcase/bowling-pins/"><img src="showcase/bowling-pins/preview.webp" width="24%" alt="Bowling pins: ten white pins with red neck stripes racked on a dark pin deck at the end of a glossy maple lane with arrows and dots, a marbled violet ball on the approach, between gutters and kickbacks, on a dark studio floor" /></a>
161161
<a href="showcase/pond-edge/"><img src="showcase/pond-edge/preview.webp" width="24%" alt="Pond edge: a dark rippled pond on a raised soil disc, cattails with brown seed heads and rush tufts on the far bank, notched lily pads and two pink-white water lilies, wet stones and a branch at the waterline, on a dark studio floor" /></a>
162162
<a href="showcase/stand-mixer/"><img src="showcase/stand-mixer/preview.webp" width="24%" alt="Stand mixer: a slate-blue retro tilt-head stand mixer with a chrome trim band and a brushed steel bowl on a stone countertop, beside a wire whisk, a steel measuring cup and two brown eggs in a terracotta dish, on a dark studio floor" /></a>
163+
<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>
163164
</p>
164165

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

261262
[`stand-mixer`](showcase/stand-mixer/) — the fourth `household` piece: procedural retro tilt-head stand mixer on a honed stone countertop section (a cast enamel base foot, neck and streamlined head lofted from superellipse sections, on four rubber feet; a tilt hinge pinned through two neck knuckles; a chrome trim band, blank badge, speed and tilt-lock levers; an attachment hub with cap and thumb screw; a planetary socket carrying a flat beater into a 4.5 L brushed stainless bowl with a rolled rim and strap handle under three bayonet lugs; a cord to a plug; a whisk, a measuring cup and two eggs in a glazed dish), whose feet on the counter, hinge pin coaxial through its knuckles, bowl seated and concentric on its plate, height and brim capacity, beater coaxial with its socket, beater's dime-test clearance to the bowl, mass centre inside the feet and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers `--float-foot` exits 16, `--offset-hinge` 17, `--offset-bowl` 18, `--shallow-bowl` 19, `--offset-beater` 20, `--long-beater` 21, `--bunch-feet` 22, `--loose-cap` 23.
262263

264+
[`cargo-loader`](showcase/cargo-loader/) — the fourth `vehicles` piece: procedural sci-fi industrial cargo loader, a bipedal powered-lift exoframe (broad flat feet with rubber soles, grip cleats and toe bumpers; hydraulic legs of lofted box-section shins and thighs pinned at the ankle, knee and hip; arms hung from shoulder yokes on towers; every joint a clevis with a chrome pin through two lug bushings and an eye bushing; eight rams, each a collared cylinder with a chromed rod, a pinned bracket at each end and a hose; fork carriages with hazard-striped faces and forged L-tines; an open roll-cage cockpit with a bucket seat, four-point harness, joystick consoles, amber beacon and work lights; a power pack with a slatted grille, cooling fins, hazard bands, exhaust stacks and cable looms; a corrugated cargo crate held on the tines), whose soles grounded, clevis pins coaxial with their bushings, crate resting on both tines, soles level, ram rods coaxial with their cylinders, rod strokes, mass centre of loader and crate inside the soles' support polygon and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers `--float-foot` exits 16, `--offset-pin` 17, `--lift-crate` 18, `--tilt-sole` 19, `--skew-rod` 20, `--bottom-ram` 21, `--overload` 22, `--loose-light` 23.
265+
263266
</details>
264267

265268
## Examples

0 commit comments

Comments
 (0)