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
type-two
e9fca4f5c9 THE POT: day 25 — you can always add more salt. you can never add less.
Pasta night, and the kitchen's first genuinely irreversible verb. Salt is
a HELD pour, not a click: hold S and it falls, you stop it and nothing
else will, and `salt` is a number that only ever goes up. The words walk
you to the edge and then stop helping — 'shy of it, more while you still
can' becomes 'seasoned like the sea. stop.' becomes 'heavy handed. there
is no going back.' Salt thrown in after the pasta counts a quarter: it
seasons the water you are about to pour down the sink.

The rest is the atlas's pasta doctrine: pasta wants a ROLLING boil, and
a lazy simmer glues the strands into one brick because they sit in their
own starch instead of tumbling. Al dente is a window in immersion
seconds that never appears on screen. And the last verb is restraint —
RESERVE a cup of the starchy water before you drain, or the sauce has
nothing to hold onto.

Two things the adversarial pass caught, both about stakes being fake:
- Brine scored 8.6. An inedible plate cannot be averaged away by good
  timing elsewhere, so ruin now falls off a cliff (not a ramp) and a
  brined pot is CAPPED at 3.0 — the one verb you could not take back
  gets the one score you cannot climb out of.
- The sourdough starter was buttering up chip day. Her 'is this a toast
  day' test was a blocklist of stations that existed when she shipped,
  so air fryer, fryer and pot all silently qualified as toast. Replaced
  with stationOf()/isToastDay() in orders.ts — every station flag listed
  in exactly one place, where the next station cannot slip past it.

Verified: honest pot 10.0; brine 3.0 at the cap; the lazy cook (simmer,
salt after the drop, drained every drop) 4.8 with all three rows naming
the exact sin.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 18:50:05 +10:00