Seraphs: A Mysterious Computer-Generated Codex

A program that outputs an infinite 16th century manuscript

Cover page for the Seraph book

Created for National Novel Generation Month: a computer-generated book evoking the mysterious Voynich Manuscript. The project is an exercise in generative asemic writing.

The Voynich manuscript is an untranslated (and probably untranslatable) codex written around the 16th century. There have been numerous recent attempts to crack its code–usually making use of some form of breathlessly described “AI”.

Seraphs will output an infinite number of pages in an unreadable text offset by unlabeled diagrams and illustrations, matching colors and laying out the page in spreads.

A free PDF version is available as seraphs.pdf, or a fully laid out book is available for purchase at cost from Blurb.

Press and coverage

Displayed at MIT Libraries as part of Author Function, a 2018 exhibit and reading series on computer-generated books. Liza Daly, Nick Montfort, and Allison Parrish at a book reading at the Harvard Book Store in 2018

Featured in a 2015 The Pacific Standard article on generative writing.

Liza Daly embraced whole hog the nonsense of computer-generated novels by playing with real-life inscrutable Voynich Manuscript - Zachary Littrell, BookRiot (2017)

The result is something that embraces the current limitations of generative processes. Isaac Karth, Procedural Generation (2015)


A two-page spread from Seraphs
A two-page spread from Seraphs

There are some standardized transliterations for the manuscript, I used the EVA transcription, stripped out the careful notations, and was left with a simple list of source words.

The main program slurps up the words, randomizes them, and lays them out in a series of canned templates using Jinja2. I set them in a public domain “Voynich” font.


The original manuscript is heavily illustrated with fantastic sketches of fictional plants, nonexistent cosmological bodies, and a healthy number of naked ladies. The illustrations are grouped thematically. I selected keywords like “botany” and “alchemy” that, insofar as the original makes any sense, correspond to those themes.

I used the Flickr API to access the Internet Archive’s 14 million image collection. Each image is tagged with its original century, which meant that I could select “period” illustrations with any given keyword search. Trial and error landed on the 18th century being the “best” from a purely aesthetic point of view.

Example of flowed text in original Voynich manuscript
Example of flowed text in original Voynich manuscript

As with Voynich, each page has only one image on it; the dimensions and size influence which template is chosen. In the hand-written original, the text flows tightly around the illustrations. It’s possible to do this kind of layout in CSS, using the CSS Shapes specification, but that wasn’t available in my chosen output pipeline, so I went with standard floats.

Page output

There are really no viable open-source implementations of CSS’s support for advanced paged-media, so I used Prince XML, which has a limited free license. Nellie McKessan’s article on A List Apart is still the most accessible reference for producing print-ready HTML files.

Each thematic generates a full-bleed cover with a random Voynich word overlaid as the title. These end up being some of my favorite pages.

Source code

Full source code for the project and more examples at Github.