Chapter 1 · Section 9
The Progeny Count Law
The BPT law
BPT Part 2.3 states the Null Well Progeny Count Law: N(L) = ℜ_U(L) / ↁℹ∂(V, ℨ) = 2^(L/3), the "children a level-L universe seeds over its life: capacity divided by boundary information per well". The capacity ℜ_U(L) = 2^L is "a three-bit volume count", and the boundary cost per well is "an area law, so it scales as ℜ_U^(2/3)"; "the count is what remains, one spatial third of the capacity." "The law seeds the Zinf universe exactly one child, the first rupture, and does not reach two children until level 3. For our universe it gives 1.86 × 10²⁰ children", against "an observed 2 × 10¹⁹ to 10²⁰ stellar-mass black holes". The same Part adds a spin factor in prose: "Spin lowers the area of a well, by half at maximal spin, and so raises the count by at most a factor of two." BPT Part 3.9 (Fractal Progeny) uses the law for "how many children it seeds", and Part 3.10's prediction reads it as a census: "The number of null wells a universe forms in its life follows N(L) = 2^(L/3)."
The established physics
The horizon area of a Kerr black hole is A = 8πM²(1 + √(1 − a²)) in units G = c = 1 (Kerr 1963; the area formula is standard, see Misner, Thorne & Wheeler 1973, in BPT sources.md). It halves from a = 0 to a = 1. So for a fixed boundary information per well, the count rises by 2/(1 + √(1 − a²)), at most 2.
The game's math
progenyCount(L, a_f)universe.js:256 = 2^(L/3)·spinAreaFactor(a_f).spinAreaFactor(a)universe.js:259 = 2/(1 + √(1 − a²)), with a clamped to [0, 1].describeUniverse()givesprogeny(with spin),progenyBare= 2^(L/3) andspinAreaFactor(universe.js:315–317).
At the Kerr floor's a = 0.998 the factor is 2/(1 + 0.06321) = 1.8811. At level 28 that gives 2^(28/3) = 645.08 bare and 1,213.45 with spin. Our universe has 1.859 × 10²⁰ bare, which the "Our universe" readout prints as "Children" (app.js:2106), and 3.50 × 10²⁰ with spin.
The game never places 2^(L/3) wells. The comment at app.js:5274 says so: the law "is never imposed: it is compared with this census at the final well". (v7 placed round(2^(L/3)) wells, which made two wells below level 3.) Wells form where the data is densest, as many as the data makes. uni.progeny is the yardstick the HUD, the lineage panel and the end card read "law" from (app.js:2142, 2536, 2763). The end-card verdict compares the counted wells with it.
populationLog10(L) universe.js:270 = Σ{k<L} (k/3)·log₁₀ 2. It is the log of ∏{k<L} 2^(k/3), shown as "Universes at 202: 10^2037" (app.js:2107). BPT does not state this; it is a game method.
In the game
The law is the number the player plays against. Before Start the readout shows "Children at rupture 1213 (2^(L/3) × 1.88 spin)" ("Null Well Progeny Count Law", app.js:2089), and the Lineage section says "the law expects 1213 wells" (app.js:3315). During the run the HUD's wells line (index.php:85, tooltip "Null wells the data has formed so far, and what the Null Well Progeny Count Law expects; the law is compared, never imposed") counts toward it (app.js:2142). At a level the screen draws whole it reads "N · law 1.59" (level 2); on a scale model it reads "N counted · M drawn · law 1,213, K short at level 28" (counted wells weighted by what each drawn well stands for), with "unseen" in place of "short" once the law passes a million. Between the Data Nova and the big bang the label reads "Proto Wells", and after it "Wells" (app.js:2140).
At the final well the Lineage section reports "Final well at 2^28 Tempos: N wells formed where the law expects 1213.45" (app.js:3306), and the end card shows "Null wells counted" with "the law: 1213.45" (app.js:2778). Its last line is a verdict on the ratio of wells to law (app.js:2803–2806): "A rich universe: … wells counted against the … the count law predicts" at 1.5 or more, "Right on the law: …" at 1 or more, "A quiet universe: … A fuller Pulsecore makes more." below it, and, when the law reaches a million, "… the … between are the wells unseen, dark and alone". The player's lever is the Pulsecore: what is painted before Start is the data the wells form from.
The scale model
The law is computed at the true level. On a scale model (Lm < L) the drawn Proto Wells are set by protoDrawn(uni.progeny) app.js:1607:
T = floor(rows·cols / 4), drawn = max(1, min(round(N), round(T·(1 − e^(−N/T)))))
Each drawn well then stands for uni.wellMult = max(1, progeny / drawn) true wells (app.js:5279). At level 28 on desktop, T = 16,384 and N = 1,213.45. The drawn count is round(16,384 × (1 − e^(−0.07406))) = 1,170, so wellMult = 1.037. At the model level itself (L ≤ Lm), wells are found at the densest peaks with no imposed count and wellMult = 1. The chapter on wells covers protoDrawn() in full.
Where the game and the theory differ
- On a scale model the game does place a count of Proto Wells tied to the law:
protoDrawn()draws min(N, T·(1 − e^(−N/T))), at most one well per four cells, and each stands for wellMult. At the model level itself the count is the data's own, as BPT states the law should be read. populationLog10()assumes one generation per level, with each universe at level k seeding 2^(k/3) children at level k + 1. BPT Part 3.14 (Level and Generation) has given up that assumption, so "Universes at 202: 10^2037" is an illustration under the old reading, not a BPT figure.- The verdict's thresholds (1.5 and 10⁶) are wording choices. BPT compares the census with the law but gives no bands.
Fixed numbers
| Number | Where | What it is | Kind |
|---|---|---|---|
| 1/3 | universe.js:257, :316 | exponent of the Progeny Count Law | BPT (Part 2.3) |
| 2, 1 | universe.js:261 | 2/(1 + √(1 − a²)) | PHYSICS (Kerr horizon area) |
| 0, 1 | universe.js:260 | clamp on a | PHYSICS (|a| ≤ 1) |
| 1/3 | universe.js:272 | ∏ 2^(k/3) | METHOD (game reading, not a BPT law) |
| 100 | app.js:2089, :3315 | show the law to 2 decimals below 100 | DISPLAY |
| 1/4 | app.js:1607 | at most one drawn Proto Well per four cells, saturating | CAP |
| 1 | app.js:1607, :5279 | at least one drawn well; wellMult ≥ 1 | METHOD (floor so a share is defined) |
| 1.5, 1 | app.js:2803–2804 | end-card verdict thresholds on wells ÷ law | DISPLAY |
| 1e6 | app.js:2805, :2142 | law size above which the shortfall is called "unseen" | DISPLAY |