Filter Tuning Panel
The Filter Tuning Panel controls how raw face-tracking data is filtered before playback, streaming, or animation output.
Use it to balance response speed, motion stability, and visual cleanliness.

What you can do
Reduce jitter in tracked motion.
Lower latency for mouth and jaw output.
Stabilize eye and brow channels.
Switch between preset filter profiles.
Reset all filter values to defaults.
Main goal
The panel helps you balance these priorities:
SDK filtering
At the top of the panel, you can see which SDK tracking outputs are enabled:
These options control which data streams the face-tracking SDK requests or processes.
In the example configuration, all SDK outputs are enabled.
When Expressions (0x010) is enabled, the app softens mouth filtering to avoid double filtering.
If the SDK already outputs expression values, extra mouth smoothing can add delay.
For the lowest mouth latency:
Turn Expressions (0x010) off.
Tune Mouth MinCutoff and Beta.
This is important for lip-sync. Too much filtering can make speech feel late.
Global filter toggle
This section enables or disables application-level filtering.
Current state in the example:
The button label is:
That means app-side filtering is currently enabled.
ON gives smoother, more stable output.
OFF gives rawer, lower-latency output.
Presets
The panel includes these preset buttons:
Use them as quick filter profiles:
Responsive favors fast response with less smoothing.
LiveLink favors low-latency streaming.
Balanced keeps a middle ground.
Stable applies the strongest smoothing.
Pipeline
The visible pipeline text is:
This means the panel applies filters by channel group:
Eye channels use OneEuro.
Brow channels use Butterworth.
Final output uses Deadband.
Final safety limiting uses Clamp.
The panel also notes:
This keeps eye gaze continuous and allows optional prediction for mouth and jaw response.
Main sliders
Deadband
Current example value:
Deadband removes very small changes near zero.
A higher value reduces micro-jitter. A lower value preserves more subtle motion.
Pose smoothing alpha
Current example value:
The UI describes this range as:
A value of 0.919 stays close to raw head pose. It keeps pose response fast.
Detailed filter sections
The lower part of the panel includes these expandable sections:
Landmark smoothing
This section smooths facial landmark points.
Use it to reduce noisy point motion before expression or blendshape output.
Dynamic compensation
This section adjusts filtering based on tracking conditions.
It helps when face size, distance, or motion speed changes.
OneEuro (eyes)
This section controls OneEuro parameters for eye-related channels.
Typical targets include:
Eye blink
Eye squint
Eye wide and gaze direction
Use it to reduce visible gaze jitter without making the eyes feel stiff.
OneEuro (mouth/jaw 24-50)
This section controls optional mouth and jaw filtering.
This is the most latency-sensitive area in the panel. Too much smoothing makes speech and lip-sync feel delayed.
Butterworth (brows)
This section controls brow smoothing.
Brows usually need more stability than the mouth. Small brow jitter is visually obvious.
Mouth latency mode
This section controls special handling for mouth and jaw response.
Use it to keep lip-sync fast while limiting noisy mouth motion.
Reset all
The red Reset All button restores default filter values.
Use it when tuning becomes unstable, too stiff, too delayed, or too noisy.
Recommended usage
Choose a tuning strategy based on your workflow.
For LiveLink or real-time performance
Use Responsive or LiveLink.
Reduce mouth filtering.
Minimize latency first.
For recording cleanup or stable preview
Use Balanced or Stable.
Increase smoothing.
Reduce visible jitter.
For mouth and lip-sync debugging
Disable or reduce Expressions filtering.
Tune Mouth MinCutoff and Beta.
Compare filtered output with raw output.
Last updated