PulseCore

Chapter 7 · Section 13

Codebook, Dialect, Cognates, Fingerprint and the Language Block

The BPT law

BPT Part 4.10 gives the rest of the reading. The Codebook: "the game reads which words wrote the places where wells and starry bodies formed, and how much more often than their share of the text. This is how the genetic code was first read: by matching what went in to what came out (Nirenberg & Matthaei, 1961). It is a match, not a cause. Stars form by the physics of Chapter 2, not by words calling a routine … a word that turns up under many wells far apart is the finding to look for." Cognate Share is

c = n_s / n_p

"the share of a parent's own words its child still writes", with n_p "how many of the parent's own words were compared, at least five", "read only on own words, never on the rule's core vocabulary". BPT predicts that "the cognate share falls with each generation, at a rate that tracks the Lineage Note". The Language Block is printed "at the end of each universe … every line of it the universe's own": Universe and Written, Note, Alphabet, Writing and Vocabulary, Tests, Instruction Set ("each routine its engine ran or skipped, with the law that skipped it, marked inherited, new or lost (Part 3.15)"), Codebook, and Fingerprint, "a short hash of its sixteen most written words and their counts, with its parent's beside it". The 2026-10-27 ruling quoted at app.js:2228 is Josh's: "id like to be able to extract the language from each universe ... a printout of the language block".

The established physics

Nirenberg & Matthaei 1961 is the source for the codebook as a match between what went in and what came out (the reading of the genetic code). Swadesh 1952 is the source for the cognate share (lexicostatistic dating). Both are in the BPT sources.

The game's math

Sites (computeLanguage() app.js:2256). The sites are the wells (ring sources that are not stellar) and the starry bodies (matter bodies with stars, the first 4,000 in list order). Each is moved into the data's own coordinates with dataCell() (app.js:2255), which undoes the flow's carry.

Codebook (language.js:218–229). The baseline is, for each word, the number of cells of the rows read that it wrote (from the birth map), and tot, the sum. For each kind of site, wordAt(r, c) gives the word that wrote the cell. It uses the nearest row read (torus distance), and sites on silence are skipped. The top 5 words are kept, each with

lift = (k / n) / (all[w] / tot)

Here k is the word's count among the n sites of that kind. The block shows "×lift its share" only when k ≥ 3.

Top and dialect (language.js:234–235). The top 24 words come with their counts and whose mark. The dialect is the first 24 own words in count order. With no control it is just the top 24.

Cognates (language.js:236). When a child is played in the same session, parentTop is the parent's dialect (app.js:3332), up to 24 words. With at least 5 of them:

c = (parent's dialect words this universe has counted) / (parent's dialect words)

So the dialect's 24 words are also the largest sample a cognate share can be read on.

Fingerprint (language.js:237). FNV-1a of the top 16 entries written word=count and joined with '|', as 8 hex digits, shown as xxxx·xxxx.

Routines (universeRoutines() app.js:2232). The instruction set is a fixed list: data novas, the physical, wells, failed Proto Wells, stars, giants, supernovae, white dwarfs, neutron stars, stellar wells, Seyferts, quasars, galaxy types (the first three always, the other five only once seen), and child universes. Each entry is runs or the law that skipped it. Stars, for example, are skipped "m_P/m_p … ≤ α^−½" when the matter law gives no stars (Chapter 5). Against the parent's running routines, each is marked inherited, NEW or lost.

The Block. languageBlockText() (app.js:2285) is the .txt download, 58 characters wide. It shows the top 14 words, six dialect words, and words over 30 letters cut to 29 and '…'. Hashed long words are shown as "a N-letter word #abcd". languageBlockHTML() (app.js:2335) is the styled card: verdict first, six stat tiles, alphabet, the top 14 words drawn bit by bit with bars (width at least 2%), instruction set, codebook and fingerprint. showLanguage() (app.js:2375) adds Print, Download .txt and Download .json. The JSON is the full summary.

What is saved (languageRecord() app.js:2272). The universe record keeps the verdict, origin, seed, counts, slopes, structure, control, cognates, fingerprint, the top 12 words, 12 dialect words, and the names of the routines that ran.

In the game

The Language Block opens from the run summary's "✎ Language Block" button (index.php:427, app.js:2829) and closes with its × or Escape. Before anything is written it says: "This universe has not written anything yet: press Start and let its Pulsecore fill." (app.js:2393).

Its card follows BPT's list. The header reads "Language Block", "Level L #N", and a lede of origin, seed, "child of #N", the note and "D fundamental dimensions · P⦰ = 1/2^D" (app.js:2344–2345). Then come the verdict (Part 7.12), the six tiles, the Alphabet, and "Vocabulary — most written · rule any data writes it · own only this universe": the top 14 words drawn as rows of 0 and 1 bits, each with a bar, its count and its pill. Beneath it, "Its own words, the rule alone never writes them:" lists six dialect words (app.js:2363). "Instruction set — what its engine ran" lists each routine with a dot and its status, runs or the law that skipped it, and an inherited, NEW or lost pill against the parent. "Codebook · its wells" and "Codebook · its starry bodies", "the words that wrote them · N read", list five words each with "×lift its share" where the count is 3 or more. The footer shows "Fingerprint xxxx·xxxx · parent xxxx·xxxx", a link to Binary Pulse Theory Part 4.10, and the game version (app.js:2371).

For a child played from its parent (the run summary's "⤴ Play the next universe", or a tapped well), the fifth tile becomes "cognates", the share as a percentage, with "its parent's own words it still writes" beneath it (app.js:2352).

The scale model

The codebook samples the rows read: each site takes the word of the nearest row read, which at level 8 can be up to 8 rows away. It reads at most 4,000 starry bodies. The bodies themselves are drawn bodies, each standing for many real ones (Chapter 4), but the codebook counts drawn bodies, not what they stand for.

Where the game and the theory differ

  • BPT measures a codebook word against "their share of the text". The game's baseline is the share of cells in the rows read that each word wrote (the birth map). The header comment says something else again: "against how common those words are on the drive" (language.js:18).
  • BPT reads the cognate share "only on own words". The game reads it on the parent's dialect, which is the parent's own words when the parent's control ran, and the parent's top 24 words, rule and own together, when it did not (language.js:235).
  • The text block prints six dialect words and the top 14 words; BPT's "its most written words" names no number. The saved record keeps 12 of each.

Fixed numbers

Number Where What it is Kind
4000 app.js:2262 Starry bodies read for the codebook. It changes only the printed codebook RECORD
5 (codebook words) language.js:227 Words listed per site kind RECORD
3 (lift shown) app.js:2324, 2369 Lift printed only when count ≥ 3 DISPLAY
24 (top) language.js:234 Words in the summary's vocabulary RECORD
24 (dialect) language.js:235 Own words kept. Also the largest cognate sample a child can be read on CAP
5 (parentTop ≥ 5) language.js:236 "At least five" words compared BPT
16 (fingerprint) language.js:237 "Its sixteen most written words" BPT
3 (galaxy types) app.js:2250 Galaxy types always listed in the instruction set DISPLAY
12, 12 app.js:2275 Top and dialect words saved in the universe record RECORD
58, 14, 6, 30, 29 app.js:2286–2287, 2307–2308 Text block width, words shown, dialect shown, word cut DISPLAY
14, 2 (%) app.js:2360–2362 Words drawn in the card; smallest bar DISPLAY
4 (hex), 1 (indent) app.js:2326, 2388 Fingerprint split; JSON indent DISPLAY
2000 ms, 4000 ms app.js:2386, 2389 Download URL lifetime; print fallback METHOD