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