reacTIVision is an open source, cross-platform computer vision framework for the fast and robust tracking of fiducial markers in a real-time video stream. reacTIVision project was mainly designed for the rapid development of table-based tangible user interfaces.

Its tracking core is using Ross Bencina's fidtrack library which is basically a newer high-performance implementation of Enrico Costanza's original d-touch concept. This framework was developed by Martin Kaltenbrunner et.al. at the Music Technology Group, IUA, UPF in Barcelona, Spain as part of the reacTable* project, a novel electro-acoustic musical instrument with a tangible user interface.

reacTIVision is a standalone application, which sends OpenSound Control messages via a UDP network socket to any connected client application. It implements the TUIO protocol, which was specially designed for transmitting the state of tangible objects on a table surface. This framework includes a set of free example client projects for various programming languages, which serve as a base for the easy development of tangible-user interface applications.

The reacTIVision application compiles and runs under the follwing operating systems: Win32, MacOS X and Linux. Under Win32 it suports any camera with a proper WDM driver, such as USB, USB2, FireWire and DV cameras. Equally under MacOS X any such camera supported by QuickTime will work in reacTIVision. Under Linux, FireWire cameras are best supported, as well as a few Video4Linux USB cameras.

NEW: Support the reacTIVision project and buy T-Shirts, posters and other merchandise featuring the reacTIVision fiducial symbols in our web-shop! All designs on these products can be recognized and tracked by the actual reacTIVision software.

Application Handling

Before starting the reacTIVision application make sure you have a supported camera connected to your system. The application can and will not work at all without a camera. Under Win32 and MacOS X the application will ask to select and configure the camera upon startup. Under Linux the camera will be selected automatically. Once configured the application will show a video window with the current camera image in black&white.

Pressing 'T' will show the binary tresholded image, pressing the 'N' key will turn the display off, which reduces its CPU usage significantly!

Pressing the 'S' key will return to the original source image. For convenience and debugging porposes hitting the 'R' key saves a raw image frame, while hitting the 'B' key will save an image in the BMP format.

The 'P' pauses the image analysis completely, hitting 'ESC' will quit the application. The 'F' key toggles the diplay of FPS info in the titlebar. In order to produce some more verbose debugging output, hitting the 'V' key will print the currently recognized symbols to the console.

Command Line Options

The reacTIVision application per default sends the TUIO messages to port 3333 on localhost (127.0.0.1)

In order to change these parameters you can invoke the application with the -h [ip-address] and -p [port-no] options.

reacTIVision needs a so called "tree file" in order to function properly. The default "all.trees" is included and loaded automatically. If you want to use you own tree file you can invoke the application with the -t [tree-file] option.

Optionally if you don't want to analyze the complete image - for example in a square or round table setup - the application can mask a part of the video image with a black region, which speeds up the segmentation algorithm. In order to apply this mask You can invoke the application with the -m [square,circle] option.

Applying the -h or -help option will print a usage message to the console.

Calibration and Distortion

Some tables, such as the reacTable are using a convex mirror in order to increase the area visible to the camera at a minimal distance. This mirror as well as a fish-eye lens unfortunately distort the image. reactIVision includes a correction algorithm, which corrects this distortion with the help of a so called "grid file". These grid files can be generated during a prior calibration process.

· all settings are now saved correctly to reacTIVision.xml on exit· reacTIVision exits securely when killed by a signal (on unix and mac)· fixes and improvements for the handling of different tree spaces· many minor bug fixes and improvements