Codebreaking · October 2026

The Voynich manuscript

A book about 600 years old, written in a script nobody can read. Here's what's known about it and why no codebreaker has cracked it, with a note on my own work.

Folio 2v of the Voynich manuscript: a plant with one large round green leaf on a long stem, with paragraphs of the unknown script above and below it
the radiocarbon date of its vellum
1404 to 1438
words, in a script found nowhere else
38,000
accepted readings, since it resurfaced in 1912
0

Intro

In 1912 a rare-book dealer called Wilfrid Voynich bought a small book from a Jesuit college outside Rome. It has about 240 pages of vellum, with plants that botanists mostly can’t identify, rings of stars and zodiac signs, and women bathing in green pools. Roughly 38,000 words run around the pictures, in a script that turns up nowhere else.

No one has managed to read it, including some of the best codebreakers of the last century. It’s kept at Yale now. Anyone can page through the scans online.

I’ve been working on it in my spare time. This page is a short guide for anyone who hasn’t come across it, with a little about my own work at the end.

What’s in it

Researchers divide the book into sections by its pictures, since the pictures are the only part anyone can follow. More than half of it is plants, one or two to a page, painted in green, blue, red and brown with a few paragraphs around each. A handful look like real species, but many seem to be parts of different plants joined together.

Then come pages of circles: suns, moons, stars and the signs of the zodiac, with small naked women standing in rings around them. Each woman has a label in the script. Ten of these pages also carry a month name in ordinary Latin letters, spelled in a way that points to France, northwest Italy or Spain.

Folio 71r: three rings of the unknown script around a small animal, with women standing in the rings, each beside a short label
Folio 71r, one of the zodiac pages. The animal in the middle is Aries, the ram.

The strangest pages, about 20 of them, show women in pools and tubs joined by pipes, which some researchers take for plumbing and others for parts of the body. A fold-out sheet the size of six pages has nine round “rosettes” linked by what look like causeways. After that come pages of apothecary jars with roots and leaves laid out beside them. The book ends with about 25 pages of short paragraphs, each with a star in the margin, which people call the recipes.

Folio 81r: a green pool of naked women at the top and another at the bottom, joined by a pipe running down the margin, with a block of text between them
Folio 81r, from the bathing pages. Two pools frame the text, joined by a pipe down the left margin.
Folio 88r: three tall painted jars down the left side, with rows of roots and leaves to their right, each part labelled, and paragraphs of text below each row
Folio 88r, from the pharmacy pages. Every root and leaf has its own label.

Where it’s been

The first owner anyone can name is Georg Baresch, an alchemist in Prague. He twice sent samples of the script to Athanasius Kircher, a Jesuit scholar in Rome who claimed he could read Egyptian hieroglyphs. Baresch hoped he could read this too. His letter of 1639 is the earliest confirmed mention of the book.

When Baresch died, the book went to his friend Johannes Marcus Marci, a physician in Prague, who sent the book itself to Kircher in 1665 or 1666. Marci’s covering letter was still tucked inside when Voynich bought it. It repeats a story that the Holy Roman Emperor Rudolf II had once paid 600 ducats for the book.

Then it dropped out of sight for about 250 years, until Voynich found it among the Jesuits’ books at the Villa Mondragone, the college outside Rome, in 1912. He was convinced Roger Bacon had written it and spent the rest of his life trying to prove it. After he died it went to his widow, the novelist Ethel Voynich, and then to her friend Anne Nill, who sold it in 1961 to the dealer Hans Kraus. Kraus couldn’t find a buyer, so in 1969 he gave it to Yale’s Beinecke Library. It’s catalogued there as MS 408.

The writing

About 20 to 25 different letters make up almost all of the text, plus a few dozen rare ones that turn up once or twice. It runs left to right in a smooth, practised hand with very few corrections, so the people who wrote it had plenty of practice.

To work with the text, researchers type each letter as one or two Latin letters, using an alphabet called EVA. EVA only records the shapes. It says nothing about what they mean. In EVA, the first line of the book reads:

fachys ykal ar ataiin shol shory cthres y kor sholdy
The first four lines of folio 1r in the unknown script, in brown ink on vellum, with a red initial in the right margin
The top of folio 1r. Its first line is the one typed out above.

The commonest word, daiin, appears about 800 times. That much looks like a language: a few words are very common and most are rare, as they are in English or Latin. Plenty of it doesn’t fit any known language, though. Words seem to be built from pieces that always come in the same order. The letters are far more predictable than in European languages, so knowing one letter tells you a lot about the next. And the same word sometimes appears three times running:

shey qokedy qokedy qokedy dar

It isn’t uniform, either. In the 1970s Prescott Currier, a US Navy cryptologist, noticed two “languages”, which he called A and B, with different favourite words and spellings. In 2020 the manuscript scholar Lisa Fagin Davis identified five different scribes.

Who has tried

William Friedman, who led the US Army team that broke Japan’s Purple cipher in 1940, gathered groups of codebreakers to work on the manuscript and studied it himself for decades. He came to think it might be an early attempt at a made-up language, but he never proved it.

Every few years someone announces a solution and the papers report it. In 1921 the philosopher William Newbold said the real message was hidden in tiny marks inside the letters. The marks turned out to be cracks in the ink. Since then the text has been read as Latin, early Ukrainian, Old Turkish, Hebrew and a lost Romance language, among others. None of these readings has convinced the people who know the manuscript best.

Cipher, language or nonsense

Most ideas about it fall into one of three camps.

The first is that it’s a cipher: a known language, probably Latin or an Italian or German dialect, disguised letter by letter or word by word. The trouble is that a simple swap of letters keeps a language’s patterns. This text doesn’t show the patterns of any European language.

The second is that it’s a language written in a script devised for it. That could be a language with few written records, or an invented one, like the Lingua Ignota that the abbess Hildegard of Bingen created in the twelfth century.

The third is that it means nothing: a hoax, or the output of some method for producing word-like strings. In 2004 the researcher Gordon Rugg showed that a card with holes cut in it, slid over a table of word parts, can produce text with many of the manuscript’s quirks. The vellum’s radiocarbon date of 1404 to 1438 and the inks make a modern forgery unlikely, but they can’t rule out a hoax from the fifteenth century.

What I’m doing

I started on the manuscript in October 2026, as a side project. I work from a full EVA transcription and treat the text as data: I measure how it behaves and compare it with texts whose language and meaning I already know.

Every test has to pass a check first. I hide something on purpose in a text I’ve prepared. The test has to find it before I trust anything it says about the manuscript. If it can’t, a blank result on the manuscript means nothing.

I can’t read it yet. I’ve worked through a long list of ideas about what kind of text it is. The results are going into a paper for a journal. I’m also looking through older herbals, the illustrated plant books of the time, for drawings the plant pages might have been copied from.

What I’ve found so far

Each line seems to be complete in itself, as Prescott Currier suspected in the 1970s. In most texts the end of one word tells you a little about how the next word starts. That carries on across line breaks, because a scribe copying prose breaks the line wherever the page runs out. In the Voynich manuscript the link only shows up inside a line. At the break it disappears, as if every line were a sentence of its own. The pattern holds up in every test I’ve run.

Other researchers have noticed in the last few years that lines avoid starting with the same letter as the line above. My counts agree. It happens only about one time in ten, where chance would give about one in six.

In the middle of the Pisces page, beside the two fish, is a single word: otolal. It appears nowhere else in the book, which makes it a tempting candidate for the name of the sign. Nobody has made that reading work yet.

I’ve been comparing the zodiac pages with zodiacs in other fifteenth-century manuscripts. A few of them make several of the same unusual choices, down to the way particular animals are drawn. None of them is the original the Voynich zodiac was copied from. They’re still a lead on where those pages came from.

Set beside 56 samples of real languages, including the same Bible text in 31 of them, the text has no near neighbour. The Yale linguists Luke Lindemann and Claire Bowern came to the same conclusion in 2020 with a different set of texts.

The rest, including what I’ve been able to rule out, will have to wait for the paper.

See it yourself

Yale has scanned every page, so you can turn through the whole book on the Beinecke Library’s site. René Zandbergen’s voynich.nu is the guide I trust most on the manuscript’s history and the research on it. The transcription I work from comes from there too.

More work

2026R packages

FounderForge

A Shiny app that turns real marker data into an AlphaSimR founder population without writing R. Load a VCF, HapMap, numeric or PLINK file, check it, filter it and export what newMapPop() needs.

Tools: R · Shiny · golem · AlphaSimR · vcfR · data.table · ggplot2

2026Apps

Plotpin

An Android app for finding a plant again. I built it to walk back to bagged sorghum plants in a crossing block. Now it works for anyone who marks points in a field.

Tools: Kotlin · Jetpack Compose · Room · Paparazzi

2026Machine learning

Colony Counter

An Android app that counts bacterial colonies from plate photos, offline. Two small YOLO models do the counting, in about three quarters of a second a plate on my phone.

Tools: Python · Ultralytics YOLO26 · ONNX Runtime · Kotlin · Jetpack Compose · CVAT

2026Reverse engineering

FF Mod Studio

Tools for modding Freedom Fighters, a game from 2003. There's an editor for its textures and models, plus a Blender addon that sends edits back into the game.

Tools: C++17 · Dear ImGui · miniz · HLSL · Python · Blender

2026R packages

ggWizard

A Shiny wizard for making ggplot2 charts from a CSV or Excel file without writing code. You check and clean the data, pick one of eight chart types and style it, then export it with the R script behind it.

Tools: R · Shiny · golem · ggplot2 · plotly · readxl · DT

2026R packages

Linkmapper

A Shiny app for building genetic linkage maps and mapping QTL without writing code. It began as the final-year project of two colleagues and me at KNUST. Now it's an R package, with a hosted copy that runs in the browser.

Tools: R · Shiny · golem · onemap · R/qtl · ggiraph

2026R packages

Clusnalyst

A Shiny app for cluster analysis of marker, trait and sequence data. My colleagues and I built the first version at KNUST in 2022. In 2026 I rewrote it as an R package with a live demo.

Tools: R · Shiny · golem · ape · cluster · msa · ggtree · ggiraph