Commit Graph

2 Commits

Author SHA1 Message Date
type-two
35e871599c THE DIET: 214MB of props become 47MB, and nobody can tell
The prop library was costing players more than it was worth. hunyuan3d
hands back ~120,000 triangles and 1024px textures per object, so a
COOKING POT was a 4MB download — and the fryer bench, which loads a pot,
a basket and a rack, made a phone fetch 13MB before it could show you
anything. Right after shipping touch controls, that is the wrong bill.

scripts/optimise-models.sh: simplify to 10% of the triangles with a
0.002 error bound, textures to 512. Across 51 models that is 214MB →
47MB, and at the distance this game frames anything, the before and
after screenshots are indistinguishable — I checked the pot at full
frame before trusting it on the rest. The fryer bench now costs under
3MB.

The script skips anything already under the threshold, so a second run
cannot grind an optimised mesh into mush; delete the file and re-run
gen-assets.sh to go back to an original.

Regression sweep after: toast scene pristine, grill 9.4, pan 8.0, steak
9.4, bruschetta 9.6, air fryer 9.5, chips 10.0, pasta 10.0, eggs 10.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 19:00:47 +10:00
monster
70922bd855 M7: marmalade — rind, and a judge who scores its distribution
A particulate spread. The jelly is ordinary rheology; the rind is discrete
solids that ride the knife and drop off per unit of stroke DISTANCE, not per
second — a dabbing knife makes a pile, a moving knife lays a trail, and since
the shed rate scales with what's left on the blade, one dip cannot cover the
slice. Even rind takes several dips placed with intent. Scraping picks bits
back up (60% survive the blade), so a clump can be argued with.

The judge scores the scatter with the Clark–Evans nearest-neighbour index over
the bread's own area, and quotes it: R near 0 is one clump, 1 is random, above
1 is deliberate. Verified end to end on day 8:

  dab in a corner      8 bits   "one clump (R 0.24)"        drags grade to B
  three placed dips    24 bits  "evenly strewn (R 1.17)"    A, 8.9/10

First cut shed per-second; even careful strokes dumped the whole load in the
first half-second and scored "clumped (R 0.50)". Distance-based shedding is
what makes evenness the reward for technique rather than luck.

Rind renders as instanced chunks parented to the slice mesh, so it rides the
pop, the landing, and the pedestal turn. Points, not a field: the judge wants
nearest-neighbour statistics, and those want points.

Same sRGB trap as M3, new spot: the instanced material's colour was passed as
raw floats, which the renderer reads as linear — candied orange rendered as
pale butter. setRGB(..., SRGBColorSpace).

New content: day 8 handwritten (Deidre wants a piece in every bite), marmalade
in the procedural pool, five rind-district lines for the judge, and a marmalade
jar GLB generated on-device like everything else, with a plain-glass fallback
while it loads.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 22:45:57 +10:00