"Taroko Gorge" Printout

Contributed by Nick Montfort Associate Professor of Digital Media at MIT
June 05, 2012
Nick Montfort's picture
Part of the Cluster:

Rough Cuts: Media and Design in Process

My offering is a printout of the first version of “Taroko Gorge,” a simple poetry generator written in Python. This version of the generator was intended as a completed work, but it turned out not to be the last stage of this project within my own poetic practice or beyond it.

I had started a series of very small poetry generators, ppg256, just over a year before writing this one. While the poetry generators in that series (which was just recently completed) are highly compressed 256-character programs, produce output that sounds avant-garde and not highly intelligible, and are written in Perl, “Taroko Gorge” was written under a different and more relaxed set of constraints. It was created to fit on a single page, with variable names that can be understood easily and with short explanatory comments. I defined this “single page” very traditionally, in terms of line printer output: The text was not to exceed 66 80-column lines. “Taroko Gorge” was meant to generate a boundless poem, as the ppg256 generators did, but this poem was to be a nature poem which would be more traditional and perhaps more identifiable, to some conventional readers, as poetic. And, it was written in Python, a language I prefer for sketching simple literary generators. Most would agree that Python is more easily legible and more easily modified and reworked than is Perl, which is sometimes called a “write-only” language because of its impenetrability. It’s particularly difficult to modify Perl that is intentionally packed into as few characters as is possible. Python, on the other hand, proves fairly easy to consider even for first-time programmers. Indentation makes the scope of, for instance, while loops and if … else constructs clear even though curly braces are not needed to indicate blocks and line-ending semicolons are not used in this program.

An additional constraint was that I would write the poetry generator in one day and would begin to write it, and draft most of it, at the place it is about, Taroko Gorge National Park in Taiwan. As I wrote and programmed, I did not attempt to parody nature poetry or Eastern poetic traditions. Rather, I sought to show that just as poets have written poems about the natural world as they looked upon it, one could also write a poetry generator about the natural world on the particular site.

The comments explain that there are three types of lines generated. The first and last line of any long stanza are “path” lines meant to suggest the experience of walking along an outdoor path and seeing natural features either above or below. One or more “site” lines may be generated between these. These lines are less active and are meant to suggest the experience of stopping at a viewing area. Finally, the indented one-line stanzas are “cave” lines meant to suggest the experience of moving through the tunnels that, like the paths, were carved through the rock by Chiang Kai-shek's Nationalist army. In many of these tunnels, which are not lit with artificial light, it is not possible to see the exit from the entrance on the other side. This is why the ending of the sentence in a “cave” line of mine is also unseen. Although I used some one-letter function names, I tried to avoid obfuscation and explained each of the functions at least briefly in the comments at the top.

On March 3, I printed ten copies of the program on the dot matrix printer I have in my office. I sent the first copy to my hosts in Taiwan. Alongside the precious signature and date, I numbered each of these material texts in the format “2/10 PRINTOUTS” to emphasize that unlike these particular printouts, the program itself is not a multiple, does not exist in an edition, and (even though an explicit license is not included) is free for anyone to copy, run, and modify.

By March I also had written a JavaScript program that used exactly the same technique as the Python program to produce a boundless poem on the Web. While I do not find JavaScript suitable for clear thought and poetic experimentation, it is very useful for making a finished text-generating program easily available to the world. For this reason, I have written several poetry generators (“The Two,” “Through the Park,” and my collaboration with Stephanie Strickland, “Sea and Spar Between”) first in Python and then in a more accessible JavaScript version. The JavaScript version is available here:

http://nickm.com/poems/taroko_gorge.html

After I put this JavaScript program online, I was rewarded with an amusing surprise. My friend and collaborator Scott Rettberg formulated his own remix of the program, “Tokyo Garage,” without asking permission – which, indeed, was not necessary. He posted his program on March 17, explaining in a blog post that he "hacked the words to make it more about urbanity, modernity, and my idea of Tokyo, a city I have never been to."

Over the next two and a half years, others have jumped on the bandwagon and into the gorge. J. R. Carpenter—who had already been using some of my Python programs as a starting point for text generation of her own, to produce texts that appeared in the book Generation[s]—reworked the generator to add images and new strands of text in three new pieces, “Gorge,” “Whisper Wire,” and “Along the Briny Beach.” Talan Memmott brought consumer excess and Comic Sans into the mix with “Toy Garbage.” Eric Snodgrass snipped up and reassembled Fluxus texts in “Yoko Engorged.” Mark Sample created a fannish tribute called “Takei, Geoge.” Flourish Klink followed that up with a generator of incestuous Harry Potter slash fiction, “Fred and George.” Maria Engberg gazed not at the natural world, but at the campus in her “Alone Engaged.” And to top all of these off, Andrew Plotkin produced “Argot Ogre, OK!” which scrolls code and text up the screen, remixing all of the different remixes individually and in pairs. Since then, several others have remixed the program. Links to the first fifteen known remixes can be found on the right-hand side of the JavaScript "Taroko Gorge." Several of these are linked, and documented in screenshots, here:

http://nickm.com/post/2011/09/yo-dawg-i-hear-you-like-taroko-gorge/

As I see it, these remixes say nothing about the poetic quality of my original program. However, they speak endlessly of the poetic potential of a page of code. I would be delighted, of course, to see many more remixes of “Taroko Gorge.” But it would be even better if it becomes impossible to discern that the new poetic programs being developed are related to my original program. It would be even better if ten other programs are written that work in completely different ways to generate poems, and if each of these are themselves remixed ten times. The idea of developing computational art in a short amount of time, in an hour or in a day – an idea that I’ve ripped off and remixed from many others – is what really deserves to get picked up and reworked, again and again.



"Taroko Gorge" printout of original Python source code

taroko_gorge_in_python.jpg