population: 0 / 200 · divisions: 0
1 / 3 — Genesis
this is the substrate. it knows nothing yet.
8
↓ low
↑ high
visual
trioron API equivalent: trioron.Substrate(l0_dim=8)
geometry & mechanics — the math
valence(x) = 2·(x − cx) / W ∈ [−1, +1] (positive = right side of dish)
arousal(y) = 2·(cy − y) / H ∈ [−1, +1] (positive = upper half)
cell.specialty (hue 0..360°) = atan2(arousal(cell), valence(cell))
classify(point): nearest cell wins; correct iff hueDist(specialty, label) < 50°
frustration += 0.06 per miss; decays ×0.992 per tick
division fires when frustration > frustration_threshold
absorption fires when |donor − host| < absorption_radius
AND donor.poolTag == host.poolTag (or pool_match_required = 0)
note: seed mismatch alone is lossless via W = R·S handshake;
pool mismatch (different shared factor S) is the deep blocker
dream: each tick picks nearby cell pairs, flares a synaptic downscale between them,
capped at max_downscales_per_layer total flares per dream phase
apoptosis: cells with firing-recency > 200 ticks fade out; floor at MIN_LIVE_POP = 5
phase A — L1 branch (body) fades over ~40 ticks
phase B — L0 ring lingers as a ghost ~80 ticks → substrate is conserved
decision boundaries (Russell circumplex):
valence_thickness ∝ mean over cells of |x − cx| / (W/2) (HAPPY ↔ SAD axis)
arousal_thickness ∝ mean over cells of |y − cy| / (H/2) (ANGRY ↔ CALM axis)
each axis thins when the task that built it loses replay
inner_ring_radius (L0) = 2 + l0_dim × 0.5
body_radius (L0 + L1) = inner_ring_radius + branch_width × 0.5
legend
- inner ring — L0 substrate (radius ∝
l0_dim, color = lineage seed) - outer body — L1 branch (added radius ∝
branch_width, color = specialty) - genesis-only — outer body = inner ring (pure substrate, no branch yet)
- red glow — frustration accumulating
- dashed circle — donor's absorption_radius reach
- dashed vertical line — valence boundary (HAPPY ↔ SAD); thickens with HAPPY/SAD specialists
- dashed horizontal line — arousal boundary (ANGRY ↔ CALM); thickens with ANGRY/CALM specialists
- faint inner ring alone — L0 ghost after apoptosis (substrate persists, branch pruned)
- yellow dot — HAPPY (valence+, mid arousal)
- blue dot — SAD (valence−, mid arousal)
- red dot — ANGRY (arousal+, mid valence)
- green dot — CALM (arousal−, mid valence)
- faint dot — manifold replay (ghost) point
- blue line — synaptic downscale flare during dream
- yellow flash — division event
- green flash — successful absorption
- orange flash — forced merge (corrupted)
- red flash — bounce / frustration