Motion controlled slideshow

I recently finished my work on a physical installation in the new finn.no store (“En slags butikk“). I’ve covered a couple of the more technical aspects of this in my two previous posts – here’s a more accessible overview of the installation :-)

The installation is basically a motion controlled slideshow. Swipe your hand to the left over the Leap Motion sensor (mounted in the left wooden box in the picture) and the current picture slides left and a new picture slides in from the right. Swipe your hand to the right, and the opposite happens.

The pictures shown are from typical vacation destinations – the idea being that store visitors would snap selfies of themselves in front of the canvas, upload them to Instagram (tagged with #enslagsbutikk) and thereby have the chance to win an actual vacation.

The built-in gestures that come with the Leap Motion API don’t include a generic full hand gesture, so I had to solve it without using those

Given that the whole point was that people would take pictures of themselves in front of the canvas, the projection had to be done from the rear (to avoid shadows)

Quite a bit of fiddling around and optimization had to be done to ensure a good enough motion detection reliability

The biggest issue in bullet point 4 above was that the store visitors were swiping their hands too close to the Leap Motion sensor. Swipes in the 0 to 4 centimeter zone would go undetected.

Since this proximity blind zone is a physical sensor limit with the Leap Motion, the only way to make sure people kept their hands far enough away was to mount a physical barrier that still didn’t block too much of the sensor’s view. I ended up milling a simple frame on Jens Dyvik‘s excellent CNC milling machine (a Shopbot) and mounting it around the sensor recess:

Photo: Thomas Winther

Although the main point of the frame is to keep swipes at a minimum distance from the sensor, it also provides two more advantages:

It limits the sensor’s side view, reducing “false positives”, ie. hand movements that the user didn’t intend as a swipe

It reduces light pollution from lighting sources in the room, improving the sensor’s frame rate

Summary time! Here’s what I did on this job:

Coded and otherwise made the slideshow app in Unity3d, hooking into Leap Motion’s Unity3D API

Specified how the Leap Motion sensor needed to be mounted to function well, including guidelines for the ambient lighting