PulseCore

Chapter 5 · Section 3

The Game's Sun and What Each Drawn Star Stands For

The BPT law

BPT Part 2.9 explains why a star weighs what it does: every bound on a star is "a multiple of one mass built from the Planck mass and the mass of the hydrogen atom". That mass is the Stellar Mass Unit, M⋆ = m_P³/m_H², "the mass every star is sized by", about 3.7 × 10³⁰ kg ≈ 1.85 M☉ in our universe; stars run from about 0.04 M⋆ (hydrogen burning) to about 50 M⋆. Because each universe takes its Planck values from the well it was born in, "each universe has its own Stellar Mass Unit. The stars of a universe are sized by its lineage."

BPT Part 6.10 makes the Sun a fixed share of it: the Solar Mass of a Universe, M☉(u) ≈ 0.54·M⋆(u), "each universe's own Sun, a fixed share of its Stellar Mass Unit"; a universe with a different m_P has a Sun of a different mass, "and its whole stellar sequence … moves with it, in the same proportions". Its Game's Reading, Formally, applies this to the game: "At the game's scale the Pulse and the matter quantum are one cell each, m_P = m_H, so M⋆ = 1 cell and the game's Sun is M☉(game) = 0.54 cells by the Solar Mass of a Universe." BPT Part 2.10's Stars of a Universe, N★ = 925·(m_P/m_p) (Part 5.2), is the count the drawn stars must stand for.

The established physics

M⋆ ≈ 3.7 × 10³⁰ kg ≈ 1.85 M☉ (Carr & Rees 1979; BPT Part 2.9).

The game's math

The book's Sun is SUN_CELLS = 0.54 (stars.js:132). Since 8.2 it is a fallback only. sendOutMatter() app.js:1251–1253 sizes the Sun so the drawn stars stand for the law's count:

Q          = all matter sent out, cells
D          = max(1, min(stars by law, STAR_DRAW)),   STAR_DRAW = 40,000
starMult   = stars by law / D                         real stars each drawn star stands for
sunCells   = max(10⁻³, 0.77 · Q / (D · 0.39))         cells of matter in one Sun

stepStars() takes S.sun = matter.sunCells || SUN_CELLS once (stars.js:145).

Read backward: D·0.39·sunCells = 0.77·Q. 0.39 is the mean birth mass of the game's Initial Mass Function in Suns (MEAN_MASS[150] = 0.390, Part 5.5, written here as a literal). So the Sun is sized so that if 77 % of all matter became stars of the mean birth mass, exactly D stars would be drawn.

Every star count the game shows is multiplied by starMult: the HUD line (starLine(S, mult) stars.js:254, from app.js:2145), the end card (realStars() app.js:2743, trueStars() app.js:2745, app.js:2783), the run record (app.js:2211). A drawn Stellar Null Well also stands for starMult wells (Part 5.13). realPerCell() app.js:1406 = starMult / sunCells is the real Suns one drawn cell of matter stands for.

Worked case, desktop, Q ≈ 77,300 cells (Chapter 4, Part 4.5):

  • Level 28: law 41,700 stars, D = 40,000, starMult = 1.04, sunCells = 0.77 × 77,300 / (40,000 × 0.39) ≈ 3.8 cells.
  • Level 23: law 13,100 stars, D = 13,100, starMult = 1, sunCells ≈ 11.6 cells.
  • Level 202: law 1.2 × 10²², D = 40,000, starMult ≈ 3.0 × 10¹⁷, sunCells ≈ 3.8 cells.

So above about level 28 the drawn universe is the same 40,000-star model, each star standing for more.

In the game

The Sun's size is the first star number the player is told. When the first stars form, a banner headed First stars says "The gas has passed its Jeans mass and is collapsing into stars · one Sun here is X cells of matter, the book's 0.54 of the Stellar Mass Unit" (starToasts() app.js:734), X being S.sun to two places, about 3.80 on desktop at level 28.

starMult decides what every count means. The Stars line, the HUD's epoch line ("Universe · expanding, P% of its final size · N stars", app.js:2148) and the end card's Stars born box all show real stars of the level. When one drawn star stands for more than 1.5, the end card adds "N drawn, each for X" (app.js:2783), X about 3.0 × 10¹⁷ at level 202, so a deep universe tells the player how far its sky is a model.

It also decides how the sky looks. standLight(starMult) scene3d.js:684 gives each drawn star the light of the stars it stands for, read by its logarithm as the magnitude scale reads light: each decade of starMult adds 0.15 to a star's size and 0.1 to its brightness (applied with their own bounds at scene3d.js:776). At level 28 the stars are nearly single sharp points; at level 133 or 202 each point is a cloud's or a galaxy's light, and the glows run together into a lit web on the same 40,000 points.

The scale model

This is the scale model of the stars: D drawn, each for starMult. Masses within the stars (birth masses, remnants, metals, winds) are in the game's Suns, so every ratio of BPT Part 2.9 holds; only the Sun's size in cells changes with the level and the device.

Where the game and the theory differ

  • BPT Part 6.10 (and BPT Part 2.9, The Game's Reading) puts the game's Sun at 0.54 cells. The game uses 0.54 only as a fallback; the Sun it runs is 0.77·Q/(D·0.39), about 3.8 cells on desktop at level 28 and 11.6 at level 23.
  • The 0.77 has no stated origin in the code. It is not the 6 % of matter in stars that the law's 925 assumes (BPT Part 2.10), and nothing else in the code says why 77 %. It decides the Sun's size and so the number of stars the gas forms; it is flagged here for a ruling.
  • starMult is fixed at the Physical Nova from the law's count, whatever share of the gas actually forms stars; whether the drawn count reaches D depends on star formation (Part 5.7), which follows no 77 % rule.
  • The First stars banner calls the number it shows "the book's 0.54 of the Stellar Mass Unit" while showing S.sun, which is not 0.54 (app.js:734), and the header of stars.js (stars.js:12–15) still describes the Sun as 0.54 cells.

Fixed numbers

Number Where What it is Kind
0.54 SUN_CELLS stars.js:132 The game's Sun at m_P = m_H = 1 cell (fallback) BPT (Part 6.10, Solar Mass of a Universe)
40000 STAR_DRAW app.js:1251 Most stars drawn CAP
1 app.js:1253 Least D METHOD
0.77 app.js:1253 Share of matter assumed to become drawn stars METHOD (origin not stated: flagged)
0.39 app.js:1253 Mean birth mass, Suns (copy of MEAN_MASS[150]) PHYSICS (Kroupa 2001 IMF as the game samples it)
10⁻³ app.js:1253 Floor on the Sun, cells METHOD