Table of Contents

TUIO Protocol

Definition

(from http://www.tuio.org/)

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)

The reacTable, powered by reacTIVision

While the reacTable doesn't use OSCulator, it is possible to use the video pattern recognition software reacTIVision with OSCulator very easily.

TUIO enabled software

Here is a non exhaustive list of softwares using the TUIO protocol:

TUIO and OSCulator

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.

Interpreted TUIO messages

The TUIO protocol keeps tracks of Cursors and Objects.

Fiducial Markers example

reacTIVision Setup

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 3333.

Messages definition

As soon as OSCulator receives TUIO messages, it will display them in the main window1). Those messages always come in pair:

The positional messages have the following format:

/tuio/{2D,3D}/{cur,obj}/[id number]

and

/tuio/{2D,3D}/{cur,obj}/[id number]/activity

for corresponding activity messages.

Note: Positional and Activity messages always come in pair.

Arguments

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 set messages.

1)
remember, the messages are interpreted, not displayed in the raw TUIO format
2)
0 is 0 radians, and 1 is 2π radians