Create a new OneEuroFilter
An estimate of the frequency in Hz of the signal (> 0), if timestamps are not available.
Min cutoff frequency in Hz (> 0). Lower values allow to remove more jitter.
Parameter to reduce latency (> 0). Higher values make the filter react faster to changes.
Used to filter the derivates. 1 Hz by default. Change this parameter if you know what you are doing.
Parameter to reduce latency (> 0). Higher values make the filter react faster to changes.
Used to filter the derivates. 1 Hz by default. Change this parameter if you know what you are doing.
The low-pass filter for the derivates.
An estimate of the frequency in Hz of the signal (> 0), if timestamps are not available.
The last time the filter was called.
Min cutoff frequency in Hz (> 0). Lower values allow to remove more jitter.
The low-pass filter for the signal.
OneEuroFilter is a low-pass filter designed to reduce jitter in noisy signals while maintaining low latency. It's particularly useful for smoothing tracking data from XR controllers, hand tracking, or other input devices where the signal contains noise but responsiveness is important.
The filter automatically adapts its smoothing strength based on the signal's velocity:
Based on the research paper: 1€ Filter: A Simple Speed-based Low-pass Filter for Noisy Input
Example: Basic usage with timestamp
Example: Without timestamps (using frequency estimate)
Example: Smoothing 3D positions
See
OneEuroFilterXYZ for filtering 3D vectors