Deliverables 06 (D. 10/28)

This set of deliverables has three components, due at the beginning of class on Friday October 28th.

  • Looking Outwards #06: Bots
  • Viewing & Prep (for the Book)
  • A Computationally Generated Book

Looking Outwards #06: Bots

A bot is software that automatically generates cultural content and publishes this content online, generally in a way that others can subscribe to.

In this, your sixth Looking Outwards assignment, you are asked to identify a bot (probably on Twitter, but potentially elsewhere) which interests you. Write a brief Looking Outwards post about it. In your post, please include screenshots of two or three postings from the bot that you think are particularly good.

As usual, please categorize your post with the LookingOutwards06 Category. This makes your posts much easier to find (and grade). Title your post nickname-lookingoutward06.

Some places to find bots include:

Viewing & Prep

You are asked to view or review the following:

Allison Parrish: Exploring (Semantic) Space With (Literal) Robots:

A Computationally Generated Book

Assignment Statement

Write a program (or more likely: a set of programs) which generates a book. Your program(s) should generate the content of the book, as well as execute its layout automatically. Your book should have at least 20 pages, and must be printed and bound.

Learning Objectives

The purposes of this assignment are to prompt students toward:

  • Further application of generative principles: to generating text, images, layouts, and their comprehensive combination in a complex yet familiar physical object, a book.
  • Experience combining multiple self-written programs into a multi-stage workflow.
  • Exposure to a scripting language (Basil.js) for controlling a powerful commercial software application (Adobe InDesign) that would ordinarily be used ‘by hand’.
  • Exposure to a toolkit (RiTa) for language analysis and synthesis, and text analysis/synthesis concepts such as Markov chains and parts-of-speech taggers.
  • Awareness of generative text strategies, in the context of artists’ books.

Recommended Tools

It’s likely, though not necessarily guaranteed, that you will use Basil.js for this project. You might also find yourself using RiTa and Temboo.

  • Basil.js is a scripting library for Adobe InDesign, created by Ted Davis, Benedikt Groß and Ludwig Zeller et al. at the Basel School of Design in Switzerland.
  • RiTa is a set of software tools for computational literature (for Processing, Node, and p5.js) created by Daniel Howe.
  • Temboo is a set of libraries that allow you to access a very wide range of APIs, such as Twitter, and much, much more. They provide example code for 10 different languages (including JavaScript, Python, and Processing). Temboo is a powerful commercial product, but essentially free for students to tinker with.

Summary of Deliverables

This checklist won’t surprise you, but it’s nice to be reminded of what’s expected.

  • Consider books around you.
  • Develop a program (or more likely: a set of programs) to generate a book. See the section below, Details and Considerations, for more information.
  • Print and bind your book. Have this physical copy ready for the beginning of class on Friday, October 28.
  • Write a 100-word description of your book. Publish this description in a blog post on this web site. Title your blog post, nickname-book, and give your blog post the WordPress Category, Book.
  • Write an additional narrative of 150-200 words describing your development process, and evaluating your results. Please include this in your blog post, too. Include some information about your inspirations, if any.
  • Upload a photograph of your printed, bound book.
  • Upload a video or (preferably) an animated GIF of a video of you flipping through your book’s pages.
  • Upload a PDF of your book.
  • Upload some photos or scans of your notebook sketches.
  • Embed your code (using the WP-Syntax WordPress plugin to format your JavaScript and/or other code), and include a link to your code on Github. Be careful not to include your user keys or passwords to Temboo!!

Details and Considerations

The content is up to you. Take a look at books around you. How many kinds of books can you think of? Your book may have any combination of text, images, and/or graphics. Examples of possible books include, but are not limited to, things like:

  • A children’s alphabet book
  • A nonsense dictionary
  • A visual encyclopedia
  • An atlas, full of maps
  • A coloring book
  • A screenplay or script for a play
  • A phonebook for an imaginary location
  • A collection of letters between two lovers
  • A 365-day calendar with a horoscope-a-day
  • A “how-to” book, full of instructions or recipes
  • A field guide, describing the flowers/insects of a region
  • A collection of illustrated short stories, poems or sonnets
  • An illustrated catalogue depicting and describing objects for sale
  • A book of facts, representing a (daily) snapshot of data from around the world

Write a program (or more likely: a set of programs) to create a book. Your program(s) should generate the content of the book as well as its layout. Try and keep these two programs as cleanly separated as possible.

You will very likely need to write more than one program. For example:

  1. You might write a first program in Python or JavaScript which generates some poems, and saves those poems in JSON format.
  2. You might then write a second program in Processing to illustrate those poems, and save out these illustrations as PNG files.
  3. You might then write a third program in JavaScript to lay out the book containing these texts and images in Adobe InDesign using the Basil.js library.
  4. Note that it is almost certainly not advisable to attempt to do all of this (i.e. poem generation, illustration generation, book layout) using Basil.js! Bad idea. Instead, generate your content using one or more programs, and use Basil just for layout.

Working with Basil.js (SAMPLE CODE, YO)

Most of the complexity in working with Basil.js comes when trying to get your environment set up correctly. If you follow the instructions here VERY CAREFULLY, and I do mean very carefully, you should be alright. In addition to the many fun Basil.js demos that come with the download, I’ve prepared the following readymade example project for you (an illustrated Alphabet Book), which should help you get your own generative book started. It includes a template InDesign file (.indd), Basil.js code (.jsx), all necessary data (.json, .jpg), and a sample PDF output.

Our guest Marius Watz also has created a set of Basil examples for you, including a newly-revised example that lays out a book of Tweets with text frames that size themselves dynamically according to the length of your text. You can find his samples at:

More Considerations

Do some investigation. Check out tools like RiTa for generating rhymes. Check out tools like Temboo for accessing information from online sources, such as tweets or headlines.

Your book should have at least 20 pages. If there is a good reason why your book’s concept calls for fewer pages than this, please consult the professor for permission to make an exception.

Give consideration to the layout of your book. This includes things like your margins, typeface selection, etc., as well as your cover design. You may wish to read Chapter 8 (“Shaping the Page”, pp.143-178) of Robert Bringhurst’s classic Elements of Typographic Style.

Your book may not be laid out ‘by hand’. You are asked to generate your book by scripting Adobe InDesign using Basil.js. (Keep in mind that the units are likely to be points, or 1/72 of an inch.) However, if you are deeply screwed and Basil does not behave, you are permitted to generate a multi-page PDF in Processing. If you do this, you’ll probably have to sacrifice the quality of your typography.

Where Can I Print My Book?

Your book must be printed and bound. Here are five options:


Formats from



Formats from



A special printing offer. Using funds from our course budget, books completed by 12:00 Noon on Saturday October 22 will be printed and express-shipped from and/or Books must cost less than $50 to print, not including shipping, and must be uploaded to Blurb or Lulu by Saturday 10/22, without exception. Students who miss the 10/22 deadline must pay for the printing of their own book. 

The Espresso Book Machine (at the U. Pitt University Store, 4000 Fifth Avenue):


Additional (Optional) Viewing

The following video lecture presentations are recommended optional viewing for those interested in this unit.

Darius Kazemi: How to Coax Soul from a Machine:

Lynn Cherny: Things I Think Are Awesome:

Nick Montfort: “#!Talk At Google


Posted in