Beinecke MS 408 · the recipe read off the page, step by step

Writing Voynich by the Recipe Read off the Page

The Voynich Text Examination asked what a scribe of the years 1404 to 1438 would have needed on the desk to write a text with the manuscript's measured properties, and read a recipe off the manuscript's own pages: how often a word is new, how a new word is spelled, what is copied and how a copy is changed. This page lets a reader follow that recipe word by word, with one throw of a lot for every word, and watch a page take shape. A companion page walks through the procedure of word parts and a ruler in the same way.

The procedure is a simulation, not a discovery. Nobody knows how the manuscript was written. What the examination found is narrower. A person with two tables of common words, rows of glyphs written out on parchment, a short row of word lengths, a small working sheet and a bag of numbered lots can produce text that matches the manuscript on of the 23 statistics measured in the report, within three times each statistic's own tolerance, at about random acts a word and with an apparatus of about page sides; and, unlike the earlier procedure, it does so without a ruler, and it holds up when the tables are filled from one half of the book and the other half is written. What it misses is set out at the end of this page. Nothing here claims that the manuscript was made this way.

What is on the desk

Every table is a row of cells written out once, and a throw picks one cell. A common word or glyph occupies several cells and a rare one few, so the rows are filled in proportion to how often each is used in the manuscript's own words. There is one table and one set of glyph rows for each of the two writing styles that Prescott Currier named A and B in 1976, and the scribe uses the set that belongs to the page being written; the working sheet, the line-head row, the paragraph row and the pen habits are one for both. The sizes below are those of the simulation, counted cell by cell from the rows as written out.

A word is written like this. The scribe throws one lot for the word and reads it several ways, each reading a different digit of the same number. The first reading asks whether this word is to be a new word: the manuscript's own rate for a word that occurs nowhere else, by the scribe's hand and by the place on the line (about in 100 inside a line, at the start of a line, at its end and at the start of a paragraph for the first hand), times . If it is, the word's length is thrown first from the row of once-only word lengths, and the word is then spelled glyph by glyph from the rows to that length: the first glyph from the row that belongs to the ending of the word just written, every later glyph from the row of the glyph before it at that place, and the last glyph one that can end a word. Nothing on the page is consulted. Otherwise the same lot is read against the cut-points for the source: in cases out of 100 a word already on the page (any word of the page so far, a line and then a word by lot, no ruler), in cases the working sheet (the column headed by the ending of the word just written; for hands 2 and 3 the sheet's share is and ), and in the remaining cases a fresh word, which times in 100 is spelled from the rows glyph by glyph until a stop cell comes up (from the seventh glyph on a die may end it), and otherwise is drawn from the table of common words as it stands. A copied word is changed times in 100, half of those by a join (its front, one to three glyphs by a thrown cut, on the back of a word from the sheet or the table) and half by its first glyph exchanged for one from the row of first glyphs, or dropped times in 100; a second change follows times in 100. In cases out of 100 the word just written is written again as the next word with one glyph changed. Before writing, the pen habits are read off the same lot: a tall letter in front of the first word of a paragraph ( times in 100, unless it already begins with one), a plain letter in front of the first word of a line at the manuscript's rate for that beginning, loops on some k and t, and a tail on the last stroke of a line. At every new page each cell of the working sheet gets a throw and is struck out times in 100 ( at a new gathering) and refilled with a word of the previous page that followed the same ending.

Write a page

Choose one of six pages of the book and a set of lots, and press Throw to take one step of the recorded run, or Next word, Finish line and Finish page to let it run ahead. Nothing is simulated in the browser: every step replays a run recorded from the procedure itself, so what you see is exactly what it wrote. The panel headed "This step" explains what each throw or reading decided. The page keeps the manuscript's own line lengths and paragraph breaks, so the finished page can be set beside the real one.

The page

What the scribe has done so far

This step

Press Throw to begin.

The row in use

no row consulted yet

The working sheet

The word in hand

No word in hand.

The recipe in plain steps

    What the simulated recipe gets right, and what it misses

    The report scores every generator on 23 statistics of the running text and compares each with the manuscript's value, allowing the uncertainty that comes from measuring the text in halves. The table gives this recipe's value averaged over five runs of the whole book. A statistic counts as reproduced when it lies within one tolerance of the manuscript's value and as nearly reproduced within three.

    StatisticManuscriptRecipeResult

    Where words recur, and the two hands

    The pace and the apparatus

    Held out, and told apart

    What a match means

    Data: the Zandbergen–Landini transcription of Beinecke MS 408 as prepared for the Voynich Text Examination; tables, rates and traces from the simulation in the report's section "The recipe read off the page". Every step on this page replays a run recorded from the procedure with a fixed set of lots, so the same page and set always give the same text. The recorded run reproduces the text of the score of record byte for byte.