Chapter 10 · Section 2
The Player Sets the Genesis
Before Start the player may change anything; nothing has run yet.
- Paint the pinpoint. A press on the field or the sphere paints a cell (
paintCell()); the brush colour is the data's colour, and a cell born later of lit neighbours takes the first lit neighbour's colour, so colour is the data's lineage (engine.js). - Choose a level (Universe & Genesis → Level L). The slider runs from 0 to 202, our own universe's level; the box beside it takes any deeper level. Each change re-describes the universe (Part 10.1, step 4) and resizes the field.
- Choose a genesis: the parents' spins a₁ and a₂, their mass ratio q, the merger angle θ, the axis and tilt, or a named channel. These set the universe's inherited spin a_f and its compression ⟪C⟫ (Part 1.5). Below level 3 no universe carries spin (Spinless Early Lineage): the spin rows hide and a_f is 0.
- Or reset: Reset draws a new random genesis and pinpoint as on load; a saved pattern or a Universe Packet can be opened instead (Part 1.14).
- Aim the cue (3D view): before Start the player can pull the cue on the sphere to set the spin's direction (
applyCue).
The method, in plain steps:
while the epoch is "pre":
a press paints a cell in the brush colour
a change of level or genesis → describe the universe again, resize the field
below level 3 the spin is held at 0
The code:
// public/game-v8.4/app.js:2031 recomputeUniverse()
if (g.L < U.FIRST_FORK_LEVEL) { g.a1 = 0; g.a2 = 0; g.thetaDeg = 0; g.aniso = 0; if (g.L === 0) g.q = 0; }
…
uni = U.describeUniverse(g);
// public/game-v8.4/universe.js:282 describeUniverse()
const a_f = L < FIRST_FORK_LEVEL ? 0 : inheritedSpin({ a1, a2, q, thetaDeg });
const C = compressionFactor(a_f, kappa);