TUIO Decoder

Ok, so I’m currently working on the plugin and I think I have a working version ready. Still beta, but in my first test it seemed to work.
So here is the first version of the TUIO Decoder node. Just attach an UDP Server to the node, change queue mode to concatenate and port to 3333. If you have no multitouch table at home you could try to use the TUOI Simulator from reactable.
So please test the node and give me feedback, thanks for your help in advance ;) (7.1 kB)

whoow, you’re fast.

doesn’t work though for me with the simulator. attached is the patch i tried with. udp-server receives from the simulator but no output from the plugin.

TUIODecoder TUIODecoderPlugin help.v4p (7.6 kB)

thx to joregs tuio decoder patch, I was able to test it much better, so now it should really work ;) (10.0 kB)

supa, now it works. attached is a new version of the demopatch.

open issues:

  • classID for all objects is 1
  • default angle of objects is 0.5, of cursors is 0. should be 0 for both?
  • the uniqueID output should not be necessary, sessionID is the uniqueID already. i talked to the tuio guy and indeed he said sessionIDs of cursors and objects can be the same. so how about prefixing cursor sessionIDs with a - (minus) to have them unique for sure?

TUIODecoder TUIODecoderPlugin help.v4p (13.6 kB)

ok, fixed the remaining problems ;)
concerning the uniqueid, fiducials can actually have a unique ID assigned to them, as seen in the TUIO simulator app. So perhaps it would be better to name it “FiducialID” and give it the actual fiducial’s id, and let it 0 for cursors. (10.0 kB)

nice work, abomb

can you repackage everything in one zip, so it is testable out ot the box for everybody?

also i have a couple questions: what are all these accelleration, speed and movement pins?
shouldn’t them go back to zero once the particular movement stops?

concerning the three different id-pins: i can live with it, but its not necessarily the most intuitive way ;)

besides all the bitching, it’s awesome to finally have fast and easy tuio within vvvv ;) (88.4 kB)

thanks =)
Now, the TUIO protocol sends information about acceleration, speed etc. mainly when objects, i.e. things with fiducial markers on them, are moved around. I get those values more or less directly from the tuio “server” app, in my case the tuio simulator =)
I was already wondering about the speed etc not going to 0 when the object stops, but the objects gets only updates while they move, so the speed values don’t get updated anymore once it stops. I will look into setting them to 0 myself once they don’t move anymore ;)
Also, I renamed the UniqueID pin to FiducialID, and added a little more info to the ClassID pin - should be easier to know what is what now.
And concerning the repackaging, I took your tuio zip and updated it with the latest version of joregs patch and my dll.

tuio (89.0 kB)

great we are getting somewhere…

more bugging:

  • for objects the classID is the fiducialID (including a fiducial which has the ID 0)
  • cursors don’t have classIDs, so set the classID to -1 for cursors to not interfere with the fiducialID of 0
  • the extra fiducialID output doesn’t make sense to me

instead of all the minus semantics you could make separate outputs for the cursors…but at the moment that doesn’t seem more intuitive to me.

please consider the conventions for node and pin naming, especially:

  • no camelcaps for pin-names
  • PosX, PosY could simply be X and Y

oops, sorry about the naming of the pins, didn’t read those …
and you are right, fiduacialid can be completely replaced by the classid.
corrected version in attached file

tuio (88.9 kB)

a bomb, interested in hosting your code with the other plugins?

please join ##vvvv again to discuss

Oh, sorry that I didn’t respond all this time… Will be in IRC today after work =)

hibomb, could you join ##vvvv for further discussions?

wow, works brilliantly with reacTIVision, thanks!

I just downloaded your Plugin. Works great with TUIO Simulator, I’m looking forward to testing it on our brand new TouchTable. Thanks a lot!

I just built a quick MTmini but the TUIO decoder doesn’t seem to work with tbeta maybe I’ll have to play around with doing the blobtracking in vvvv instead

as mentioned in this other thread this could be due to TUIODecoder only understanding osc-messages that are in bundles. so it could be a reason to fix that in the plugin…

joreg: what tbeta sends all starts with #bundle. Apparently tbeta send some extra info for width and height but looking at the plugin source briefly I don’t see how that’s supposed to make it fail and output all nil. My suspicion is that things go wrong somewhere in the part but I haven’t dug far enough to have any idea really.

tia. i am quite certain this could be easily fixed if someone digs into this a bit further then. i just don’t have the time right now…

Ok, it started working although I have no idea why. Sorry if I made anyone spend time on this when it was probably just some oddity going on on my side.

So tbeta is working ok for you now? I just tried and it wasn’t working properly, but I’ve only just downloaded both it and your plugin now so I might well be missing something. Nice work anyway :)