Interactive Floor Projection Displays

A little more sophisticated than this...

A little more sophisticated than this…

This weekend we went to the The Tech Museum of Innovation, aka “The Tech,”  in San Jose.1 We had a great time and saw a lot of amazing things.  (Also, a lot of people greeted me as “Bender!” because I was wearing the Bender hat my wife knit for me.)

One of the coolest things we saw was an interactive floor projection display entitled simply “Social Circles.”  A projector in the ceiling created a white rectangle on the floor – with a multicolored border.  When you step onto the display, you have to cross through a colored bar along the border.  Once inside the display, your feet are surrounded by a small circle of light – the same color as the bar you passed through.  As you walk (or run!), the circle follows you around.  When someone else is on the display (with their own circle) and is close to you, your circles will join for a moment into a larger circle of a combined color.  As you separate, your circle will retain it’s inner color – but will have a border color that is your original color on one side and the color of the person whose circle you combined with on the other side.  As you go along and interact with more people, you can gather more and more colors onto your outer ring.

It was awesome and awesome.  Kids were running across, crashing into one another, chasing everyone else, collecting colors, and trying to avoid gaining colors.

This gave me SO many ideas on how to turn this kind of a display into an interactive game/project that I want to learn how to build one of my own.  After doing some minor internet research I’ve found a few resources – some a lot more user friendly than others.  There are some commercial, some semi-commercial, and some open source ways of creating a floor projection display.

One system, created by Proximity Labs, involves a stage with RFID sensors and slippers with embedded RFID tags.  Some systems use Kinects or cameras in conjunction with projectors, some only use Kinect cameras, one seems to use the tracking of QR-code like tags, others seem to use proprietary 3D scanners, and some don’t seem to show much of what’s under the hood.  Two of the more promising ones are the Open Source Computer Vision ((Or, OCV)) project and the UbiDisplays project.2

The difficulty with OCV project is that it seems to be geared towards vision in robots, which isn’t really what I was interested in.  Rather than giving a robot sight, I’d like to create a way to track and interact with multiple people using, ideally a webcam, and a projector.  I’m not even that interested in fine grain detection, so much as tracking the location of people across a display area, and integrating their movements into the scene.

Starting from what I have now, which is a lot of interest and enthusiasm for the project but little knowledge of how to make it happen, it looks like the UbiDisplays system might best suit my needs.  This system seems like it incorporates a Kinect to take inputs and then manages all of the interactions through the use of web based logic3 or possibly through some Flash animation.  I just don’t know if it is capable of handling multiple sources of input (more than one person).  The Po-Motion system is a commercial product that seems like it might also be an interesting way to go – as long as the product allowed the purchaser to create their own custom interactions/games.

All other things being equal, I would prefer to go with an open source solution – but as long as I can create what I want without restrictions, I’m happy to pay for the software.

SO, is this something you know anything about?  Do you have any suggestions on where I could start?

Default Series Title

  1. Photo courtesy of Carbon Arc []
  2. One interesting possibility is a display which uses edge IR LED’s to detect motion – I just don’t know if it would work at all for this kind of a project. []
  3. HTML + javascript and CSS []

Leave a Reply

Your email address will not be published. Required fields are marked *