Home-brew Multi-touch

Can't get your hands on a multi-touch device? Build one.

August 15, 2008
Reading Time
2 minutes

At IDEO we’re all about building to think. Learning from books and websites and product demos is cool, but we think the really good stuff comes when you get in there and start messing around for real.

In the case of multi-touch interfaces, that meant building a system we could start prototyping on. What we wanted was:

  • a multi-touch display large enough to facilitate use by several people at once
  • an API for flash that would let us quickly prototype multi-touch interfaces and applications

It took us about 5 weeks to get everything together. Kyle, one of our all-around gearheads, had already been building a drafting-table-style FTIR system in his garage which helped kick-start us.

We knew we wanted our system to be larger and vertical, though, so we went back to the drawing board on hardware. We had some old projection surfaces from a project we had done long ago in storage.

With that as our base we designed a system around a short-throw projector and a wide-angle IR cam. This allowed us to build a pretty large rear-projection display without the depth requirements of Han’s systems.

Meanwhile, Kyle and Nicholas (another all-around whiz) were hard at work building a multi-touch server and an API that could be used to quickly prototype interactions. They built the back-end in Processing. It’s a great platform for rapid prototypes, particularly where there’s hardware-software integration involved.

On the front end we chose to create an API for Flash because it lets us realize our ideas quickly and use a wide variety of media, from video to vector graphics. Nicholas’ Flash API is pretty cool: a system that allows anyone who knows ActionScript to quickly mock up multi-touch using reference to “fingers” (e.g. when two fingers are down on this image, scale it…).

Using our server and API, Nicholas was also able to very quickly throw together a handful of demos. Take a look:

Want to jump into the multi-touch arena by creating a system of your own? We’ve just published the code from our own prototype system at Google Code: it should be all the software you need to make your own FTIR system: a back-end app to run a multi-touch server, and an API to create your multi-touch flash applications.

You can find the source code for the FTIR server and the Flash API at http://code.google.com/p/ideo-multitouch/. Everything is licensed under Creative Commons.

This stuff is definitely not polished to commercial application standards: It’s use-at-your-own-risk, unsupported code. We’ve all got day jobs and can’t offer much by way of technical support, but if you find it useful we’re happy to have you make use of it.

And by all means if you make something you’re excited about with it, send it our way!