D2C_0360

D2C_0360.gif

Art Hack Day GIF Booth

Art Hack Day 2012 was an event for hackers whose medium is art and artists whose medium is tech. It took place from January 26-28 at 319 Scholes in Brooklyn.

Over the course of 2 days, we put together a GIF booth made of Processing and cardboard. The image capture was activated using a foot switch with an Atmega32u4 (for USB keyboard functionality). Once captured, the GIFs were relayed in near real time (about 2 seconds) to a web server. The Big Screen Plaza, a collaborator for Art Hack Day, then broadcast the streaming GIFs to their live display on 29th in Manhattan.

The GIF booth software was designed in Processing/Eclipse and used a PSEye web cam. The Processing library for GIFs was lacking in optimization so I turned to Gifsicle, a command-line GIF utility, to handle the compression. Rsync was then used to relay the images to a web server. The front-end web display was coded by Daniel Arce. The GIF booth and 3D printed mustaches were designed and fabricated by Ashley Zelinskie and Katie Wendt. It was made to be entirely laser-cuttable. The projections mappings, concept and motivation came from Mary Huang.

Made with: Processing, Gifsicle, Rsync, Arduino, a Makerbot and a bunch of cardboard Art Hack Day @ 319 Scholes

Made by: Mary Huang, Ashley Zelinskie, Katie Wendt, Daniel Arcé, Winslow Porter, Adam Harvey, JR Harvey

D2C_0350

D2C_0350.gif

D2C_0369

D2C_0369.gif

D2C_0311

D2C_0311.gif

D2C_0234

D2C_0234.gif

D2C_0204

D2C_0204.gif

D2C_0131

D2C_0131.gif

D2C_0122

D2C_0122.gif

D2C_0019

D2C_0019

Booth Setup

Booth Setup

More Images

Press

The booth and projection

GIF Booth at Art Hack Day 319 Scholes

GIF Booth at Art Hack Day 319 Scholes

Arduino Code

The code used an Atmega32u4 board from Adafruit. The function is called when the foot switch is pressed. In Processing, the sketch simply listed for the “keyPressed()” event.


void onPressFootSwitch(){
  if(! footSwitchPressed ){
    // Set keys
    // Set a modifier like this (optional)
    // Keyboard.set_modifier(MODIFIERKEY_CTRL | MODIFIERKEY_GUI);
    // set the key
    Keyboard.set_key1(KEY_G);
    // send KeyPress event 
    Keyboard.send_now();

    // Release keys
    Keyboard.set_modifier(0);//null
    Keyboard.set_key1(0);//null
    delay(keyboardDelay);
    footSwitchPressed = true;
  }
}