Since we announced uniTUIO a few months ago, and entered a uniTUIO-enabled app into the Unite09 contest, there has been a flood of emails coming in asking me if we are releasing the uniTUIO source.
So! Here is the answer:
But I have to find a few free hours to rub together to get the code into a useable and clean form. We set out with the goal of having a nice framework of scripts to make using TUIO inputs in UNity3d trivially simple. I think we succeeded.
uniTUIO was built during (and for) the Molecules project (which was really a half-dozen different media presentation applications). As the project deadline began to loom, making the Molecules apps became a bigger priority than preserving the purity and re-usability of the uniTUIO framework. As a result, I had to cut many corners in order to meet the deadline (which pretty much always happens) so the uniTUIO stuff is riddled with Molecules specific code which is neither generically useful, or particularly re-usable in any easy way.
So, I need to go back in and refactor the uniTUIO stuff to make it not suck basically.
However, I will explain to you what the uniTUIO stuff includes, so that you can at least not get your hopes up too much :-)
First off, at the low level, it starts with the c# TUIO/OSC implementation by Martin Kaltenbrunner, which everyone can get ahold of here: http://reactivision.sourceforge.net/.
On top of that is pretty much where uniTUIO starts. It is a collection of about a dozen scripts. There are a few static singleton ‘manager’ style objects that start up the TUIO scripts and listen to the events as they come in. These convert the TUIO data stream into some portable ‘event’ objects that include the local Unity environment information. (in other words they convert from TUIO screen-space to Unity viewport space).
Also there is an event manager that does raycasting into the unity scene and picks out any objects that are in the right layer (a ‘touchable’ layer) and passes the events onto those objects.
There are a few more scripts that are meant to be attached to touchable objects.
One is a high level touch event handler that accepts touch events from the event manager and applies them to it’s gameObject in a generic fashion.
Inherited from that object is a basic touch manipulation script that provides simple gesture support to handle the basics like dragging, rotating and scaling a gameObject.
That is what uniTUIO includes. It is meant to be a simple starting place for you to be able to build on for your own MT projects in unity.
So anyway, we will announce it when we release it (hopefully sometime this month) so keep an eye on the RSS feeds. Cheers!
ps: for those of you who are very impatient, have a look at this thread on the unity forums. User Jorgen posted a simple unity TUIO implementation project, which is a good place to get started.