Things to do


Tangible Interactive Surfaces for Collaboration between Humans
A cross-platform, cross-device multitouch development framework.

Connect to libTISCH on Google+!



Yay, a new release after nearly one year - 2.0.2 "Better Late Than Never"!

Main new features: Downloads:


We've got a new release - 1.1.2 "Fire Engine" - now with Kinect support!


We've got a new release - 1.1.0 "November Rain"!


Since 2006, there has been quite a lot of research into multitouch user interfaces, largely thanks to Jeff Han. Many people have started building their own hardware, and commercial devices are also starting to become available.

To enable easy development of applications for such multitouch- and tangible-based GUIs, we present libTISCH, a cross-platform, cross-device multitouch development framework. Some of the more prominent features include:

Screenshots (Teasers ;-) from libTISCH 1.1 & 2.0

touchd screenshot
Tracking daemon in shadow-tracking mode.
Widget demo screenshot
Demo of various multitouch widgets.
Sudoku screenshot
The ubiquitous picture browser.


Of course, an abstract architecture is much more valuable with a reference implementation. Our cross-platform (Linux, Windows, Mac) reference implementation is libTISCH. The following releases are available: Additional releases may be available on our project site. In order to reach a large user base, we decided to release libTISCH under LGPL. If you are interested in using libTISCH, please subscribe to the mailing list where I'll post updates. Documentation (sort of ;-) is available in the Wiki. For bleeding-edge development versions, please see the Sourceforge SVN.
FreeGLUT Win7/XInput2 Multitouch Patch
Update: this patch has been merged into the FreeGLUT codebase and will be part of the upcoming release 2.8.0. Consequently, the patch is no longer needed, but will remain here for archival purposes.
Here's a patch to FreeGLUT which enables the Windows 7 multitouch and the XInput2 multi-pointer callbacks. The patch was tested against the current FreeGLUT 2.6.0 SVN version. Note that the Windows part is still not very well tested. freeglut-2.6.0-multi.patch


Architecture Layers
As stated above, we believe that the logical next step is the design of a software architecture that allows developers to focus on writing applications instead of focusing on low-level stuff like hardware issues, gesture recognition and so on. Especially the gesture recognition is of importance here; a common interface which provides applications with semi-standardized events instead of raw input data should be a great step towards easier development. In our paper "A Multitouch Software Architecture", we provide a draft of such an architecture. For an instant overview, see the image on the right.

The ultra-short summary of the four layers, from bottom to top: All data exchange between the layers is done through clear-text messages over UDP as transport protocol. Although this might turn out to be a source of latency, we selected UDP because it allows for the most flexibility in choosing platforms and languages for alternative implementations of any layer (which we want to encourage!). Moreover, our first tests show a surprisingly small additional latency resulting from the use of UDP.

Things To Do

No library is ever complete, which is why we still need.. ..and above all: discussion!

If you notice any sort of bug or glitch, please take a second to open a tracker item, post to the mailing list or simply send me an email ( echtler ät ).


My name is Florian Echtler, and I designed and wrote large parts of this library during my PhD thesis work with Prof. Gudrun Klinker at the computer science department of TUM in Munich, Germany. Other contributors include Andreas Dippon, Nikolas Dörfler, Daniel Pustka, Martin Schanzenbach, Eva Artinger, Martin Kleinhans, Lode Vandevenne, Johannes Woehler, Darren Leigh and Norbert Wiedermann. Thanks!

Validated XHTML 1.1/><img src= - Hosting provided by: Get TISCH at Fast, secure and Free Open Source software downloads