> For the complete documentation index, see [llms.txt](https://docs.yanusstudio.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yanusstudio.com/yanuslive-pro/ui-panes/filter-tuning-panel.md).

# 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.

<figure><img src="/files/OU9PY7nFj850fNQM5lWD" alt="" width="375"><figcaption></figcaption></figure>

### 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:

```
Low latency
Stable facial motion
Reduced jitter
Natural mouth / jaw response
Clean eye and brow motion
```

### SDK filtering

At the top of the panel, you can see which SDK tracking outputs are enabled:

```
Face Box     (0x001)
Landmarks    (0x002)
Head Pose    (0x004)
Expressions  (0x010)
Eye Gaze     (0x020)
```

These options control which data streams the face-tracking SDK requests or processes.

In the example configuration, all SDK outputs are enabled.

{% hint style="warning" %}
When **Expressions (0x010)** is enabled, the app softens mouth filtering to avoid double filtering.
{% endhint %}

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:

```
ON (Filtered)
```

The button label is:

```
Disable All
```

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:

```
Responsive
LiveLink
Balanced
Stable
```

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:

```
Eyes 10-23 (OneEuro)
Brows 0-5 (Butterworth)
Output Deadband
Clamp
```

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:

```
Eye gaze 12-19 uses zero deadband for continuous motion;
jaw/mouth 24-50 use optional predictive interpolation.
```

This keeps eye gaze continuous and allows optional prediction for mouth and jaw response.

### Main sliders

#### Deadband

Current example value:

```
0.0060
```

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:

```
0.919
```

The UI describes this range as:

```
0 = very stable / stiff
1 = raw pose / most responsive
```

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
Dynamic Compensation
OneEuro (Eyes)
OneEuro (Mouth/Jaw 24-50)
Butterworth (Brows)
Mouth Latency Mode
```

#### 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.
