Notes on Computational Book Design

Kyuha Shim

Computation is a primary medium in my design practice, so when Golan and Tega invited me to design their book computationally, I was thrilled by both my role in what would be the first publication of its kind by MIT Press and the prospect of demonstrating computational book design in the larger context of graphic design. In my studio, I write programs to design dynamic visual formations, generate variable end results informed by data, and discover new creative opportunities in graphic design. I also teach in the School of Design at Carnegie Mellon University, where I have developed courses that introduce computation as a creative medium. This project was as refreshing as it was challenging, because it required new ways of working—both in my design process and in my collaboration with the authors.

For the design of the book, the functions handling data were built by Golan and Tega, and I made the graphic design decisions with the help of Minsun Eo, who specializes in typography. In addition to designing visual systems, my main role was writing code in Basil.js that intertwined the data and form. Basil.js enables designers to go back and forth between designing and programming, providing “a bridge between generating through code and adjusting by mouse.” 1 Thinking about how CSS provides the stylistic specifications in website design, I used InDesign files to save and load the typographic styles (i.e., character and paragraph styles) and then used Basil.js code to conditionally apply them. This enabled me to work systematically by adjusting generated outcomes through character and paragraph styles. In building this workflow, I needed to work with the rawer computational medium, which enabled me to overcome technical obstacles and boundaries set by software.

While Golan and Tega worked on their content, sharing it as markdown files and parsers on GitHub, I was able to simultaneously build the algorithms generating the book with data pulled from the online repository. We were all able to see and reflect on the designs rendered with the most up-to-date content and work side by side in real time, which would be unthinkable in a typical publication process—usually book designers only begin work once the authors have handed over the finalized content. What I realized during this project is that the programming aspect of my practice is about generating not only a creative end result, but also a bespoke process. While this book was predominantly designed with code, there were certain tasks that I completed by hand—such as handling orphans and widows—since my intent in using computation was to make my design process more intelligent rather than to solve programming problems.

When thinking about the larger implications of using computation in this project, I recall a conversation I had with graphic design educator and theorist Ellen Lupton. She speculated that making templates will be one of graphic designers’ primary roles in the future.2 But what if more designers use code to write their own systems? Instead of a scenario in which designers’ roles are diminished, the computational medium would extend and enhance their roles. As computation shifts emphasis from crafting an individual form to building the method from which forms emerge, programming is more than ever relevant to design innovation.

Notes