TUIO2 Specification Draft

Dear multi-touch community,
Almost four years have past since the initial publication of the TUIO protocol, which we had initially developed to define common method to connect different interactive surfaces such as the reacTable and the tDesk. Since then the protocol and its implementations in the context of the reacTIVision project have grown to a quite versatile SDK framework for the easy development of tangible or multi-touch interactive surfaces.
Also, since David Wallin decided to adopt TUIO within touchlib, the protocol and framework has gained more interest and importance within the multi-touch community. And nowadays, many open-source multi-touch projects are using TUIO in many ways and there is also a growing number of third party client implementations in addition to our own software. There are even some interesting implementations available for devices such as the iPhone or the WiiMote, which I wouldn’t have considered in the first place.

For many reasons, which I explained in another thread, the time has come for a mayor update of this protocol. During the past weeks I have been in contact with most of the developers that have been involved with the protocol on the implementation side, and after considering many of their suggestions I now finally published a first public draft of TUIO2. The current document is of course not yet finalized, but you already can consider it quite feature complete. There might be still some tweaks and changes in the individual message names or formats. The final specification document will be published in the near future and will also be marked as such.

These will be the most important changes in the new protocol:
* a new, and more compact message and bundle format that follows a more standard OSC style
* an optional source message that marks the origin of the message and provides some sensor meta data
* the frame message now includes detailed timing information
* an additional data message that allows to transmit the contents and type of markers (fiducials, barcodes, semacode ...)
* different marker types can be used and distinguished within the same session
* a much improved cursor message encodes a cursor ID (and user ID), cursor type and pressure
* a raw object message transmits the position, dimension and area of unmarked blobs
* an additional set of various incremental messages allows the detailed description of the blob shape (bounding box, contour, skeleton, area ...)

have fun,

PS: For most of you, who are usually building applications using the TUIO framework, the protocol itself might not be the most important issue, since you are mostly dealing with the TUIO client implementations and their API. I am currently also finalizing the client API 1.4 for the present TUIO protocol (which you might know from the C++, Java, C# or Processing clients). Once the final TUIO2 specification is published, the complete TUIO client collection will be updated accordingly in order provide all these new attributes and features as listed above.

Posted by Martin Kaltenbrunner 2009-02-18