Skip to content
Matthijs van Otterdijk edited this page May 6, 2013 · 3 revisions

TUIO \cite{tuio} is comprised of a protocol and API for abstract multi-touch interfaces. It includes a way to separate the mapping of input to the TUIO protocol, after which all TUIO-enabled clients can interpret the translated input in a correct manner.

First impressions

TUIO seems a reasonably thought-through framework, with existing implementations of both TUIO-servers and clients for most of today's programming environments being available on the TUIO website.

Advantages

  • Decoupled Input Handling: By implementing TUIO, an application is no longer dependent on a particular user input interface. As long as there is a TUIO server available that maps input to the TUIO protocol, a single unmodified version of an application can be deployed on multiple platforms.

  • Easy to Implement: TUIO offers a modularized protocol, which implies that creating partial TUIO support for your platform of choice is rather easy. TUIO currently supports 2d, 2.5d and 3d cursors, objects and blobs.

Disadvantages

  • Relatively Unreliable: TUIO uses UDP for communications between the client and server software. If client and server programs are not running on the same device, or even the same network, package loss and latency can become a hindrance to normal operation of the application.

  • Simple: Because TUIO is built on top of a generalized, abstract representation of multitouch interfaces, some platform specific features or efficiency is lost when TUIO is used. For example, the native Windows gestures aren't supported by TUIO and have to be reimplemented on top of the interaction primitives provided by TUIO.