Build Your Own Multitouch Surface Computer

Software

So now we’ve completed the hardware section. The process of building a multi-touch computer is far from over, though, we need to get the software installed and configured so that we can actually use the thing.

The central software that powered our rig is Touchlib, an open source library which takes the visual data received by the camera and parses it into touch events, which can be used by other programs to provide multi-touch control. Some programs implement this library directly, allowing for standalone multi-touch apps, while others, such as those written in ActionScript, require an extra software layer to allow the program to receive touch input. In this section, we’ll explain how we got both up and running.

But, there’s something else we had to take care of first. The PS3 Eye, as we mentioned earlier, is a fantastic fit for this project because of its high resolution, impressive framerate, and ease of modification. There’s just one problem: it’s meant to be used on a PlayStation 3, not a computer.

Fortunately, PC users are famously unconcerned with what things are “meant to” do, and enterprising multi-toucher Alex Popovich has written a driver that allows the PS3 eye to be used with a computer. To get it working, we followed these steps:

1. Download the PS3EyeSetup file here. The download link is a ways down the page, in red, just above the comments section.

2. Make sure that the modified PS3 Eye isn’t plugged into the computer, and then run the executable. Plug the PS3 Eye back in. If the Windows found new hardware wizard pops up, tell it to search for drivers manually, and point it to the folder we installed the drivers in (C:/Program Files/AlexP/Drivers).

3. Now, we’ll want to test to make sure that the drivers are working and that our computer can see the PS3 Eye. To do this, run the PS3Eye Test App included with the driver. Because we’ve already modified the camera, you probably won’t see anything on the screen unless we point the camera at a source of infrared light, such as a light bulb or a sunny window.

4. Now that we know the camera works, we need to check to see that the DirectShow filter works, which will allow other programs to access the PS3 Eye. There’s another program called AmCap installed with the drivers. Run it, and if the preview view shows what the camera is seeing, we’re golden. If it doesn’t, try unplugging the PS3 Eye and plugging it back in, as well as rebooting your computer. For reasons unknown, the first time we tried, we got stuck at this stage. For us, running the uninstall program, then installing the drivers again fixed the problem.

Now we'd gotten our PS3Eye up and running. Next, we had to get Touchlib set up to handle our touch detection. Touchlib can be found here, and doesn’t need to be installed. We simply extracted the files to C:/Multitouch.

We had to replace certain Touchlib files with ones specifically designed to work well with the PS3 Eye. We downloaded these files here, then extracted them to C:/Multitouch/touchlib, overwriting when we were prompted to do so.

Now, at long last, we’ll get to see how our surface actually works. We ran ConfigApp.exe from C:/Multitouch/Touchlib. This program launches a total of eight windows, six of which are the video stream from the PS3 Eye, at different stages of processing. It’s a little over whelming the first time, but it’s actually not that hard to use these to get Touchlib properly configured to do touch recognition on our setup.

The most important window is the one in the bottom right, with the slider marked “Rectify” is the one that’s most significant. This window displays the “blobs” that will get passed as touch events. When the touch surface is working properly, this window will be entirely black until we touch the screen, at which point a white blob will appear, hopefully without flickering. Starting with the window in the bottom left, and moving right, we adjusted all the sliders so that we got the clearest blobs when you touch the screen. Generally, we accomplished this by playing with each slider until we started to get background noise on the Rectify window, then scaled it back slightly. Once you’re happy with the sensitivity of your screen, it’s time to calibrate.

Calibration is necessary to sync up the projected image and the touch surface. To calibrate, we first pressed the Enter key. This enables full screen mode, and displays a grid of green crosses. To begin calibration, we pressed the ‘c’ key. One of the crosses on the display turns red. By pressing on the dot, Touchlib is able to map that point in projector space to a point in camera space. The next cross will turn red, and this continues until all crosses have been pressed. We learned the hard way that when you’re done calibrating Touchlib, you must press the escape key. If you close the program any other way, it won’t update the config file with your changes.

Now our surface had been be properly configured (at least until we moved the camera or projector, or the lighting conditions changed significantly). To test it out, we ran the smoke.exe app in the Touchlib folder. With everything calibrated properly, colored “smoke” particle effects were displayed on our surface everywhere we touched.

However, we didn’t let ourselves celebrate for too long, because many apps written for the multi-touch surface are coded in the ActionScript language used by Adobe Flash. These programs are not set up to natively use multi-touch data, so we had to use a software layer to allow the flash-based apps to work properly. This is a three step process:

1. Change Flash’s global security settings to allow the flash apps access to the touch data. Go to this page and click the “Edit locations…” dropdown box, then select “Add Location,” then “Browse for folders.” Browse to the folder containing the flash programs you want to run, which by default is C:/Multitouch/Clients. This only has to be done once.

2. Run OSC.exe from the touchlib folder. This is an implementation of a protocol called OpenSound Control, which was originally designed to allow musical instruments to interface with computers, but can also be used to (among other things) allow programs to access multi-touch input data. This needs to be run any time you want to use a multi-touch flash app.

3. Run FlashOSCv2.jar (requires the Java runtime environment) from C:/Multitouch/Clients/flosc. And press the “start” button on the window that pops up. This program simply allows flash programs to access OSC data. This also has to be run every time you run multi-touch flash apps.

With that done, we were finally ready to try out the whole array of apps that have been written for DIY multi-touch tables. There aren’t a ton of apps available right, but we were able to find enough to have a good time with the table. Some apps come with Touchlib, in the C:/Multitouch/Clients folder, and we also recommend the AudioTouch apps, available at Seth Sandler's blog and the Multitouch Media App, by Laurence Muller.

Hi i am starting to make my own touch table flowing your steps but it will be different in size, (can you please tell me some stuff that i should worry and look out for before starting) also i have look in many websites but i couldn't find the IR LED you used please give me a different website that supplies your used IR LED, would this IR LED work
Description:
Forward Voltage: 1.3-1.6 V
Current: 20mA
Wavelength: 850nm
Power: 150mW
Viewing Angle: 30 degree
Emitting Light Color: Infrared ray
Diameter: 5mm
Total Length: Approx. 1.42 inch / 3.6 cm

Also i am thinking of using 1.5 or 2 cm thick acrylic, would there be a problem.

Thank you very much for your amazing article hope i achieve the same touch table as you and i will if i follow your steps :D

I was surprised by the spending of influence by those listed? In actuality I would have expected it because all are interested in getting what they wanted never mind the consequences.
Very useful for me I will bookmark this for my future needed. thanks for a great source.
http://www.mainlandskateandsurf.com/c-59-SKATE-SHOP.aspx

I am quite sure they will learn lots of new stuff here than anybody else!....There is also a lot of visual symbolism that is sometimes subtle, sometimes not so subtle..
http://shop.frostshoes.com/browse.cfm/ugg-bailey-button-triplet-atlantic-blue/4,3633.html

Thank you for the read. Honestly you covered the topic and broadly examined all areas. If i was to write this i would have done a few things differently myself but you have definitely inspired me to get into the world of blogging.
posicionamiento en google

I know so a great deal a lot more about this than I did previous to. Your blog seriously brought some items to light which i never would have believed about ahead of reading through it
pos system | pos systems

They may participate directly in collaborative artifact production and promotion (such as can be found within the machinima community, for example). Just as importantly, a person can devote much of their energies to regularly visiting a site central

Thanks for such an interesting article here. I was searching for something like that for quite a long time and at last I have found it here.I thank you for taking your time sharing your thoughts and ideas to a lot of readers out there.Good job what you have!this article having a wonderful piece of information Admiring the time and effort you put into your blog and detailed information you offer!Please keep sharing and just please keep us update...

Thanks for all the tutorials and explanations provided. We really appreciate. We are working on developing MT with Sony PS3 camera fallowing your instructions. We managed to Install touch Lıb and test PS3 camera with advised software.

However, I can not get a sign whether LED's get 12v and working and test whether they Camera sees IR lights? We will appreciate if you can kindly advise us.

Hello there I am so thrilled I found your webpage, I really found you by error, while I was researching on Digg for something else, Anyways I am here now and would just like to say kudos for a incredible post and a all round entertaining blog (I also love the theme/design), I don’t have time to read it all at the minute but I have book-marked it and also included your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the awesome job.

It's incredible how quickly technology like multi-touch surface computing is becoming accessible to the population. It allows designers a new scope to create interfaces to interact with users. It enables people to find oil change coupons with just the touch of a screen.

As much as three quarters of hospital staff are usually burdened with some sort of billing-related work in a traditional billing system. Opting for electronic medical billing solutions (ones that come with free EMR plans) that fit easily into the healthcare business' workflow are key to freeing up staff resources. Physicians Billing ServicesMedical Billing Services

Thanks for doing this detailed guide. The only thing I'd love to see is a big parts list and prices. Also, I wonder if there is a market for custom touch screen tables like this? I suppose a few people would buy one, probably not anyone looking for a budget gaming pc though.

I thought this peice was great! Really big help! I'm trying something similar at home; except I am installing a multitouch panel onto a monitor then installing it into a coffee table. Should be great! Thanks a lot!

This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information. Keep it up. Keep blogging. Looking to reading your next post.fotocameraZoekmachine optimalisatiechalet

As much as three quarters of hospital staff are usually burdened with some sort of billing-related work in a traditional billing system. Opting for electronic medical billing solutions (ones that come with free EMR plans) that fit easily into the healthcare business' workflow are key to freeing up staff resources. Physicians Billing Services|Medical Billing Services

There is, it turns out, a whole community of very smart folks out there on the internet perfecting the art of building DIY multi-touch surfaces. The process isn’t exactly simple, Essay Help but the results we saw were stunning: multitouch surfaces with responsiveness rivaling Microsoft’s $12,000 offering, built in a garage on a shoestring budget. “Future UI article be damned,” we thought, “we’ve gotta build one of these for ourselves.”

I'm trying to realize multitouch screen with using Acrylic glass covered with projection material (tracing paper) and IR LED strip that is sticking around the glass. I'm experiencing the problem - IR camera doesn't see position of my fingers placed on the projection material, however it sees my fingers w/o this tracing paper (on bare acrylic glass). My conclusion is that tracing paper blocks IR. For now I don't use any compliant surface. Do you think that adding compliant surface would help ?

Very cool hardware project. Most OS platforms have support for multi-touch now so it's getting easier. Since, I assume your using Windows XP and the Touchlib library. X.org has added MPX support so it should be supported on most Linux distributions in the future. I've learned a lot from this post. Will be coming back for updates. Thanks for sharing..