PulseCore

Chapter 1 · Section 8

The Local Pixel Count, the Field and the Holographic Pixel Bound

The BPT law

BPT Part 1.9 (The UniSpheral Grid) states the 🟑 Local Pixel Count (Level N) (G): 🟑⌂(N) = 16 × 2^(2N) pixels per view. "Visible pixel count grows fourfold with each harmonic level: the square of the doubling, 2^(2N) = (2ᴺ)²." The view is square, 4·2^N a side, and "the fundamental pixel size never changes across any Universe level. What appears as different realities are simply different zoom factors and frame rates viewing the same computational substrate." At our level the same law becomes the Holographic Pixel Bound: 🟑⌂(202) = 16 × 2⁴⁰⁴ ≈ 6.6 × 10¹²² ≈ S◎ / ln 2 ≈ 4.7 × 10¹²² bits, where S◎ = 3π/(ΛℓP²) is the entropy of the cosmological horizon. "The view at our level holds about as many pixels as the cosmological horizon can hold bits: the Local Pixel Count lands on the holographic bound with no cosmological constant in it." BPT Part 3.6 gives the same count a second name. The Bifold Containment Law bounds the Pulsecore by its skin, whose holographic capacity is χ∂ = A / (4 · ln 2 · ℓp²), "16·4^L Zinf bits at level L". "The Pulsecore holds while the Bifold can record what it contains; when the data within fills the skin's holographic capacity, N ≥ χ∂, the bubble bursts, and that is the Data Nova." Before that, the Null Nova Condition comes at N₁ = χ_∂/2, when data and their nulls together fill the skin, with the data growing as (n + 1)² after n Tempos.

The established physics

  • The holographic principle bounds the information in a region by its boundary area in Planck units (Bekenstein 1973; Bousso 2002).
  • The Gibbons–Hawking entropy of de Sitter space is S = A/(4ℓ_P²) in nats (Gibbons & Hawking 1977).
  • Λ ≈ 1.1 × 10⁻⁵² m⁻² (Planck Collaboration 2020).

All four are in BPT sources.md.

The game's math

  • pixelCount(N) universe.js:231 = 16·2^(2N). viewSide(N) :232 = 4·2^N. describeUniverse() returns both for the true L (universe.js:318–319).
  • The readout prints "View: 16·2^(2L) px = (4·2^L)²" (app.js:2090). At level 28 that is 1.153 × 10¹⁸ px = 1,073,741,824².
  • skinCapacity(L) pinpoint.js:36 = 16·4^max(0, L), the same law under its Bifold name. The game always calls it with uni.Lm.

The Holographic Pixel Bound is not computed anywhere in the game. No line of code compares 16·4²⁰² with 3π/(Λℓ_P²), and Λ does not appear in universe.js. It is a statement of the book that the game's pixel law makes true by construction at L = 202. The game does not test it.

The drawn field (recomputeUniverse() app.js:2052):

side = max(4, min(1024, viewSide(uni.Lm)))

With Lm ≤ 6, viewSide(Lm) ≤ 256, so neither 4 (viewSide(0)) nor 1024 changes the side today. The grid-size box (gridSizeInput, app.js:5569) applies the same clamp when it checks whether the grid still follows the level. The startup default is gridSize = isMobile ? 64 : 256 (app.js:5415). These are viewSide(4) and viewSide(6), written as literals.

The packet's quadtree (Part 1.14) relies on the side being a power of two. A field 4·2^L a side is a quadtree of exactly L + 2 levels.

In the game

The Local Pixel Count is the game board. In the 2D view ("2D · the field", index.php:141) it is the square grid of cells. In the 3D view ("3D · the torus") the same grid is the texture of the torus's skin. setAutoZoom() makes the field fill the screen "at every level, four cells or a thousand" (app.js:2055). The About panel's card "The field follows the level" says "4·2^L cells a side, from the Local Pixel Count. Zoom is the only free control" (index.php:301). At level 0 the field is 4 × 4; at level 2 it is 16 × 16; from level 6 on a desktop it is 256 × 256.

The lattice the Data Nova lays is drawn at the true level, not the model level. setLatticeLevel(uni.L) scene3d.js:1223 takes N = 4·2^L lines a side ("8 lines at level 1, 64 at level 4") and draws "as many a side as the screen can part, a line every 8 px; past that the lines are closer than can be drawn and the lattice reads as a sheet, each drawn line fainter and the sheet between brighter as more lines stand behind each one (level 202 holds 2 × 10⁶¹ a side)". So a deeper level shows as a denser, brighter lattice at Harmonic 2, even when its field is drawn at 256 cells.

The Bifold's capacity χ∂ drives the Pulsecore's story, told in toasts as it fills (pinpointMilestones() app.js:527–540): "null filling the core" ("Every bit carries its null · the null is packed 0.33 to a free place, … bits of …, Tempo …"), "Null Nova near" ("the Null Nova comes when data and null fill the Pulsecore, at Tempo 181" on a level-6 field, ceil(√(χ∂/2) − 1)), "space growing" and "Data Nova near" ("the Data Nova comes when the data alone outgrows the Bifold, at Tempo 255", ceil(√χ_∂ − 1)). The panel's note under the genesis rows (index.php:191) says the same in prose: "when data and null fill its 16·4^L places, the Null Nova expels the null as space, and when the data alone fills it, (n + 1)² after n Tempos, the Data Nova pours the data out."

The readout's "View" row (app.js:2090) prints the true count, for example "1.15 × 10¹⁸ px = 1073741824²" at level 28. The HUD's "Scale:" line (index.php:79, app.js:2137) gives the size of one cell: "×1.000 · 1 cell = 0.388 𝒞→ℨ" at level 28.

The scale model

The view is drawn at 4·2^Lm a side, 16·4^Lm cells. A desktop draws 256² = 65,536 cells. A phone draws 64² = 4,096. Each drawn cell stands for (2^L/2^Lm)² = 4^(L−Lm) true pixels. At level 28 on desktop that is 4²² = 1.76 × 10¹³ pixels a cell. The code does not store that ratio as a field. It is implied by uni.pixelCount / (rows·cols).

The Bifold's χ_∂ is taken at Lm too, so the Pulsecore's novas come at Tempos 181 and 255 on every desktop run past level 6.

The HUD's scale line (app.js:2137) gives one cell as f^L/4 · scale Zinf Pulse Lengths, and as 1 at level 0 (Josh, 2026-10-25). It reads the true uni.L, not the model level.

Where the game and the theory differ

  • The Holographic Pixel Bound is a BPT result the game never computes or tests (above).
  • The About card says the field is "4·2^L cells a side". That holds up to the model level. Past it the field is 4·2^Lm a side and the lattice alone shows the true level.
  • The HUD's scale line uses one cell = f^L/4 Zinf Pulse Lengths. The code gives no derivation of the factor 1/4, and the cell it measures is a true-level pixel while the drawn cell stands for 4^(L−Lm) of them.
  • The field side is clamped between 4 and 1024, and the startup sizes 64 and 256 are written as device literals. BPT's view has no such bound. Neither clamp changes a side today; 1024 would first apply at a model level of 9 (viewSide(9) = 2048).

Fixed numbers

Number Where What it is Kind
16, 2 universe.js:231 16·2^(2N) BPT (Part 1.9, Local Pixel Count)
4 universe.js:232 4·2^N a side BPT (Part 1.9)
16, 4 pinpoint.js:36 χ_∂ = 16·4^L BPT (Part 3.6, Bifold Containment)
4 app.js:2052, :5569 floor on the field side CAP (equals viewSide(0), never binds)
1024 app.js:2052, :5569 ceiling on the field side CAP
64 / 256 app.js:5415 startup grid size, phone / desktop CAP (device-class switch)
1/4 app.js:2137 one cell = f^L/4 Zinf Pulse Lengths METHOD (no derivation given in code)
1 app.js:2137 one cell = one Zinf pixel at level 0 BPT (Part 1.8, the Zinf pixel)