TUIO Developer Resources

TUIO C++ Developer API

The TUIO C++ Developer API documentation illustrates the simple infrastructure that is needed to create a TUIO enabled application. The API basically consists of a TuioServer and TuioClient class, a TuioListener Interface for event delivery, as well as the central objects that encapsulate the TuioObjects and TuioCursors, and additional convenience objects such as TuioPoint and TuioTime.

Further Programming Languages Support

The Java API and C# API are virtually identical to the structure described above. Developers of TUIO implementations for other programming languages (such as Python, AS3, etc.) are encouraged to adopt this simple API structure, as far as the used programming language is supporting the used paradigms.

This section provides some more detailed information for application developers planning to implement a TUIO server within their tracker application, as well as for those who plan to implement a TUIO client for a programming language that is currently not yet supported. Those who plan to develop interactive applications that can already be based on one of the various available TUIO client implementations, will also find some general purpose information here, but probably should refer directly to the documentation of the individual TUIO client library.

Since the TUIO protocol is based on Open Sound Control, TUIO implementations should be based on an available OSC implementation for the desired platform. If the platform does not yet support OSC, the proper proceeding would be to implement the OSC infrastructure first. Although OSC does not define a particular transport, most implementations, including TUIO, are using UDP packets as their default transport method. Some platforms (such as Flash) only support TCP sockets. Therefore some TUIO implementations also support an alternative TCP mode, although UDP will remain the preferred method for speed and efficiency reasons.

Currently there exists a TUIO server reference implementation for C++, which can be used freely within GPL based open source projects, we are working as well on two additional implementations for Java and C#. TUIO Client reference implementations already exist for most commonly used programming languages and multimedia environments, and there are many more community contributions available for various further languages and environments.