Repository navigation
Commit 7ad90c9
feat(showcase): add traffic-cones (vehicles)
The seventh piece in the vehicles category, things that direct movement:
a roadworks set (generic, no marks or text) on a cut-out patch of asphalt
with a broken, closed-form jittered edge, a worn white road line and two
sealed tar cracks. Seven 720 mm PVC cones: each a hollow lathed body with a
moulded bead and a rolled lip round an open tip, bonded into a 356 mm
square rubber base (chamfered corners, raked top, collar, four lugs, a
recess underneath that takes the collar of the cone below), hooped with a
4 in and a 6 in retroreflective collar. Three stand in a taper line, three
are nested in a stack, and one lies knocked over on the edge of its base
and the lip of its tip, its roll solved by bisection so both touch and its
open base faces the lens. Behind them a folding A-frame barricade: four
32 mm square steel legs hinged in pairs on pivot bolts (washer, head, nut),
spread by straps pinned to the front leg and through a spacer to the back
leg, rubber foot pads, plastic leg caps; two boards on each face cut on
45-degree lines into orange and white retroreflective stripes and bolted to
the legs; and a warning lamp (bracket, battery box, drum housing, amber
fresnel lens and bezel each face) on the top front board. The cone wall is
sized from the body slope and the nesting pitch (WALL_H = slope x pitch +
bite), so each stacked cone bears 1 mm on the one below at 36 mm. Eleven
materials; a PartTone face attribute gives every cone, board and leg its
own tone.
Budgets (measured, 5.2.1): 45816 tris (45300-46400), LOD 0.5000/0.2200,
11 materials with face floors, UVs 0..1 no overlap, AABB 3.0365x2.0374x
1.3354 (+-0.01, read off the vertices), collider 493 (<=540), hygiene 0
incl. 0 coplanar cross-shell pairs, zmin 0; 10 supports (5 cone bases, the
fallen body, 4 pads) sunk 1.5 mm into the slab (0.8-3.0); 4 boards, 8
joints biting their legs 1.5 mm (0.8-3.0); 14 collars seated 0.600 mm
(0.2-1.5) and 1.400 mm proud (min 1.0); 6 upright cones 0.0000 deg off plumb
(0.2), 0.720 m tall on bases 0.356 m across the flats (+-3 mm); 4 legs
mirrored within 0.0001 mm (1 mm); one stack of 3, pitch 0.036/0.036
(0.030-0.042), wall bite 0.847-0.949 and 1.034-1.105 mm (0.4-2.0); one
assembly of 125 shells. Two default runs print identical measurements;
4.5.11 and 5.1.2 print the same measurements (export differs by 28 bytes).
The first draft measured 205 coplanar pairs: the lamp bracket's two bolts,
40 mm apart, shared a base plane (196; the second now sits 0.3 mm deeper),
and stack yaws 15 deg apart put two bases' collar walls on the same planes
(8; yaws now 3.1/-8.7/14.9).
Falsifiers (flag -> measured -> exit), 5.2.1 and 4.5.11 identical; tris
45816 and envelope unchanged in all:
--skip-decimate LOD1 1.0000 9
--stray-vert loose_v 1 15
--lift-z zmin 0.05000 16
--float-cone right cone sink -2.5 mm 16
--gap-board lower front board bite -1.5 mm (both legs) 17
--float-band left cone 6 in collar seat -1.4 mm 18
--lean-cone middle cone tilt 1.431 deg 19
--skew-leg leg mirror 2.500 mm 19
--loose-stack pitch 0.046, bite -0.576..-0.505 mm 20
--loose-lamp 2 components [9, 116] 21
--loose-stack at 12 mm put the top base on the middle collar-top plane and
exited 15 (192 pairs); 10 mm keeps it on 20. --loose-lamp moves the lamp
level off the board; along the board normal it lifted zmax 0.8 mm.
tests/check_falsifier_targets.py --run --only traffic-cones 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"); default on
.scratch\blender-5.1.2-windows-x64 ("Blender 5.1.2").
Render: render_hero.py wrote hero (37182 B) and preview (33408 B); framing
fill x 0.709, y 0.822, margins >= 0.061; asset-quality floors pass
(11 materials, edge90 0.046). Default stage, no deviation.
Asset sheet (docs/gallery/asset-sheets/traffic-cones.webp): not the
least-designed object; the hydrant is plainer. Isolated, it reads at once
as cones, a nested stack, a fallen cone and a striped barricade with a lamp
on an asphalt patch. Weak point: the panel crops the patch's near corner.
Contact sheet (docs/gallery/contact-sheets/traffic-cones-contact-sheet.webp):
luma 0.2385 against 0.2369-0.2428 (in band, after relighting from 0.354);
stage 0.2030 against 0.1919-0.2517; saturation 0.1933 against
0.1525-0.2367; wedge warmth +0.0396 inside the -0.1440/+0.1052 spread.
Thumbnail legible.
Also updated: README, CLAUDE.md, AGENTS.md counts (60 -> 61), ROADMAP
Vehicles list (traffic cone and barrier set struck as shipped),
asset_sheet.py SELECT row, catalog.json, plugin.json and the regenerated
gallery. build_gallery, check_site_links (116 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 d66bf80 commit 7ad90c9
76 files changed
Lines changed: 7700 additions & 131 deletions
File tree
- .cursor-plugin
- docs/gallery
- anvil
- apothecary-shelf
- archery-target
- asset-sheets
- assets
- basketball-hoop
- book-trolley
- bookshelf
- boulder-cluster
- bowling-pins
- brazier
- butter-churn
- cactus-garden
- campfire
- cargo-loader
- cart
- chopping-block
- contact-sheets
- crate-stack
- desk-lamp
- espresso-machine
- fallen-log
- fence-kit
- floor-fan
- grain-sacks
- grindstone
- hand-pump
- hay-bale
- hitching-post
- hover-bike
- iron-cauldron
- market-stall
- motor-scooter
- office-chair
- palm-tree
- park-bench
- pine-tree
- planet-rover
- pond-edge
- quad-drone
- road-bicycle
- rope-bridge
- shipping-crate
- signpost
- skate-ramp
- soccer-goal
- stand-mixer
- stone-archway
- stone-well
- street-lantern
- tavern-stool
- terrain-scatter
- traffic-cones
- treasure-chest
- wall-torch
- watchtower
- water-trough
- weight-rack
- wheelbarrow
- wingback-armchair
- wooden-barrel
- wooden-bucket
- wooden-ladder
- wooden-yoke
- scripts
- showcase
- traffic-cones
- tests/smoke
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
201 | | - | |
| 201 | + | |
| 202 | + | |
202 | 203 | | |
203 | 204 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
| 172 | + | |
172 | 173 | | |
173 | 174 | | |
174 | 175 | | |
| |||
287 | 288 | | |
288 | 289 | | |
289 | 290 | | |
| 291 | + | |
| 292 | + | |
290 | 293 | | |
291 | 294 | | |
292 | 295 | | |
| |||
0 commit comments