Samsung | Liquid Canvas

Fake Love

I worked as the Lead Creative Technologist on this project for Fake Love. The project itself actually had two different phases a year apart, but the execution was fairly similar for both. I primarily led the project for the first version called Liquid Canvas, and Adam Carlucci led the technical direction for the second version called Portrait Pool.

The project itself was for the launch of the Samsung Galaxy 8, and Samsung wanted to show off the IP65 waterproof capabilities of their new smartphones. At the installation, users were instructed to use a specialized app on the phone to take a selfie and then apply a special filter. They then were told to dunk the phone in a shallow dish of water placed above a regular LCD monitor. As the user swayed the phone underneath the water, their selfie would slowly "develop" like film on the screen visible underneath the tank. When they removed the phone from the water, they could then opt to send the filtered selfie to themselves via email.

Each installaton had 4 stations with 4 screens and phones. It was initially done as a global simultaneous launch in Singapore, Sydney Australia, and NYC. The second version, Portrait Pool, was deployed globally to at least 15 countries and over 30 cities over a multi-month run. Between both versions of the project, over 60,000 photos were sent to users.

Technical Approach

  • Software:
    • Everything ran on Ubuntu Linux which made things like multiple deployments much easier. We used Clonezilla to make disk images that could easily be placed on machines and then instantly set up and run
    • Display App
      • Openframeworks for Liquid Canvas, Cinder for Portrait Pool
      • Displayed and rendered visuals and sent the filtered photo to the Android App
      • Sent finished photos to 
    • Android App
      • Native Android development in Java
      • Controlled the main application loop
    • Backend
      • OSC used for Liquid Canvas, but this was replaced with the much more reliable ZeroMQ for Portrait Pool
      • Email sending backend was written in Clojure and used Docker. Postmark was used for actual email sending
      • Photos were sent as email attachments so that they didn't have to be hosted on some online service and introduce additional privacy concerns.
  • Hardware:
    • Gaming PC running Ubuntu Linux (v16 if I recall)
  • Additional notes:
    • The most challenging problem for this was solving how to detect that the phone was placed underwater and how to trigger an action for that. There were many solutions proposed and experimented with, including using the microphone (things get quieter underwater), accelerometer, and other sensors, but none had high success rates. The eventual solution was to stick an NFC tag in the water tank and have the user place the phone directly on the tag. This would then trigger the necessary events and had a much higher success rate, despite not being an optimal "magical" solution.

Selected Works

Polarizer ArtworkPhysical artwork with linear polarizers

TV TelescopeWatching TV from a mile away

Extruded ScreenFiber optic filament display

You're on TVLive TV face swap

i miss you, neighborConnecting local strangers and friends

Self Destructive BehaviorScreen that slowly breaks itself

Hold TimePersonal photo blitz

Movie Stickers100,000 stickers in a room

7up | Music Lifts You UpCommercial Work

Google | Project Re:BriefCommercial Work

Lexus | Trace Your RoadCommercial Work

IBM | Outthink Hidden ARCommercial Work

Samsung | Liquid CanvasCommercial Work

Color A SoundAnalog/digital Instrument

Sonic SculpturesPersonal Projects

street_crtPersonal Projects

Music VideosCollaborative video art

Older WorkPersonal Projects

Older Live Visuals WorkAudiovisual explorations 2006-2016