For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

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.

Choose a tuning strategy based on your workflow.

  • 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