TUIO is a simple yet versatile protocol designed specifically to meet the requirements of table-top tangible user interfaces. Inspired by the idea of interconnecting various existing table interfaces such as the reacTable, being developed in Barcelona and the tDesk from Bielefeld University, this protocol defines common properties of controller objects on the table surface as well as of finger and hand gestures performed by the user.
Currently this protocol has been implemented within a fiducial marker-based computer vision engine developed for the reacTable project. The Tuio protocol has been implemented using OpenSound Control and is therefore usable on any platform supporting this protocol.
(image courtesy of Xavier Sibecas)
While the reacTable doesn't use OSCulator, it is possible to use the video pattern recognition software reacTIVision with OSCulator very easily.
Here is a non exhaustive list of softwares using the TUIO protocol:
TUIO is a very versatile protocol. Being flexible and rich in its expression, it is also a bit complicated to handle.
OSCulator has been designed to be easy and rather intuitive to use, but is not really compatible with TUIO without some modifications. Sending raw TUIO messages to OSCulator wouldn't be really useful.
This is why OSCulator includes an interpreter that rewrites and give an easy to learn structure to TUIO events.
The TUIO protocol keeps tracks of Cursors and Objects.
There is not much to do than launch the reacTIVision program. This application send OSC message to port
3333 on the local host by default, this means that you will need to change the OSC Input Port in OSCulator to
As soon as OSCulator receives TUIO messages, it will display them in the main window1). Those messages always come in pair:
/tuio/2D/obj/1/activity. This messages tells if the object is visible or not. When visible, a float value of
1.0is sent, on the contrary, the value is
The positional messages have the following format:
for corresponding activity messages.
Note: Positional and Activity messages always come in pair.
Activity message have only one argument, the activity, being 0 (not visible or not active) or 1 (visible or active).
Positional message have the following arguments:
These are basically the same arguments as given by the TUIO protocol for