Updated TUIO reference implementations
Posted: 23 March 2009 08:02 PM   [ Ignore ]
Avatar
RankRankRank
Joined  2008-06-16
Total Posts:  330
Sr. Member

I just uploaded a new series of my TUIO reference implementations for C++, C#, Java, Processing as well as Pure Data, Max/MSP and Quartz Composer.
The series also includes a much improved TuioSimulator and the TuioMouse example application. This is a summary of the changes:

* finalized TUIO client API for C++, Java and C#
* the C++ package includes a TuioServer reference implementation
* the Processing client has been updated for Processing 1.0
* The Quartz Composer client is now fully functional (but Leopard only)
* improved stability for the Max/MSP and PureData clients
* the Flash client is fully functional but should be considered deprecated, use the AS3 alternative instead
* a much improved TuioSimulator, providing a full and correct TUIO implementation
* TuioMouse/TuioTouchpad client application examples

http://www.tuio.org/?software

I’d like to clarify the version numbers:
These are implementations of the TUIO 1.0 protocol, the version number 1.4rc1 corresponds to the parallel reacTIVision release version.
Release candidate in this case means, that you can consider it feature complete and the API won’t be changed any more (for the TUIO 1.0 clients)
There might be still a lot of bugs and other stupid things in the various packages, so if you notice anything, please let me know, so we can fix it before the final release.

You can find more detailed information the new TUIO client & server API at:
http://www.tuio.org/?cpp
http://www.tuio.org/?java

 Signature 

TUIO community site: http://www.tuio.org
reacTIVision framework: http://reactivision.sf.net
TUIO & reacTIVision CVS: http://sf.net/projects/reactivision
reacTIVision forum: http://sf.net/apps/phpbb/reactivision

Profile
 
 
Posted: 24 March 2009 01:09 AM   [ Ignore ]   [ # 1 ]
RankRankRankRank
Joined  2007-07-14
Total Posts:  819
Elite

Would be great if C# version will comply to C# code guidelines smile For example Method names are Pascal case and variables Camel case.

 Signature 

HID Multitouch driver for Windows 7 http://multitouchvista.codeplex.com/

Profile
 
 
Posted: 24 March 2009 02:33 AM   [ Ignore ]   [ # 2 ]
Avatar
RankRankRank
Joined  2008-06-16
Total Posts:  330
Sr. Member

Hello Daniel,
yes I already had a few people asking for this, I understand that is might me inconvenient.
Since I am not really working on C# myself, my approach was to use the same method names and similar data types for the C++, Java and C# implementations,
because this way is much easier to maintain. If you feel that the missing C# style is a real show stopper, I invite you to go over it (it’s not very big)
and fix the method and variable names to a more C# compliant style, while maintaining the general structure. It would be also nice to port the doxygen/javadoc comments to a format C# uses (XML?) so we also can generate an automatic API documentation ... And it also needs some testing of course, I am pretty sure it contains some ugly things wink
thx, Martin.K

 Signature 

TUIO community site: http://www.tuio.org
reacTIVision framework: http://reactivision.sf.net
TUIO & reacTIVision CVS: http://sf.net/projects/reactivision
reacTIVision forum: http://sf.net/apps/phpbb/reactivision

Profile
 
 
Posted: 25 March 2009 09:28 AM   [ Ignore ]   [ # 3 ]
Avatar
RankRank
Joined  2008-04-27
Total Posts:  150
Member

Does the TUIOserver currently support sending a custom profile like so:  /tuio/_[formatString]

 Signature 

Pissed Right Off Genetically Engineered Nerd
ProgenLabs.com

Profile
 
 
Posted: 25 March 2009 09:32 AM   [ Ignore ]   [ # 4 ]
Avatar
RankRankRank
Joined  2008-06-16
Total Posts:  330
Sr. Member

No, unfortunately neither the current TuioServer nor my client implementations do support the custom profiles yet,
but this is an important feature that I have planned for the future 1.5 release collection.

the most important planned features for the next version are:
see http://www.tuio.org/?roadmap

* implement an intermediate TUIO 1.1 (additional blob profile, source message)
* add source multiplexing to the TUIO clients (allows listening to several trackers)
* implement a Java TUIO server (and use it for the TuioSimulator)
* add the TUIO over TCP alternative (for flash) to the TUIO servers
* implement the custom profile mechanism

 Signature 

TUIO community site: http://www.tuio.org
reacTIVision framework: http://reactivision.sf.net
TUIO & reacTIVision CVS: http://sf.net/projects/reactivision
reacTIVision forum: http://sf.net/apps/phpbb/reactivision

Profile
 
 
Posted: 25 March 2009 10:01 AM   [ Ignore ]   [ # 5 ]
Avatar
RankRank
Joined  2008-04-27
Total Posts:  150
Member

I am currently trying to send RFID ID tags through TUIO but the ID tags are not pure integers.  They include some string values as well.  Anyway to solve this?

 Signature 

Pissed Right Off Genetically Engineered Nerd
ProgenLabs.com

Profile
 
 
Posted: 25 March 2009 10:16 AM   [ Ignore ]   [ # 6 ]
Avatar
RankRankRank
Joined  2008-06-16
Total Posts:  330
Sr. Member

yes, TUIO2.0 will take care of this with the DAT messages,
I am also planning to implement data matrix codes with the next versions of reactivision,
so I was already playing with the idea to include it into the transition as well.

the planned message format for TUIO 2.0 is:
(copy/paste from http://www.tuio.org/?tuio20 )

/tuio2D/dat s_id t_id c_id code t_inf s_inf

The additional DAT message allows the transmission of the type and possible contents of a marker symbol. Since this information is very redundant, and does not necessarily apply to all symbol types, it is represented by a dedicated message, which can be omitted or sent at a lower rate if desired. The session ID, type ID and symbol ID are identical to the values used in the corresponding SYM message. Therefore the actual symbol code and the meta-information about the marker type and symbol description only needs to be received once by the client. The code parameter is a string that transmits the markers code or contents, such as the amoeba’s left heavy depth sequence, the EAN code number or the data matrix string. The t_inf parameter is a string describing the symbol type, such as amoeba, data matrix or EAN. The last s_inf parameter contains a string with additional information about the symbol, such as the product information that corresponds to an EAN code. In case a TUIO tracker source is not capable to determine the symbol position or orientation, the DAT message can be sent alone as a trigger message.

EDIT:
For TUIO 1.1 this might be actually a good case for trying the custom profile mechanism:
/tuio/_scP set s_id c_id data_string

---
you actually caught me in the right moment, since I am currently finalizing the TUIO 2.0 document at http://www.tuio.org/?tuio20
and will soon put the first draft of TUIO 1.1 online as well. See this thread about the proposed BLOB profile:

http://nuigroup.com/forums/viewthread/4893/

 Signature 

TUIO community site: http://www.tuio.org
reacTIVision framework: http://reactivision.sf.net
TUIO & reacTIVision CVS: http://sf.net/projects/reactivision
reacTIVision forum: http://sf.net/apps/phpbb/reactivision

Profile
 
 
Posted: 28 August 2009 12:41 PM   [ Ignore ]   [ # 7 ]
Rank
Joined  2009-05-18
Total Posts:  95
New Member

What about a C# TUIO server ?
Is that coming anytime soon ?

Profile
 
 
Posted: 28 August 2009 01:57 PM   [ Ignore ]   [ # 8 ]
Avatar
RankRankRank
Joined  2008-06-16
Total Posts:  330
Sr. Member

Hello, I am currently implementing the TUIO 1.1 specification for C++, which is already available quite functional in CVS.
Once this work is finalized, the following work will be to to port the changes to Java and C# as well.

 Signature 

TUIO community site: http://www.tuio.org
reacTIVision framework: http://reactivision.sf.net
TUIO & reacTIVision CVS: http://sf.net/projects/reactivision
reacTIVision forum: http://sf.net/apps/phpbb/reactivision

Profile
 
 
Posted: 28 August 2009 02:35 PM   [ Ignore ]   [ # 9 ]
Rank
Joined  2009-05-18
Total Posts:  95
New Member

Thanks Martin,
Another quick question,
I want to send to the application the touch events AND the blobs / Silhouette of objects touch the surface.
Does TUIO support this ?

Profile
 
 
Posted: 28 August 2009 02:39 PM   [ Ignore ]   [ # 10 ]
Avatar
RankRankRank
Joined  2008-06-16
Total Posts:  330
Sr. Member

Yes, the TUIO 1.1 specification introduced a third /tuio/2Dblb profile, which encodes the approximate blob geometry using an oriented bounding box.
The current TUIO C++ code in CVS already implements all this, and the next versions of reacTIVision and touché will also support the new feature.
Probably tbeta/ccv would also take advantage of adopting this new feature, since it won’t need the width/height tweak for the cursor profile anymore.
ciao, Martin.K

 Signature 

TUIO community site: http://www.tuio.org
reacTIVision framework: http://reactivision.sf.net
TUIO & reacTIVision CVS: http://sf.net/projects/reactivision
reacTIVision forum: http://sf.net/apps/phpbb/reactivision

Profile
 
 
Posted: 28 August 2009 05:03 PM   [ Ignore ]   [ # 11 ]
Avatar
RankRankRank
Joined  2008-12-27
Total Posts:  262
Moderator

How about TUIO with custom shape ? for object shape or blob shape ?
Width / height can be very limited, if you want to check object for example. (have the shape of a phone, a cigarette etc..)

Have your a work on this ?

 Signature 

Kivy | PyMT | Movid

Profile
 
 
Posted: 28 August 2009 08:15 PM   [ Ignore ]   [ # 12 ]
Rank
Joined  2009-05-18
Total Posts:  95
New Member

I agree,
I also need to transfer the shape, I was planning on doing it in a simple binary matrix.
I think a lot of people would be needing this.

Profile
 
 
Posted: 29 August 2009 03:07 AM   [ Ignore ]   [ # 13 ]
Avatar
RankRankRank
Joined  2008-06-16
Total Posts:  330
Sr. Member

@txprog:
TUIO 2.0 will support the description of the object geometry up to great detail.
The specs are not finished yet, but most of these features are covered there already:
http://www.tuio.org/?tuio20

@shacharweis:
sending the full binary matrix would first of all generate a lot of data, and on the other hand still leave the expensive analysis to the client.
therefore the encoding in TUIO 2.0 can be incrementally refined, by providing descriptors such as the oriented bounding box, convex hull, contour and skeleton.
For the description of the full blob area (which will be hardly needed provided the previous descriptors), we will be using a list of line spans, which is basically a kind of run length encoding.

 Signature 

TUIO community site: http://www.tuio.org
reacTIVision framework: http://reactivision.sf.net
TUIO & reacTIVision CVS: http://sf.net/projects/reactivision
reacTIVision forum: http://sf.net/apps/phpbb/reactivision

Profile
 
 
   
 
 
‹‹ TUIO.org is online      TUIO blob messages ››