For a cross platform version check out Community Core Vision and the latest Actionscript Librairies

Touchlib - Home

Touchlib is a library for creating multi-touch interaction surfaces. It handles tracking blobs of infrared light, and sends your programs these multi-touch events, such as 'finger down', 'finger moved', and 'finger released'. It includes a configuration app and a few demos to get you started, and will interace with most types of webcams and video capture devices. It currently works only under Windows but efforts are being made to port it to other platforms.

Who Should Use Touchlib?

Touchlib only comes with simple demo applications. If you want to use Touchlib you must be prepared to make your own apps. There are a few ways to do this. You can build applications in C++ and take advantage of Touchlib's simple programming interface. Touchlib does not provide you with any graphical or front end abilities - it simply passes you touch events. The graphics are up to you. If you like, take a look at the example apps which use OpenGL GLUT.

As of the current version, Touchlib now can broadcast events in the TUIO protocol (which uses OSC). This makes Touchlib compatible with several other applications that support this protocol, such as Flash, VVVV, Processing, PureData, etc.. This also makes it possible to use Touchlib for blob detection & tracking while using something like VVVV or processing to write client applications. Of course the other option is to do all your blob detection & tracking in VVVV or processing. It's up to you. Supporting the TUIO protocol also enables a distributed architecture where one machine can be devoted to detection and tracking and another machine can handle the application.

If you don't like Touchlib and want to program your own system, the latest version of OpenCV now has support for blob detection and tracking. This might be a good starting point.