cool comply prototype

an inexpensive, networked fridge to hold TB medication

I developed the Arduino code and the electronics for a prototype of Cool Comply- an inexpensive, networked fridge to hold TB medication. The system logs the temperature of the fridge, and when patients take medication. A text message is sent out each day with the data. We have sent the first prototype to Addis Ababa, Ethiopia, where it is currently being used by patients, and are working on iterations with engineers at the local university.

This is a project with the MIT H-Lab.

Light Card

Laser cutting generative design and typography

I designed a card to be in the Museum of Pocket art ALL BUSINESS ALL THE TIME show. I used Processing to design the card, and then I laser cut the pattern in acrylic.

To produce the design I first I set the text centered within a rectangle. I drew points around the perimeter of the letters and additional points were placed within the rectangle randomly, with a higher probability of a point placed closer to the letter points. The added points repelled each other briefly, and then all of the points were triangulated. The text emerged from the density of triangles.


update (october 28th, 2012):

This is a project from 2010, but was recently blogged on NOTCOT so I thought I’d include a few more details.  You can see several iteration of the piece in the first blog post of this site.  You can see among the variations that I began with the Delaunay triangulation, and placed text over it.  Here is an example:

I was working on this after TAing a class taught by Jesse of Nervous System.  He suggested I think of a way to integrate the letters with the underlying pattern.  Hence I began to look into extracting points from the text, and using those points in the triangulation.  If you take a look at the code, you’ll notice I use the geomerative library to do the font analysis.  Here is a later iteration:

You can see the letters emerging from the intersecting lines, but still quite hard to read- especially the web address.  I soon removed the address.  It kind of highlights the question of whether or not it is still a business card, but I liked the idea of removing references to myself in it and focusing on the connection, the us.

I created a ton of variations of this design using the Processing code I wrote above, changing parameters to affect the number of points and spacing of points, until I found a design I liked. Finally, I created a PDF based on this image (I believe it is the one below), and used that with the laser cutter.


Globe Growth

A 3D inflating convex hull of random points with repulsion

I created a 3D object that grows in simulation. Points are placed randomly in a 3D space and repel one another. All of the points repel the center of the simulation. The convex hull is taken of the points at each time step, resulting in a 3D object that is inflating. An offset is applied to each triangle face, and the offset internal triangle is curved using subdivision.
This shape will be fabricated using a 3D printer. For the colorful image, only the curved internal triangles are colored.


Inspiration Overload

Pulling tons of visual information into a single stream

INSPIRATION OVERLOAD is a tool to automatically pull images from select inspiring websites and display them in a stream. When one reaches the bottom of the page, more images are loaded.
I made this because sometimes my creative process calls for tons of visual stimulation. After finding several blogs with a lot of great visual art, I made this to simplify the UI to be just what I needed.

The image links are pulled using cron jobs and a Python script, and displayed using a Javascript web app with data fed from a Python back-end.

See the code on github here.

The web app is here.


Interactive LED grid for two people

I constructed an 8×8 programmable LED grid with two blow sensors. When blowing the left sensor, ‘particles’ would move from the left to right. When blowing the right sensor, ‘particles’ would move from the right to left. When these particles collided, they created a seed for Conway’s Game of Life. The piece encouraged not only interactivity with itself, but between people.

The piece was displayed at the Pozen Center at the Massachusetts College of Art and Design.

knit wall

Generating global behavior through algorithmic local assembly.

I created an adaptive structure by repeating a simple algorithmic process. Local behavior on the knit wall is affected by the specific geometry of a weave. What emerges is a flexible form capable of a wide range of global behaviors. Such a design method allows for more distinct local weaves to result in significantly different emergent context-dependent material behaviors.


Interactive public art in downtown Boston

In a collaboration of New American Public Art and goodgood, I designed, built, and installed an interactive public art piece on the Rose Kennedy Greenway alongside Karen, Ben, Dan, Mattie, and Namita.

The piece consists of three analog projectors, a sculptural housing, and an LED video animation. The opening reception was on January 12th, 2012, and featured modern dancer Yuka Takahashi.

We took the opportunity to introduce a work of interactivity to a public space in Boston, exploring themes of play and creativity, while unifying the work with the goals of the Greenway and the Boston Harbor Islands.

Photos by Matthew Shanley.

Support for the materials for the work was provided by the Rose Kennedy Greenway. The Harbor Islands graciously provided the pavilion and the LED screens, which were integrated with the assistance of Boston Cyberarts and the Pavilion.

The work shows from January 2012 to mid March 2012, and is a block from the Aquarium T stop.

See associated posts with Lighthouse, including coverage by the Boston Dig, and a press release.

everything incredible

An open source album of minimal generative code experiments, with sound produced by a piezo.

Here are a few tracks and sketches for an album entitled ‘everything incredible’.

I wanted to create generative music that could be encoded in a function, and had to be played with a physical piece of hardware, rather than digital reading. Here I use the Arduino with a piezo. I write a function to generate a string of numbers, which determines the oscillation of the piezo. You can also play with the PWM of the sound.

Example tracks:

int prettyCool(int t){
 return abs(16-(t^2)|(t%5)&t^2)%16;


int slowIncrease(int t){
 int out =((5 + t%3)+ (t>>5) % 42) * (t%2); 
 return out;


int triangle(int t){
  int out = (t<<1) %16;
  return out;


int coolDoubleTriangles(int t){
  int out = abs(16-((t/2)<<1)%16)*(t%2);
  out+= (((t/2)<<1)%16)*((t+1)%2);
  return out;


I was inspired by this blog post discussing short c++ scripts to generate complex sounds, but i did not have /dev/audio on my mac, so I built the simple Arduino circuit.

The whole album is also completely open source.  You can see how all of the sounds were generated, and tweak, or remix as you wish.  The code is available here:​whichlight/​everything-incredible, and I ask to be referenced/credited should you choose to use the work.  Over time, you will see updates to the code, as the album develops.

Although I want the music to be heard with the piezo, I recorded a few pieces and posted clips on vimeo.

How to play this album

This is an image from Arduino PlayMelody. The setup is the same.

1.  Install the Arduino environment, and get your Arduino.

2.  Find a piezo.  Plug the red wire into pin 9 and the black into ground.

3. Download the script.

4. Plug your Arduino in and upload the script.

5. You will see a bunch of functions below loop() in the script.  These correspond to different pieces.  There are several ways to load them.  In the loop() you can assign ‘pitch’ to the output of any of those functions.  I added two more variables: the pulse width, and note duration.  Those can be commented out, or changed as well.

Note that as the album develops this structure may change.  In the final phase, there will be a button added to toggle between tracks.

Rapid Prototyping, Creativity, and Open Hardware Workshop

Using the Arduino as a tool for physical ideation.

Rapid Prototyping, Creativity, and Open Hardware Workshop from which light on Vimeo.

I led a workshop exploring ideas of rapid prototyping and physical ideation with the Arduino platform, using the Experimenter kits. This was at a festival+conference of entrepreneurship at MIT.

The workshop began with a short presentation.  You can find the images corresponding to the ideas here. This framed the workshop by showing participants some of the implications of the technology they were learning.

The open hardware model has gained in popularity just recently, in the last few years, propelled in part by the rise of the Arduino, but also events like the Open Hardware Summit. People are expressing new ways to do business, and engage with customers, using open hardware.

WIRED came out with an article called ‘The Next Industrial Revolution‘ outlining the simple idea of ‘giving away the bits, and selling the atoms’- meaning that you give away the information, but sell the actual thing. Giving away the information can be amenable to building a community and ecosystem of add-ons around your product.

For the Arduino this led to the development of Arduino clones, as well as tons of shields to do different things, like handle TV input, or Ethernet connections. The Arduino itself can be best introduced by seeing a gallery of projects people have completed with it- you get an idea of its unexpected potential.

Finally I outlined a few tutorials to go through, and we went over the basics. Those are also posted on the workshop page. What actually happened was that after the initial description of parts, people jumped in immediately. Instead of commanding the group at once, I went around and answered questions individually or with smaller groups.

I encouraged the question “What would you do with this?”, which was inspired by Giovanni’s workshops in Burkina Faso. He would give a tutorial of how to work with a web tool, like Flickr or Google Maps, then there would be a experimentation/play session framed by that question.  This would create a local community incubator- all sorts of ideas came out- some with business potential.  This made me think of D-Lab and creative capacity building.  Then it occurred to me, perhaps this question could refocus the workshop not on what I could teach others, but on awakening/strengthening their creative potential.  That’s exciting.

For this workshop the learning and experimentation merged. Several cool projects came about, taking ideas of the first tutorials and changing them in ways to produce something original, and meaningful for the participant. People were very gracious and excited to have completed these initial steps- a whole new set of possibilities emerged in their mind- of introducing sensors in the world, and programming physical interactions.


A way to explore the visual language of icons through messages and poetry

text+icons is a way to play with the icons of the Noun Project. You can type a message, and any words that match icons will be displayed as the icon. So you get a message thats a mix of text and icons.

I find the Noun Project pretty exciting – an intuitive visual language that can span many spoken languages. I like the idea of developing tools that will use the language, and can in turn potentially help the language grow. text+icons is exploring that idea.

The URL updates to reflect your message. You can write a little icon poem and send the URL to friends and they can see your text+icon creation when they open it in their browser. Here is one by james that I like:

my coffee addicted surfing robot sloth drives a jeep and loves physical-therapy and golf

and the accompanying URL:


You can share the message via twitter too, using the share buttons below the input box. The URL is automatically shortened using

To make this, I used bottle to retrieve the icons and javascript to visualize it all. Bottle is running using Passenger. You can see the source and remix the project here.  There is also a pretty simple API to the noun project icons that I wrote.  At the time this was made, I could not find one, but there will probably be one presented in the coming months by the Noun Project.

You can get an icon of a particular noun as an img or a json.

For the json:
just search the [noun] with[noun], and you’ll get back a json with {‘status’ : ‘ … ‘, ‘data’ : ‘…’} where status will be ‘Success’ if there is an icon, and ‘Fail’ if there is not. ‘data’ will return back the icon link if there is an icon. It just retrieves the first icon if there are multiple ones.

For the img:
just search the [noun] with[noun] and you’ll get an img.