Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Decisions log

What was chosen, and what it was chosen over. A decision that only records the choice is not a record of anything.

Each row links, where there is one, to the page that works the choice out in full. Rejected alternatives are named in the rationale rather than kept in a separate list, because the reason a design was rejected is only legible next to the one that replaced it.

DecisionChoiceRationale
Genome representationTyped combinator-term PCFG (not raw graph, not NEAT)Types make every sample valid; reuses fugue-evo grammar machinery; all 3 evolution levels in one rep
Feedback signalsPairwise duels + stars (ordinal) + keep/kill; no implicit signalsOne latent utility, three likelihoods; duels primary
Taste featuresφ_audio (15) + φ_struct (25) = φ ∈ ℝ⁴⁰Transfer across topologies + free structural screening
Feature axesLog-frequency, logged heavy tails, families not per-module columnsThe model is linear in φ, so the axis decides what is expressible; sparse columns are coefficients fitted on a handful of rows
Utility formMax of linear experts u = max_k θ_k·z, K = 5Multi-modal taste; handles cross-island duels (per-observation and per-session latent-z designs both fail there); no discrete sites; K=1 ≡ BLR
Preference setsDiscovered style lenses, aligned post-hoc; nameable and persistedA lens claiming ≈0% of the pool is idle — K is an upper bound
Locks / partial evolutionFreeze any set of trace addresses; MH proposals touching them are rejected outside the kernel, in both directionsExactly Metropolis-within-Gibbs on the conditional posterior, so locking is exact rather than heuristic
Hand editsKnob turn = write at a trace address; commit inserts as new candidate; optional "edit beats original" duel, provenance-taggedPanel and genome share one encoding, so edits, locks, and evolution cannot drift
Profile portabilityExport = observation log + standardizer; log stores raw φ by nameθ is only meaningful relative to its standardizer; by-name raw storage is what lets the feature set change without re-interpreting history
Palette42 productions: 7 sources, 20 processors, 15 modulators; categorical orders are append-only wire formatEnough texture axes to learn on; the codec writes indices into the trace
Feedback loops in grammarNot yet (tree terms only — see open questions)Stability; internal-feedback modules still allowed. Note the ceiling is tighter than "acyclic": a tree also forbids sharing, so one output cannot feed two places
AuditionStandard 5.05 s phrase + free-play; per-style phrases laterFeature comparability requires fixed stimulus
LoudnessLUFS-normalize all renders to −18Loudness bias would poison the preference data
AcquisitionUniform random pairing by default; BALD selectable, Thompson kept for contrastMeasured tie with BALD over 20 paired seeds in two pool regimes; uniform has no tuning constants and makes every duel an unbiased calibration sample
Calibration metricBrier skill against the 0.5 baseline, plus random check duelsAccuracy is not proper and is pinned near chance by an information-seeking pairing rule
RecencyDiscounted likelihood, half-life 150 observationsTaste is allowed to change; stationarity is the wrong assumption about a person
First frontendWeb / WASMBoth deps ship WASM; fastest UX iteration; shareable
Session UXAll three modes, built duels → grid → radioSame observation stream; sequenced by signal quality
SafetyVetting gate: audition = pre-rendered vetted buffers, never live unvetted patchesOne render serves health-check, features, and playback; quarantine + fitness shaping teach evolution to avoid pathology

What is not in this table

Two kinds of thing deliberately stay out of it, and one lives on its own page: open questions, which are decisions that have not been made rather than decisions that have.

Reversible details. Buffer sizes, the exact number of MCMC steps, which easing curve a knob uses. These live in the code and in the pages that quote them by name; a decisions log that tracks them stops being readable.

The pass-by-pass history. What changed when is CHANGELOG.md. This table is evergreen: it says what is true now and why, not what was true in March.