Beinecke MS 408 · research log · October 2026

Trying to decode the Voynich manuscript

Four rounds of computational attempts used letter substitutions, cipher solvers, 46 languages and medieval texts. Every method was tested on hidden-key ciphers before it was trusted. This page summarises what was tested and what the manuscript turned out to be like.

No translation.No method that cracked a hidden test cipher found a message in the manuscript. No word, plant name or sentence of the Voynich script has been read. The work did establish, with controls, several properties that any future decipherment has to explain.

Five findings

0%

The share of next-word dependence the manuscript keeps between words two apart. Every one of 46 languages keeps 33–76%.

1.2×

How often a word is followed by itself, compared with chance. Every language avoids this (0.42× or less), except Indonesian, whose hyphenated doubled words were split into separate words.

k/t, ch/sh, e/ee

Words that differ by these glyphs occur in the same contexts, like interchangeable spellings. The preferred spelling drifts by section.

4 glyphs

A simple chain predicting each glyph from the previous four, trained on the manuscript, reproduces almost every word-sequence statistic measured.

0 of ~42

The number of language models with which the best cipher solver found a message. The same solver recovered 93–99% of letters from hidden test ciphers in six languages, including 15th-century German herbal text.

The clearest result

Dependence kept between words two apart, as a share of next-word dependence

LanguagesVoynich manuscriptModels of how it might have been made
0% 20% 40% 60% 80% 46 languages (same Bible text) Voynich manuscript Models Hungarian 33% Tagalog 76% as written 0% variant spellings merged 9% Timm–Schinner generator (no message) — none Greshko Naibbe cipher of Latin — none Glyph chain, 4 glyphs of memory — none
In real language, grammar and phrasing link a word to the words two and three places on. Each blue dot is one Bible translation, cut to its first 34,000 words from Matthew onward. The manuscript keeps none of this link, even after its variant spellings are merged. Neither do a letter-level cipher, Timm and Schinner's meaningless generator, or a short glyph chain. Hover a dot for values.
Show the data table
TextNext word (bits)Two apart (bits)Share kept
Tagalog0.8740.66276%
Albanian0.7770.50865%
Japanese1.5451.00965%
Esperanto0.8380.48858%
Somali0.9050.51457%
Polish0.6530.36255%
English1.0480.57655%
Czech0.6120.33655%
Romani0.9920.54255%
French1.0100.55255%
Portuguese0.7480.40754%
Cebuano0.9140.48954%
Lithuanian0.5680.30253%
Maori1.1000.57252%
Greek0.9800.50451%
Spanish0.9470.48151%
Malagasy1.0580.53551%
Hindi1.0980.54950%
Romanian1.0710.52949%
Latin0.5080.24849%
German0.8430.41049%
Italian0.8150.39649%
Syriac0.6930.33248%
Coptic0.7430.35448%
Turkish0.7110.33848%
Nahuatl0.8310.39347%
Q'eqchi'1.0440.49347%
Finnish0.7510.35547%
Hebrew0.6640.31047%
Arabic0.6900.31646%
Basque0.6200.28246%
Armenian0.6460.28644%
Korean0.6180.26743%
Cherokee0.4950.20942%
Estonian0.7510.31242%
Swahili0.7800.32341%
Zulu0.6440.26441%
Indonesian1.0960.44741%
Thai1.4390.58140%
Shona0.7330.29040%
Quichua0.6540.25238%
Amharic0.6140.22937%
Vietnamese1.4530.53937%
Farsi0.7730.25934%
Chinese1.6270.53633%
Hungarian0.5760.18833%
Voynich, as written0.1190.0010%
Voynich, variant spellings merged0.1840.0179%
Timm–Schinner generator (no message)0.067-0.019none
Greshko Naibbe cipher of Latin0.102-0.005none
Glyph chain, 4 glyphs of memory0.033-0.022none

Any reading that turns each Voynich word into a word of a language inherits this property. The decoded text would have no grammar linking words beyond their immediate neighbours, and no language tested behaves like that. In practice, word-for-word "translations" of the manuscript cannot be ordinary prose in any of these languages.

What the manuscript's word stream looks like

TextSame word twice, per 1,000 pairsvs chanceTwo apart (bits)Glyph link across the space (bits)
Voynich manuscript (paragraph text)9.71.190.000.176
Latin prose (Secretum secretorum)0.30.020.1250.038
Croatian Bible0.60.070.282—
Timm–Schinner generator (no message)10.20.80−0.020.012
Greshko's Naibbe cipher (Latin message)1.40.31−0.010.002
Glyph chain, 4 glyphs of memory4.21.25−0.020.182

The glyph link across the space is the mutual information between a word's last glyph and the next word's first, above a shuffle. In the manuscript, after -y the next word starts with qo- 1.65 times as often as chance and with a- 0.14 times. A short glyph chain reproduces this; neither published model does.

Decoding attempts

ApproachOn hidden-key controlsOn the manuscript
Letter-for-letter substitution into Latin, Italian, English, Spanish (48 configurations)98–100% of lettersNo readable text; entropy far too low for any of them
Each word = one or two letters, fixed word divisions (Naibbe type)99.8–99.9%Real text no better than shuffled text
Same, with the word division learned together with the key93–99% in six languagesNothing with 35 Bible languages, period German (1460–1543 and Middle High German), Old Czech, Middle English, Old Occitan, Latin, Italian; per section; right-to-left; line by line
Cluster the word pieces, then solve as a substitution cipher70% of lettersReal text no better than shuffled text
Words of 1–3 pieces with null fillersFailed its own control (collapsed into nulls)Not used
Calibration: a known Latin cipher solved with the wrong language+0.58 to +1.10 bits/word above shuffledManuscript with the same five models: +0.04 to +0.39

Outside proposals checked

ZFD, "15th-century Croatian apothecary shorthand"

ZFD decodes each Voynich word through a fixed glyph-to-sound table, so its "Croatian" inherits the manuscript's statistics. Its decoded text keeps almost no link two words apart (0.038 bits, against 0.282 in real Croatian). It repeats words immediately 19 times as often as real Croatian, and 66% of its English glosses are "?". Its validation score ignores word order, so a shuffled manuscript would score the same.

"Mostly Hebrew, words written right to left"

Letter for letter, the manuscript is far more predictable than written Hebrew: 2.2 bits per glyph against 3.4, in either reading direction. Hebrew words link two apart (0.315 bits); the manuscript's do not. Hebrew as a cipher plaintext was also tested in the solver sweep and gave nothing.

What could still change this

The simpler explanation, a text written by a short-memory procedure whose spelling habits drifted over time, now fits the measurements at least as well as any cipher tested. That is not proof that the text is meaningless.

Reports and code

Data used, not redistributed here (the scripts download it):