Digital found poem has grown into a very large random poetic text generator over the 30 or so years that I've been working on it (mainly on weekends). The code of the app is simple, but the task of seeding it with language that can be combined randomly to create "poetically possible" and interesting text has been quite difficult. It's just not realistic to think that you can pull tens of thousands of random words, phrases, and clauses into a computer program and then combine them willy-nilly into anything resembling coherent poetic text. And yet, I continue to work at it, manipulating the randomness a bit here and a bit there to make the text a little better. And I do it why? Because it's just plain fun.
For a random poetry generator to work, the first thing you need, of course, is the words, phrases, and clauses that the program will randomly generate. So for years I’ve been adding text that I encounter in my daily reading, that I hear in speech or on the radio, that I see on tv or on the internet, and so on. My word list on any given day might look as follows:
there are laws to obey
at the closing of the curtain
the pain on firstname's face
you could've loved me
when i look in the mirror
as the sea level rises
the difference between...and
pluralsubject refuses to see
Note that this list consists not only of single words, but also of phrases, and even complete clauses. This makes my random poetry generator a little less than completely random, of course, but what the heck. Without these larger pieces of language, digital found poem would generate only junk, whereas with them, you do occasionally get something good.
Note also that on a scale from "happy to sad," this list consists mainly of neutral or unhappy words. You don't see words like "adoring," or "happy faces," or "i can't wait to see you." And this should be a hint that the poems generated by digital found poem will be pretty dark. And the reason for this is that, if you try to mix the happy with the sad in a random way, it just doesn't work. You'd get something like:
what anguish is here
as the sky erupts
we smile at each other
grateful for all we have
Now, digital found poem does use words like "love" and "friendship" and "beauty." But only in the context that they are over, gone, and done with. So yes, the poems are dark. And now you know why.
Once I have my list for the day, I add the words, phrases, and clauses to the app--if I haven't added them already (the app is so large, and I've worked on it for so many years, that I simply don't remember sometimes).
Next, I test whether the new additions seem to work coherently with what's already in the app or whether they immediately clash. If they mainly seem to work, I keep them. If not, I discard. And so "the world" of digital found poem grows and grows.
Digital found poem works by having two types of lists. One type is the "data" lists that contain different categories of nouns, verbs, adjectives, adverbs, prepositions, conjunctions, phrases, and clauses. (This includes many lists found on the Internet, such as lists of common first names, common last names, names of trees, flowers, colors, birds, rivers, cities, musical groups, etc.)
The other type is the "pattern" lists, which consist of variables that point back to the data lists. So if a data list named paindadj contains the adjectives “lonely,” “miserable,” and “desperate” and another data list named i_feel contains the subject/verb structures “i feel,” “i am,” and “i’ve become,” an item on a pattern list can have the following code: line = i_feel + painadj. And any of the following combinations of text could be printed to the screen:
i feel lonely
i feel miserable
i feel desperate
i am lonely
i am miserable
i am desperate
i’ve become lonely
i’ve become miserable
i’ve become desperate
Simplistically stated, the way that digital found poem generates its text is as follows. The code first goes to what I call the master pattern list and randomly selects one of the currently 448 variable items on this list. Items on this list might look as follows:
line = loc_prep & c & spacer3 & subjectnoun & c & spacer3 & verb_singular
In this pattern, loc_prep is a word list that contains prepositions of location, c and spacer3 will cause a line break and variable spacing, subjectnoun is a word list that contains all types of people or personified nouns, verb_singular is a word list that contains tons of singular verbs and verb phrases, and line is the variable that is a collection of all the words, line breaks, and spacing in this pattern that will ultimately be printed to the screen. (The ampersand sign (&) just concatenates all the items in the line of code.) When line is printed to the screen, this variable pattern can create any of the following variations plus an untold number more:
near the abandoned house/a mystic/sits at the table
by the grocery store/a single mom/leaves empty handed
on o road/a wise man/equivocates
across the street from the women's shelter/angeline/is walking away
between the flowers/this day/can never heal
As the code picks up an item from the master pattern list, it also picks up a flag which tells it which pattern list to go to next. This is something that I determine based on what the item is. In the above case, the item is an independent clause with a gender neutral (“mystic”) or a gender specific (angeline, mom) subject in it. I might decide that I want to say something more about these subjects. So first I sent the code to a phrase pattern list where it prints a phrase or two to the screen, from there I send it to a subject pattern list that will print a clause that includes a referent to the subject in the first clause (mystice, angeline, mom, etc). And from there I might send it to another phrase pattern list or two. Here's what a full stanza based on the pattern above might look like:
in this little town/ignazio/has taken the plunge/this lousy tuesday/he's waiting for the script to change all at once/for ever and ever
across the street from the candy store/an old man/pays no attention/crazy with the time ticking away/he speaks through forgotten history/made with malignant deeds/at the edge of madness
near the funeral parlor/a lost soul/has come too late/without direction/she carries on with her gains and losses/bound by the workings of loneliness/wondering about everything/here of all places
With stanza one done, the code returns to the master pattern list and goes through this same process again to create stanza two, three, four, and five. Then the code stops with the completed poem printed to the screen.
Another thing I should mention (because you see it a lot in digital found poem) is that the pattern lists also contain many “fill in the blank” items. Here are some examples:
today again ...
yesterday you said ...
this morning began with ...
when i look in you eyes i see ...
since you've been gone i have ...
With flags, these can also be extended to repeat the “fill in the blank” parts as follows:
today again ... today again …
yesterday you said ... today you say …
this morning began with ... and it ended with …
Here's what stanzas created with the "today again..." "fill in the blank" pattern look like:
today again/we're condemned to this hour's deadly concessions/today again/we're broken in two/drifting off/in one breath
today again/we're ripped by a mad negativity/today again/we cease to care/wandering in an artless reverie/after a long silence
today again/we're swallowed up by the messed-up filth of longing/today again/we're drifting apart/on our uneasy battleground/in the arms of another
This is also not completely random, of course, but transitional devices such as this do bring a level of coherence to digital found poem that you would seldom if ever see if you left it all up to chance.
So that’s in brief how the text in digital found poem is created. Pretty simple, right? And I continually play with digital found poem by adding new patterns to the master list, searching for new language to add, modifying or deleting language that doesn't seem to work well, correcting spelling errors, fixing grammar elements, etc., all in the hope of making the app a little better with each update and perhaps of more interest or use to others.
If you want to download digital found poem and see it in action, see the download info page.
Do note that this app works only on PCs/tablets and not on mobile phones. And it works on a Mac or other operating systems only if they can run Windows.
Should you want to know more about digital found poem or if you have suggestions about how to improve it, please email me. And any other comments such as "love it," "hate it," "fun," "stupid," etc. are, of course, also welcome.