TUIO Damper

has anyone achieved a damper for tuio touch data or similar in an elegant way. i have touches with changing spreadcounts (obviously) and id’s to identify the touches. the good old method using a buffer with fixed count of touches feels a bit dated and it would be cool to use VL in a dynamic way.

in theory, each touch identified by its id, gets a damper, as long as the id exists. but i struggle to implement this in VL.

in order to not run into vvvv slice issues, you need to associate the position filter with the position itself in a FilteredTouch data type.

store the FilteredTouch instances in a dictionary with the id as key.

then set the new position in each frame and mark the touch as “Seen”…

then loop over all instances, update them and discard the ones you haven’t seen…

Did you try?:

@bjoern yeah tried but this is for more complicated cases when you don‘t have id‘s

@tonfilm yes the theory is all clear to me, the execution in vl not so much

it’s the same structure as that, only with a dictionary instead of a spread as collection type and Particle is your FilteredTouch:

reinstating consistent IDs is THE major motivation for all linked trackers. all the rest is just heuristic guesswork and clinging to the closest thing they can find :smiley_cat:

in my vl port mentioned before is a 2d girlpower example included. that’s probably all you need for tuio.
if you don’t want vl at all, just go with the oldschool plugins

@velcrome i was looking particularly for a vl solution since i think this is the best way to solve it, brings damper/oneeurofilter and proper dynamic bevaviour. joreg came to the rescue and solved it.

i’ll test it thouroughly and post it here if that’s ok with the author.

1 Like
1 Like

yeah, that seems simple enough. godspeed to you trusting the driver-provided IDs though, hehe
even tiny discontinuities in a touch will usually create a new ID in the touch drivers

it works like a charm

its a radartouch btw.

@u7angel OneEuroFilter is generic and should be able too handle all kinds of vectors, why doesn’t it just look like this? any particular reason you have one for X and one for Y?


oops, before it was a damper. the damper didnt work with 2d. it was later changed to oneeuro…

ah, that old problem again… we solved that already, just wasn’t merged back. needs a follow up…

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.