Chapter 10 · Section 1
The Page Loads
- The page opens and holds a loading screen until the first frame is drawn.
- The settings take their defaults.
- 2.1 The level is 28: the band where most of a lineage's children keep their stars.
- 2.2 The genesis channel is set to Kerr–Kerr, our own origin, two spins of 0.998.
- 2.3 The spin axis is 30°, the anisotropy 0.35, the heritage f₀ ours, the mass class 1.
- 2.4 Grid lines on; phase colours, sound and centring off.
- 2.5 The pace is paced: the Pulsecore's filling plays in about 20 seconds and the universe's life in about 100, at every level.
- The 3D scene is built (
Scene3D, scene3d.js). If the device cannot draw it, the game falls back to the flat 2D field. - The universe is described from its level (
recomputeUniverse(), Part 1.1): the level's clock, constants, life and progeny (describeUniverse(), Parts 1.3 to 1.9), and the scale model: a level deeper than 6 (4 on a phone) is drawn at the model level, the physics staying at the true one (Part 1.10). - The field takes its size, 4 · 2^L cells a side at the model level (the Local Cell Count, Part 1.8): 256 × 256 on a desktop, 64 × 64 on a phone.
- The epoch is set to "pre": a Pulsecore waiting for its information.
- A random genesis is drawn (
randomizeGenesis()): each parent's spin between 0 and 0.998, a mass ratio between 0.2 and 1, a merger angle between 0° and 90°, an axis between 0° and 360°, the poles at centre. The channel becomes "custom", so the Kerr–Kerr default of step 2.2 is replaced at once. - A random pinpoint is painted (
randomizeGrid()thenbakeRandomChild()): a smooth field of one parent's colours, or of two parents' when the mass ratio is above 0.05, every cell a pulser in phase 0 or 1. The state line reads "the child of one parent · press Start" (or of two). - The loading screen lifts.
The method, in plain steps:
on page load:
set the level to 28 and the pace to "paced"
describe the universe from its level (clock, constants, life, progeny)
size the field: 4 · 2^Lm cells a side, Lm = min(L, 6 desktop | 4 phone)
epoch ← "pre"
draw a random genesis (spins, mass ratio, angle, axis)
paint a random pinpoint from that genesis
The code:
// public/game-v8.4/app.js:5444 init()
gridSize = isMobile ? 64 : 256;
if (uLevel) { uLevel.value = '28'; … }
if (uChannel) { uChannel.value = 'kerrkerr'; applyChannel('kerrkerr'); }
…
recomputeUniverse();
…
setEpoch('pre');
randomizeGrid();
if (!(… /[?&]packet=/.test(location.search))) { randomizeGenesis(); bakeRandomChild(); }
// public/game-v8.4/app.js:4281 the model level
function MODEL_LEVEL() { return isPhone() ? 4 : 6; }
// public/game-v8.4/app.js:2031 recomputeUniverse(), the field's size
const side = Math.max(4, Math.min(1024, U.viewSide(uni.Lm)));
// public/game-v8.4/universe.js:232
export function viewSide(N) { return 4 * Math.pow(2, N); }