MultiTouch stack

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)

stack (179.9 kB)

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

sounds interesting ! can you provide a help patch ?

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:

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

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

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. :)

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

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

stack (1.1 MB)

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 :)

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

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.

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 ;) (1.4 MB)

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).

Stack MT.dll (36.9 kB)

finger filter

Finger Filter.dll (24.6 kB)

source code attached
will be on SVN soon

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 (1.1 MB)

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


for an example of how to patch something like this using VL, see
in latest alpha downloads. will be included with beta>35

I’d be interested in updating this.

Realistically would definitely mean re-writing with old as reference, not updating old code.
Would mean a new open OO approach to MT objects (i.e. other nodes/code could also interact with the stack / be extensible).

Thanks again to dotdotdot and @ales9000 for funding the development on this originally.

happy to implement in VL if that’s the right thing to do

@xd_nitro : we talked about this a couple of times, but every time you said you don’t have a budget, and that this is for commercial work, and it takes time to do (took 1/2 a day just to setup a hardware test environment the first time) so it gets all catch 22.
i’ve got time to do the work, as long as its work.

1 Like

hey elliot - yes ultimately commercial work as it’s a feature/function I would like in software my business offers clients but there is not a specific job or project right now that requires it. There’s never budget for anything much internal around here but I am sure I can get something together.

Anyone else want commercial use from such a set of nodes? Any contributions to the development costs would of course help :).

Maybe one (with some funding) for the new store?