Critical Path

I worked with an "indie" hollywood studio in collaboration with Jody Zellen in designing and building a web-based UI to present their interview videos of the top industry game designers on HTML5 canvas and video elements. I used ProcessingJS. The interface featured a line-network of tags shared between the videos. Each video was a sprite that had its own transformation matrix. Triangle collision was also employed in order to do mouse picking with non-rectangular 2D polygons. The javascript code was extremely object oriented, using static "class members" in addition to instance scoped members. The company, Artifact Studios, ran way over their revision allowance, and continued to expect work out of me long after the contract's duration had ended. And that was the last time I worked in Hollywood.


Watch on Vimeo.

withDRAWal is a series of ten interactive scribble styles commissioned by Graham Peet of The Public in West Bromwich, England. I programmed and tested the whole thing at Beit T'Shuvah. Each mode responds to the scribbling input in a different way. In writing this software using C++ and openGL in OpenFrameworks, I found myself using a maze solving algorithm, the Box2D physics engine, and Perlin noise. Instructions: draw with your mouse, and press the circle at the bottom left corner to move on. If you have a keyboard, press spacebar to clear the screen without moving on. Each number key corresponds to one of the ten modes. Press D to enable the debug overlay. Press - and + to adjust speed or fatness - use at your own risk. Press S to render one screenshot to the data folder. F toggles fullscreen. Q brings back the beginning instruction screen. If you're on a Mac portable that has a sudden motion sensor, mode 5 will let you tilt the screen.

Google Chrome Experiments

Commissioned work that deals with the browser as a medium in promotion of Google Chrome browser. I chose to port Balldroppings to processing.js and I made PopupPong -- pong that uses the brower windows as interactive game elements. BallDroppings was able to happen because of the native Canvas tag included in Chrome, and because the js engine runs so fast. PopupPong actually proved to be a bit difficult because of a bug in the window resizing and placement functions.


A game demo where the player changes the terrain by laying down blocks, then presses go and watches the avatar walk forward, bumping into walls, and eventually reaching the heart and completing the level. When I first began writing this, I was trying to create a game that introduces basic computer programming concepts to the player through architecture and symbols. I still haven't found a good network of metaphors to use -- particularly in the area of working with numbers and math and trying to make it not so mathy. This project almost became my graduate thesis. I later went on to the Icon==Function project and I failed at making those audio visual environments turing complete as well. With Teamwork, I got so wrapped up in the fun of designing a retro-esque 2D side scroller that I almost lost track of my regular school work. I hope to some day pick back up on making an accessible visual programming system.


Froggies is a play-testing prototype for a children's digital play environment. A table with a screen embedded into the surface acts as an arena for virtual life. Children react with the virtual life by placing various symbolic markers on the table and sliding them around. The result is a musical rythm of animal noises.


Balldroppings was one night of idle programming that blew up unexpectedly into a web phenomenon. I learned that simplicity is elegant, and C++ is wonderful for low-latency sound+image. I also learned about addiction and glucose metabolism rate highs. Although I do not accredit myself for having originated the idea of interactive lines with bouncing balls, there exists a small following in the online gaming community that gives me such credit, particularly when accusing one another of having copied me in their recent developments. BallDroppings has also been re-implemented in other languages by random people, referencing the name "BallDroppings." All this activity is very surprising to me. It is also a clear example of the great power resulting from refraining to mark intellectual property. A lot of people mistook BallDroppings to be my graduate thesis. I don't try to correct this misunderstanding.

Minipong: Micro Pong Wall Installation

Tiny Guerilla Video Game Installation: A minimal ball paddle video game that uses a sewing pinhead for a joystick (move paddle left and right). The screen is the size of a penny. Theoretically, this tiny videogame would be installed into a wall in a public space - preferably a wall that people must stare at a lot. Subway station waiting benches have wooden arm rests that are perfect for this. In these pictures, you see the presentation prototype. it is important to design this system so that it can be installed into a wall in 30 seconds with only maybe a pocket drill and glue. The electronics can be designed so that the entire thing can be poked through a fresh hole in the wall without having to open the wall up. This prototype can be reprogrammed with a serial cable to provide other interactive or non-interactive content. The system can potentially be battery powered, plugged in, and solar powered depending on context. It would be great to see one wall with 50 tiny video games all lined up in a row.

Watch on Vimeo.

Photograph taken by Fatima Lasay at DECODE exhibit, 2003

Photograph taken by Fatima Lasay at DECODE exhibit, 2003

This white square is a section of a wall.

This white square is a section of a wall.