Fighting Noise with the 1€ Filter

December 4, 2014 posted by: joreg


here is a supasmall thing. But it can be supausefull. So i thought you should know rightaway: We’re all familiar with noisy signals coming from sensors and the simplest thing in vvvv to do to calm such a signal always was to use a Damper (Animation)node. But of course that introduces a lag, which is sometimes unwanted.

::![](OneEuroFilter%20(_r.png) ::

Enter the 1€ Filter: A Simple Speed-based Low-pass Filter for Noisy Input in Interactive Systems All credits to its creators: Géry Casiez, Nicolas Roussel, Daniel Vogel and Mitsuru Furuta from which we borrowed the C# implementation.

Available now with more details in the helppatch in the latest alpha.


Comments are no longer accepted for this post.

04.12.2014 - 22:37
Does it fix ui lag too? ;)
04.12.2014 - 23:52
excellent. thank you
23.02.2015 - 18:14
@mooney it already comes with the latest regular download now. no more alpha needed.
23.02.2015 - 19:00
Hey, thanks for the reply. I actually came across this a while ago, re downloaded the add on pack to make sure. Still couldn’t find it. Kind of forgot about then and tried to make a work around. Any chance you have the file path to where it should be? Cheers
23.02.2015 - 20:05

i am not sure why you ask about a filepath.. just doubleclick in a patch to popup the nodebrowser and type “oneeuro..” to make it come up. if it does not show up like this you are not running the latest version of vvvv.

in case you’re asking for the source, it is here:

13.12.2014 - 03:29
I’ve been using this filter for a while to filter head tracking data for VR (got it off the VRGeeks list), but never made it into a proper plugin because it is stateful, and couldn’t decide how best to handle that in the case of changing spreads. Does this implementation handle spreads, and if so what happens if the spread count changes?
13.12.2014 - 13:10
well, it behaves like all the other filters (linear, damper, oscillator) do.
13.12.2014 - 22:35

To clarify, that behavior is to always use the slice history, regardless of slice count changes, yes? I tried making wrappers that bang a reset when the spread count changes, but that is still not great.

I’ve been thinking it would be helpful for all of those animation filter nodes to have a version that took a spread of IDs as well to maintain behavior, since in tracking applications you frequently do have an ID associated with the data. That way the correct history would apply wherever in the spread the data moved to. One of these days…

13.12.2014 - 23:03
yes. and see here for a discussion on the topic: forum
13.12.2014 - 23:05
@mediadog hehe, i had the exact same idea some days ago. maybe some clever id-creation nodes can make such ID-ized nodes even more multipurpose
11.02.2015 - 03:21
this is amazing news! is it using some kind of Kalman based approach?
11.02.2015 - 13:46
in their paper they argue how that outsmarts kalman:
23.02.2015 - 18:03
Hey guys. This seems like exactly what I need right now, but I can’t seem to find it anywhere in the alpha pack? Am I missing something obvious?



vvvv - Dießl & Gregor GbR
Oranienstrasse 10
10997 Berlin/Germany
VAT: DE275566955


Follow us

Sign up for our Newsletter

Your subscription could not be saved. Please try again.
Your subscription has been successful.