- sim/geom.ts: pure convex-polygon split by a line + pieceCV/cvWord ladder.
- sim/food.ts: convex polygon foods (bread/tomato/cheese/katsu/egg) with
toastsim material params (skin.resistance, flesh.moisture, wobble).
- sim/cutting.ts: blade pass-through detection -> split food into 2 real Matter
bodies along the chord; slow press on a wet food squashes into a splat decal
instead. Cut quality clean/ragged/crime by peak speed x chord fraction.
- Two traps fixed: (1) cut line through a vertex made lopsided halves -> split
now shares on-line verts (regression in geom.check.ts); (2) Matter setVelocity
is px/STEP not px/s -> piece launch was 60x too fast, flung halves to y=26000.
- Exit-bar: chop -> 2 clean pieces CV 0 (<0.1); push -> 0 pieces + splat 3.28;
wild swing -> piece offstage. Verified in-browser + npm run check (headless).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>