OpenFaceFX Studio
booting…
00:00.000 the schematic face blends visemes in real time — a rig-neutral preview

Waveform & phoneme alignment

The audio (or a synthetic envelope) with the aligned phoneme & viseme strip — the read side of the pipeline. Run QA flags cue-timing outliers & out-of-vocabulary words.

Animation curves

Coarticulated viseme & gesture curves over the phoneme & word strip. Click a curve to select it · drag its dots to move a key · double-click to add · alt/right-click a dot to delete · drag on empty space to box-select keys, then drag them together or press Delete · Ctrl+Z to undo.

Events

0

A typed event layer auto-authored from the speech itself (derive_events): emphasis beats on stressed syllables and phrase markers at pauses — the same accents the gesture layer reads. Click an event to seek. Events ride in the track JSON and export as engine notifies (Unity/Unreal).

Face Graph

Click a rig-output node (right column) to edit it in the Inspector → tune each viseme's weight, add/remove one, clone it, or (on a clone) set a constant Value or a nonlinear Response. Press play — each node fills like a level meter (its live value) and the links pulse as the signal flows. Pick a target rig preset above.

Mapping

The phoneme → viseme weight table — the mapping the solver applies before coarticulation (the built-in Oculus-15 table). Edit a weight, rename a target, or add/remove one. Turn on apply on Generate and your edits drive the next take (curves & preview change). Download a canonical openfacefx.mapping JSON to reuse from the CLI/API (--mapping). This is a different layer from the Face Graph (viseme → rig targets).

Export

Every OpenFaceFX exporter, run in-browser. Retarget presets apply where relevant.

AI Assistant

no key
OpenFaceFX Studio

Starting the in-browser pipeline…

CPython + numpy → WebAssembly via Pyodide. Nothing leaves your machine.