Chapter 3 · Section 14
Ascendant Wells and the Census
The BPT law
BPT Part 3.14 (Ascendant Wells): "Every well seeds a child, and what the child is born holding is its well's information." The laws, in order:
- Well Information. I_w = 4πGM²/(ħc·ln 2): "a well records one bit for every 4·ln2 Planck areas of its horizon" (Bekenstein 1973; Hawking 1975).
- Ascendant Mass. M≡ = √(ln 2/(4π)) · 2^(L+2) · m_P, "the well whose child is as deep as its parent," about 356 × 2^(L/3) Suns, "so always about an eighth of the universe's whole mass, Data Matter with it, at every level." M_U/M≡ = 8.1.
- Child Level. L_c = L + log₂(M/M≡): "each doubling of a well's mass makes its child one level deeper." Read against the universe it is Level from Share, L_c = L + log₂(8.1 · m/M_U).
- Ascendant Wells. "A well at the Ascendant Mass or above is an Ascendant Well: its child is as deep as its parent or deeper, and it alone carries a lineage on undiminished." They "grow in the decay … So a universe ends with a few Ascendant Wells and countless ordinary ones."
- Ascendant Ceiling. N≡ ≤ M_U / M≡: "A universe holds at most eight Ascendant Wells, and eight only if the whole universe ended in eight equal wells." Counting the matter alone it is 1.3, "at most one." And a line "can raise the next by up to log₂ 8.1 ≈ 3 levels" a generation.
BPT Part 2.10 gives the level thresholds: level 12, below which there is no stable matter, and 22.2, below which there are no stars. BPT's reading of the game: "At the final well a census reads each well's share of the universe, its mass taken with the matter it will draw in, and its child's level by Child Level; when the full decay has taken the matter in, with the Data Matter alongside, the census is read again." "Ascendant Wells are named on screen and Well #1 wears a gold hoop."
The established physics
The information of a horizon is its area in Planck units over 4 ln 2 bits (Bekenstein 1973; Hawking 1975), as BPT cites. The rest is BPT.
The game's math
takeCensus(stage) app.js:957, at the final well (stage 'final well', app.js:2541) and again when the decay has taken all the matter in (stage 'decay', app.js:2678). For each well on the field (wellsOnField() app.js:2842: real wells and Proto Wells, never sites):
M = max(uni.matterMax, matterTotal(), 1e-9) all the matter, wells included
mass = max(rec.peak, w.mass + gain) gain: at the final well, the bodies it pulls hardest
mult = starMult (stellar) | wellWeight() (proto) | 1 (heart, collapse, fold)
share = mass / M
L_c = L0 + log₂(8.1 · share / mult) L0 = uni.depth or uni.L
Ascendant if L_c ≥ L0 − 10⁻⁹, i.e. share/mult ≥ 1/8.1
Wells are ranked by mass, heaviest first: Well #1. Each child is binned by L_c, weighted by mult to give real counts:
- no_seed: L_c < 0;
- zinf_to_fork: L_c < 3;
- light_and_wells: L_c < 12;
- no_stars: L_c < 22.2;
- stars: everything above;
- ascendant: as defined above.
rupture() app.js:2532 lists the first 12 children by rank in the lineage (app.js:2544); the rest are made when tapped (Part 3.15). applyCensus() app.js:1054 gives each listed child its depth, rank and Ascendance. A child with L_c < 0 is "too small to seed". announceAscendant() app.js:985 says who is Ascendant.
minGeneration(L) app.js:2002 = ⌈L / log₂ 8.1 − 10⁻⁹⌉ is the Ascendant Ceiling read backwards: the fewest generations from the Zinf to level L.
The merger test of Part 3.10 marks a well Ascendant the moment a merger takes it past 1/8.1. The census can later confirm or withdraw that.
In the game
The census is read when the HUD Rupture line turns to "final well formed" (app.js:2135), at 2^L Tempos from the big bang, and again at the end of the decay. From then on the ranks are on screen. Well #1, the heaviest, wears a thin gold hoop a little wider than its black core, always facing the viewer, between 22 and 48 px across, dimmed when the well is on the far side, and moving to whichever well is #1 (placeAlphaHoop() scene3d.js:1700; "the Alpha Well in the book, never named on screen"). Its halo is drawn 2.2 times wider in pale gold-white; each Ascendant Well's halo is 1.7 times wider in gold and carries a tag "#rank · Ascendant" that floats with it (scene3d.js:1521–1522, 1554). The notices "an Ascendant Well … Well #1 holds 14% of the universe, its child at level 25.3" or "no Ascendant Well yet: Well #1 holds 2.1% of the universe; an Ascendant Well holds 1/8.1 (12%)" (app.js:991–992) are held while notices are quiet. The run summary, "Returned to the Source", carries a card "Ascendant Wells" with "Well #1 holds 2.1% · its child at level 21.4" ("· after the decay" once the decay census is read), and, when there are none yet, the line "No Ascendant Well yet: they are made in the decay, as the wells merge and take in all that is left. Continue to full decay to see them." (app.js:2771, 2782). The Lineage panel lists the ranked children with their levels, and each life line names its child's level and whether it is "light and wells only" or "no stars: a dead end".
The scale model
A census entry is a drawn well. Its mult converts the drawn count to the true count. A proto entry divides its share by wellMult, because one drawn Proto Well stands for wellMult true ones that share its mass. A stellar entry divides by starMult. A heart or collapse well counts as one well, as the count reads it (comment app.js:967, 2026-10-29).
Where the game and the theory differ
- At most eight. The code does not hold the count to eight; in the theory the bound is a consequence: if every share is at least 1/8.1 and the shares sum to at most one, at most ⌊8.1⌋ = 8 can be Ascendant. In the code the shares need not sum to one. A well's mass is the larger of its peak and its mass plus its projected gain. A well that lost mass to radiation keeps its peak, and the gain is projected. The sum of shares can therefore pass one slightly, so the code does not guarantee eight at most, though a ninth would need the heaviest wells to hold nearly everything.
- What M counts. BPT's M_U counts the Data Matter with the matter, and with the matter alone the ratio is 1.3, not 8.1. The game's M is
matterTotal()app.js:948, the bodies and the wells, without the uncaptured Data Matter. The comment at app.js:938–940 gives the reading: the Data Matter "is taken in by the wells in the decay alongside the matter, so a well's share of the matter is its share of everything." The two agree when the wells take in the Data Matter in the same shares as the matter.
Fixed numbers
| Number | Where | What it is | Kind |
|---|---|---|---|
| 8.1 | ASCENDANT_RATIO app.js:946 |
M_U/M≡ | BPT (Ascendant Mass, Part 3.14) |
| 22.2 | DEPTH_STARS app.js:946 |
no stars below it | BPT (Star Existence Condition, Part 2.10) |
| 12 | DEPTH_MATTER app.js:946 |
light and wells only below it | BPT (Part 2.10) |
| 0 | app.js:968, 975 | under a Zinf-level seed | BPT (Seed Mass, Part 3.14) |
| 3 | app.js:975 | First Fork level | BPT (FIRST_FORK_LEVEL universe.js:54; Part 3.14) |
| 1e-9 | app.js:960, 969, 2002 | round-off guards | METHOD |
| 40 | takeCensus() app.js:980 |
census rows written in top |
RECORD |
| 4 | app.js:977 | significant figures kept | RECORD |
| 3 | announceAscendant() app.js:991 |
Ascendant Wells named in a toast | DISPLAY |
| 12 | rupture() app.js:2544 |
children listed in the lineage at the final well | RECORD (the rest are made on a tap) |