How to Make a Cheap Multitouch Pad

via MTmini

The above demo shows 1/2 of the ingredients of a "true" multi-touch display.

To make images appear under your fingers instead of over on the computer's screen, takes only a few more steps:

1) Remove the IR filter from the camera so it can detect infrared, then add a filter over the lens to ignore visible light, so the camera only "sees" IR.

2) Add an IR source inside the box, pointing up (many commercially available security cameras already come configured with IR "blast" arrays, or they can be purchased as a separate unit, or make your own).

3) Exchange the tracing paper for a material that is still translucent yet allows IR light thru.

4) Add a little LCD projector next to the camera in the box, also pointed up.


Now your hands will be bathed in invisible infrared light. As your fingers approach and/or touch the surface, the camera "sees" IR blobs, which are then processed in software to differentiate touch and other gestures. The "Touchlib" library includes everything you need to process the images (as seen in the video). Now you project the image up onto the touch surface from below. The image is projected in the visible spectrum and so doesn't interfere with the IR blobs being received by the camera.

There is also a way to get crisper IR blobs, without bathing the user's hands in IR, by using a technology called "Frustrated Total Internal Refraction" (FTIR), popularized by Jeff Han. FTIR relies on the unique properties of acrylic sheet, e.g. it is extremely reflective on the inside surface, until touched (or until it gets dirty). By shooting IR into the edges of the sheet, touches are "seen" by the IR camera whenever the internal refractive properties of the acrylic are "frustrated" by being touched. Each touch bounces a blob of IR down into the camera.


I've been having some great conversations about multi-touch lately. What constitutes multi-touch? Does dual-touch count? Can multi-touch be "faked" on a single-touch surface using close timing of events (e.g. milliseconds apart)? What if you use the same approach on a dual-touch surface? Is this how the iPhone works (e.g. software detection of finger-spacing)? What about the Macbook's dual-touch mousepad? How does that work, anyways? Which technologies are dominating, if any? Capacitive, grid o' wires, heat sensing, IR bath? Which approach is typically used for which commercial application?