@wshedbubbles is a machine we built for Watershed’s 30th Birthday party. It blows bubbles whenever someone tweets about the Watershed birthday. As well as a machine blowing bubbles, there is a screen showing the tweets.

Earlier in the year we had a day of celebrations at Watershed marking 30 years. We showed 30 hours of films, baked cupcakes and even made special Watershed bunting. As the IT department we wanted to make visible the online chatter about the birthday in the physical space.

Inspired by Bubblino we chose to build a twitter bubble machine. Bubblino is made by Adrian McEwen, and the code for it is open source. We had all the bits we needed, such as an ethernet arduino and a bubble machine (I have no idea why our office has a bubble machine already [one of the parents in the office had a spare one – Ed]). In the end we used our own code, as we wanted our bubble machine to work slightly differently.

Video evidence of its existence

How It Works

A script running on a server watches for mentions of the watershed through the Twitter streaming API. These tweets are pushed into Pusher queues to pass the tweet to the tablet and the bubble machine. Pusher is the glue that holds all of this together: it’s a simple API with libraries for most browsers/languages, so it’s a breeze to push messages out to an eclectic range of devices (for an internal app like this, you can use the free version with limited clients).

The tablet consumes the queue and renders the tweets and animates them sliding onto the screen. At the same time an ethernet arduino consumes its queue and makes the bubble machine blows bubbles for 5 seconds. Finally the tweets are also retweeted, to let the original poster to see their tweet has triggered bubbles.

The Server

The server runs two simple ruby scripts. One connects to the twitter streaming API and pushes any matching tweets into Pusher queues. The other consumes a queue to retweet tweets to let people know they blew bubbles. We used pusher instead of our own messaging system as we wanted to test it on an arduino.


The Bubble Machine

We added an ethernet arduino to a toy bubble machine. The arduino is powered by Power over Ethernet, as the ethernet sockets in that part of the building have PoE for our public wifi network access points. The arduino consumes a Pusher queue which triggers turning the bubble machine on.

Initially we tried sending the full tweet to the arduino but, while a tweet is only 140 chars, the large amount of metadata attached caused memory issues. As we had no need for the arduino to know the full tweet we instead send it a simple ‘go’ command.


The Tablet

This was a simple webapp (built rapidly using our internal webapp framework), running fullscreen in Exhibition Mode via webOnEx on an HP TouchPad. Yes, we had a fire-sale TouchPad lying around. It connected to pusher, and rendered new tweets to the screen (highlighting them for a few seconds while bubbles blew. Because both bubble machine and tablet ran from Pusher, bubbles blew and new tweets appeared exactly in sync.

The tablet itself was mounted behind some perspex on a stand that was created by our in-house maintenance man (and all round genius with physical things) Richard. The stand has since been used to mount other projects’ public tablets, e.g. My Big Break.

Did It Work?

Of course. We blew bubbles for 211 different tweets, some from quite enthusiastic people.