Monthly Archives: October 2015

If You Have Ghosts, You Have Everything


This week, I attempted to import data from a wide variety of APIs, with no real luck. Since I wasn’t sure whether it was my problem, my computer’s problem, the APIs’ problem or something else entirely (evil spirits?) I eventually gave up and just used a local file.

So I decided to try to create a digital version of one of my favorite road-trip games, “ghost.” The idea is that players take turns adding letters to a piece of a word. Whoever actually completes the word gets a letter (a la “horse” in basketball), G, H, O, S or T, and the first player who has “GHOST” loses. But you can’t just throw out any letter – if your opponent challenges you and you can’t name the word you were building towards, you get a letter.

(Fun nerdy music history fact – the British folk-rock band Fairport Convention named their third album “Unhalfbricking” after a word the lead singer claimed she was trying to make, playing ghost in the tour van.)

At any rate, this version is very simple. Whoever makes a word gets a point. Whoever adds a letter that doesn’t fit into any makeable word gets a point. (And it occurs to me now that I definitely should have refined that a little further – that bluffing is a real part of the gameplay, and there should be a “challenge” button that rewards a successful challenge [opponent gets a point] or punishes an unsuccessful one… if I work back into this, that’s the first thing I’ll fix).

And then I drew some ghosts with the mouse in Photoshop and integrated them into the background, with its Republican-necktie color scheme.

Inspirations for this were other word games, really – there’s a new-ish one I like called “Spelltower” ( and then the classics (Boggle, Scrabble, etc.) in both analog and digital forms. I also found a lot of inspiration looking at the Wordnik API, which lists several projects that use their database, from games to word-of-the-day apps to password generators. Actually Wordnik itself is an inspiration.

Game is here.

Code is here.

Ugly, ugly, ugly code…

Fairly straightforward, I thought – make a sketch based on hats. Specifically, you put a hat on a figure, then something happens.

I felt pretty confident I could do it in regular-old p5, no problem, so the shift to doing it with DOM elements would be basically painless.


Loading up the background and foreground images was no trouble – everything orderly, hiding, showing, etc. I used a for-loop to create five copies of my hat graphic, again no problems. I made another for-loop to dictate their behavior, and it was there that the difficulty began – I couldn’t make them behave. Weirdly, the program did work when I moved the first hat off the canvas and called an imaginary seventh hat, but try it on the five hats I intended to create and no dice.

It took about an hour of headscratching before I realized that the problem was that I was calling behaviors in “draw.” Oops. It is still somewhat counterintuitive to put anything involving action (specifically the .mousePressed() function) in “setup,” but it does make sense ultimately – this thing is a thing, more than a JavaScript object is a thing, and it doesn’t need to be redrawn 30 times a second in order to work.

But I left all my weird hacks commented in the code as a badge of my learning curve.

Sketch is here.

Code is here.

Color Composition

My plans for this one changed. At first I thought, let me create something in p5 that lets the user move a “lens” in the image that turns drab circles bright, a la the polarized mural in the Museum of Science in Boston, one of the touchstones of my childhood. But then I started to think about what it would actually look like, and it interested me less.

Then I thought, maybe I need to create a tetrahedron that can rotate, and the angle of the plane to the viewer creates the “thickness” of the glass, which in turn determines the intensity of the color… and that sounds lovely, but is way beyond my programming abilities at the moment.

And then I just started sketching.

A couple of years ago, I was out one day running errands with a dear friend, the very brilliant artist Zefrey Throwell, and I was engaging in a favorite annoying pastime, kvetching about the vacuousness of the New York art scene, and of contemporary art in general. And he brought up Richard Tuttle, whose work I was unfamiliar with, and what Zefrey described as the central question of his artmaking: “why is this not nothing?” This thing, next to that thing, in this place – why is this not nothing? I’m not sure it’s always a valid defense, but it’s a thought-provoking question, and one that has stuck with me ever since.

I love to draw, though it’s not a medium I’ve ever made much out of. I draw for pleasure, and to play with ideas, and out of boredom, and sometimes to surprise myself.

I got out a pencil and a ruler, drew a line, then pulled the ruler ever so slightly back, drew another line, and said to myself, “I’m drawing a square.” The rule was, don’t intentionally deviate from parallel, but if you do, try to compensate in the next line. Same goes for top and bottom edges.


And then I scanned it and started to play with colors, and I have to admit my favorite version is the red and blue, originally just a placeholder for other colors, but I think there’s something weirdly compelling about it.

It’s not nothing. But only just.






Midterm Project Proposal

For my “stupid pet trick,” I would like to build further into my last mini-project, my not-quite meditation device. I am really intrigued by the idea of user-supplied inputs that the user may or may not understand, but over which he or she has some degree of actual and ultimate control.

As we discussed in class, breathing is maybe the best example of this, since it can be either conscious or unconscious. The most data-rich and least intrusive way I can think to measure this is by means of a magnetometer and a strong magnet, worn on the body in such a way that breathing moves them in relation to each other.

Other possible factors to measure might be the user’s position in relation to the device, perhaps some intentional act (the squeeze ball, for example) or…

In playing around with sensors this week, trying to figure out what reads what (and how), and what if any “off-label” uses each might have, I noticed some interesting interference when I held my piezo element in hand – a very rapid cycle of noise that went away when I put it down. I thought for a moment it might be my heartbeat, accidentally being captured, but it was way too fast. I then thought, perhaps it’s not the piezo that’s reading this but the wires themselves – I remembered my best friend’s TV when we were teenagers, which exploded in snow if you stood in a certain place, but calmed down when you put your hand on it. I unplugged the piezo, held the alligator clips in my hand, and the noise was still there – I placed them on the table, same distance apart, and nothing. So I’m assuming that’s my electrical field it’s reading, which would definitely be worth playing with further, though I’m not sure how individuated it is, and very unsure if it can be controlled.

But the idea would then be to take two or three of these factors (breath, field, position, for instance) and feed them into a program that creates an animation based on these, developing over time. The goal would be to somehow express something about the data themselves – not chaos but some (even very abstract) statement. Things like more agitated inputs warming the color palette or multiplying points of movement spring to mind, but I think most of the pleasure will be in experimenting to see what feels right.

And then a second, and much more interesting, goal would be to create it for two people – a nonverbal interaction that takes contributions from each to create a shared or partially-shared experience. But that is probably beyond the scope of the pet trick.

Words Amok!


I love word games, and I’ve wasted a lot of time playing them over the years. This is my attempt to create one that I haven’t seen before, though it shares a lot of traits with many of the others.

The gameplay is simple – letter tiles fall from the top of the screen, and the player has to make words out of them before they hit the bottom.

And it works! Which kind of amazes me. Still definitely unpolished,very clunky in certain areas (especially the buttons and the timing of the animations) but it does basically what I set out to have it do, and I’m pretty happy just with that.

My hope is to keep working on it and really make it fun to play. Part of what frustrates me about other word games is that they treat words as just strings against which to check the validity of an answer. I hope (and this is something I really haven’t scratched yet) to imbue some sense of the words’ poetics, or at least their meanings – give quotes using interesting words, extra points for particularly cool ones… I have lots of ideas, none of which I’m sure of yet.

And I would also love to build more word games and make a site that offers a variety, for solo and/or social play.

For now, though, I think the next steps are to improve the aesthetics, add level characteristics, have people play it and give feedback, and generally just evolve it in as interesting a way as I can manage.

It’s also kind of a dancing hippo, code-wise – it works, but I’m nearly certain there’s a more elegant way to do everything. That’s something I’d also like to clean up.

You can play Words Amok here!

Code is here.


Strictly Business (Cards)

I am, at heart, a conservative, a formalist and a curmudgeon.

I remember, in childhood, that I thought having a business card meant something serious about you. The only people I encountered who had business cards were professionals, and the cards all looked basically the same. You could have any color you wanted, as long as it was somewhere between white and ivory. Black thermographic ink. And your choice of Bank Gothic, Copperplate or a couple of classic serif typefaces.

When I was thirteen, my first band, The Inbreds, booked its first show, in the garage of some punk house in New Brunswick, NJ. Our lead singer’s mom and stepdad drove us down from Boston, and there were all these older punks (21? 23? Ancient!) milling around and drinking beer from a keg. I was talking to one pierced, tattooed fellow, and when we parted, he pulled out his card and handed it to me. It looked like every other business card I had ever seen, but it said:

Angel Serrano


Blew my mind.

And then the internet happened and all of a sudden everyone had a snazzy, thoroughly-designed business card, something really personal that really spoke to the bearer’s personality. 4/4? No prob! Foil stamping? Groovy! Three-panel foldout? Now you’re talking. And in all fairness, I too have a snazzy, well-branded business card, handsomely printed on thick stock by

But I miss the old form, in my curmudgeonly heart.

So for the purposes of this class, my business card is:


Printed on Hahnemuhle Copperplate that someone was kind enough to leave a few sheets of in my possession. Thick enough to serve as a card, soft enough to travel through an inkjet printer.

And on the back is an original artwork that I have decided to call “Guinea Pig Fantasia No. 1.”


Not Quite a Meditation Device

So I’m stressed. Really really stressed. Schoolwork, work-work and all the noise of life.

After our Synthesis session on Friday, I began trying to devise my next little project for Physical Computing, and I realized that what I really want is a machine that will help me calm down. Remembering that meditation devices were among Tom Igoe’s greatest physical computing hits, I set about imagining what meditation device I would make for myself. I didn’t want it to measure something invasive like breath or sweat; I wanted it to be something a person could interact with voluntarily that would soothe through the interaction.

I thought about the stress relief balls that used to be on everyone’s office desk, and started thinking about using one to control a visual program. My thought was that I might squeeze a ball (which intrinsically feels good and relieves some stress) to drive a calming visualization.

But what aspect of the squeeze and what aspect of the visualization? It occurred to me that one of the things that helps me to calm down is deliberate, repetitive motion. I decided that the program would have the user set a rhythm (or rather, a time interval), then place a cue for the smoothest, most regular interpretation of that directly in the middle of the user’s field of vision. The goal would be to squeeze smoothly and make the cue disappear by matching one’s own actions to the computer’s ideal.

(And let me say here that I should have talked this out to myself – any place where there are words like “goal” and “ideal” is a terrible place to begin thinking about mindfulness… but I digress.)

I considered using a Hall Effect Sensor on one side of the ball and a magnet on the other to measure the “squeezedness” of the ball, but Tinkersphere was out of analog Hall sensors, and I realized an FSR taped to the surface might do the trick just fine, with maybe even more flexibility in terms of ball choice. I then went to the 99-cent store and bought a selection of squeezy balls. After a market survey of one potential user (my girlfriend), I decided that the “Guardians of the Galaxy” ball was best for size, firmness and overall feel.

I mounted the FSR to the outside with tape, wrote a program for the Arduino to gather pressure data, then wrote a program in P5 to pull that data and analyze the pressure of the squeeze and the period of fluctuation. It then calculated the average time between peaks, and set that as its “ideal” rhythm.

The program works with the user by coloring the background to match the squeeze – white for no pressure, black for max pressure. It then projects the “ideal” pressure at any given moment in a sort of sphere-like object in the center of the screen.

And I tried using it and realized that I had created the exact opposite effect from what I had intended. Far from it being easy to set my own rhythm to the computer’s, it was intensely difficult – I had made for myself a demanding and unsatisfiable taskmaster.

But at the same time, it was an oddly compelling interaction. I discarded it after the first evening as digital fascism (or something very like it) and then returned to try it again the next evening, just for the hell of it. Miraculously it was much easier, and still much more engaging than two shades of gray on a computer screen ought to be.

The problem, though, is the falsehood of the central premise, namely that there’s something to be gained by syncing one’s own motions to a computer’s suggestions. The thoughts I have (and they are many) center around two lines of inquiry. First, it would be much more interesting to use the same program to have two users sync their motions to each other, remotely – a weird wordless way for two friends or separated lovers to connect, or two strangers to meet.

The other is that it’s a great definable but essentially unpredictable input – the user has full control but not necessarily much understanding of that control. It would be fascinating to drive an animation based on parameters (pressure, period, regularity) supplied somewhat thoughtlessly by one (or, better, two) users, where nothing was clarified (i.e. “by doing thing X to the ball, thing Y will happen on screen) except through iteration.

Thoughts, thoughts… more to say coming soon!