» MultiTouch stack
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

MultiTouch stack

question open devvvv plugin legacy

elliotwoods 10/09/09 - 05:01

Hey all
Here's the beginnings of my take on a multi-touch image stack. It doesn't work amazingly, it's pretty early on.
This kind of thing is generally referred to as a 'Photo Browser' and is your stock must have multi-touch effect
I'll make the scale, rotate work more precise when i figure out the correct matrix later on.
For the time being, please feel free to rip it open and make it work!

For the time being though, it's ok for some projects. Feel free to use.

Source code included

(created at studio dotdotdot)

15 replies 0 new
This is a legacy thread which was closed after one year of inactivity. Information provided in this thread may not be valid for the latest version of vvvv. If you have questions on this topic, you might consider opening a new thread.

link | elliotwoods 12/09/2009 - 15:12

i dont know if my description was sufficient to describe what this is
it lets you do this kind of stuff

link | wirmachenbunt 14/09/2009 - 13:31

sounds interesting ! can you provide a help patch ?

link | elliotwoods 14/09/2009 - 14:59

ah! thought i'd done that. i'll find the files and post them
seems i left the help files in the studio (in milan) and i'm back in the UK now
will try and get a new help patch up asap
mostly what you need to do is connect:

Inputs
Add translate, scale, rotate -> data for an item you want to add to the stack (spreadable)
Do add -> send a bang to add the item to the stack
Finger XY -> connect this to your TUIO decoder or whatever

Output
Transform -> connect to a quad

that'll give you a simple browser

Use the Add ID and output ID to specify images for each slide in your stack
The close width, defines how large a region you want for a 'close' button in the top-right hand corner of each stack item.

i'm going to try and get this tested sometime today by someone working on an active MT surface. then will post results

link | wirmachenbunt 14/09/2009 - 15:22

i quickly tried to patch something, i could add quads but don't understand how i can move them. the velocity input didnt seem to do anything. i connected framevelocity and framedifference coming from the mouse coordinates to your velocity inputs but no luck.

cheers for the quick answer btw. :)

link | elliotwoods 14/09/2009 - 17:47

ah yeah, start velocity doesn't work yet
you need to use fingers to move the quads around
i'm putting together a quick patch now for someone to test

link | elliotwoods 14/09/2009 - 18:02

ok
here's an example of it working with the tuiodecoder plugin (included)

link | wirmachenbunt 16/09/2009 - 12:57

cheers, i did a test with the tuio simulator and it seemed to work quite good. i need to test it on my multitouch at some point.

good work :)

link | elliotwoods 17/09/2009 - 13:53

got some feedback from people with tables
supposedly it's a bit jittery and prone to wild scaling
not sure what the wild scaling is about (i had that to start with when testing with my iphone tuio tester but thought i'd got rid of it)
the jitteryness is because there's no filters on the cursor data (like a damper in vvvv). will add something appropriate

link | wirmachenbunt 17/09/2009 - 14:15

i guess the wild scaling is due to IDs jumping. if the tracking isn't 100% stable the ID's change all the time. well thats my experience.

link | screamer 24/04/2010 - 23:53

hi,
great work, vvvery useful. i made a version for nextwindow devices, that i attach. I added a hack for aspectration (so you can run it fullscreen at any aspect ration you want).
For the jittering, with my monitor is stable, but some smooth would be great. and so, i have two questions:

  • there is a way to "split" a transform into its parts (for example the spread of positions, scales, rotations), so i can smooth it and the reassemble to a transform
  • why the choice of use a transform as output pin instead of the pins for position, scale and rotations?

anyway thx for this great and useful plugin ;)

link | elliotwoods 29/04/2010 - 08:51

i chose transform because i'm not actually calculating the positions and rotations inside, i'm doing a matrix solve on the transform directly. this approach is nice because it's always bang on with your finger positions (i find that a lot of other approaches are quite lazy with this and deviate from what your fingers are actually doing / where they are on the object).

i've attached updated version and another helper plugin called 'finger filter' which helps reduce the jitter
instead of filtering the positions of the stack, it filters the finger positions, which think is approaching the problem more directly.

beyond this it would be nice to add momentum to the slides (linear and angular), and perhaps deal with more touches.

notes on attached version:
this now will output on the 'Trash' pins which stack items have been deleted this frame. you can then use the transform and index to run a delete animation of your choice.

also, there's the concept of an 'Owner'. An owner 'owns' a set of slides inside the stack. then you can address those slides by the owner ID. This is useful if you want to categorise items in the stack.

move is used to perform a tweened movement of a slide in the stack. you give the new transform, a duration and an ID

check the config pins for 'Constraints' and 'Button action'. Constraints stops your slides moving outside an area. Button action tells the plugin what pressing the button on the slide will do (either close the slide, or send a bang on the output pin).

link | elliotwoods 29/04/2010 - 08:53

finger filter

link | elliotwoods 29/04/2010 - 08:55

source code attached
will be on SVN soon

link | chriss0212 27/05/2010 - 12:09

hi elliot....or who evver can help :-)

i am playing eraound withe your mt stack and in generall it works quit good :-). but my multitouch interface has a strong jitter and sometimes one object is recognized as two object which results a big jumping in scaling. thats why i use the contour tracking....on this way i can solve this problem. but there is still my jitter problem...thats why i put a damper patch in the output values of your stack...jittering is fine now but: if i touch a new picture i always have a jumping in the pictures :-(

any help would be great :-)

big thx in advance

chriss

link | chriss0212 27/05/2010 - 15:54

hi kalle...

i got it... your answer was the first step :-) than i need to put the damper BEHIND if the sorting!

big thx and greetz

chriss

anonymous user login

Shoutbox

~3h ago

Urbankind: circuitb:Wrongcop is epic! :)

~4h ago

joreg: @tobi: use GetSlice() as the patch i referred you to is demonstrating. or start a forum thread with your patch.

~4h ago

TobiTobsen123: hmm yes i can see the values...but how to handle them as seperate values? I need to forward them via TCP/IP...

~6h ago

joreg: @tobi: OSCDecoder helppatch has a section: OSC_Advanced (bottomright) that demoes decoding of multiple messages

~6h ago

TobiTobsen123: I'm using an OSCDecoder, it receives two arguments...works but how can I seperate the arguments into two seperate values

~9h ago

u7angel: @mediadog, make it a forum question.

~9h ago

u7angel: @mediadog, tty renderer ?

~11h ago

microdee: however non-conductive objects are invisible for this so the pencil and the sticks in the video are still a mysteries