From 003aede82f82cb6f569c870a494c73381377f238 Mon Sep 17 00:00:00 2001 From: type-two Date: Fri, 17 Jul 2026 18:22:29 +1000 Subject: [PATCH] =?UTF-8?q?Bell=20pepper=20in=20the=20cast;=20the=20pantry?= =?UTF-8?q?=20backlog=20spec'd=20in=20the=20brief=20(=C2=A77.5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - bell_pepper: waxy slick skin (2 slips pressed vs tomato's 2 at higher displacement), 60-seed core — cutting it scatters seeds, bench reads 'a crime scene' with zero extra code. Hollowness ponytail-deferred. - Brief §7.5: capers+wasabi as the shared dosing-danger class, the mustard family on the jar/drawer system, rib eye as its own milestone (cook/rest/cut-across-grain/mustard pairing), baked stuffed potatoes (lid cut, scoop-as-inverse-spread, restuff). Each rides existing bones. Co-Authored-By: Claude Fable 5 --- OPUS-BUILD-BRIEF-2.md | 9 +++++++++ src/sim/ingredients.ts | 17 ++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/OPUS-BUILD-BRIEF-2.md b/OPUS-BUILD-BRIEF-2.md index 1ae598e..2fd5982 100644 --- a/OPUS-BUILD-BRIEF-2.md +++ b/OPUS-BUILD-BRIEF-2.md @@ -181,6 +181,15 @@ The multi-component order. The ticket becomes a small recipe card; service time - **The sog clock**: wet toppings on toast start `sog` rising (rate × topping moisture ÷ slice thickness — thick doorstop slices resist sog: ANOTHER reason the bakery loaf matters). Serve before soggy; the judge presses a finger on it, on camera: "It bends. Toast should not bend." - Judge screen groups: The Bread (cut+toast) / The Topping (distribution, balance, sog) / The Bench. This is the order type where an S feels like a diploma. +## 7.5 The pantry backlog (John's asks, 2026-07-17 — spec'd, not scheduled) + +Each of these rides existing bones. None block M12–M15; pull them in when their host system lands. Already in the cast as of today: three mushrooms (button/portobello/king oyster — the slip system's showcase) and bell pepper (waxy skin, seed core; hollowness deferred). + +- **Capers + wasabi — the dosing danger class.** Tiny and SUPER salty / hot; the mechanic is restraint. One "pinch/dab" gesture on the spread system with a brutal dose curve: under = judge doesn't notice, right = flavour bonus, a hair over = order ruined ("There is a WAR CRIME on this crostini"). Same curve, two condiments — build the dose scalar once. Rides: spread mass tracking + judging bands. +- **The mustard family.** Heaps of types (hot english, dijon, wholegrain, american...) = the jar/drawer system generalized, like the PB crunchy/smooth split but wider. Each order names or implies a type; wrong-mustard is a pairing miss, not a technique miss. Rides: drawer + jar + ticket hints. +- **Rib eye — the crown jewel, its own milestone.** Fresh cooked, and it BLEEDS: (1) cook right — the browning Field on a steak, two sides, doneness = interior ramp not surface; (2) REST it — cut too early and juice mass floods the board (moisture starts ~0.95 and decays toward 0.6 over a real-time rest clock; the mess field already knows what to do with the flood); (3) cut right — across the grain; give the ingredient a `grain` axis and score cut-angle against it, wobble tears rather than slices; (4) serve with the RIGHT mustard (pairing above). Judge groups: The Cook / The Rest / The Cut / The Pairing. +- **Baked stuffed potatoes.** The oven (M15's toaster-generalized) plus one new gesture: cut the lid (cutting sim, one careful shallow cut — depth matters for once), scoop (inverse of spreading — remove mass evenly without breaching the skin, coverage judged), mix scoopings with cheese/toppings, restuff, rebake. Skin breach = structural fail the judge pokes. Rides: oven Field, spread-coverage math run backwards, mess. + ## 8. Assets — MODELBEAST (all free, all local; fire jobs FIRST, code while they run) `scripts/gen-assets.sh` has the pipeline (`gen_3d name seed "prompt"`; flux → bg_remove → hunyuan3d, ~6 min each, GPU lane serial). **The M10 bakery batch partially failed** — `sourdough_loaf` meshed but produced no GLB, and `batard_loaf`, `cutting_board`, `tomato_vine`, `roast_tomatoes` failed at flux. First: check `./mb jobs` (source `~/Documents/MODELBEAST/data/agent.env`) for the error text, re-run with bumped seeds (+1) and slightly reworded prompts; add a retry-once into `gen_3d`. Never spam retries on `queued` — the lane is serial and shared. diff --git a/src/sim/ingredients.ts b/src/sim/ingredients.ts index 2a23c51..5564c0e 100644 --- a/src/sim/ingredients.ts +++ b/src/sim/ingredients.ts @@ -42,7 +42,8 @@ export type IngredientId = | 'avocado' | 'button_mushroom' | 'portobello' - | 'king_oyster'; + | 'king_oyster' + | 'bell_pepper'; export const INGREDIENTS: Record = { tomato: { @@ -174,4 +175,18 @@ export const INGREDIENTS: Record = { roastable: true, colors: { skin: [0.9, 0.87, 0.78], flesh: [0.96, 0.94, 0.88] }, }, + bell_pepper: { + id: 'bell_pepper', + name: 'bell pepper', + shape: 'sphere', + size: 0.75, + // Waxy gloss skin skates almost like the tomato; inside it's mostly air. + // ponytail: hollowness isn't modelled — pieces come out as if solid. + // Add a hollow flag to the piece math if rings/strips ever matter. + skin: { resistance: 0.45, slippery: 0.65 }, + flesh: { resistance: 0.2, moisture: 0.5 }, + seeds: { count: 60, pocket: 'core' }, + roastable: true, + colors: { skin: [0.8, 0.12, 0.1], flesh: [0.88, 0.3, 0.2] }, + }, };