Skip to content

Commit e3a3884

Browse files
TMHSDigitalclaude
andcommitted
feat(showcase): add bowling-pins (sports)
The fourth piece in the sports category: the pin deck end of a ten-pin bowling lane. One laminated slab of 39 maple boards, 41.5 in across, each board's top edges chamfered into a V seam and crossed by the joint to a dark pin deck; ten pin spots inlaid on a 12 in equilateral triangle, the head spot 34 3/16 in from the pit edge; a chevron of seven targeting arrows and ten range dots (brought up to the near end of this 2.3 m section); channel-profile gutters, cappings, kickbacks with sloped noses under mitred aluminium caps and phenolic kick plates; a steel pit-edge bullnose; five sleepers. Ten pins lathe-turned (PCHIP, no overshoot) from the regulation profile table, 15 in tall, 4.766 in belly, two red neck stripes and a crown band of red teeth. An 8.5 in marbled resin ball drilled by an exact Boolean: countersunk 1 in thumb hole 2.5 in deep and two 0.8 in finger holes 2 in deep, drilled parallel (radially drilled they converged and met inside the ball). Eleven materials: maple, pin deck, pin white, pin red, ball resin, bore, phenolic, kickback laminate, aluminium, inlay, sleeper 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): - 37078 tris (band 36400-37700); LOD1 0.5000, LOD2 0.2200 - 11 materials: maple 358, deck 358, pin white 13720, pin red 1280, ball 1649, bore 562, phenolic 254, laminate 142, aluminium 176, inlay 1197, sleeper 380 faces - UVs in 0..1, overlap 0; AABB 1.6400 x 2.3014 x 0.5234 m (read off the vertices), zmin 0; collider 277 tris (ceiling 300); bake FINISHED; glTF 2730012 B - hygiene all 0, zero coplanar cross-shell pairs (first draft 206: range dots 54 mm apart shared cap planes; neighbours now alternate 0.13 mm) and zero zero-area faces (one Boolean sliver; the ball is triangulated and its slivers dissolved before joining) - supports: all 5 sleepers zmin 0 - pins: base centres 0.000 mm off their spots (tol 0.5), seated 0.6 mm below the deck face (band 0.3-1.0), tilt 0.000 deg, height 0.3810 m, belly 0.12106 m (tol 0.5 mm), radius at all 15 table stations 0.000 mm off (tol 0.2) - spots: 18 lattice edges at 12 in (0.000 mm off), rows 1-2-3-4 level, row pitch 0.26396 m, head spot on the lane's centre line - ball: diameter 0.21590 m, resting 0.60 mm into the lane (band 0.3-0.9); holes 63.5 / 50.8 / 50.8 mm deep, bores 25.40 / 20.32 / 20.32 mm, span 112.2 mm (4.4 in +- 2 mm), bridge 26.67 mm; each hole's axis from its flat drilled bottom - boards: 39, flush 0.000 mm, straight 0.000 mm, pitch 0.000 mm off - one connected assembly of 55 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-sleeper -> middle sleeper zmin 0.00300 -> 16 - --offset-pin -> pin 5 0.006 m off its spot -> 17 - --float-pin -> pin 3 base 2.4 mm above the deck face -> 18 - --lean-pin -> pin 6 tilt 1.396 deg -> 19 - --wide-rack -> lattice edges 9.14 mm long, row pitch 7.92 mm off -> 20 - --fat-neck -> 1.5 mm off the table at the neck -> 21 - --float-ball -> rest +3.40 mm -> 22 - --shallow-holes -> finger depth 0.030 m (bores, span, bridge unchanged) -> 23 - --proud-board -> board tops spread 1.20 mm -> 24 - --lift-arrows -> 8 components -> 25 Tris (37078) and AABB identical under every falsifier; every earlier budget green in each run. Two were re-aimed by fixing the audit: --lift-z first exited 16 on the sleepers because bound_box was stale after the vertex edit (the AABB gate now reads the vertices), and --shallow-holes also moved bore and bridge because a PCA axis wanders on a short hole. Render: render_hero.py wrote hero and preview. Framing fill x 0.803, y 0.878, margins >= 0.033. Camera 15 deg off the lane axis, between the rack's 0 and 30 deg lines, so the whole triangle reads. Asset-quality floors pass (edge90 0.038); a violation remaps to 26. Asset sheet (docs/gallery/asset-sheets/bowling-pins.webp): not the least-designed object in the lineup; the hydrant and the wheelbarrow are plainer. Isolated it reads at once as a lane end: seamed boards, arrows, dots, gutters, capped kickbacks, the rack and the ball. Weak points: the kickback panels are plain laminate, and the pins and ball are small at sheet scale because the lane sets the extent. Contact sheet: luma 0.2405 against calibration 0.2369-0.2428 (in band). Stage 0.2019 against 0.1919-0.2517 (in band). Saturation 0.1701 against 0.1525-0.2367 (in band). Wedge warmth +0.1525 against -0.1440/+0.1052/ +0.0921: warmer than the warmest by 0.047. The brightest tenth of the lower half is the blond lane itself, not the wedge pool: halving the wedge left it at +0.1538 and dropped luma out of band, and greying the maple to bring it in read as weathered wood, so it stays. Thumbnail legibility good. Also updated: README, CLAUDE.md and ROADMAP counts and entries (bowling pins struck from the Sports alternates as shipped), the asset_sheet.py SELECT row, catalog.json, plugin.json and the regenerated gallery. build_gallery, check_site_links (104 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 f9d0ecd commit e3a3884

63 files changed

Lines changed: 7171 additions & 106 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
@@ -186,6 +186,7 @@
186186
"showcase/weight-rack",
187187
"showcase/boulder-cluster",
188188
"showcase/floor-fan",
189-
"showcase/motor-scooter"
189+
"showcase/motor-scooter",
190+
"showcase/bowling-pins"
190191
]
191192
}

‎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, 48 pieces, each with a gallery `category` (sibling of examples/; see showcase/README.md § Categories)
25+
showcase/<name>/ - Budget-conformance props, 49 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>48 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>49 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 48 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 49 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>48 showcase pieces</strong> — click to expand the preview grid</summary>
109+
<summary><strong>49 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>
@@ -157,6 +157,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
157157
<a href="showcase/boulder-cluster/"><img src="showcase/boulder-cluster/preview.webp" width="24%" alt="Boulder cluster: a speckled granite block, a banded sandstone boulder split in two and a slab resting on a smaller boulder, sunk in a grassy soil mound with pebbles and wildflowers, on a dark studio floor" /></a>
158158
<a href="showcase/floor-fan/"><img src="showcase/floor-fan/preview.webp" width="24%" alt="Floor fan: a sage-green 1950s pedestal fan with a chrome wire guard over four brass blades, its head turned on a tilt yoke, a telescoping column and a round cast base, its cord looped to a plug, on a dark studio floor" /></a>
159159
<a href="showcase/motor-scooter/"><img src="showcase/motor-scooter/preview.webp" width="24%" alt="Motor scooter: a pastel sea-green 1960s step-through scooter with a two-tone cream and oxblood dual saddle, louvred side cowls, a curved chrome-trimmed leg shield, split-rim wheels and a black silencer, on its centre stand on a dark studio floor" /></a>
160+
<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>
160161
</p>
161162

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

252253
[`motor-scooter`](showcase/motor-scooter/) — the third `vehicles` piece: procedural 1960s Italian step-through motor scooter (a pressed-steel tail with two bulbous side cowls, louvres on the engine side and chrome belt trims, a floorboard with runner strips pressed up into the tail and a leg shield convex in plan, arched into the headset and rimmed in chrome, with a horn cast and grille, a single-sided front end with a raked column, trailing link, coil spring and a crested mudguard, a headset carrying the headlamp, speedometer, grips, levers and mirrors, a two-tone piped dual saddle with a grab strap, 10-inch split rims in block-tread tyres, an alloy engine case with a finned cylinder, silencer and kick-start, a luggage rack, tail lamp and plate, and a centre stand), whose tyres and stand feet grounded, wheel axles level and parallel, steering trail, body mirror symmetry excluding the engine side, wheelbase, mass centre inside the support polygon, single connected assembly and the leg shield seated in the floorboard are recomputed from the mesh, through the same pipeline. Falsifiers `--float-tyre` exits 16, `--toe-wheel` 17, `--steep-head` 18, `--odd-body` 19, `--short-wheelbase` 20, `--narrow-stand` 21, `--pop-speedo` 22, `--lift-shield` 23.
253254

255+
[`bowling-pins`](showcase/bowling-pins/) — the fourth `sports` piece: procedural pin deck end of a ten-pin lane (a slab of 39 V-seamed maple boards crossed by the pin-deck joint, ten inlaid pin spots on a 12 in triangle, targeting arrows and range dots, channel gutters, cappings, kickbacks with sloped noses, aluminium caps and kick plates, a steel pit edge and sleepers; ten pins lathe-turned from the regulation profile table with red neck stripes and a crown band; an 8.5 in marbled ball drilled by an exact Boolean with a countersunk thumb hole and two parallel finger holes), whose sleepers grounded, pins centred on their spots, seated, plumb and to size, spots on the exact lattice, turned profile, ball resting on the lane at its radius, hole depths, bores, span and bridge, boards flush and parallel and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers `--float-sleeper` exits 16, `--offset-pin` 17, `--float-pin` 18, `--lean-pin` 19, `--wide-rack` 20, `--fat-neck` 21, `--float-ball` 22, `--shallow-holes` 23, `--proud-board` 24, `--lift-arrows` 25.
256+
254257
</details>
255258

256259
## Examples

‎ROADMAP.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ Not committed; target list for the next content version. (v0.3.0 shipped the smo
156156
- Rowboat with oars in oarlocks as a game-prop showcase piece — oar shafts passing through the oarlock horns with clearance inside a band, hull resting on its keel line on a flat deck/floor
157157
- Weathervane as a game-prop showcase piece — arrow and cardinal arms on a spindle: the arrow's pivot bore coaxial with the spindle and the arrow statically balanced (centroid on the pivot axis within a band)
158158
- Showcase pieces above this line are category `village`. Candidates for the other categories (`showcase/README.md` § Categories):
159-
- **Sports:** ~~basketball hoop (pole, backboard, rim, hung net)~~ **SHIPPED** as `showcase/basketball-hoop/` — gooseneck pole on a bolted anchor plate, braced framed board with painted square, regulation rim, twelve-loop net hung on the rim hooks; `--drop-net` exits 18 on the loops threaded through the hooks while the envelope holds, `--tilt-rim` 19 on rim height/size/level, `--skip-decimate` 9 on the LOD1 ratio band; ~~soccer goal (tube frame, netting)~~ **SHIPPED** as `showcase/soccer-goal/` — 5 × 2 m youth goal, oval extrusion mitred and welded at the corners, cast brackets, foot connectors and hubs, sloped supports and a staked steel ground frame, sagging diamond-mesh net on a red head rope through 53 clips, turf patch with a goal line; `--float-bar` exits 16 on every ground bar bedded in the turf, `--short-support` 17 on the supports seated in their sockets, `--unclip-net` 18 on the head rope through every clip, `--wide-mouth` 19 on the clear mouth size, `--taut-net` 20 on the back panel's sag, while the envelope holds; tennis net on posts, ~~weight rack with plates and dumbbells~~ **SHIPPED** as `showcase/weight-rack/` — half rack of punched, numbered uprights on bolted, padded feet, J-hooks with UHMW saddles and spotter arms on pull pins, plate-storage horns, a loaded Olympic barbell (knurled shaft, bumpers with raised numerals, iron change plates, spring clips) and two hex dumbbells; `--float-foot` exits 16 on every pad and dumbbell head on the floor, `--offset-pin` 17 on the pins coaxial with their holes, `--float-bar` 18 on the bar seated in both saddles, `--hook-high` 19 on the bar level, `--gap-plate` 20 on the plates seated along their sleeves, `--odd-load` 21 on the balanced load, `--loose-horn` 22 on one connected rack, while the envelope holds; alternates bowling pins and ball, skateboard
159+
- **Sports:** ~~basketball hoop (pole, backboard, rim, hung net)~~ **SHIPPED** as `showcase/basketball-hoop/` — gooseneck pole on a bolted anchor plate, braced framed board with painted square, regulation rim, twelve-loop net hung on the rim hooks; `--drop-net` exits 18 on the loops threaded through the hooks while the envelope holds, `--tilt-rim` 19 on rim height/size/level, `--skip-decimate` 9 on the LOD1 ratio band; ~~soccer goal (tube frame, netting)~~ **SHIPPED** as `showcase/soccer-goal/` — 5 × 2 m youth goal, oval extrusion mitred and welded at the corners, cast brackets, foot connectors and hubs, sloped supports and a staked steel ground frame, sagging diamond-mesh net on a red head rope through 53 clips, turf patch with a goal line; `--float-bar` exits 16 on every ground bar bedded in the turf, `--short-support` 17 on the supports seated in their sockets, `--unclip-net` 18 on the head rope through every clip, `--wide-mouth` 19 on the clear mouth size, `--taut-net` 20 on the back panel's sag, while the envelope holds; tennis net on posts, ~~weight rack with plates and dumbbells~~ **SHIPPED** as `showcase/weight-rack/` — half rack of punched, numbered uprights on bolted, padded feet, J-hooks with UHMW saddles and spotter arms on pull pins, plate-storage horns, a loaded Olympic barbell (knurled shaft, bumpers with raised numerals, iron change plates, spring clips) and two hex dumbbells; `--float-foot` exits 16 on every pad and dumbbell head on the floor, `--offset-pin` 17 on the pins coaxial with their holes, `--float-bar` 18 on the bar seated in both saddles, `--hook-high` 19 on the bar level, `--gap-plate` 20 on the plates seated along their sleeves, `--odd-load` 21 on the balanced load, `--loose-horn` 22 on one connected rack, while the envelope holds; alternates ~~bowling pins and ball~~ **SHIPPED** as `showcase/bowling-pins/` — pin deck end of a ten-pin lane: 39 V-seamed maple boards and a dark pin deck with ten inlaid spots on a 12 in triangle, arrows and range dots, channel gutters, kickbacks with aluminium caps and kick plates, a steel pit edge on sleepers; ten pins turned from the regulation profile table with red neck stripes and a crown band; an 8.5 in marbled ball with a countersunk thumb hole and two parallel finger holes; `--float-sleeper` exits 16 on every sleeper grounded, `--offset-pin` 17 on the pins centred on their spots, `--float-pin` 18 on the pins seated, `--lean-pin` 19 on the pins plumb and to size, `--wide-rack` 20 on the 12 in spot lattice, `--fat-neck` 21 on the turned profile, `--float-ball` 22 on the ball resting at its radius, `--shallow-holes` 23 on the finger holes, `--proud-board` 24 on the boards flush and parallel, `--lift-arrows` 25 on one connected assembly, while the envelope holds; skateboard
160160
- **Nature:** ~~pine tree (trunk, tiered branch whorls)~~ **SHIPPED** as `showcase/pine-tree/` — buttressed trunk with surface roots, ten seeded whorls of limbs seated in the bark, faceted needled shoots, dead stubs and cones; `--float-branches` exits 17 on the branch seat, `--lean-crown` 19 on trunk plumb, `--bunch-whorls` 20 on whorl spacing, while the envelope holds; ~~boulder cluster~~ **SHIPPED** as `showcase/boulder-cluster/` — a speckled granite block, a banded sandstone boulder split in two with matching crack faces and bedding, and a sandstone slab resting on a smaller granite boulder, cut by cleavage planes with weathered bevels, with lichen crusts and moss cushions, sunk into a soil mound with grass tufts, pebbles and wildflowers; `--perch-boulder` exits 17 on every boulder sunk into the soil, `--float-slab` 18 on the slab seated on its support, `--perch-slab` 19 on its mass centre over its footprint, `--skew-half` 20 on the split halves matching, `--sunny-lichen` 21 on growth facing up or north, `--float-cover` 22 on the ground cover rooted in the soil, while the envelope holds; ~~fallen log with fungus~~ **SHIPPED** as `showcase/fallen-log/` — furrowed log on a bowed axis with peeled, galleried sapwood, a hollow saw-cut butt, a splintered top, broken stubs, moss cushions, three tiers of bracket fungi, and a soil mound with toadstools, ferns and fallen leaves; `--hump-ground` exits 17 on the log bedded along its length, `--float-fungi` 18 on the brackets rooted in the bark, `--tilt-ground` 19 on the mass centre over the contact patch, `--sunny-moss` 20 on moss facing up or into the shade, `--float-litter` 21 on the ground cover rooted in the soil, while the envelope holds; tree stump with mushrooms; alternates flowering shrub, cattail reeds
161161
- **Household:** ~~articulated desk lamp~~ **SHIPPED** as `showcase/desk-lamp/` — stepped cast base, parallelogram arm sections pinned through knuckle bosses, three springs hung on cross bars, domed shade with reflector, lamp, flex and plugged cable; `--offset-pin` exits 17 on the pins coaxial with their eyes, `--unhook-spring` 18 on the spring ends seated on their bars, `--hollow-base` 19 on the mass centre over the base footprint, while the envelope holds; ~~office chair (five-star base, casters)~~ **SHIPPED** as `showcase/office-chair/` — polished five-star base with ribbed spokes and swivelled twin-wheel casters, chrome gas lift in a telescoping cover, tilt mechanism with knob and levers, contoured seat with a piped welt, reclined mesh back with lumbar pad and headrest on an aluminium spine, height-adjustable T-arms; `--float-caster` exits 16 on every wheel on the floor, `--skew-spoke` 17 on the five-star spacing and plumb stems, `--offset-column` 18 on the gas lift coaxial with hub and socket, `--uneven-arms` 19 on mirrored level armrests, `--loose-wheel` 20 on one connected assembly, while the envelope holds; kitchen stool, mini fridge; alternates ~~floor fan~~ **SHIPPED** as `showcase/floor-fan/` — 1950s oscillating pedestal fan: hollow cast base on a gasket with a speed switch and badge, telescoping column with a height-lock collar, strap yoke with a tilt knob, slotted motor housing with an oscillation knob, two-half wire guard welded to clipped rim rings, four swept brass blades on a hub with a spinner nut, cord to a plug; `--offset-hub` exits 17 on the rotor coaxial with the guard, `--short-spoke` 18 on every spoke seated in its rim ring, `--lean-column` 19 on the column plumb and on the base's axis, `--long-blades` 20 on the blade-tip clearance band, `--skew-blade` 21 on equal blade spacing, `--hollow-base` 22 on the tip-over angle, `--loose-spinner` 23 on one connected assembly, while the envelope holds; laundry basket
162162
- **Vehicles:** ~~quad drone~~ **SHIPPED** as `showcase/quad-drone/` — two-tone moulded shell with battery, GPS, grilles and visor, four folding arms hinged on pinned clevises, slotted motors with twisted two-blade props, rubber-footed skids, three-axis gimbal camera; `--float-foot` exits 16 on every foot grounded, `--unlock-arm` 17 on the motor axes on an exact X, `--long-blades` 18 on the prop-disc clearance, `--narrow-skids` 19 on the mass centre inside the landing footprint, `--drop-lens` 20 on one connected assembly, while the envelope holds; traffic cone and barrier set, ~~hover bike~~ **SHIPPED** as `showcase/hover-bike/` — sculpted two-tone fuselage with panel seams, intake grilles, tail vents and cooling fins, a stitched pleated saddle, clip-on bars with grips, levers and an emissive instrument cluster, a flyscreen and headlight pod, two exhaust nozzles, two ducted fans (airfoil shrouds, canted stator vanes, handed seven-blade rotors), booms with foot pegs, and two landing skids on struts; `--float-skid` exits 16 on both skids grounded, `--offset-hub` 17 on the hubs coaxial with their shrouds, `--long-blades` 18 on the blade-tip clearance band, `--odd-hull` 19 on the fuselage's mirror symmetry, `--skew-blade` 20 on equal blade spacing, `--narrow-skids` 21 on the mass centre inside the skids' contact polygon, `--pop-lens` 22 on one connected assembly, while the envelope holds; sci-fi cargo loader; ~~motor scooter~~ **SHIPPED** as `showcase/motor-scooter/` — 1960s Italian step-through: pressed-steel tail with bulbous side cowls (louvres on the engine side), floorboard with runner strips pressed up into the tail and into a curved, chrome-rimmed leg shield with a horn cast, single-sided trailing-link front end with a crested mudguard, headset with headlamp, speedometer and mirrors, two-tone piped dual saddle, split-rim wheels in block-tread tyres, engine case, silencer, luggage rack and centre stand; `--float-tyre` exits 16 on both tyres and both stand feet grounded, `--toe-wheel` 17 on the axles level and parallel, `--steep-head` 18 on the steering trail, `--odd-body` 19 on the body's mirror symmetry, `--short-wheelbase` 20 on the wheelbase band, `--narrow-stand` 21 on the mass centre inside the support polygon, `--pop-speedo` 22 on one connected assembly, `--lift-shield` 23 on the leg shield seated in the floorboard, while the envelope holds; alternates sci-fi supply crate

0 commit comments

Comments
 (0)