Category Archives: Live Web

LiveWeb > phone to motor to phone to phone

This week’s iteration involved designing a shoulder harness and adapter for my phone. The whole thing is wireless and runs off a 3.7V liPo boosted up to 5V. 

The master camera uses webRTC to stream video back to all clients through a remote server while the master client (the most recently connected client) controls the rotation of the motor.

The result is an internet controlled wearable surveillance camera.

What would happen when a journalist is equipped with a camera controlled by the crowd?
What happens when the subject of the camera is aware that they are being live broadcasted to hundreds or thousands?
What would happen when a police officer is equipped with a camera controlled by citizens?
When the feed is broadcasted, who claims ownership?
And who gets to claim control?


Live Web > Phone Gyro to Servo Motor

This week I decided to treat the Yun as a websocket server so that I could control a motor remotely. The environment I setup was structure like this:

A remote node server running handles the incoming data from the phone’s gyro sensor. The node server then rounds the values down to the closest integer (ie. 45.929329329 is converted to 45) and transmits the data to a node ws server running on the Arduino Yun’s linux environment as a string – this seems to be a limitation of node WS. As the values are transferred from the Yun’s linux environment to the arduino’s processor, they are converted to integers and then used to control the servo’s angle.

Github repo here:



LiveWeb > RecorderJS +

I hacked at the RecorderJS example code to get it to work with this week.

I had intended to integrate this with some sensor data from my arduino yun to make an physical interface for leaving messages in a wall, but I broke the yun …


LiveWeb 03 : nodejs > test

A basic experiment using the module for nodejs.

Here is how it works.

1. A server is launched that serves out index.html and listens for circleClick events.
2. Index.html is served up to the client (the web browser)
3. The <canvas> in index.html is listening for mouseClick events. When it registers one, it uses’s emit function to send the click coordinates to the server.
4. The server registers a circleClick event and broadcasts the coordinates of that click to all the other clients
5. Each client receives the coordinates from the server via a socket.on(clickFromServer) event, and draws a new circle at that coordinate.

gitHub repo here.

LiveWeb 02 : Adventures in Chat Room Storytelling

The chat room is an interesting medium for storytelling. First, the audience is (in this case) anonymous, which means it can have any sort of absurd, vulgar, or irrelevant response to the story being told. Secondly, the audience is largely idle; many people sit in the chat room and treat it as a passive form of communication with other’s that share a similar interest. Third, the audience isn’t captive, it responds to elements of the story as it’s being told.

All of these things affect the pace, tone, and content of the story being told.

Since nothing too out of the ordinary happened to me this week, I decided to recount a paranormal experience that I had as a child, using a fairly populated World of Warcraft chatroom as my audience. After browsing dozens of sparsely populated IRC chats, the WoW chat was the first that I came across that had over twenty users present.

When I joined the chat, there was no activity. I decided to start telling my story, sentence by sentence over the course of the next twenty minutes.

I told the story of seeing a dead man in my bedroom as a small child. The man was decaying and had tattered clothes; he hung suspended from my blue metal bunk bed, a noose around his neck. His lower torso was missing and he dangled just a few inches clear of the carpeted floor. I mention the gory details because they stand out vividly in my memory, and the thing that puzzles me about this experience is that as a five year old child, I had no frame of reference for this kind of visual. The memory prompts me to ponder the nature of memories, their mutability and ultimately their trustworthiness. If I had no visual reference for this type of experience, is it possible that I have been retroactively augmenting this memory as I’ve grown older; adding acquired visuals to the mental scene? Or did I actual see a ghost?

After a few minutes of reciting my story, I got a response, one related to hentai manga (porn). A joke, it served as a segue into an actual response to my story. This threw me off a bit, and as I continued my story I considered my audience member and began to engage them as I told the remainder of the story. The responder, recounted the phenomena of physically visiting a place that they had seen in a dream and encouraged me to research paranormal activities.

The actual exchange was quite slow, a minute or so would pass between each exchange. This is likely because IRC is a passive type of live communication; users are doing other things while being engaged in the chatroom. Because of this lack of immediacy, I was able to craft my story a little more thoughtfully than I would have been able to if I was speaking in person; a kind of self editing and authorial image management.

Live Web : Assignment 01

For the first assignment, I was prompted to create a self-portrait using only HTML5 canvas video and javascript functions.

I chose to consider identity as a cumulative construction of the people we interact on a daily basis. The portrait rapidly becomes chaotic as the videos are activated.

Click the image below to go to the webpage.