generative books for Do Not Press [•]

a year ago – December of 2015 – we returned to Denver after a six month sabbatical spent in Central and South America. During the sabbatical I fell out of the pattern of creating an annual thanksgiving Do Not Press edition. In the year since then I have created several small editions but not a thanksgiving publication. I am sad about this. To look on the bright side, I have been experimenting with creative workflows that can generate books of generative poems, with generative code drawings as background imagery.

I now have code in Processing 3 ( that can reliably generate books with a title page, body text, and a colophon, and page numbers, rendered as vector-based PDF files. The code reads in a text (.txt) file for each section, and can make books of an arbitrary length.

These programs are machines that make poem books. Some might call them ebooks until such time as they are imposed, printed, and bound.

The poems these machines generate are presented as a single word per page, selected at random form a repertoire of my choosing. They form a multi-word, multi-page, poem per book. Words are allowed to repeat. Words are chosen following some intuitive logic for a theme, a mood, or an allusion. The poems vary in length. I have been imagining 64 pages per book to be an adequate length.

The machines are adapting some code from the Re:mixer project I began during the third quarter 2016. Re:mixer was written to generate single pages of ten line stanzas from a repertoire of aproximately one hundred lines. It is with Re:mixer that I began to realize it might be possible to set good quality type for printing straight from the code. I am late to this particular party.

Golan Levin and Marius Watz traded tweets late in 2016 (October?) about a workshop that Watz had provided for Levin’s students at Carnegie Mellon. The workshop had been on the ceation of generative books, and the students were handing in printed artifacts. I asked – excitedly – what code-base was being taught. I had hoped and presumed it would be a free and open source. It only partially was. Watz was teaching Basil.js scripting of Adobe InDesign. Basil.js is free and open while InDesign is not.

Levin mentioned that the workshop and project was a week in duration, and so he had to work within tool sets aleady familiar to his students. Some of his students did opt to use Processing.

When asked, Watz offered that scripting generative artist books in Scribus ( with Python would be too fringe, too marginal, for someone to offer workshops.

So if I want to learn how to create generative books in Scribus I’m on my own. And, I’ll have to learn Python.

So I’m working in Processing to see how far I can take it. It’s possible that I won’t be able to get too far. The PDF generating library is dependent on iText for Java, and the license for the newer versions of iText are incompatible with Processing. Maintaining the PDF generating capacity is not a high priority for the Processing team. The last update was in 2013. More evidence that I’m late to this party.