PulseCore

Chapter 1 · Section 12

Children at the Final Well

The BPT law

BPT Part 3.9 (Fractal Progeny) describes the end of a universe as its reproduction: at rupture, "Accumulated Tension exceeds fundamental substrate capacity", and "the instantiation of entirely new child Universes through Null Well Collapse events" follows. "When a universe ruptures is set by the Rupture Rule ... how many children it seeds is set by the Null Well Progeny Count Law." Not every collapse succeeds. The Reproductive Outcome Distribution is P▢ = 0.67, P≀ = 0.18, P⑂ = 0.09, P⦰ = 0.06: viable, chaotic ("a chaotic universe with distorted structure"), branch-line offshoot ("a branched offshoot that carries only part of the original recursion forward") and failed, "where no child is seeded and the data returns to the source without continuing back", the last derived as 2^(−D) = 1/16. BPT Part 3.10 gives the continuity law, Return to Bifurcation (G): ∅L → (0 ⥂ 1)(g+1), once per well. "Each child inherits its parent's well: its null mass, its spin a_f through the Inherited Spin Parameter, and its heritage ... Its Planck values are set by the well it was born in, so it keeps its own clock, and its generation count advances by one." And the well's information is the child's start: "this law says that information is the child's Pulsecore."

The established physics

None for the outcome distribution, which is BPT. The child's spin uses the binary-remnant form of Part 1.5. The deterministic draw uses the FNV-1a hash (Fowler, Noll and Vo), a standard non-cryptographic hash. It is a numerical method, not physics.

The game's math

rupture() app.js:2532:

  1. It takes the census (Part 1.13) and walks the wells by rank, heaviest first, building the first 12 children.
  2. A merged well's child comes from the merger's signature (childOfEntry() app.js:1029): the heavier well's spin a1, the lighter's a2, their mass ratio q and their angle θ (0° or 180°, since game spins lie along the torus axis). An unmerged well gives its own spin with q = 0. A data well gives its spin too.
  3. childFrom() app.js:2478 fills the rest: L = uni.gen + 1 (the step count), f₀, ancestorsC = uni.prodC, the panel's null mass and the axis.
  4. childOutcome(L, fromWell, i) app.js:2488 draws u ∈ [0, 1) by FNV-1a over "L|well|index|wellFrames". The same replay therefore fails the same children. U.outcomeOf(u) universe.js:192 maps u through the cumulative 0.67, 0.85, 0.94, 1.00. Level 0 never fails: "it is the first completion able to have progeny".
  5. applyCensus() app.js:1054 gives each child its depth, rank and Ascendance. A child whose depth is below 0 is "too small to seed" and is forced to failed. One that grows past a seed in the decay gets its first draw back.
  6. attachBasins() gives each child the field cells nearest its well as its pinpoint, the game's reading of "the parent well's information as the child's Pulsecore".

Any other well's child is made on demand when the well is tapped (childOnDemand() app.js:2852), from the field as it stood at the final well, by the same rules.

mergerChild() universe.js:360 is the describe call for a merger: describeUniverse({L: L+1, …}), with q the lighter ÷ heavier mass and the heavier well's spin first. Its 1e-9 guard keeps the ratio finite at zero mass. It runs at each merger during the life (app.js:1702, 1743), not only at the rupture.

lineage.total = max(wellsNow(), children.length, 1) (app.js:2563) is the count the lineage reports. Credits are that count × s (Part 1.3). nextChildToPlay() app.js:2750 offers the Ascendant Alpha (rank 1 and Ascendant) first, then any Ascendant child, then the first child that did not fail (Josh, 2026-10-29).

In the game

The final well is the moment the run turns from one universe to many. After the return banner of Part 1.7, the field holds still and the state line reads "State: Returned to the Source · tap a well to dive in" (app.js:2610). A banner asks the player to choose: "N wells held · returned to the Source", "Tap a well to dive in", with a button "⌛ Continue the universe" that runs the full decay instead (promptDive() app.js:2880).

Tapping a well (in 3D, its marker on screen) selects it and names its child in the banner: the well's name, then "Next Universe – Level 26.4 · generation 1", with "· Ascendant", "· light and wells only" or "· no stars" when they apply, and below it the well's galaxy, its origin ("began as a Proto Well", "merged with …") and the child's a_f (diveWell() app.js:3122, 3136). A second tap plays it. A failed child cannot be played: the banner reads "This child failed" and "it seeded nothing; its data returned to the Source", or "Too small to seed" and "its well held less than a Zinf-level seed, the smallest unit; its data returned to the Source" (app.js:3130).

The Lineage section lists the first twelve children, each "Child 3 · level 25.1 · a_f 0.861 · ⟪C⟫ 0.950 · from the merger of Well 4 and Well 9", with "· chaotic" or "· branch-line offshoot" for those outcomes and a Play button (app.js:3307–3313). Failed children are greyed with "failed: seeded nothing; its data returned to the Source". "The first 12 are listed" appears when there are more (app.js:3306). The end card's main button offers the best child: "⤴ Play Ascendant Alpha – Level … · generation …", or "⤴ Play a Next Universe – Level … · generation …" when no well is Ascendant (app.js:2812). Playing a child loads it before Start, "left at its pinpoint, the parent well's data, so it can be seen before Start" (app.js:2832): the field shows the basin the well emptied, and the panel shows the child's level, spins, mass ratio and angle. The About panel's card (index.php:306) sums it up: "Most children are viable; some are chaotic, some branch-line offshoots, and about 6% fail and seed nothing (the Reproductive Outcome Distribution)."

The scale model

The census counts each drawn well as mult true wells (wellMult for Proto Wells, starMult for stellar wells), so the bins in Part 1.13 are true counts. Only the 12 listed children, and any tapped, are made. A drawn well stands for wellMult true wells, but it seeds one child that the player can play.

Where the game and the theory differ

  • BPT gives the chaotic and branch-line outcomes their own character (distorted structure; only part of the recursion carried forward). The game labels them and plays them as ordinary children: "The game labels each child with its outcome; only a failed one cannot be played" (universe.js:180–182).
  • Level 0 never fails in the game. BPT does not state that exception; it is a game ruling.
  • The outcome draw is keyed on the step count uni.gen (childOutcome(uni.gen ?? uni.L, …), app.js:2550), while childOutcome()'s comment says the draw "is fixed by the universe's level and the well".
  • The Lineage text at the final well says each return "seeds a new UniSphere one level deeper, unless the child fails" (app.js:3306), and the dive prompt says "each seeds a next universe one level deeper" (app.js:2884). Under BPT Part 3.14's Level from Share, which the game itself computes for every child, a child stands at its parent's level plus log₂(8.1·share): usually shallower, and deeper only for an Ascendant Well.
  • The outcome table's comment cites "ch 3 Part 3.8" (universe.js:180). The distribution is in BPT Part 3.9.

Fixed numbers

Number Where What it is Kind
0.67, 0.18, 0.09, 0.06 universe.js:185–190 outcome probabilities (P_FAILED repeated, unused) BPT (Part 3.9)
12 app.js:2544 children built at the final well RECORD (the rest are made on demand when tapped)
2166136261, 16777619 app.js:2490–2492 FNV-1a offset basis and prime METHOD (standard 32-bit hash)
4294967296 app.js:2493 2³², maps the hash into [0, 1) METHOD
0, 180 app.js:1701 merger angle: spins aligned or opposed METHOD (game spins lie on the torus axis)
0.998 app.js:1032 cap on a lone well's spin PHYSICS (Thorne 1974)
1e-9 universe.js:361 guard on a zero mass METHOD
1 app.js:2563 at least one well in the lineage total METHOD
200 app.js:2570 well frames kept on the save RECORD