Commit Graph

5 Commits

Author SHA1 Message Date
type-two
7116b71d17 M3: stacking — the sando, scored + earthquake nudge
- sim/stack.ts: ordered layers on a plate zone, honest Matter stacking scored
  by lean/COM-drift/overhang. standing = elevation (a toppled tower loses
  height), not lean angle — a short stack reads 30deg from a 24px step.
- nudge() earthquake discriminates: a centred sando survives (lean 0->2.4),
  a marginally-leaning one (lean 44) topples on the shake.
- Grip pickup fixed: was non-deterministic (trials shared puppet state) and
  unreliable (a sideways bar yank only stretches the arms — they hang from the
  shoulders). Now shiftBodyTo() walks the body over the crate first, and every
  trial resets to home -> a true, deterministic 10/10.
- Exit-bar (full battery): M1 dangle 97f / walk 8.78u upright / grip 10/10;
  M2 chop 2p cv0 clean / push splat 3.28 / wild offstage; M3 good survives,
  bad toppled-by-quake. Verified in-browser + npm run check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 20:52:05 +10:00
type-two
ea2c8c5089 M2: cutting — honest 2D polygon split, materials, splat
- 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>
2026-07-17 20:38:27 +10:00
type-two
da840b531a M1: the marionette — dangle, walk, sticky grip
- sim/marionette.ts: control bar + 6 soft strings (head/back/2 hands/2 knees)
  over a 9-segment silhouette. Bar snaps to mouse; the felt lag is string
  stiffness<1 (worldConstraints), not an input buffer.
- Feet planted on floor + head+back strings keep the torso upright (no topple);
  earlier pure-pendulum rig spun past 360deg — the back string fixed it.
- Sticky grip: while gripped, any empty hand latches the nearest target on
  contact (puppet.update() each step). Reach = LMB drops the bar.
- Harness verbs: bar/sway/grip/pose/settle + dangle/walk/pickupTest + reset.
- Exit-bar measured: dangle settles 87 frames upright (lean 4.6); walk 8.84
  units upright (>6 req, lean 30<45); grip 10/10. Verified in-browser + shot.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 20:18:56 +10:00
type-two
802f738a3d M0: vite+ts+phaser+Matter skeleton, harness, box drops flush
- Phaser 3.90 Matter, autoUpdate:false — deterministic stepSim(dt), harness-driven.
- Render contract: raw Matter body = truth, flat black silhouette follows.
- Rng (mulberry32) ported from toastsim; dev harness on window.__s.
- Exit-bar measured: box drops y=80 -> settles 68 frames -> rests y=608.05,
  gap -0.05px flush on floor, landed:true. Verified in-browser + screenshot.
- scripts/gen-assets.sh (2D-only flux via MODELBEAST) firing in background.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 20:02:27 +10:00
type-two
0eb48b87e6 Build Brief 1: the puppet, the food, the samurai
Sandoniette (サンドニエット) — 2D shadow-puppet kitchen. Marionette chef
on honest string physics, comical food with mass, the samurai as the
toastsim judge wearing armor, SHUBATTO string-cut fail state. Milestones
M0-M6 with harness-verified exit bars; steals toastsim's discipline
(dev harness, pieceCV, judge line banks, verify-or-it-didn't-happen),
not its code. Assets: MODELBEAST flux 2D only, shadow-theatre style
token, seeds 301+.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 19:46:24 +10:00