at canon
6 folders
4 files
WIP: Finish M2, additional reorg in data and UI (mid-M3)
Opus 4.8 says:
The split. The flat inspector store is gone, replaced by three ontology-grouped stores that mirror the record schema:
- state/organism.svelte.ts — morphology (sensor gain/angle/distance, force mult, strafe, axial/lateral, deposit gain)
- state/environment.svelte.ts — the shared dish (drag, trail persistence, trail diffusion)
- state/view.svelte.ts — display-only (exposure, debug) + the restart signal
- state/substrate.svelte.ts — the orchestrator fold: assembles the engine's flat SubstrateParams from organism+environment (the engine boundary
is unchanged — it doesn't care about the ontology, it just needs the 10 params).
Controls.svelte now shows three labeled sections (Organism · Environment · View), and breeder.svelte.ts's record mapping is nearly 1:1 instead
of un-flattening a bag. dragCoefficient is deliberately not a live slider yet — it stays 1.0 in saved records until the Stokes product is
plumbed into the shader (so the env drag slider is the only drag knob for now). Reset restores Wild7 defaults per group; the engine wasn't
touched.
Persistence: yes, in-memory only, and yes it's planned. MemoryRepository is a heap Map — every refresh wipes it. The fix is LocalRepository on
IndexedDB behind the same Repository interface, so save/load/lineage code above it doesn't change at all. Given it already cost you organisms,
I'd pull it forward rather than wait.
Milestones remaining (recap): the real Picbreeder breeder grid (thumbnails of a population → select → breed) + thumbnail rendering, IndexedDB
persistence, the DAG lineage graph view you asked for, viability filtering (auto-reject duds), and all of atproto (OAuth + publish). We're
roughly mid-M3.