Mysteries Department
Sign inRequest access
Run · Voynich Manuscript

T44 ceilings per rung: with the true key the bigram decoder fails R3 and R4 (0.482, 0.450 vs 0.488) and the element trigram decoder passes every rung (R1 0.584, R2 0.581, R3 0.544, R4 0.513, R5 0.275 vs 0.262)

test_gpu3_R1.json: the trigram code with one history class equals the bigram code to 1e-13 (likelihood, counts, Viterbi); the full trigram forward equals a plain numpy reference on two pages; EM raises the likelihood every iteration. Gold text is used here only to build the true channel; no manuscript key is chosen this way.

The element trigram model is required from R3, not R5 as planned: under the bigram decoder R3 and R4 cannot pass even if the search finds the true key. From generation 2 the pipeline polishes the best bigram states with trigram EM and decodes with the trigram Viterbi; the key-accuracy half of the gate (>= 50 %) is what keeps the coverage half honest, since the trigram decoder writes Latin-like text from almost any key. R5's bar is reachable only narrowly (0.275 vs 0.262) with the full history collapsed to 22 classes.bigram EM from truth: R1 0.518 (bar 0.483), R2 0.508 (0.487), R3 0.482 (0.488), R4 0.450 (0.488), R5 0.290 (0.262; vowel-less plaintext covers only 0.374); key 0.78-0.84 throughout. Trigram Viterbi of the true channel: R1 0.584, R2 0.585, R3 0.544, R4 0.513, R5 0.275; character similarity 0.74-0.84 (R5 0.58). Trigram EM from the truth (10-14 iterations) keeps these within 0.01, except R5 where the factored trigram (22 history classes) drifts to 0.242. A near-random key (accuracy 0.11) decoded by the trigram Viterbi still reaches coverage 0.524 (permuted keys 0.475): coverage alone cannot be the gate under this decoder0

Result

RunMeasuredResultAgainstDecisionDate
RunHeld-out dictionary coverage of the planted control decoded with the true channel and with EM started from it, against the gate bar (0.7 x the true plaintext's coverage); bigram decoder (numba lattice em) and trigram decoder (lattice gpu3)bigram EM from truth: R1 0.518 (bar 0.483), R2 0.508 (0.487), R3 0.482 (0.488), R4 0.450 (0.488), R5 0.290 (0.262; vowel-less plaintext covers only 0.374); key 0.78-0.84 throughout. Trigram Viterbi of the true channel: R1 0.584, R2 0.585, R3 0.544, R4 0.513, R5 0.275; character similarity 0.74-0.84 (R5 0.58). Trigram EM from the truth (10-14 iterations) keeps these within 0.01, except R5 where the factored trigram (22 history classes) drifts to 0.242. A near-random key (accuracy 0.11) decoded by the trigram Viterbi still reaches coverage 0.524 (permuted keys 0.475): coverage alone cannot be the gate under this decoderSession 12 ceiling (RUN0DCG56XXNDPT): one sign per letter 0.518, full T39 setting 0.441 with the bigram decoderThe element trigram model is required from R3, not R5 as planned: under the bigram decoder R3 and R4 cannot pass even if the search finds the true key. From generation 2 the pipeline polishes the best bigram states with trigram EM and decodes with the trigram Viterbi; the key-accuracy half of the gate (>= 50 %) is what keeps the coverage half honest, since the trigram decoder writes Latin-like text from almost any key. R5's bar is reachable only narrowly (0.275 vs 0.262) with the full history collapsed to 22 classes.

What it used and found

Parameters

pw = 0.25, alpha = 0.05, rungs = R1 g5c; R2 h_c 4; R3 + p_copy 0.3; R4 + lam 0.25; R5 K 400 novowel 1 h_c 4 p_stay 0.98 p_break 0.9 lam 0.25, control = Pliny NH 16, period.generate seed 77, Herbal A pages, trigram = full (71 history classes) for R1-R4, factored (letters + one nomenclator class, 22) for R5 with 421 elements, bigram_em_iterations = 60, trigram_em_iterations = 20

Cite it

Mysteries Department. (2026). T44 ceilings per rung: with the true key the bigram decoder fails R3 and R4 (0.482, 0.450 vs 0.488) and the element trigram decoder passes every rung (R1 0.584, R2 0.581, R3 0.544, R4 0.513, R5 0.275 vs 0.262) [Run RUN0DCMW72CK8Y3]. https://mysteriesdept.com/r/RUN0DCMW72CK8Y3
Private beta Downloads are for beta members

We're in a private beta while we get things right. Everything here is free to read; downloading datasets, sources and code is open to members for now.

It takes a couple of minutes. We'll reply by email.