The research
The page draws on four strands. The physical facts and the history come from the Beinecke's catalogue records and from René Zandbergen's site voynich.nu, which is the reference work in this field, maintained since the 1990s and cited by the scholars. The script analysis rests on Prescott Currier's 1976 paper, Mary D'Imperio's 1978 survey, Lisa Fagin Davis's 2020 handwriting study and Claire Bowern and Luke Lindemann's 2021 review. The claims ledger was checked claim by claim against the original papers, press releases and the university statements that followed them. And the new paper, Layfield and Davis's "Singulion Structure and the Voynich Manuscript", was read in full, which is how the page knows that the Qur'an comparison in the Guardian's report comes from an interview and not from the paper itself.
The research notes, with every URL, are kept in the project folder alongside the page, in research/. Things that could not be verified on a live page are flagged there and left out here.
The statistics
All word counts use the Zandbergen–Landini transliteration (ZL, version 3b, May 2025) in the EVA alphabet. The script data/stats.py reads the file, keeps paragraph text only (it drops labels and the text written in circles), takes the first reading wherever the transcribers offer alternatives, treats uncertain spaces as spaces, and drops any word containing an unreadable character. That leaves 34,074 words in 7,417 distinct forms. The same script runs the same counts on Jane Austen's Pride and Prejudice (the first 34,074 words), Dante's Commedia (the first 34,074 words) and the first four books of Caesar's Gallic War (10,059 words), all from Project Gutenberg, lower-cased and stripped of punctuation.
The "conditional entropy" chart measures how much uncertainty is left about the next letter once you know the current one, in bits, counting each EVA letter as one symbol. The absolute numbers depend on the alphabet you choose, which is why published studies differ; the gap between Voynichese and the natural languages does not depend on it. The repeat rates count pairs of adjacent identical words per thousand words. The Zipf chart uses the first thousand word types. The Currier A and B figures use the language labels in the transliteration file, which follow Currier's own classification.
The page-by-page dataset behind the book map was scraped from Zandbergen's quire pages with data/build_folios.py, which records its sources and its mapping decisions in data/folios-README.md.
The build
Plain HTML, CSS and JavaScript, no framework, no build step. The charts are hand-drawn SVG. The binding animation moves leaves between three arrangements with CSS transitions. The pan-and-zoom viewer, the zodiac wheel, the glyph table and the word builder are each a short script. Everything works by keyboard and screen reader, respects reduced-motion settings, and scrolls sideways rather than shrinking on a phone where a chart would otherwise become unreadable. The chart colours were validated for colour-blind readers in both light and dark modes.
The Voynich letterforms are Gabriel Landini's EVA Hand 1 font, used unmodified under its terms (free, with acknowledgement; the licence is in fonts/). Images are from the Beinecke Rare Book and Manuscript Library, Yale University; img/manifest.json records where each one came from. Fonts for the text are Fraunces, Source Serif and Inter.
Built by Chris Moran with Claude, Anthropic's AI model, which did the typing, the research legwork and the statistics under direction, and whose work was checked against the sources. The page lives at peter-guillam123.github.io/voynich and the code at github.com/peter-guillam123/voynich.