Paper I - the text mechanism
A Workshop Cipher: a Generative Model Reproducing the Statics and Dynamics of the Voynich Manuscript Text
Updated 20.07.2026
Preprint archived on Zenodo: doi:10.5281/zenodo.21761191
Author: Vitaly Averyanov (independent researcher). AI assistance disclosure: statistical analyses and simulations were implemented with the assistance of Claude (Anthropic); all hypotheses, criteria and conclusions were pre-registered and verified by the author.
Abstract
The text of the Voynich Manuscript (Beinecke MS 408) combines language-like statistics (Zipf law, vowel-consonant alternation, topic structure) with properties no natural language shows, most notably a conditional character entropy h2 ≈ 2.1-2.3, below every corpus of our battery and paired with a type-token ratio that no low-entropy language of that battery attains. Greshko (Cryptologia, 2025) demonstrated that a verbose homophonic table cipher ("Naibbe") reproduces much of the static profile; Parisel (2026) introduced four dynamic word-boundary signatures that both his own generators and a Cardan grille fail jointly. We present a generative model that, to our knowledge for the first time, reproduces the static profile, the homophone "twin" layer, the serial clustering of homophones within lines, and all four Parisel boundary signatures simultaneously, with four interpretable parameters. The model is a Naibbe-class cipher (six balanced substitution tables, units of one or two plaintext letters) operated with three scribal habits: serial reuse of recent units within a line (λ ≈ 0.22), a weak graphotactic ("sandhi") choice among candidate encodings at word boundaries (K = 2), and moderate spelling noise (ε ≈ 0.1). We further show that (i) homophone twin distributions are invariant across the five scribal hands, identifying the apparatus as shared workshop technology rather than individual habit; (ii) any skew of table choice - global or per-unit - degrades the fit, so the card-deck randomization of the historical reconstruction is functionally necessary; (iii) the boundary-choice preferences can be derived from intra-word glyph transition statistics alone, removing the last circular element of the model; and (iv) a plaintext-genre gradient (encyclopedic prose → agricultural receptary → medical antidotarium) moves serial clustering and twin rate together, implying that the manuscript's high seriality at low twin rate is procedural, not textual. Two discriminative controls complete the case: a self-citation ("meaningless text") generator fitted to the static profile remains separable on five of six preregistered windows, and the manuscript's long-range burstiness is reproduced not by plaintext topicality but by section-level table dialects (three of the six tables per section) under a light anti-repetition discipline (1.79x against 1.75x, adjacent repeats at 0.94%). The model is a mechanism, not a decipherment: the key is not recovered - and remains unrecovered even when the model itself is inverted before attack (collapsing the serial-reuse layer removes most of the raw stream's anti-signal, -1.40 to -0.14 bits, yet exposes no plaintext structure beneath) - and we argue on capacity grounds what the text can and cannot encode.
Keywords: Voynich manuscript, homophonic cipher, verbose cipher, generative model, entropy, Cryptologia
1. Introduction
The Voynich Manuscript (Beinecke MS 408) is a vellum codex radiocarbon-dated to 1404-1438, written in an otherwise unattested script and never convincingly read. Its ~38,000 running word-tokens have supported a century of contradictory claims precisely because they are statistically two-faced. On one side the text behaves like language: word frequencies follow Zipf's law; glyphs partition into vowel-like and consonant-like classes with natural alternation; content words cluster by section; and the long-range "burstiness" of informative words (Montemurro and Zanette 2013) replicates on the ZL transliteration (dispersion 1.75x over a shuffled baseline) - a signal commonly read as topical information, though, as we show below, its origin under a verbose cipher is subtler. On the other side, no natural language matches its conditional character entropy: h2 ≈ 2.1-2.3 on the Voynich versus ≈ 3.0-3.2 for Latin and every other language we and others have measured (cf. Bowern and Lindemann 2021). The comparison must be stated exactly, because an extended battery of syllable-writing orthographies narrows the gap without closing it: the closest natural text in its own orthography is Khasi at h2 = 2.50 (2.26 for ZL at a matched budget), and texts stripped of part of their orthographic distinctions - Vietnamese without diacritics - reach 2.11-2.28. What no natural corpus reproduces is the combination: the low-entropy languages are lexically poor (Khasi TTR 0.035, 144 word forms for 80% of tokens), the lexically rich ones are high in entropy (Santali 0.196 at h2 = 3.20; Latin 0.423 at 3.22), whereas the manuscript sits in the empty corner with h2 = 2.26 at TTR 0.230 and 1186 forms. Verbose homophony produces both traits at once. Old Occitan - long proposed as the language of the manuscript's month marginalia, though that attribution is disputed, most present opinion reads the diagnostic forms as northern French, and the diagnostic readings themselves have never been audited against dated charter corpora - is no exception (h2 = 3.47 on the Flamenca romance versus 3.49 for our Latin recipe corpus), so nothing below hinges on the choice of Romance plaintext. Equally un-language-like is the lexicon's concentration: some fifty-odd morphological cores account for 80% of all tokens, where a comparable Latin sample needs over six hundred.
The literature has tended to resolve this tension by discarding half of the evidence. "Natural language" proposals must explain away the entropy and the closed lexicon; "meaningless artifact" proposals - table-and-grille generation (Rugg 2004) or self-citation (Timm and Schinner 2020) - we test directly below: a self-citation generator fitted to the static profile remains separable from the manuscript on five of six preregistered discriminative windows. A third class of explanation dissolves the dichotomy: a verbose homophonic cipher, in which short plaintext units are replaced by whole ciphertext words drawn from a small set of tables, mechanically produces low h2, short "words", a closed lexicon, and Zipfian statistics from any meaningful source text. Greshko (2025) gave this class its first fully specified, historically costumed representative - the "Naibbe" cipher, six balanced substitution tables addressed by a 78-card deck - and demonstrated that it reproduces the static profile of the manuscript.
Statics, however, are no longer the bar. Parisel (2026) introduced four dynamic signatures of the word boundary - among them a cross-boundary mutual information excess (ΔMI = +0.165 when uncertain spaces are glued) and a strongly non-uniform boundary bigram profile (E→S concentration 79.8%, the y→q lift 1.77) - and showed that neither his own slot generator nor a Cardan grille meets them jointly. Beyond Parisel's signatures, at least two further layers of the text demand explanation. First, the manuscript contains distributionally interchangeable word pairs ("twins": e.g., ol ~ chey), pairs of unrelated spelling whose contexts are nearly identical - the fingerprint of homophony - and these twins cluster within lines far above chance (co-occurrence ratio R = 1.87). Second, the manuscript was written by five scribal hands (Davis 2020) in two lexical dialects (Currier 1976), and any serious model must say what is shared and what varies across them.
This paper presents, to our knowledge, the first generative model that meets all of these constraints simultaneously - the static profile, the twin layer and its two-component A/B structure, the in-line seriality, and all four Parisel signatures - with four interpretable parameters on top of Greshko's cipher: a serial reuse rate λ ≈ 0.22, a graphotactic choice depth K = 2, a spelling-noise rate ε ≈ 0.1, and the plaintext genre. Three further results close the model's remaining degrees of freedom. A plaintext-genre gradient (Pliny → Cato → Antidotarium Nicolai) moves seriality and twin rate together and thus cannot produce the manuscript's combination of high R with low twin rate: the seriality is procedural, a scribal habit, not a property of the source text. Any deviation from uniform table randomization - global skew or per-unit habit - degrades every metric at once, so the randomizing device is functionally necessary, not decorative. And the boundary-choice preferences can be recovered from intra-word glyph transitions alone, so the last data-circular component of the model is eliminated. Finally, we show that the twin distributions are invariant across the five hands - more similar than frequency-matched controls - which identifies the apparatus as shared workshop equipment and grounds the model codicologically. Section 2 describes data and reproducibility; Section 3 the target statistics; Section 4 the model; Section 5 the results; Section 6 discusses implications and limits.
2. Data and reproducibility
- Transliteration: ZL3b-n (Zandbergen-Landini, IVTFF 2.0), 5389 loci, 37712 running tokens
; robustness checks against IT2a-n (Takahashi). Uncertain spaces (commas) glued for boundary statistics, following Parisel.
- Hands: $H per Lisa Fagin Davis; languages: Currier A/B per $L.
- Plaintext corpora: Pliny (Natural History, normalized), Cato (De Agri Cultura, 15.7k words),
Antidotarium Nicolai (ed. van den Berg 1917, 152k letters).
- Naibbe tables and weights: Greshko 2025 (28:14:11:11:7:7 deck; unigram/prefix/suffix × 23
letters; respacing 17/36).
- All analyses are Python scripts with fixed seeds; every number in this paper maps to a
script and line (appendix table paper1_numbers.md). Code and derived corpora at [repo URL].
3. Target statistics
Table 1 (targets, ZL): tokens 37712; Zipf slope ≈ -0.78; h2(char) 2.08, h2(glyph) 2.22, boundary-set h2 2.17; mean word length 4.42 glyphs; TTR (8k sample) 0.30; c80 = 51 (words covering 80%); adjacent exact repeats 0.94%; twin rate among top-120 words 1.2% (42 "foreign" pairs at Levenshtein ≥ 3); twin co-occurrence ratio R = 1.87; ΔMI (glued) = +0.165; y→q boundary lift 1.77; E→S = 79.8%. Line-position effects (LAAFU) reproduced elsewhere.
4. The model

4.1 Base cipher (Naibbe-class): plaintext letter stream → units of 1 letter (p = 17/36) or 2 letters; unit → word via unigram table (1-letter) or prefix(letter1)+suffix(letter2) tables; table drawn per word part from the 78-card deck weights.
4.2 Serial reuse: with probability λ a token repeats a unit already used in the current line (draw from the line's used-unit list) instead of consuming the next plaintext unit. λ* ≈ 0.22 matches R = 1.80-1.87 without damaging statics.
4.3 Graphotactic choice ("sandhi"): the scribe sees K candidate encodings (independent deck draws) and picks the one whose initial glyph best continues the previous word's final glyph, by a preference table of glyph-transition lifts. K = 2 reproduces ΔMI = +0.148 and y→q = 1.72 without tuning; K = 3 overshoots. Crucially the preference table can be estimated from intra-word transitions only (Spearman 0.654 vs boundary lifts; generator with intra-word-only scores: ΔMI = +0.131, y→q = 1.44, E→S = 78.5%) - no boundary data needed; preferences also transfer across Currier A→B (corr 0.75).
4.4 Spelling noise: confusion pairs (o/a, ch/sh, r/s, e/ee, i/ii) applied at rate ε ≈ 0.1; lowers twin and repeat rates toward targets at bounded cost elsewhere.
5. Results
5.1 Statics: the base cipher on Pliny passes h1/h2/len/TTR/word-template and the closed-lexicon concentration ("cores covering 80% of tokens": Voynich 55, Naibbe 60, source Latin 641) - the discriminator no natural-language control reproduces (Latin/Finnish/English: 225-1357).
5.2 The twin layer: distributionally interchangeable word pairs (context cosine above a threshold calibrated on Naibbe ground truth: 95th percentile of random pairs, cos > 0.767, AUC 0.679) exist in the VM at 1.2% of top-120 pairs (42 foreign pairs; Latin control: 0). The twin graph splits into exactly two components along Currier A/B. Hand invariance: across the five Davis hands, twin usage distributions are MORE similar than frequency-matched controls (JSD 0.050 vs 0.163, inverted permutation p < 0.001): the homophone sets are shared workshop equipment.
5.3 Seriality: VM twins cluster within lines (R = 1.87 vs Naibbe 1.01); reuse λ = 0.22 reproduces R while preserving statics.
5.4 Boundary dynamics: replication of Parisel's Sig1-Sig4 on ZL; decomposition of ΔMI (commas ~16%, y→q ~16%, broad remainder); rejection of context-dependent spacing (recall 0.15) and "lazy card" table persistence (Δ ≤ 0.026); sandhi-K2 closes the layer (K sweep: ΔMI = +0.002/+0.148/+0.350/+0.721 for K = 1/2/3/6, target +0.165; Fig. 4); non-circularity via A→B transfer and intra-word derivation. #53 adds the 2025 directionality signature: ZL Δ2 = +0.1007 (chars) / +0.0774 (glyphs) vs Latin −0.1005, shuffles ≈ 0; within-word character shuffling removes 97-100% of the signal; generator/real = 0.90x/0.98x at n = 2 and 0.28x at n = 3.

5.5 Inversion results (Fig. 3): reducing table count raises the twin rate (T = 2/3/4/6 → 5.0/5.0/4.1/2.3%) and collapses TTR (0.11→0.33) and h2; skewing the deck (weights squared/cubed) is worse still (twins 6.1/7.2%). Per-unit habitual table choice (p_hab sweep) likewise degrades everything (twins 2.1→4.8%, TTR 0.33→0.07, ΔMI dies). Uniform randomization is functionally necessary: it dilutes homophone-variant frequencies below distributional-detector thresholds. The medieval device (card deck) is not a reconstruction convenience but a working component.

5.6 Plaintext genre (Fig. 2): across Pliny → Cato → Antidotarium, R rises 1.70 → 1.89 → 2.09 and twin rate rises 2.7% → 4.0% → 5.6% together; the VM point (R 1.87, twins 1.2%) does not lie on this axis. Seriality is procedural (scribal reuse), not a property of the plaintext; the plaintext is moderately formulaic.

6. Discussion
A mechanism, not a decipherment. The model identifies the class of process that wrote the manuscript: a verbose homophonic table cipher operated serially, with graphotactic choice among candidate encodings and ordinary spelling noise. It does not recover the key. Greshko's tables are stand-ins for a lost original; our label-capacity analysis (Paper 2) suggests the true apparatus offered roughly eight effective variants per word part rather than six. Nothing in this paper licenses a reading of any Voynich word, and we make none.
A workshop, not an individual. The strongest new empirical fact is hand-invariance: across the five Davis hands, the usage distributions of homophone twins are more alike than those of frequency-matched control pairs (JSD 0.050 vs 0.163, inverted permutation p < 0.001). Individual habit would produce the opposite. The natural reading is that the physical apparatus - the tables and the randomizer - was common property, and the scribes were operators of a shared technology: a workshop. This dovetails with Davis's codicology (quires distributed among scribes) and explains an old puzzle: why five hands produce one "language" whose statistics barely drift. It also raises the historical stakes: a several-hundred-page book enciphered by a team implies an institutional customer and a sustained purpose, not a lone eccentric.
Randomization as function. Both inversion results converge on one conclusion: the uniform, full-deck randomization of table choice is what suppresses distributional twins, because it dilutes each variant's frequency below detectability; any concentration - capacity cuts, global skew, or per-unit habit - re-exposes them. In effect the card deck protects the cipher against precisely the distributional attack we mounted. We do not suggest the fifteenth-century designers reasoned in these terms; but the practice they adopted has this property, and it places the manuscript within a documented early-modern drift toward homophony as a defense against frequency analysis - implemented, unusually, with a gaming randomizer.
Capacity and content. One ciphertext word carries one to two plaintext letters (mixture fit: text words average ≈ 1.2-1.5 letters). The entire manuscript therefore encodes on the order of 45-55 thousand plaintext letters - roughly nine to eleven thousand Latin words, a short book stretched fourfold. The genre gradient bounds the source: more repetitive than encyclopedic prose, less than a hard receptary; a moderately formulaic technical text is consistent with everything we measure. This capacity arithmetic also disciplines speculation: the manuscript cannot contain the sprawling continuous treatise its page count suggests.
Against the alternatives. We put the strongest meaningless-generation account to a direct discriminative test. A parametric self-citation generator of the Timm-Schinner class was fitted on the static profile only (word length, h2, type-token ratio, adjacent repetition) and judged on six preregistered held-out windows; it fails five. Three failures are structural absences that no parameter setting repairs: the generator produces zero spelling-distant context twins against the manuscript's 42 (small mutations cannot mimic many-to-one homophony), its vocabulary does not collapse into a closed core table (c80 = 115 against 51), and it shows no boundary MI excess (+0.014 against +0.197). Two failures are overshoots: self-citation is too bursty (dispersion 5.38x over shuffle against 1.75x) and too serial (R = 3.47 against 1.87), and damping the copying to cure the overshoots destroys the fitted statics - the same inversion that ruled out skewed tables. The burstiness result disciplines our own claims as well: under a verbose homophonic cipher, plaintext topicality does not survive into word-level burstiness (replacing the plaintext genre wholesale, section by section, leaves the ratio at 1.10x); what does reproduce it is section-level variation of the encoding apparatus. Restricting each section to a subset of three of the six tables, with a light scribal discipline against immediate word repetition (a single re-draw on collision - a component present in Greshko's original specification), lands on the manuscript's dispersion (1.79x against 1.75x) with adjacent repeats at the manuscript's own 0.94% and every other window intact. The manuscript's burstiness is therefore best read as a trace of sectioned production - the workshop wrote section by section in a drifting table dialect, consistent with the hand-invariant twin statistics and the Currier A/B lexicons; the dialect is moreover two-level - pages of the same physical quire are measurably closer even within a section (JSD, permutation p < 0.0005 in both directions), so production ran in quire batches - and not, by itself, as evidence of meaning; the case for real content rests on the label inventories and the external blind anchor (Paper II), not on dispersion. Grille generation fails the physical layout test as well (gallows-gap dispersion indistinguishable from chance, against the grille's predictions) and the boundary signatures. Two further mechanism classes fall to the same fitted-statics, held-out-windows battery: a dictionary-compressor reconstruction of the "compressed stream" proposal fails all six windows (boundary MI 0.004, burstiness 0.99x, and a twin overshoot of 20.8% against the manuscript's 1.2% - dictionary tokens are context-generic), and Rugg-style table-and-grille generation, even built from the manuscript's own word components, fails four of six (zero spelling-distant twins, collapsed lexicon). Every meaningless-mechanism class on record is now separable from the manuscript. Anagram-class readings (letter or word reordering) face a quantitative bar of their own: the directed word-bigram asymmetry that any reordering would erase is present and highly significant in the Voynich (1.67x its shuffled baseline, p < 0.0005), yet at half to a third of the strength of every natural language we measured (Latin 3.2x, English 4.3x, Finnish 4.0x) - sequential order is real but diluted, exactly as many-to-one homophony predicts. The newest directional signature falls the same way. Parisel (2025) showed with n-gram perplexity asymmetry that Voynichese is backward-optimized - read right-to-left, the character stream is measurably more predictable - and cautiously listed a genuine RTL reading among the interpretations. We replicate the core signal (Δ2 = +0.10 on ZL, with Latin mirror-opposite at −0.10 and shuffle controls at zero) and localize it: the measure is word-internal by construction, and shuffling characters within words removes 97-100% of it, so what it detects is a rigid word ending against a free beginning - slot grammar, not reading direction. The workshop model, enciphering left-to-right Latin, reproduces the bigram-level signature at 0.90-0.98x of the real value with no added parameters; at n >= 3 it undershoots (0.28x), an open point we record rather than fit: the manuscript's word-internal directional structure runs deeper than the two-slot prefix-plus-suffix words of the Naibbe tables. Natural-language readings, conversely, still owe an account of h2 and the closed lexicon that does not reduce to precisely the verbose cipher defended here.
An audit of our own class. Morgallet (2026) audits the Naibbe architecture directly - the same 3 x 6 x 23 code space our model is built on - with a matched null witness for every run, held-out folios and an explicit multiplicity correction. His principal negative result does not bear on our claims but confirms the way we argue: the rank-1 co-occurrence signature between prefix and suffix families is real and generalizes out of sample, yet it is not specific, since a self-citation generator with neither language nor key reproduces it at the same strength (his figures: z = 12.84 and 10.35 on the suffix side against 12.96 in the manuscript). We never rested on that signature, and the reason is the one his audit demonstrates: no single signature identifies a mechanism, which is why we score candidates on a joint battery. His separating statistic is a sharper external measurement of a limit we report ourselves - the growth of the sub-unit inventory, n^0.62 in the manuscript, passing the architectural ceiling of 138 glyphs per side within a single hand, whereas five different Naibbe keys saturate at it. A key per scribe does not repair that, and neither does our stack; we record this axis, and two further axes of his, in the Limitations.
A constraint that no mechanism on record satisfies. Withdrawing the inter-word claims above leaves open what, if anything, separates the manuscript from the published field at the level of relations between words. One quantity does, and it is not ours: the positional excess of word form within the line, defined and implemented by Morgallet (2026) as the excess similarity of a word to the words occupying the same position in the six preceding lines over its similarity to words in other positions. At a common budget of 10 798 tokens the manuscript gives +0.0118 (Currier A) and +0.0080 (B), and shuffling words within lines removes it (-0.0057), so what is measured is position. Of fourteen published mechanisms - the twelve of De Stefano (2026) regenerated from his own code, plus two later reconstructions (Carvalho 2026, Tlepkali 2026) - run with five seeds each at that budget, not one reaches the level: self-citation gives +0.0017 (one seed of five inside a 50-150% window), an order-3 copying chain +0.0026 (one of five), and the remaining twelve lie between -0.0037 and +0.0005, the periodic grille that overshot the line-opener effect by 8.6 times here carrying the opposite sign. Our own stack does not carry it either (+0.0007, 7% of the target), and we count that among the Limitations. The one process that does reach the level is self-citation with an explicit positional preference, and it overshoots by a factor of 20.7 and is separated by a second control: shuffling whole lines within a folio leaves the manuscript at 0.96-1.00 of its effect and that generator at 0.85-0.88, because what the generator has is vertical copying rather than position within the line. We therefore state the result as a constraint on the class of explanations rather than as a signature of our own model: a candidate process must produce a positional excess of about +0.008 to +0.012 which survives line shuffling at >= 0.96 at equal budget, and of the fifteen processes measured - fourteen published and our own - none does. Two qualifications travel with the number. The retention threshold is budget-dependent: on the full Currier B corpus the manuscript itself retains only 0.847, so the comparison is admissible only at equal budget. And the corresponding measure at the line-initial position does not discriminate (0.683 for the manuscript against 0.709-0.789 for self-citation) and is not used.
Falsifiability and next steps. The model makes exposed predictions: any future transliteration should preserve the twin bipartition and hand-invariance; enciphering a genuine medieval formulary through the model should land within tolerance on all metrics jointly; and the zodiac ring labels, if they are two-letter sigla as capacity suggests, should show the two-part homophonic signature they in fact show (Paper 2). What the model cannot do from inside is name the plaintext: that requires an external crib. Our systematic sweep of published per-degree name lists (degree images, syllabic calendars, sanctorals, paranatellonta, star catalogues) has so far returned pre-registered rejections - including one instructive false positive killed by an anachronism control - and this negative program is reported separately.
Concurrent structural work. Word-boundary coupling is an old observation, not a new one. Sazonov (2003) already tabulated the dependency between a word's final glyph and the next word's initial and named it a "phonetical dependency", by explicit analogy with the Arabic article's sandhi; Parisel (2026) isolates it as his third signature, Rozanova and Temerev (2026) measure a glyph mutual information of about 0.2 bits across token boundaries, and the same figure is being recomputed informally on discussion forums. Our own value on ZL is 0.205 bits (0.187 on the Takahashi transliteration), so the observation itself is not in dispute and is not ours. What is at issue is its cause, and on that the present paper takes a position that the descriptive literature leaves open: the coupling arises from selection among candidate encodings, not from modification of an already chosen one. The modification account - a scribe adjusting the code he has just drawn - was tested and rejected (gain <= 0.026); minimal selection, two draws per token, reproduces the target without separate tuning. A parallel slot-grammar program deposited by Bozzard (2026) reaches a compatible description of word structure from a different direction, including a suffix-to-prefix preference of comparable magnitude, and likewise declines to propose readings; we note the convergence and the independence of the two efforts. A caveat in the other direction is equally due: boundary coupling is not by itself un-linguistic. In Brabantian the masculine article alternates on the following word's initial sound alone (den aap but de citroen), so a living dialect produces exactly this kind of edge effect. What distinguishes the manuscript is not the existence of the coupling but its magnitude and its indifference to the rest of the word - and, in our account, that a minimal selection among candidate encodings reproduces it while a modification rule does not.
Neighbouring reconstructions. A parallel line of work models the recoverability of cross-modal signal under exactly the class of cipher reconstructed here. Ingelmo (2026) reports that recoverability collapses with the degree of homophony while verbosity slightly assists it: simulated Mantel rho falls from 0.195 at homophony 1 to 0.059 at homophony 6 and 0.034 at homophony 10. Our own reconstruction infers six balanced tables, which places the manuscript in the regime where a name-bearing channel between illustration and text is essentially unrecoverable at the sample sizes available; this is consistent with, and independently predicts, the negative results reported for that channel (Paper 2). A materially explicit variant of the present idea is given by Izumo (2026), whose 24x24 shelf-and-tablet automaton reproduces selected low-order structure of Herbal A, with 77.05% of generated tokens matching attested forms; the distinction from the present work lies in the breadth of the target, since our battery requires twin rate, foreign-twin count, serial reuse, boundary mutual information, burstiness and cross-hand homophony to be matched simultaneously. Matsumoto (2026) independently arrives at a three-slot prefix-root-suffix architecture covering a large majority of the corpus, which agrees with the morphological description used here; the attendant language attribution, however, rests on a permutation null alone, which our own control experiments show to be insufficient for claims of readability.
Two further reconstructions appeared while this paper was under review, and both intersect our results. Gropper (2026) reports the line-opener constraint independently, on the same two transliterations and with the same order of magnitude (z ~ 24-26); our measurement of it, together with its controls and the model comparison recorded in the Limitations below, was preregistered and computed before that release, and we note the convergence rather than a priority. De Stefano (2026) reaches our own entropy-productivity conclusion from the opposite direction: scanning a battery of single-component generators, he finds none that is simultaneously low in conditional entropy and high in lexical productivity, and infers that two coupled components are required - which is what the mechanism defended here supplies. His battery, however, contains no verbose mechanism, and verbosity by itself moves the h2 of Latin from 3.22 to about 2.1 at an unchanged type-token ratio (our generator reaches 2.17); the frontier he draws is therefore crossed by verbosity as well as by the word formation on a manifold that he proposes. His diagnostics also supply one of the shortfalls we report below, and his published mechanisms serve throughout the Limitations as the external field against which our own is scored.
The deck as a lexical description. Two external tests bear on whether a verbose deck is a workable description of Voynichese words at all, independently of whether it generates the right statistics. On the description-length scale introduced by Lanzini (2025) - the number of bits needed to store the manuscript once word forms are cut into chunks of a given grammar - our six tables, taken simply as a chunk inventory, score 494 444 bits per unit of coverage against 487 922 for the best published slot grammar and 588 626 for the widely used Zattera slots, with 352 chunks against 766, and better than any random dictionary of the same size and length profile (545 946-743 975). Implementation parity with that author's own dump was taken bit for bit (486 946 on his LOOP-Lay grammar). Separately, Zandbergen (2025) objects that a Naibbe-style scheme cannot work in practice because a word would split into parts in too many ways for a keyed reader to resolve. On our actual deck it does not: over the covered part of the corpus the median number of admissible splits is one, the mean number of distinct plaintext readings per token is 1.56, the maximum is three, and 50.8% of tokens admit a single reading; a random dictionary of the same size is no less ambiguous while covering three to eight times less text. The difficulty of the class is therefore not the split but the tail: the rule covers 77.7% of tokens and only 36.4% of types, which is the limitation recorded below.
7. Limitations
- Model of mechanism class, not the key; tables are Greshko's stand-ins (effective variant
count per part estimated ~8 from one/both part-sharing ratios in labels - Paper 2).
- Simultaneous fit of all metrics achieved only approximately (best points 5-6/7 targets);
residual twin gap (2.1% vs 1.2%) within noise/sample-size effects.
- Transliteration dependence bounded by ZL/IT robustness checks (Jaccard top-50 0.89).
- Long-range structure is not reproduced. Scored with an independent, externally authored
implementation of the word-level Taylor statistic (Kobayashi and Tanaka-Ishii 2018; code from Yoshida 2026, Apache-2.0, unmodified), the manuscript gives an exponent of 0.672 on the Takahashi paragraphs (0.669 on ZL), whereas our generator gives 0.540 - below the manuscript and below Yoshida's own best generator (0.584). The shortfall is systematic across all five pre-set window widths (0.555, 0.549, 0.540, 0.546 and 0.516) and does not close as the window grows. The measure is not at fault: formulaic Cato, our genre control, scores 0.654, close to the manuscript. Together with the two-cluster overshoot of the Ou battery (1.77 against an interval of [1.05, 1.56]), this is a second independent indication that the model captures line-level and locally serial composition but not the organisation of the text at the scale of sections and quires. We report the statistic as computed by that external tool precisely because it was neither written nor tuned by us. Two qualifications are due, and both come from the author of that tool. First, the claim that the manuscript's exponent lies above the human range has since been withdrawn: scoring all 8008 length-matched six-work mosaics gives a median of 0.700 and a 95% range of 0.669-0.739, with 7206 of them at least as large as the manuscript's value. Second, that author's own strongest audited null undershoots with the same sign and a comparable magnitude (0.584 against 0.678) at every one of the five widths. The gap we report is therefore real but not peculiar to our model: on present evidence it constrains the whole class of non-semantic generators, ours among them. We have since put that reading to a wider test (#129/#130): twelve published generative mechanisms (De Stefano 2026), regenerated from their author's own code at parity with his reported input (4371 lines, 35 387 words), plus an asemic stream generator (Lanzini 2025), were scored on a common budget of 33 751 tokens against the manuscript's 0.645 on the same stand. Not one of the thirteen reaches that value: the only mechanism above it, parametric self-citation, overshoots to 0.892, and our own stack (0.562) sits in the middle of the field. On this axis we are neither better nor worse than the published alternatives, and we say so.
- Adjacent word lengths do not attract in the generator. Bozzard (2026) objects that
verbose homophonic systems fail the lag-1 autocorrelation of word length, reporting +0.160 for the manuscript. The objection holds against our model, though the statistic needs care: a raw within-line autocorrelation carries a corpus-specific baseline, because lines differ in mean word length and any two positions in the same line therefore covary. Shuffling tokens within lines leaves +0.075 on the manuscript, so roughly half of a raw figure of that size is line composition rather than adjacency. Compared against its own shuffled baseline the manuscript shows a genuine excess of +0.098 (raw) and +0.116 (line-centred), whereas our generator shows none at all (-0.001 and +0.001); Naibbe without sandhi gives -0.027 and formulaic Cato -0.065. Unlike the two shortfalls above this is a strictly local (lag-1) property, and we have no account of it: neither serial reuse nor boundary selection makes a long word likelier to follow a long one. One qualification, from our own follow-up , limits what the axis can be used for. A character-level order-2 Markov chain, which has no representation of words or lines at all, reproduces the manuscript's line-centred excess almost exactly (+0.119 against +0.122 on a common budget), and three further mechanisms of the same battery carry it as well (+0.087, +0.069, +0.526). The autocorrelation is therefore a genuine shortfall of our generator, but it is not by itself evidence that neighbouring words are coupled; we use it only as one axis of a combination, never as a standalone signature.
- Consecutive lines do not repel in the generator. Within a page, the opening glyph of a
line and that of the next are not independent: consecutive lines begin with the same glyph in 6.9% of pairs against 13.5% under a within-page permutation of the openers, and the mutual information between successive openers is 0.168 bits against 0.060 expected (z = +23.9, p = 0.0001, 10 000 permutations, 3922 pairs). The effect replicates on the independent Takahashi transliteration (0.182 against 0.067, z = +24.2), survives the removal of paragraph-initial lines (z = +22.2), and is specific to openers: the same test on line-final glyphs gives z = +1.2 (p = 0.13). It is not an artefact of the procedure - Cato cut into pseudo-lines of the manuscript's line lengths gives z = +1.0 - and the stand is sensitive: implanting the constraint into generated text at a rate of 0.05 is detected in 20 draws out of 20, with no false positive at a rate of zero. Our generator reproduces 5% of the effect (+0.005 against +0.108 bits above its own null). The failure is structural rather than accidental: boundary selection is reset at every line start and the sectional dialect holds the table weights constant within a block, so nothing in the model couples one line to the next. Read most economically, the avoidance is a scribal discipline of the vertical, of the same family as line-as-unit behaviour, rather than a property of the plaintext; we report it as a signature the model does not carry. One qualification, from our own follow-up after submission, limits the axis in the same way as the one above: regenerating the published battery with five seeds per mechanism, a parametric self-citation generator (Timm & Schinner 2020) reproduces the excess on all five seeds (+0.090 against the manuscript's +0.109) and a periodic-grille mechanism overshoots it by a factor of 8.6. The repulsion is therefore a shortfall of our generator, not a property that separates the manuscript from simpler processes.
- The shape of vocabulary growth is wrong. The
type-token comparisons of Section 3 are taken at a fixed budget of 8000 tokens, where the generator gives 0.304 against the manuscript's 0.287; the two curves cross at N ~ 19 561 tokens, and at the full 34 175 the model underproduces (0.170 against 0.191). The stable difference is not the level but the form. The manuscript's hapax fraction is almost invariant to sample size (0.723 / 0.695 / 0.670 / 0.677 / 0.668 from 2k to 32k, a slope in log N of -0.019), whereas our generator's collapses (0.743 / 0.701 / 0.627 / 0.541 / 0.414, slope -0.110 over three seeds). The flatness is not an anomaly of the manuscript - nine natural-language corpora of our own battery are no steeper - so on this measure the manuscript behaves like a language and our model does not; nor is the defect a property of the mechanism class, since of eighteen published mechanisms scored on the same stand - a common budget with points at 2k, 4k, 8k and 16k tokens, on which the manuscript gives -0.024 and -0.020 when its own corpus is parsed by the external tool - thirteen stay inside the language cloud (whose steepest member, Persian, is at -0.078), and only a character-level Markov chain (-0.080), Naibbe without our additions (-0.119) and our own stack (-0.098; -0.085 with spelling noise at the declared rate) lie outside it. The same limit appears on a second, externally defined axis: the correlation between a word's log-frequency and its number of edit-distance-1 neighbours is 0.657 in the manuscript and 0.300 in the generator (De Stefano 2026), with implementation parity taken on that author's corpus (0.644 against his 0.641), although the profile of neighbour distances itself is reproduced (total variation 0.141). We have measured how far this is repairable inside the class: making spelling variation frequency-dependent, so that only units outside the frequency core mutate, preserves burstiness and repairs lexical concentration, but moves the hapax slope only to -0.082 and passes full acceptance in 3 of 10 seeds. On a description-length scale the deck itself is not the bottleneck - as a chunk inventory our six tables describe the manuscript about as compactly as the best published slot grammar (see Discussion) - but the assembly rule is: one unigram, or one prefix-plus-suffix pair, covers 77.7% of tokens and only 36.4% of types. The finite vocabulary source is thus located precisely, in the number of units per word rather than in the tables, and enlarging it would mean leaving the Naibbe class.
- Inter-word dependencies are not carried. Three measured
properties link a word to its neighbour, and the model contains none of them. First, after words beginning with sh the next word's root begins with a gallows glyph in 44.2% of cases against 26.7% otherwise (difference +0.175 against a null of +0.075; z = +12.5, p = 0.0001, 25 229 triples, 5626 strata fixing both boundary glyphs and the page). The feature control is clean - the same test on ch gives z = -1.6 - and our generator shows nothing (+0.024, z = +0.02). We wrote at submission that none of thirteen published mechanisms reproduces the association on the same stand, and we withdraw that claim: regenerating the control corpora with five random seeds per mechanism shows that the association itself is reproduced by the order-2 character chain on every seed (z = +10.8 to +12.0 against +12.3 in the manuscript), while the feature control that separated us sits at our threshold of |z| = 3 and falls on either side of it with the seed, so that the chain "carries" the effect on three seeds out of five. Second, the backward mutual information of qo- is in excess by +0.0118 (z = +9.6) in the manuscript against +0.0031 in the generator - 26% of the effect, below our own 50% reproduction threshold; the direction of the prefix dependency is likewise reproduced on all five seeds by that same chain and by a coupled word-formation model. Third, and deliberately not claimed, the suppression of the final -y after ch- (-0.045, z = -3.3): the same character chain and one further mechanism reproduce it with the manuscript's sign and clean controls, so an effect of that size across a word boundary does not require any inter-word structure. All three quantities remain measured properties of the manuscript which our generator does not reproduce - that is the content of this section - but none of them discriminates between generative mechanisms, and we therefore put none of them forward as evidence of inter-word structure. The seed-level numbers are in the replication package.
- Three axes of an external audit of our own class are not carried either.
Morgallet (2026) audits the Naibbe architecture itself - the same 3 x 6 x 23 code space - with a matched null witness for every run, folio-level held-out sets and an explicit multiplicity correction, and reports three properties of the manuscript that a deck of fixed tables drawn independently does not produce. We ran all three through our full stack with his code, unmodified, on our own generated texts, at his budget and with five seeds; parity on the manuscript reproduced his published values to the last printed digit (Currier B: beta = 0.618, locality +0.0246, positional excess +0.0104), and bare Naibbe served as the positive control (beta = 0.224, locality +0.0018). Our stack carries none of them on any seed. The growth exponent of the sub-unit inventory is 0.236 +/- 0.005 against the manuscript's 0.618 (38%); this is the same finite-vocabulary limit reported two items above, measured from outside and more sharply, and it is a property of the class rather than of our particular key, since five different Naibbe keys saturate at the architectural ceiling of 138 glyphs per side (beta = 0.05) whereas the manuscript passes that ceiling within a single hand. The locality of word forms within a page is +0.0081 +/- 0.0011 against +0.0246 (33%), of which the sectional dialect supplies about a third and serial reuse nothing at all (-0.0004): reuse re-encodes its units afresh, so the forms diverge. This also disciplines our own vocabulary: the serial behaviour we do reproduce is the clustering of homophone twins, not the locality of word forms, and the two should not be conflated. The positional excess of word form within the line is +0.0007 +/- 0.0016 against +0.0104 (7%), and the same measure at the line-initial position is -0.0013 against +0.0326; the first of these is discussed in Section 6 as a constraint that no mechanism on record satisfies, our own included.
- Boundary coupling is reproduced only in part. Measured as absolute mutual information in
bits, the manuscript gives 0.205 and the full stack 0.098 - 48% of the effect - against 0.007 for the same tables without boundary selection and 0.052 for Latin. Selection thus supplies most of what is there, but not all of it. The hybrid without the sectional dialect came closer in earlier tests, which suggests that restricting each section to a subset of the tables narrows the candidate set and weakens the very selection it is meant to coexist with; we record this as an observation, not a tested claim.
8. Conclusion
The Voynich Manuscript's text can be produced, in all measured respects, by a historically plausible workshop process: six balanced homophonic tables addressed by a randomizer, a scribe who serially reuses what he has just written, prefers encodings that flow from the previous word's ending, and misspells at an ordinary rate - applied to a moderately formulaic source text. Every component of this description has now been either derived non-circularly from the manuscript itself or shown to be functionally necessary by inversion. The century-old dichotomy - unreadable language or elaborate hoax - is thus dissolved rather than decided: the manuscript is a meaningful text in a breakable-in-class but key-lost cipher. Reading it is no longer a problem of mechanism; it is a problem of finding one external referent.
Appendix A. Static profile (test #17, 8000-token samples)
| Corpus | len (glyphs) | h1 | h2 | TTR | glyph inv. | P+S coverage | cores@80% | no-core words |
|---|---|---|---|---|---|---|---|---|
| VOYNICH (ZL) | 4.45 | 3.86 | 2.23 | 0.33 | 30 | 72% | 55 | 41% |
| VOYNICH, Currier B | 4.60 | 3.84 | 2.04 | 0.30 | 27 | 74% | 41 | 40% |
| NAIBBE on Pliny | 4.81 | 3.85 | 2.08 | 0.33 | 23 | 76% | 60 | 31% |
| Latin (Pliny, source) | 5.80 | 3.99 | 3.22 | 0.45 | 25 | 49% | 641 | 15% |
(Additional natural-language controls for cores@80%: English 225, Latin 640, Finnish 1357 - none approaches the Voynich/Naibbe range; see test_code_scheme. These controls are equal-sized samples of a separate Latin corpus, hence 640 against the 641 of the Pliny source row above; likewise the mean word length here, 4.45, is measured on the 8000-token sample, against the corpus-wide target of 4.42 in Target statistics.)
Data and code availability / Acknowledgements / References
- Repo: [URL]. Corpora: naibbe tables (Greshko), cato/antidotarium/pliny normalizations.
Черновой список литературы (точные выходные данные сверить при вычитке):
- Greshko M.A. (2025). The Naibbe cipher: a substitution cipher that encrypts Latin
and Italian as Voynich Manuscript-like ciphertext. Cryptologia, 1-37. doi:10.1080/01611194.2025.2566408. Code/tables: github.com/greshko/naibbe-cipher.
- Parisel C. (2026). Evidence of Layered Positional and Directional
Constraints in the Voynich Manuscript: Implications for Cipher-Like Structure. arXiv:2604.19762.
- Parisel C. (2025). Directionality of the Voynich Script. arXiv:2509.10573.
- Bowern C., Lindemann L. (2021). The Linguistics of the Voynich Manuscript. Annu. Rev. Linguist. 7.
- Montemurro M.A., Zanette D.H. (2013). Keywords and Co-Occurrence Patterns in the Voynich
Manuscript: An Information-Theoretic Analysis. PLoS ONE 8(6).
- Davis L.F. (2020). How Many Glyphs and How Many Scribes? Digital Palaeography and the
Voynich Manuscript. Manuscript Studies 5(1).
- Currier P. (1976). Papers on the Voynich Manuscript [New Research on the Voynich Manuscript:
Proceedings of a Seminar].
- Zandbergen R. voynich.nu (транслитерация ZL, IVTFF).
- Takahashi T. (IT2a transliteration, via voynich.nu).
- Rugg G. (2004). An Elegant Hoax? A Possible Solution to the Voynich Manuscript. Cryptologia 28(1).
- Timm T., Schinner A. (2020). A possible generating algorithm of the Voynich manuscript.
Cryptologia 44(1).
- Pelling N. (2009). Voynich Cisioianus cipher crib...? ciphermysteries.com (17.12.2009).
- Toomer G.J. (1998). Ptolemy's Almagest.