Skip to main content
Filters in OpenTrack smooth the raw tracking data from your camera or sensor to reduce jitter while maintaining responsiveness. Each filter uses a different approach to balance smoothness and lag.

Available Filters

OpenTrack provides several filtering algorithms, each optimized for different use cases:

Alpha Spectrum

Advanced adaptive filter with multi-head composition and motion prediction

EWMA

Exponentially weighted moving average with dynamic noise detection

Hamilton

Quaternion-based filter using Slerp interpolation for rotations

Accela

Spline-based acceleration filter for velocity-dependent smoothing

Accela + Hamilton

Combined filter using Accela smoothing with Hamilton’s quaternion rotations

None

No filtering - raw tracking data passes through unmodified
Accela + Hamilton combines Accela’s velocity-dependent smoothing with Hamilton’s quaternion-based rotation handling for smoother gimbal-free rotations. None can be useful for debugging or when using external smoothing.

Filter Comparison

FilterBest ForComplexityCPU UsageAdaptive
Alpha SpectrumAdvanced users wanting maximum controlHighMedium-HighYes
EWMAGeneral purpose, automatic noise adaptationMediumLowYes
HamiltonSmooth rotation with quaternion interpolationMediumLowPartial
AccelaFast action games, velocity-dependent responseLowLowYes
Accela + HamiltonCombined smoothing with quaternion rotationsMediumLowYes
NoneNo filtering, raw dataMinimalNoneNo

Choosing a Filter

For Simulators and Precision Work

Use EWMA or Alpha Spectrum (Stable profile):
  • Maximum smoothness when stationary
  • Minimal jitter for precise aiming
  • Responsive enough for slow pans
Min Smoothing: 0.02
Max Smoothing: 0.7
Curve: 0.8

For Fast Action Games

Use Accela or Alpha Spectrum (Responsive profile):
  • Minimal lag during rapid movements
  • Velocity-based acceleration
  • Quick response to fast turns
Rotation Sensitivity: 1.5
Translation Sensitivity: 1.0
Rotation Deadzone: 0.03°

For Smooth Cinematic Movement

Use Hamilton:
  • True quaternion interpolation (Slerp)
  • No gimbal lock artifacts
  • Smooth, natural rotation paths
Hamilton Settings
Max Rotation: 0.01
Rotation Power: 0.01
Rotation Deadzone: 0.01°

Key Concepts

All filters balance two competing goals:
  • More smoothing = less jitter but more lag
  • Less smoothing = faster response but more visible shake
Adaptive filters try to automatically adjust this balance based on detected motion.
Deadzones suppress tiny movements below a threshold to eliminate noise:
  • Rotation deadzone: ignores small rotational movements (degrees)
  • Translation deadzone: ignores small positional movements (millimeters)
Too high = inputs feel sticky. Too low = visible jitter.
The alpha parameter controls the filter weight:
  • output = output + alpha * (input - output)
  • Alpha of 1.0 = no smoothing (instant response)
  • Alpha of 0.0 = infinite smoothing (no movement)
Adaptive filters dynamically adjust alpha based on motion energy.
Advanced filters (EWMA, Alpha Spectrum) measure noise statistics:
  • Track variance of recent deltas
  • Distinguish intentional movement from sensor noise
  • Adapt smoothing strength automatically
This provides heavier smoothing when still, lighter smoothing when moving.

Filter Pipeline

Filters process tracking data in the pipeline:
  1. Tracker provides raw 6DOF pose data
  2. Filter smooths the data (this module)
  3. Mapping applies curves and response adjustments
  4. Output sends to game/simulator
Filters operate on the raw tracking data before mapping curves are applied. This means filter settings are independent of your response curve configuration.

Common Parameters

Most filters share these parameters:
rotation_min
float
default:"0.085"
Minimum smoothing factor for rotation (0.005-0.4). Lower = more smoothing at rest.
rotation_max
float
default:"0.218"
Maximum smoothing factor for rotation (0.02-1.0). Higher = faster response during motion.
rotation_curve
float
default:"4.26"
Shape of the transition from min to max (0.2-8.0). Higher = stays smooth longer.
rotation_deadzone
float
default:"0.156"
Suppresses rotation below this threshold in degrees (0.0-0.3°).
translation_min
float
default:"0.085"
Minimum smoothing factor for X/Y/Z position (0.005-0.4).
translation_max
float
default:"0.218"
Maximum smoothing factor for X/Y/Z position (0.02-1.0).
translation_curve
float
default:"4.26"
Shape of the transition from min to max for translation (0.2-8.0).
translation_deadzone
float
default:"1.041"
Suppresses translation below this threshold in millimeters (0.0-2.0 mm).

Troubleshooting

Before adjusting filter settings, ensure your tracker is working properly and securely mounted. No filter can fix tracking hardware issues.
View jitters when stationary:
  • Increase minimum smoothing or deadzone
  • Check for Brownian/noise contribution in status (Alpha Spectrum)
Feels laggy during turns:
  • Increase maximum smoothing
  • Decrease curve value
  • Enable Adaptive Mode (Alpha Spectrum)
Small movements ignored:
  • Decrease deadzone values
  • Check that tracker sensitivity is adequate
Feels too twitchy/nervous:
  • Decrease maximum smoothing
  • Increase curve value
  • Increase minimum smoothing

Next Steps

Alpha Spectrum

Learn about the most advanced filter with predictive heads

EWMA Filter

Understand the automatic noise-adaptive filter

Hamilton Filter

Explore quaternion-based smooth rotations

Accela Filter

Configure velocity-dependent acceleration filtering