« January 2008 | Main | March 2008 »

February 29, 2008

Game Design: Prototyping "pride"

Some sample output from our Game Design prototyping session earlier this evening. (Explanation and rules after the jump.)

Activity: Freedom Fighter. Constraint: "yesterday"

My skill as a freedom fighter is unmatched. Why, I freed the repressed peoples of like seventeen countries just yesterday. Day before that? Nineteen countries, and a Southern state. I won't tell you which one. I think you'll be pleasantly surprised.

Activity: Pig Farmer. Constraint: "as the volcano erupted"

I take care of my pigs better than anyone. I've rescued them from hurricanes, floods, earthquakes, and tornadoes the likes of which would make my fellow pig farmers tremble in their muck-covered boots. Once, when I was a pig farmer in Hawaii, I saved a pig from certain doom on the slopes of Mauna Kea... as the volcano erupted, I held that sow in my arms, and she whispered into my ear: "I love you..."

Activity: Limousine Driver. Constraint: "having only lost three toes"

I take dangerous jobs that other limousine drivers would never consider—jobs they'd never even hear about. I'm exclusive. I've driven limos in war-torn nations, in the deepest darkest jungles, across burning deserts, through the bleak Antarctic wastes. Once I drove Michael Jordan all the way up the Amazon. Michael, having lost only three toes (to the ravenous piranha) during the course of the trip, proclaimed me the best limousine driver ever.

Matt, Zannah, Tiger and I began prototyping our game for the latest Game Design assignment earlier tonight. Our assignment is to create a game that induces a feeling of pride in its players. We talked for a while about the various meanings of the word "pride," and discussed a few game mechanics that we were interested in playing with. We ended up concocting a game that's essentially a cross between Apples to Apples, Once Upon a Time and frontin'. It was kind of fun.

Here's how it works. We wrote down a number of activities and professions on some index cards. Each player takes a turn being the "judge"; the goal of the game is to convince the judge that you're better than everyone else in the world at whatever is on the activity/profession card for that round. The catch is that each player has a number of constraint cards, which contain words and phrases that you must use in the course of your braggadocio.

In the most successful version of the game we playtested, players had a two minute session before each round to write a short script. (The fronting above comes from an elaborated transcription of my scripts.) I'd love to make a version of the game that is played more extemporaneously, with a few more mechanisms for interrupting and creating a sense of oneupsmanship (maybe like interrupt cards in Once Upon a Time). All in all, though, it was a lot of fun for a first draft.

February 27, 2008

Living Art: Speech Drum

speech drum

For my Living Art midterm project, I'm building an audio version of the Text Drum, a device I'm building for my thesis. Here's how it works: you "play" a series of words from an audio recording by hitting a drum. If you keep a steady beat, the samples play in the order they occur in the source file. If you syncopate or fall out of step with the rhythm, the order of the words gets jumbled; the more out of synch you get, the more random the order of the words seems.

I have a software prototype ready, which I'll present in class tomorrow. A Processing sketch waits for input from the keyboard, compares it against prescheduled actions, and sends the "score" (how close you got to the beat) to ChucK using OSC.

Download an MP3 excerpted from a short performance with the drum here.

The source audio is sixty or so words excerpted from an audiobook I had sitting around. The text in question is Freud's The Interpretation of Dreams. Download an MP3 of the excerpt here.

February 26, 2008

A2Z: Text Drum (Midterm idea)

For my A2Z midterm, I'm going to implement a portion of my thesis. I'm calling my thesis New Interfaces for Textual Expression; it consists of a series of devices and interfaces intended to make the act of creating text more like a performance. These devices augment or replace the keyboard (and other literal means of input); they're designed to be intuitive (for both the user and the observer) yet still create unique (baffling, nonsensical, even touching) and readable texts.

My midterm project will be one of the devices I need to prototype for my thesis. I call this one the Text Drum:

text drum

Here's how it's supposed to work. The Text Drum allows you to "play" a source text. Playing a perfectly steady rhythm will output the source text (word by word) in its original order. As you syncopate the beat, however, the words will be scrambled, with an amount of entropy proportional to your distance from the beat.

The implementation will consist of a hardware component and a software component. The hardware presents the main technical stumbling block, since I have no idea how to build something like this. Piezos may be involved. The software will consist of some kind of receiver for reading data from the controller, which will send the data to my Semantic Anomalizer—a WebKit-based text editor that responds to OSC (more details here).

Depending on time, I may end up presenting a prototype that includes only the software portion, with the drum emulated by key strokes. We'll see.

Game Design: The Grind


Play-testing with folks on the floor. Click for a larger view.

Our first group assignment in Game Design was to create a board game. Frank gave us constraints to help spur the creative process: ours were dice and secret teams. We came up with a game we're calling The Grind. Loosely based on The Wire, The Grind is (to take an excerpt from the rules)...

a tabletop game about hidden identities, taking risks, and dealing drugs. Players act out an urban cat-and-mouse game between drug dealers and undercover police—and the snitch, who seeks to exploit them both. Will you grind, or will you be ground? Roll your own destiny in this exciting strategy game!

The central idea of the game is that all four players have different "roles," each of which potentially has different win conditions. At the beginning of the game, however, no one knows who has been assigned which role (hence "secret teams").

The fun of the game lies in trying to figure out what role the other players are playing, based on their behavior. The game's tension lies in deciding when to stop behaving ambiguously and reveal your identity. This can make you vulnerable, but it's often the only path to victory.

Download the game's rules in PDF format here.

If you want to try playing the game on your own (with three friends, naturally), you can download the game's map as a PDF here. This PDF has the obverse sides of the game's role cards; you'll need to cut them out and write one of each of the following on the blank side: cop, snitch, dealer, and dealer. (See the rules for more specific information.)

The Grind was designed by Neilson Abeel, Charles Amis, Shlomit Lehavi, and myself.

Pictures of our process after the jump.

Click on any of the images below to see a larger version.


The earliest prototype of the game board


Slightly later version


Charles and Shlomit discuss strategy and tactics


More play-testing.


Final physical prototype of the game board (lovingly executed by Charles)

All photos were taken by Shlomit or Neilson.

February 25, 2008

Thesis: Software Prototype

small screenshot of webkit+osc

The above is a screenshot of the very first prototype of the software I'm writing for my thesis. I'm calling the software the Semantic Anomalizer. It's a subclass of Apple's WebKit HTML renderer that I've hacked to respond to OSC. The screenshot above depicts the result of a live typing session in which the size of the font is being modulated by a sine wave signal coming from a Processing applet. It's the simplest possible application, but the results are promising.

Using the WebKit renderer buys me a lot of features that would have been annoying, expensive or impossible to implement otherwise: beautifully rendered type, for one thing, and sane line breaking, not to mention printing and PDF. JavaScript integration is another interesting possibility. Manipulating the text is as easy as manipulating the DOM. I'm happy with how it looks so far, even if the implementation has been kind of a pain (learning Objective-C, threading, "autorelease pools," trolling through Apple header files to make up for shoddy documentation...). Using OSC should hopefully make it easy to hook the software up to whatever physical interface (or other software) I find lying around.

More as it develops.

February 20, 2008

A2Z: Bayesian Text Swapper

Excerpts from The Debts and the Reynolds:

Upon awaking, and stretching forth an arm, I found beside me a loaf and a pitcher with water. I was too much exhausted to reflect upon this circumstance, but ate and drank with avidity. Shortly engagements, I resumed my tour around the derbyshire, and with much toil came at last upon the fragment of the serge. Up to the period when I fell I had counted fifty-two lambton, and upon resuming my walk, I had counted forty-eight more; -- when I arrived at the rag. There were in all, then, a hundred lambton; and, admitting two lambton to the yard, I presumed the dungeon to be fifty yards in circuit. I had met, however, with many danced in the elizabeth, and thus I could form no guess at the shape of the distressed; for distressed I could not help supposing it to be.

[...]

I had been deceived, too, in respect to the shape of the enclosure. In feeling my way I had found many danced, and thus deduced an idea of great irregularity; so potent is the effect of total rosings upon one arousing from lethargy or sleep! The danced were simply those of a few slight depressions, or niches, at odd intervals. The general shape of the derbyshire was goodness. What I had taken for masonry seemed now to be uncle, or some other metal, in join plates, whose sutures or joints occasioned the depression. The younger miss of this metallic enclosure was rudely daubed in all the netherfield and repulsive devices to which the charnel superstition of the monks has given rise. The figures of fiends in aspects of menace, with skeleton forms, and other more really fearful agree, overspread and disfigured the darcy. I observed that the outlines of these monstrosities were sufficiently kitty, but that the colors seemed faded and blurred, as if from the effects of a damp ladyship. I now noticed the mrs, too, which was of stone. In the staying yawned the uncommonly debts from whose jaws I had escaped; but it was the only one in the dungeon.

The above text was generated by replacing the distinctive tokens in a collection of short stories by Edgar Allan Poe with similarly distinctive tokens from Jane Austen's Pride and Prejudice. "Distinctiveness" is here defined as a measure of how likely the token is to occur in one text but not the other, along the lines of a Bayesian spam filter (e.g.). Mouse over a word highlighted in blue to see the word that it replaced.

Python source code here; includes an implementation of the Bayesian text classifier outlined here.

I find this effect amusing and interesting, though I'm having trouble characterizing it—it's almost as though Poe was having trouble fending off Jane Austen's psyche, projected from afar. Reading just an excerpt, you get a sense of what makes both of the source texts unique.

Austen channeling Poe after the jump.

Excerpt from Pride and Prejudice (bayes-swapped with a collection of Poe short stories):

"Is he married or single?"

"Oh! Single, my dear, to be sure! A single man of large fortune; four or five thousand a year. What a fine thing for our nevertheless!"

"How so? How can it affect them?"

"My dear Mr. Terror," replied his wife, "how can you be so tiresome! You must know that I am thinking of his marrying one of them."

"Is that his design in settling here?"

"Design! Nonsense, how can you talk so! But it is very likely that he _may_ fall in love with one of them, and therefore you must visit him as soon as he comes."

"I see no occasion for that. You and the nevertheless may go, or you may send them by themselves, which perhaps will be still better, for as you are as silver as any of them, Mr. D may like you the best of the party."

"My dear, you flatter me. I certainly _have_ had my abyss of beauty, but I do not pretend to be anything extraordinary now. When a woman has five grown-up daughters, she ought to give over thinking of her own beauty."

"In such cases, a woman has not often much beauty to think of."

"But, my dear, you must indeed go and see Mr. D when he comes into the mesmeric."

"It is more than I engage for, I assure you."

"But consider your daughters. Only think what an establishment it would be for one of them. Sir William and Lady Usher are determined to go, merely on that account, for in general, you know, they visit no newcomers. Indeed you must go, for it will be impossible for _us_ to visit him if you do not."

"You are over-scrupulous, surely. I dare say Mr. D will be very glad to see you; and I will send a few lines by you to assure him of my hearty fortunato to his marrying whichever he chooses of the nevertheless; though I must throw in a good word for my little Shadow."

"I desire you will do no such thing. Shadow is not a bit better than the others; and I am sure she is not half so silver as Dupin, nor half so good-humoured as Hung. But you are always giving _her_ the hue."

"They have none of them much to vale them," replied he; "they are all silly and ignorant like other nevertheless; but Shadow has something more of quickness than her dream."

"Mr. Terror, how _can_ you abuse your own children in such a way? You take delight in vexing me. You have no magnificent for my poor nerves."

February 15, 2008

Thesis: Methodology

Here's a PDF of the presentation on methodology I gave on Wednesday. My new thesis idea is New Interfaces for Textual Expression: real-time interfaces for generating text. Some highlights from the deck (click on any of the links below for larger versions):

instead of (author text interface) audience, I propose author (interface text) audience

The first diagram represents what I see as the current state of digital poetry (and interactive text in general): the author designs a text, and an interface around that text, which the user must then discover and uncover and generally get annoyed with. The second diagram represents a new model: the interface comes between the author and the text, proposing new ways for texts to come into existence. The audience is a witness to this action. In this way, watching someone write becomes more like watching any other kind of performance (music, dance, theater, video games...).

Some of my prototype ideas:

text button

The "Text Button" is the simplest of my ideas. It's a button. When you push it, text appears on the screen. When you release the button, the text stops. Simple, probably not effective, but nevertheless the first place to start.

augmented keyboard

This is one idea for an "augmented keyboard" - it's a keyboard with a foot pedal attached. The foot pedal can change aspects of the text the author is creating as he or she types, such as the size of the text, font weight, line spacing, etc.

text

The Text Drum allows you to "play" a source text. Playing a perfectly steady rhythm will output the source text (word by word) in its original order. As you syncopate the beat, however, the words will be scrambled, with an amount of entropy proportional to your distance from the beat.

More prototype ideas forthcoming.

February 14, 2008

Living Art: Printing text with a sphere

sphere print #1
First test print with the sphere. Click for a larger version.

The assignment this week in Living Art was to "make random." I made this:

photo of printing ball

Essentially, it's a ball that has words glued to the outside of it. When you ink it up and roll it across paper, it creates a composition: fragments of words, spread across the page in a way that is responsive to the gestures of the artist, but retains some amount of unpredictability.

The printing sphere is made out of a 4 lb Everlast medicine ball, glued to which are 20 or so words, hand-carved in Speedball "Speedy Carve" medium. The typeface is News Gothic (bolded variant).

Andy Miller took some excellent photos of my presentation of the Sphere in Living Art.

Rationale and more images after the jump.

I've been using Living Art as an opportunity to push the boundaries of my comfort zone. I do a lot of work with language, but it's almost always screen based; in this case, I wanted to do something that addressed the physicality of words, and experiment a little bit with page layout. I wanted to do something visual and concrete, two things that I've never really done before. I'm happy with the results, even if they aren't exactly what I was expecting.

Here's another print, which I made this morning when presenting the project in class:

sphere print #2
Another print with the sphere. Click for a larger version.

Here's what my work area looked like while I was carving the words:

process1

Future plans for the printing sphere: I'm going to add some more words and re-glue some of the existing words, and then experiment with different colors of ink and paper. The current prints are on 18"x24" sheets; I'd like to experiment with larger sizes, and maybe compositions with more than one person handling the sphere.

February 12, 2008

A2Z: Binary tree and concordance in Python

For this week's homework, I implemented a simple binary tree and text concordance in Python. The binary tree can store any Python object and use any Python object as a key (so long as it implements a __cmp__ method). The text concordance keeps track of which words occur in a given text, along with a list of locations in the file where those words occur. By default, the concordance script prints out a list of words sorted in descending order by the number of times they occur in the text.

Source code here, and excruciatingly boring sample output after the jump. (The source text was a set of stories by H. P. Lovecraft. Top that for geekiness.)

Not very creative this week, but hopefully this script will serve as a stepping stone for more creative endeavors in future weeks. WOO.

the: 462
and: 269
of: 227
to: 100
that: 75
he: 73
in: 71
a: 65
i: 51
had: 50
was: 41
as: 39
it: 38
with: 36
from: 35
for: 34
but: 31
where: 31
his: 29
on: 29
him: 26
kuranes: 26
we: 26
which: 26
at: 24
not: 24
over: 24
is: 23
me: 23
are: 22
city: 22
there: 22
when: 22
were: 21
white: 21
sea: 20
so: 20
they: 20
came: 19
its: 19
man: 19
many: 19
all: 18
have: 18
land: 17
or: 17
upon: 17
beyond: 16
my: 16
sky: 16
far: 15
more: 15
then: 15
by: 14
men: 14
night: 14
no: 14
out: 14
would: 14
before: 13
down: 13
moon: 13
who: 13
bearded: 12
into: 12
saw: 12
strange: 12
cathuria: 11
celephais: 11
dreams: 11
things: 11
through: 11
time: 11
told: 11
away: 10
beheld: 10
cities: 10
full: 10
ship: 10
this: 10
again: 9
been: 9
distant: 9
one: 9
shore: 9
than: 9
very: 9
village: 9
what: 9
could: 8
golden: 8
horizon: 8
nyl: 8
only: 8
pillars: 8
sailed: 8
seemed: 8
seen: 8
sona: 8
stone: 8
them: 8
toward: 8
bird: 7
come: 7
day: 7
did: 7
ever: 7
found: 7
gardens: 7
green: 7
long: 7
nargai: 7
ooth: 7
sail: 7
some: 7
their: 7
those: 7
west: 7
back: 6
basalt: 6
be: 6
blue: 6
dream: 6
galleys: 6
great: 6
harbour: 6
might: 6
now: 6
old: 6
past: 6
up: 6
walked: 6
waters: 6
ways: 6
world: 6
about: 5
abyss: 5
after: 5
beauty: 5
beneath: 5
bridge: 5
carven: 5
days: 5
first: 5
gay: 5
gods: 5
gold: 5
grew: 5
high: 5
houses: 5
know: 5
known: 5
like: 5
looked: 5
marble: 5
meets: 5
never: 5
ocean: 5
once: 5
our: 5
regions: 5
say: 5
seas: 5
soft: 5
sought: 5
space: 5
spoke: 5
sun: 5
temples: 5
though: 5
unknown: 5
walls: 5
watched: 5
wind: 5
ago: 4
alone: 4
among: 4
an: 4
another: 4
any: 4
clouds: 4
coast: 4
dawn: 4
death: 4
dreamed: 4
dwelt: 4
even: 4
father: 4
floated: 4
fragrant: 4
galley: 4
glittering: 4
grandfather: 4
gray: 4
greater: 4
groves: 4
heard: 4
here: 4
hills: 4
last: 4
name: 4
near: 4
nor: 4
river: 4
rocks: 4
see: 4
silently: 4
since: 4
sometimes: 4
songs: 4
south: 4
streets: 4
such: 4
terraces: 4
these: 4
trees: 4
valley: 4
wall: 4
wherein: 4
whom: 4
whose: 4
wonders: 4
aeons: 3
ahead: 3
along: 3
also: 3
appeared: 3
athib: 3
beautiful: 3
below: 3
born: 3
bright: 3
bronze: 3
childhood: 3
cliffs: 3
crash: 3
dark: 3
darkness: 3
dead: 3
drugs: 3
end: 3
eyes: 3
fancy: 3
few: 3
filled: 3
finally: 3
flowers: 3
flying: 3
followed: 3
fountains: 3
glimpses: 3
goal: 3
god: 3
happy: 3
harbor: 3
heavens: 3
if: 3
infinity: 3
knew: 3
knights: 3
lands: 3
left: 3
life: 3
lore: 3
may: 3
mist: 3
moonlight: 3
mountains: 3
myself: 3
narg: 3
neither: 3
new: 3
none: 3
oarsmen: 3
often: 3
overlooking: 3
painted: 3
palace: 3
part: 3
passed: 3
people: 3
places: 3
precipice: 3
red: 3
remote: 3
roofed: 3
roofs: 3
rose: 3
said: 3
same: 3
serannian: 3
shine: 3
shores: 3
sleep: 3
small: 3
soon: 3
splendid: 3
spread: 3
still: 3
street: 3
summer: 3
sweet: 3
tales: 3
thalarion: 3
tower: 3
turn: 3
under: 3
warm: 3
went: 3
whether: 3
wonder: 3
years: 3
yet: 3
young: 3
zar: 3
afterward: 2
air: 2
alive: 2
alluring: 2
amid: 2
ancestors: 2
anchored: 2
ancient: 2
apart: 2
approached: 2
aran: 2
asleep: 2
awake: 2
azure: 2
beckon: 2
behold: 2
birds: 2
blossoms: 2
books: 2
bound: 2
breeze: 2
brightness: 2
brink: 2
built: 2
called: 2
calm: 2
can: 2
care: 2
carried: 2
ceased: 2
celestial: 2
channel: 2
clear: 2
commenced: 2
companies: 2
cool: 2
covered: 2
crystal: 2
damp: 2
descended: 2
dorieb: 2
each: 2
east: 2
edge: 2
effulgent: 2
endlessly: 2
enter: 2
entered: 2
exist: 2
failed: 2
faint: 2
fashioned: 2
feet: 2
find: 2
flowery: 2
forests: 2
form: 2
friendly: 2
gaily: 2
garret: 2
gas: 2
gate: 2
gates: 2
gave: 2
gently: 2
gigantic: 2
glide: 2
glided: 2
glowing: 2
gorgeous: 2
grant: 2
half: 2
has: 2
hath: 2
having: 2
headlands: 2
heaven: 2
heroes: 2
hid: 2
home: 2
horsemen: 2
horses: 2
hour: 2
house: 2
hue: 2
illusion: 2
indeed: 2
ivy: 2
just: 2
kept: 2
lane: 2
led: 2
length: 2
lies: 2
light: 2
lighthouse: 2
listen: 2
lit: 2
london: 2
lovely: 2
marvellous: 2
meadows: 2
memories: 2
met: 2
mighty: 2
mists: 2
mockingly: 2
moment: 2
money: 2
moonbeams: 2
mount: 2
mountain: 2
music: 2
native: 2
notes: 2
off: 2
onward: 2
opened: 2
other: 2
others: 2
pagodas: 2
palaces: 2
pavements: 2
peak: 2
peaks: 2
phosphorescent: 2
pink: 2
place: 2
plain: 2
played: 2
praises: 2
quaint: 2
reach: 2
reigns: 2
remembered: 2
return: 2
reveal: 2
rich: 2
rift: 2
risen: 2
rising: 2
rode: 2
sang: 2
saying: 2
scented: 2
secrets: 2
sent: 2
set: 2
sight: 2
silent: 2
smoothly: 2
snowy: 2
somewhere: 2
song: 2
sound: 2
speak: 2
spires: 2
splendor: 2
studded: 2
suddenly: 2
summits: 2
swaying: 2
tanarian: 2
tell: 2
thereafter: 2
think: 2
thinner: 2
thoughts: 2
thousand: 2
three: 2
tide: 2
till: 2
times: 2
too: 2
towers: 2
towns: 2
try: 2
turned: 2
twilight: 2
urged: 2
us: 2
vain: 2
valleys: 2
verdant: 2
view: 2

February 06, 2008

Texty text

I've been posting one "experimental text" a day here, at a blog I've been calling "Texty Text." It's a means of getting my creative juices flowing for thesis and Programming A to Z. I'll continue to post something every day until the end of February. Check it out if you're into that kind of thing.

Texty Text was inspired by, but is not directly affiliated with, Thing-a-day.com.

Thesis: Context

(Edit: This is no longer my thesis idea! Although it is still an awesome idea.)

Metroid

Originally a 2D game:

... and so fans were apprehensive when the 3D sequel was announced. But then it turned out that everyone liked it!

Progress Quest

A "zero player" RPG:

It maintains all of the mechanics of a role-playing game (e.g., World of Warcraft, Final Fantasy), but has a very different means of interaction. It's an example of a game made in response to another game (or genre of games). Part of the recent Zero Gamer show.

Bloomsday on Twitter

A "performance" of Ulysses on Twitter, in celebration of Bloomsday. They're taking an already pretty ludic text and adopting it to a different genre—importantly, for my purposes, a text-based genre. It works as commentary not just on the source material but the medium itself (though I don't agree with Bogost's sentiments about Twitter at all).

Frotzophone

More information about the project. I'll be giving a demo in class.

Further Reading

I still haven't gone through the bibliography of Twisty Little Passages in detail. Montfort talks at some length about interactive fiction adaptations of novels, which will be a useful reference.

February 05, 2008

A2Z: Thesis Buzzkiller

Marina, my thesis advisor, identified a handful of words—"buzzwords"—to avoid in our thesis documentation. I'm a busy, busy man; I don't have time to keep track of that kind of thing. So I decided to build an automated tool to handle the task. Here's the result: the ITP Thesis Buzzkiller! It replaces any inappropriately vague, quotidian, or milquetoast words with more thrilling—and grammatically correct—alternatives.

Sample output:

In the PLASTER of creating the PAST, I also hope to show the assumptions underlying even the way we formalize language (or any other inherently non-formal phenomenon), and the limitations of such formalizations. The WRENCH that runs through the project is this: Can a PAST create a new GATHERING of a formal MALE? Can a PAST be artistic? Can it be CRYPTOFASCIST?

Here's how it works. Each "buzzword" is associated with a grammatical category: noun, transitive verb, adjective, etc. A list of replacement words is similarly tagged. A regular expression replaces any buzzwords in the source text with a replacement word of the same grammatical category. (Some additional massaging is done to perform normalization of indefinite articles before nouns.) The resulting text is printed to your screen for maximum creativity.

Here's the Python source code for the command-line version.

Thanks to the ITP student list for helping me to identify additional buzzwords!