Chapter 8 · Section 11
Crystals and Strings Drawn
The BPT law
BPT Part 4.6 (The Alpha String Harmonic Ladder) builds a ladder of modes on the fundamental of the pulse: the Alpha Note Frequency f₁ = 1/①⥂⧗⌂, the Alpha Harmonic Overtones (G) fₙ = n·f₁, and the Alpha Wavelength of Harmonics (G) λₙ = PD/n, "a harmonic ladder where each overtone corresponds to specific structural manifestations across universal scales through standing wave formation." BPT Part 4.7 (The Harmonic Fold and Universal Lattice) finds the places where such modes meet: from the Unity Convergence Identity, (n + 1)² mod n = 1 for every n ≥ 2, it derives the Harmonic Resonance Condition, R(ω) = 1 when ω = 2π·m/n, and a Toroidal Lattice (G) "where recursive expansion folds back to create repeating nodal patterns." In the game the strings are drawn out of the void along that ladder, and the harmonic nodes (once called time crystals) are where rings from several wells meet in step; Chapter 7 says how both are found. This Part covers how they are drawn.
The established physics
None: a game method.
The game's math
setCrystals(list) scene3d.js:1773 draws the first 120 of the live crystals as octahedra on the skin, size 0.035 + 0.012·min(6, depth), hue from their rarity, glowing at 1.2. Each pulses with its own period p: scale 1 + 0.25·sin(2π·frame/p), turning 0.05 radians a step (scene3d.js:2148). Once the stars come (matterOn) none are drawn: the finds are still recorded (Chapter 7), and since 2026-10-28 the node finds are no longer collected at all (NODE_FINDS = false, Part 8.13).
setStrings(list) scene3d.js:1785 draws the first 40 strings as lines from the void's center to their surface point, hue from their rarity (48° when none is given), opacity 0.8. On the flat field (drawGrid, Part 8.12) every live string is a line between its ends and every live crystal a diamond 3 + 1.5·depth pixels across, every one of them drawn.
In the game
Between the Data Nova and the first stars the harmonic nodes show on the skin as small glowing octahedra, each pulsing with its own period and slowly turning, colored by how many rings meet there: green-teal for Uncommon (160°), blue for Rare (200°), violet for Epic (290°) and gold for Legendary (48°), six rings meeting at the daisy's center (crystalRarity() universe.js:416). The strings are thin colored lines from the void's center out to the point of the skin where they were drawn out, colored by their length's rarity on the same scale, pink for Common (330°) up to gold for Legendary (stringRarity() universe.js:425). In the 2D view the strings are lines between their ends and the nodes pale yellow diamonds. The "Void:" readout keeps the void's ledger, … in · … out, cells folded or collapsed into it against strings drawn out of it (app.js:2149, index.php:87), and "Finds:" counts what has been found. Once the stars come, the 3D scene stops drawing the nodes (the strings stay), and the finders' results go to the Collection (index.php:274) and the record. Since 2026-10-28 the rings' meetings are still drawn but no longer collected as finds (NODE_FINDS = false, app.js:1926).
The scale model
A drawn crystal or string is one found pattern; the 3D scene shows at most 120 and 40 of them, the 2D field all. Which ones are first is the order Chapter 7's finders return.
Fixed numbers
| Number | Where | What it is | Kind |
|---|---|---|---|
| 120 | setCrystals() scene3d.js:1777 |
crystals drawn | CAP |
| 40 | setStrings() scene3d.js:1788 |
strings drawn | CAP |
| 0.035, 0.012, 6, 0.9, 0.6, 0.45, 1.2, 0.2 | scene3d.js:1778–1779 | crystal size by depth and color | DISPLAY |
| 3 (period fallback), 0.25, 0.05 | scene3d.js:1780, 2148 | crystal pulse and turn | DISPLAY |
| 48°, 0.9, 0.65, 0.8 | scene3d.js:1790 | string color | DISPLAY |
| 3, 1.5, 95 %, 62 %, 0.9, (255, 230, 120, 0.9), 2 px | app.js:4095–4099 | 2D strings and crystals | DISPLAY |