IDEO Labs: Multitouch AS3/Processing.org
Posted: 25 August 2008 02:48 AM   [ Ignore ]
Avatar
RankRankRankRank
Joined  2006-11-09
Total Posts:  709
Administrator

The renown… IDEO (www.ideo.com) is diggin on the home-brew touch computing smile


Multitouch Package for Flash & Processing by http://labs.ideo.com

Created to enable designers to explore multitouch interactions quickly and easily, this package includes all requisite software to build a lightweight multitouch system.

This package is comprised of two parts:

Multitouch Client – A multitouch API for Flash including support for extensible touch actions, arbitrarily sized displays, and a limitless number of active fingers. Software simulated touch events are also supported to allow for software to be tested and developed on computers lacking multitouch hardware. The Multitouch Client API is built in ActionScript 2 and communicates with the Multitouch Server via network socket connection.

Multitouch Server – A camera-based computer vision system that optically recognizes multitouch input, serializing it for transmission to the Multitouch Client. It has an interactive calibration routine to effectively overcome camera alignment and fisheye lens distortion. Implemented in Processing, it uses open source libraries and Processing’s net library.

Originally created for use with popular low-cost DIY FTIR setups (see nuigroup for information on assembling your own FTIR hardware), this software can also be easily modified to work with commercially available systems by implementing the Multitouch Server Protocol over a socket server.

Example Code

The following example illustrates how to enable a movieclip to be dragged using one finger or dragged, scaled, and rotated using two fingers. The screenshot below displays this example code as applied to a colored square.

import com.ideo.MultiTouch.*;
import com.ideo.MultiTouch.TouchActions.*;

// create finger manager
var fingerManager = new FingerManager(this);

// connect finger manager to finger server
new FingerClient(fingerManager, “localhost”, 11000);

// create finger simulator
new FingerSimulator(fingerManager);

// create touch manager
var touchManager = new TouchManager(fingerManager);

// make movieclip touchable
touchManager.makeTouchable(myMovieClip);

// assign touch actions for movieclip
new OneFingerDragger(myMovieClip);
new TwoFingerManipulator(myMovieClip);

Refer to the project wiki for class documentation and more sample code.

Multitouch Simulator

Touch events can be simulated in the Flash environment to allow multitouch software to be developed without or while away from multitouch hardware. Touch events are simulated by way of keyboard chording. The number keys place virtual fingerprints on the stage that can be dragged with the mouse. Visible fingerprints are also useful for debugging multitouch hardware calibration and screen registration.

http://code.google.com/p/ideo-multitouch/

Image Attachments
multitouchdiagram.png
 Signature 

~

Profile
 
 
Posted: 25 August 2008 09:02 AM   [ Ignore ]   [ # 1 ]
Rank
Joined  2008-07-10
Total Posts:  16
New Member

Looks great! I will give it a try this week.

Profile
 
 
Posted: 25 August 2008 12:29 PM   [ Ignore ]   [ # 2 ]
Avatar
Rank
Joined  2007-12-24
Total Posts:  83
New Member

Can’t wait to test it!
thanx!

 Signature 

--
http://www.multitouch-barcelona.com

Profile
 
 
Posted: 25 August 2008 12:30 PM   [ Ignore ]   [ # 3 ]
Avatar
RankRank
Joined  2008-07-19
Total Posts:  109
Jr. Member

rly nice

someone got it work?

Profile
 
 
Posted: 26 August 2008 09:04 PM   [ Ignore ]   [ # 4 ]
Avatar
RankRankRankRank
Joined  2008-02-22
Total Posts:  559
Moderator

awesome stuff smile

 Signature 

http://www.justinriggio.com cool mad
http://www.niceminds.com My blog

Profile
 
 
Posted: 17 November 2008 02:46 AM   [ Ignore ]   [ # 5 ]
Rank
Joined  2008-10-06
Total Posts:  70
New Member

Any got this working?

seems like an easy way to use my AS2 projects but I am not getting very far running the server… first of all it looks like one of the libraries, PROXML, is not compatible with the latest version of processing (v.156). I got the sketch running in v.148. I’m trying it onj my rear DI projection table (which works really well with tBeta and sortakinda well with touchlib).

When doing touches during calibration, it looks like there is a mosaic of my touch… i saw a pattern in the noise, definitely looks like my touch is repeated (as is noise) all over. this makes it impossible to properly calibrate. once I have a wrong calibration, my theory is further confirmed by single touches showing many tracking-circles (within a crazy looking bounding box due to wrongful calibration).

I’m no processing pro but.... I found this:
fastblur(img, 2); // fast blur filters out some spatial noise.
and playing with that number multiplies the number of instances, more mosaic… trouble is, i couldn’t eliminate the mosaic of touches.

Any suggestions?

thanks.

 Signature 

blog.LitStudios.com
Adventures in Human Computer Interaction

Profile
 
 
Posted: 17 November 2008 10:36 AM   [ Ignore ]   [ # 6 ]
Avatar
Rank
Joined  2008-04-30
Total Posts:  34
New Member

@alpay: in the latest versions of processing, proxml is integrated into the core so its not a external library anymore. this might cause your problems

Profile
 
 
Posted: 17 November 2008 03:00 PM   [ Ignore ]   [ # 7 ]
Rank
Joined  2008-10-06
Total Posts:  70
New Member

ahhh ok, so then should I be editing the could to remove proxml as an external dependency perhaps? this is as far as my knowledge goes.

I’m no stranger to coding in general but processing is kind of a new world. but a fun new world. I’ve been working with AS3 up until now for “rapid prototyping” but I think processing or vvvv might help me in other ways, I want to mask/crop the projection hitting my touchsurface. this seems easily doable in either of those apps.

thanks.

 Signature 

blog.LitStudios.com
Adventures in Human Computer Interaction

Profile
 
 
Posted: 17 November 2008 06:06 PM   [ Ignore ]   [ # 8 ]
Avatar
RankRankRankRank
Joined  2008-06-09
Total Posts:  838
Elite

So, to clarify - its for Actionscript 2, correct? Not AS3? Or both?

 Signature 

My Multi Touch Blog
Join us on NUI Chat !
Read Multi-Touch Technologies Book!

Profile
 
 
Posted: 17 November 2008 06:41 PM   [ Ignore ]   [ # 9 ]
Rank
Joined  2008-10-06
Total Posts:  70
New Member

ahhh ok, so then should I be editing the could to remove proxml as an external dependency perhaps? this is as far as my knowledge goes.

whoa.. my english skills lapsed for a moment ther… sorry, I think my hand hit the trackpad on my laptop and i didn’t notice the misplaced words.

What I was trying is to ask is if I should be looking at removing external dependencies to PROXML is some way? not sure how it works in Proc. Is it specifically proxml that got integrated or some other xml methods (which scares me because then maybe I need to look at all pertinent xml code too) Thanks for the info. much appreciated.

Alpay

 Signature 

blog.LitStudios.com
Adventures in Human Computer Interaction

Profile
 
 
Posted: 31 December 2008 06:18 AM   [ Ignore ]   [ # 10 ]
Rank
Joined  2008-12-24
Total Posts:  7
New Member
rbedi100 - 17 November 2008 06:06 PM

So, to clarify - its for Actionscript 2, correct? Not AS3? Or both?

It is only for AS2

Profile