Chapter 1 · Section 16
The Nova Set, the Layers, Nova Classes and Rarity
This Part covers the remaining tables in universe.js. Chapter 3 covers how the game uses the nova layers, and the finds chapter covers rarity. They are recorded here so every number in universe.js has a home.
The BPT law
BPT Part 3.6 states The UniSpheral Outward Expansion Set: "the sequence of four Data Novas that transform recursion into physical reality. The process begins with Toroidal Genesis, the Null Nova, which forges the substrate architecture as empty space, followed by Dimensional Genesis, the Data Nova, where the data pours onto space and gives it its axes. Temporal Genesis then imposes the arrow of time, and Spacetime Genesis locks three spatial and one temporal axis into a stable 4D scaffold." The third is the physical layer: "Temporal Genesis is the physical layer. Data runs at the Pulse Rhythm, each single transition, while the physical runs at the Pulse Tempo", and "It is the nova the simulation, and Parts 2.9 and 3.11, also call the Physical Nova." The second is where wells begin: "With data on space comes the first place for collapse, and the first wells form here as data wells." Beyond the fourth, "further Novas do not generate new dimensions but instead intensify harmonic structure and resonance": "The layers after saturation are inner dimensions." BPT Part 3.5 sorts novas by size with the UniSpheral Data Nova Scale Law: S < 10³ (✺⥥), 10³ ≤ S < 10⁶ (✺), 10⁶ ≤ S < 10⁹ (✺⊚), S ≥ 10⁹ (✺⥣), from "the smallest MicroNova to a universe-seeding HyperNova", "analogous to astronomical magnitude systems, but based on computational rather than luminosity measures". Josh's rulings of 2026-10-24 and 2026-10-28 fix the order in the code: "1 is space, 2 is the data, 3 is physical". Crystal and string rarity: BPT does not state this; it is a game method.
The established physics
None: BPT and game methods.
The game's math
NOVA_SETuniverse.js:378 lists the four named novas.novaLayer(n):401 names nova n as "Harmonic n · <name>" for n ≤ 4, else "Harmonic n", flagged harmonic.PHYSICAL_LAYER = 3(:389),SPACE_LAYER = DATA_LAYER = 2(:398). The HUD calls wells "Proto Wells" between layers 2 and 3 (app.js:2140).novaClass(S):408 applies the 10³, 10⁶ and 10⁹ boundaries, returning MicroNova, StandardNova, MacroNova or HyperNova. The S it is given is the count of active cells on the field at the nova (tensionValue, app.js:5102, 5222).crystalRarity(depth):416 sets the tier by how many rings meet: 6 or more Legendary, 5 Epic, 4 Rare, 3 Uncommon, else Common.stringRarity(length):425 sets the tier by string length in cells: 96, 48, 24 and 16. These are tied to no level. On a phone field of 64 a side, a 96-cell string must wrap the torus.
In the game
The four novas are the run's chapters, each announced by a banner (performNovaSequence() app.js:5240–5246) whose top line is the event and whose title is novaLayer(n).name:
- "Null Nova · space is born", "Harmonic 1 · Toroidal Genesis": "the null of … bits leaves the Pulsecore as … places of empty space: the torus stands round it, empty". In 3D the torus stands empty, with no lines (
setLayer(1)scene3d.js:1243). - "Data Nova · the data erupts", "Harmonic 2 · Dimensional Genesis": "every bit the Pulsecore held bursts onto the lattice at pulse speed · not yet matter: the scaffold of space". The lattice is laid at once over the torus (
setLayer(2)), the toast "the data erupts" follows (app.js:5267), the HUD's epoch line turns to "Universe · the data roams the scaffold at light speed", and the first wells appear as Proto Wells. - "Physical Nova · the big bang", "Harmonic 3 · Temporal Genesis": "space erupts from the pin head, everywhere at once · the data on the scaffold condenses into matter". Every data well becomes physical (
promoteDataWells()), and the HUD's layer line adds "· physical". - "Harmonic 4 · spacetime", "Harmonic 4 · Spacetime Genesis": "the fourfold scaffold is complete · … stars shining · … wells so far".
- After that, each "Harmonic Nova n" banner carries its class in its subtitle, "MacroNova · the lattice rings stronger · … stars shining · … wells", and in 3D adds one colored ring round the torus, stepping out from the space layer (
setLayer()scene3d.js:1253–1257).
The banner's hue is 265 for the Null Nova and otherwise follows the class through NOVA_HUE (app.js:2720). The first four novas go to the Collection with a toast; later ones are kept quietly (app.js:5314). Every nova is saved with the universe's figures to Nova Data (the "Data" link and the panel "Every nova, recorded").
Rarity is the color of a find. A time crystal or a string pops a toast tinted by its tier's hue (showToast() app.js:243–245), a harmonic node where rings meet is ranked by how many met, and the end card's chips name the best of each, "⏱ 3 time crystals · best Rare" (app.js:2794–2797). With sound on, a find plays a tone 110 Hz higher for each tier above Common.
The scale model
The rarity cutoffs are in drawn cells and do not scale with the model level.
Where the game and the theory differ
- BPT's S is a "Nova scale composite measure". The game uses the count of active cells on the drawn field at the moment of the nova, which on a scale model is a count of model cells.
NOVA_HUE(app.js:2720) has hues for MicroNova, MiniNova, Nova, SuperNova, MegaNova, MacroNova and HyperNova, butnovaClass()returns StandardNova, which has no entry, so standard novas take the default hue 320. MiniNova, Nova, SuperNova and MegaNova are never returned.- String rarity is fixed in cells, so the same string is rarer on a small field than its share of the universe would say.
Fixed numbers
| Number | Where | What it is | Kind |
|---|---|---|---|
| 1, 2, 3, 4 | universe.js:379–382 | the four named novas | BPT (Part 3.6) |
| 3 | universe.js:389 | physical layer | BPT (Part 3.6; Josh 2026-10-24) |
| 2 | universe.js:398 | data layer | BPT (Part 3.6; Josh 2026-10-28) |
| 1e3, 1e6, 1e9 | universe.js:409–411 | nova scale classes | BPT (Part 3.5) |
| 6, 5, 4, 3 | universe.js:417–420 | crystal rarity by rings meeting | DISPLAY (labels only; the six-petal flower of life as the top) |
| 48, 290, 200, 160, 330 | universe.js:417–430 | rarity hues | DISPLAY |
| 96, 48, 24, 16 | universe.js:426–429 | string rarity by length in cells | DISPLAY (labels only; fixed in cells, not scaled with the field) |