DIY Laser Multi-Touch Table

As I've been hinting at repeatedly on Twitter, I've spent most of my multitouch development time during the last 2-3 weeks building a new table. While my first multitouch table was based on FTIR, it was never as sensitive as I wanted it to be: You had to press down (at least a little bit) to get your touch recognized, which doesn't feel very natural, especially when doing gestures. I wanted something that feels more like the iPhone, where you can let your finger glide lightly over the screen.

There was some talk going on a couple of months ago in the NUI group forums about a zero-force multitouch setup using lasers. I don't know who came up with the idea originally, but I believe it was invented by Microsoft's research labs, as a project called LaserTouch.

The Principle

The theory behind this particular setup is simple: You take an infrared laser (infrared is being used so that the back projection on the screen does not interfere with the tracking laser light), put a line generator lens on it, mount it so that it projects a plane of laser light closely above your screen and put an infrared camera behind the screen. When a finger is touching the screen, it will cross the laser light plane, generating a diffuse reflection that can be picked up by the camera as a touch point. Obviously, pressure has nothing to do with this, so it is a true "zero-force" setup — if you're interested in pressure data, though, this will still work: If you push down harder, you will make the touch reflection larger, as your finger is getting flat and squished on the surface. "Zero-force" just means that the brightness (i.e. the distinguishing criterium for tracking) is not dependent on the touch pressure.

Before I'll go into the details of how the screen was built, let's have a short look at a list of advantages and disadvantages of this particular multitouch technique.

Pros

  • Excellent tracking results, even with lots of ambient IR light.
  • Zero-force: Feels very natural to work with.
  • Comparatively easy to build.
  • Comparatively cheap to build.
  • Comparatively fast to build.

Cons

  • Already "sees" the finger slightly before it touches the surface (since the laser light plane extends to about a millimeter above the surface).
  • It is very sensitive.
  • Availability of infrared lasers.
  • Lasers are dangerous for the eyes.
  • Potential problems with occlusion.

Tracking results are excellent because on one hand, due to the "zero-force" nature of the setup, fast moving blobs are just as bright as static ones and are much brighter than anything you would normally achieve with an FTIR or DI setup. On the other, since the lasers have a very well defined wavelength (rather than a not-so-narrow spectrum like with IR LEDs), you can use a narrow-band IR filter, which will filter out all other frequencies. This greatly reduces IR noise, providing for stable tracking results even in situations with changing ambient light conditions.

The cons aren't really that problematic, though. The fact that the laser plane extends to about a millimeter above the surface and causes fingers to be seen if they're hovering close to the screen, but not yet actually touching it, is hardly noticeable in practice.

What's a bit of a problem is the super-sensitivity: For example, a sleeve accidentally touching the surface will already be registered as a touch, which can be annoying at times. Occlusion can be alleviated by using multiple lasers (they are rather cheap), and it's much less of a problem in practice than you would think. Availability of lasers is only an issue if you cannot buy online for some reason (e.g. don't have a credit card).

Finally, as long as you are careful with the lasers, your eyes will be safe: Just accidentally looking into the laser for a second won't do any harm, it's just that you shouldn't stare into them for long. However, since the infrared lasers also emit a bit of (red) light in the visible spectrum, you'll notice immediately when you're looking into a laser by accident, so you can turn your head away. It's really nothing to worry about too much, but it's most definitely not an ideal setup if you want to work with children, for example!

Building the Laser Table

Before I'll describe the building process a bit, I'll give you a list of parts needed for the multitouch element of the screen — you still have to build a setup that allows for back projection with a beamer or something similar in order to actually create a screen, though, but this is beyond the scope of this article. You can use any guide on how to build a DIY multitouch screen for that. Just use the laser tracking method instead of what the guide says.

For parts that I ordered online, I also added the URL of the store. For the rest, I'm afraid you'll have to find shops by yourself.

  • 780nm 25mw laser modules, 4 pieces — Aixiz.com
  • 89° line generator lenses that fit the laser modules — Aixiz.com
  • Wiring, resistors, power supply and maybe a switch — I use a 6V DC power supply and 82Ω resistors.
  • An acrylic glass surface. Shouldn't bend too much (I use an 8mm thick sheet).
  • Hot glue gun.
  • Frame material to block off the laser lines from leaving the screen area, preferably black plastic.
  • A sheet of wood or plastic.
  • Modelling clay that hardens when exposed to air.
  • A camera without infrared blocking coating (or a modded regular webcam)
  • A 780nm narrow-band IR filter - Knight Optical

The process of mounting the screen and adding back projection material to it (I use Rosco Grey) is completely up to you and outside the scope of this article. Once you have your screen ready, here's what I did to mount the lasers.

Step 1
Cut out little squares of acrylic glass in the 4 corners of your screen. The diagonal of the squares should be approximately the length of your laser modules. You'll use the space created by cutting out these squares to mount the laser modules in a way that they're not sticking out of the screen, so that nobody will accidentally run into them and break them off.

Step 2
Cut out little L-shaped pieces from your wood or plastic sheet. These pieces will be glued under the corners that you just cut out, creating a bottom, so that you can fill the space created by cutting out the squares of the acrylic glass with modeling clay in the following steps.

Step 3
Wire and solder your lasers. You'll want to have a resistor between a laser module's anode (+) and the power supply, so that you don't burn out the module. I use 82Ω resistors and a 6 VDC power supply. You can also use jacks to build a modular system, where you can selectively connect and disconnect single laser modules later on (that's what I did). Also, screw the line generator lenses onto the lasers. Adjust the focus of the lenses to approximately your screen's width.

Step 4
Mount the narrow-band infrared filter onto the camera, then place the camera behind your screen and turn on any program that shows you what the camera sees (you can use Touché, but also QuickTime Pro or whatever).

Step 5
Do this one-by-one and take your time. Fill each of the square "corner pockets" you created earlier with modeling clay. Try to evenly distribute the clay, so that it extends the surface of the acrylic glass and feels flush with it. Now take a laser module, position it along the diagonal of the screen and press it into the clay lightly. Turn on the laser module. While looking at the capture preview from the camera, slowly press down on the laser module and bring it into a position in which you can see bright, sharp blobs when you touch the screen, but not when your hand is hovering too far above it. Take yourself a lot of time with this. After a bit of fiddling, you'll get the knack. Then it'll feel easy to find the right position.

Step 6
Once you are happy with the module's position, slowly take the laser module out of the clay, being very careful not to destroy the imprint you have created. This is a crucial step! It is mandatory that the laser module will sit flush in the imprint you've created, once that the clay has hardened.

Step 7
Repeat 5+6 for all of your 4 corners.

Step 8
Give the clay about a day to harden. You need to do this before gluing the modules in place, because the hot glue will not bond well with the clay while it's still soft and wet.

Step 9
Put your laser modules into the (hardened) imprints, hold them down snugly, check the laser plane with the camera again and then glue them into place with the hot glue gun. Again, take your time and be careful. Also, be careful not to burn yourself with the glue. Believe me, you don't want that to happen...

Step 10
If everything worked well and the hot glue has hardened, turn on all of your 4 lasers and enjoy your multitouch tracking module! Give it a quick test. If you find that a module has accidentally moved out of position, you can still pry it off carefully, remove any excess glue with a sharp knife and have another go at gluing it in.

Step 11
Install some sort of raised frame around the table, so that the laser lines cannot shine outside of the screen, where they might hit someone's eye. It's not bad if the table leaks diffusely reflected IR light (IR in itself is not dangerous at all, it's just the bundled laser beam that is). Double-check your frame with a camera (since you can't see in the IR range) to make sure that there is no leakage of laser light or specular reflections. Generally, black plastic seems to work very well for this purpose. Avoid bright, shiny materials prone to specular reflection.

Step 12
The laser-based tracking module is now complete. Proceed to finish the rest of your setup (back projection, etc...), according to whichever guide you're using.

To give you a bit of a better understanding on how to mount the lasers, there are a couple of close-up pictures of a laser module the way it's installed in my setup below.

The first is an image of an installed module from the front. Note how the module's bottom is lower than the acrylic surface and how the line generator lens's orientation is perpendicular to the surface. Also note how the module is snugly embedded in its clay mount. The grey layer is the Rosco Grey back projection screen.

Front view of a laser module

The second picture shows the laser module from the top. Note how there are blobs of hot glue both in the front and back of the module, tucking it down securely and rigidly.

Top view of a laser module

Finally, this is a picture of a module during operation. Note the visible reddish glow. It is very weak in real life, but you can see it clearly when you accidentally look into the laser, giving you a good guideline of when to turn your head away. Also note the black laser-blocking frame.

Picture of an active laser module

Additionally, here's a picture of the camera looking at the screen from behind (this is a Unibrain Fire-I camera). Even though you cannot see it in the picture, the camera has the IR narrow-band filter installed. It is completely opaque to visible light and all other frequencies outside of a 10nm band centered at 780nm (the wavelength of the lasers).

Unibrain Fire-I camera

Conclusion

Building the laser multitouch table was both faster and cheaper than building my FTIR table. 4 laser modules are cheap compared to 100 or so IR LEDs, but provide for much brighter blobs. Of course, it's also faster to solder 4 laser modules than 100 LEDs!

The pros far outweigh the cons. In practice, the table feels super-responsive. Working with it is akin to the iPhone, where even the lightest touch works very well. Additionally, ambient light is much less of an issue than with FTIR or DI — no need for creepy dark rooms.

If you were asking me which type of multitouch table to build, I'd definitely recommend you the laser approach.

To come to an end, here's a short video taken from the raw camera feed captured by Touché, showing the table in action, as well as some voice-over commentary. Have a look at it and see the awesomeness of the laser table for yourself!

Links
Microsoft LaserTouch
NUI group forum thread on laser tables
Touché