Repository navigation
Commit 3f715e2
feat(showcase): add stand-mixer (household)
The fourth piece in the household category: a retro tilt-head kitchen
stand mixer, generic and unbranded, on a honed limestone countertop
section 0.47 x 0.57 m. A cast slate-blue enamel body lofted from
superellipse sections: a pebble-plan base foot on four rubber feet, a
neck that leans back as it rises, and a streamlined head that closes to a
flat nose. A tilt hinge at the back: a chrome pin through two neck
knuckles and a head knuckle, with the neck's top following the head's
underside 1.5 mm below it, so the tilt seam reads. A chrome trim band
wrapped on the head's own sections, a blank badge and a speed escutcheon
in the head's tangent plane, a speed lever, and a tilt-lock lever on the
neck. An attachment hub with a domed cap and a knurled thumb screw. A
planetary housing and socket carry a white-coated flat beater, its frame
the bowl's inner profile offset by the clearance, into a 4.5 L brushed
stainless bowl with a rolled rim and a strap handle, clamped under three
bayonet lugs on a chrome plate. A cord runs through a strain relief to a
plug. Props: a balloon whisk, a measuring cup, and two brown eggs in a
glazed terracotta dish. Eight materials: enamel, chrome, stainless,
stone, rubber, ceramic, egg, beater coating.
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):
- 29620 tris (band 29000-30300); LOD1 0.5000, LOD2 0.2200
- 8 materials: enamel 4328, chrome 2626, stainless 5560, stone 91,
rubber 1174, ceramic 812, egg 760, beater 562 faces
- UVs in 0..1, overlap 0; AABB 0.4700 x 0.5700 x 0.3890 m, zmin 0;
collider 2329 tris (ceiling 2450); bake FINISHED; glTF 2337532 B
- hygiene all 0, zero coplanar cross-shell pairs. Drafts caught a plate
rim vertex welding to the base, a badge panel on the band's offset plane,
fan chords of conforming plates, a facet-down egg, and bunched feet
sharing facet planes. All were fixed by staggering, never by bands.
- feet: 4, sunk 0.00025-0.00070 m into the counter (band 0.0001-0.0008)
- hinge: pin 0.000000 m off all 2 + 1 knuckle axes (cap 0.0003), spans
all, tilt 0.0000 deg (cap 0.5)
- bowl: bite 0.00050 m (band 0.0002-0.0010), 0.000000 m off the plate's
axis (cap 0.0003), 3/3 lugs engaged, handle on
- size: height 0.35899 m (0.360 +- 0.006), brim capacity 4.5465 L
(4.5 +- 0.35, ray slices from the bowl's own axis)
- beater: 0.000000 m off the socket axis (cap 0.0003), clears the wall by
0.00245 m and the floor by 0.00250 m (band 0.0012-0.0040). A spline frame
bulged to 1.65 mm and was replaced by straight runs.
- stance: mass centre 0.0658 m inside the feet's polygon (floor 0.040),
13.94 kg
- one connected assembly, 52 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 -> one foot seat -0.00230 m -> 16
- --offset-hinge -> pin 0.002000 m off the knuckles -> 17
- --offset-bowl -> bowl 0.001000 m off the plate (beater still 1.72 mm clear) -> 18
- --shallow-bowl -> capacity 3.4959 L -> 19
- --offset-beater -> 0.000800 m off the socket (still 1.87 mm clear) -> 20
- --long-beater -> wall 0.00050, floor 0.00050 m -> 21
- --bunch-feet -> stance margin -0.0785 m -> 22
- --loose-cap -> 2 components -> 23
Tris (29620) and AABB identical under every falsifier. Every budget checked
before each target stayed green. --shallow-bowl first changed the topology;
the bowl now has fixed wall stations, and the beater follows the full-height
wall's r(z).
Render: render_hero.py wrote the hero and preview. Framing fill x 0.669,
y 0.872, margins >= 0.061. Asset-quality floors pass (edge90 0.023); a
violation remaps to 24.
Asset sheet (docs/gallery/asset-sheets/stand-mixer.webp): not the
least-designed object in the lineup; the hydrant and the wheelbarrow are
plainer. Isolated, it reads at once as a stand mixer, with the band,
badge, levers, hub cap, bowl and lugs visible, and the props read as
whisk, cup and eggs. Weak points: the stainless bowl reads dark grey on
the dark sweep, the beater is hidden inside the bowl as on a real mixer,
and the panel camera crops the counter's near corner.
Contact sheet: luma 0.2409 against calibration 0.2369-0.2428 (in band;
first drafts 0.1752, then 0.2524). Stage 0.2065 against 0.1919-0.2517
(in band). Saturation 0.2069 against 0.1525-0.2367 (in band). Wedge
warmth -0.0538 against -0.1440/+0.1052/+0.0921 (in range); the wedge is
aimed at the wall along the camera's diagonal view. Thumbnail legibility
good.
Also updated: README, CLAUDE.md and ROADMAP counts and entries (stand mixer
added to the Household list as shipped), the asset_sheet.py SELECT row,
catalog.json, plugin.json and the regenerated gallery. build_gallery,
check_site_links (106 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 fccf2ce commit 3f715e2
65 files changed
Lines changed: 7456 additions & 110 deletions
File tree
- .cursor-plugin
- docs/gallery
- anvil
- apothecary-shelf
- asset-sheets
- assets
- basketball-hoop
- book-trolley
- bookshelf
- boulder-cluster
- bowling-pins
- brazier
- butter-churn
- campfire
- cart
- chopping-block
- contact-sheets
- crate-stack
- desk-lamp
- 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
- park-bench
- pine-tree
- pond-edge
- quad-drone
- rope-bridge
- shipping-crate
- signpost
- soccer-goal
- stand-mixer
- stone-archway
- stone-well
- street-lantern
- tavern-stool
- terrain-scatter
- treasure-chest
- wall-torch
- watchtower
- water-trough
- weight-rack
- wheelbarrow
- wooden-barrel
- wooden-bucket
- wooden-ladder
- wooden-yoke
- scripts
- showcase
- stand-mixer
- 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 | |
|---|---|---|---|
| |||
188 | 188 | | |
189 | 189 | | |
190 | 190 | | |
191 | | - | |
| 191 | + | |
| 192 | + | |
192 | 193 | | |
193 | 194 | | |
| 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 | | |
| |||
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
| 162 | + | |
162 | 163 | | |
163 | 164 | | |
164 | 165 | | |
| |||
257 | 258 | | |
258 | 259 | | |
259 | 260 | | |
| 261 | + | |
| 262 | + | |
260 | 263 | | |
261 | 264 | | |
262 | 265 | | |
| |||
0 commit comments