OpenFaceFX Studio

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

A resizable dock — drag the dividers to resize the sections, and use each pane's dropdown to put any panel (Preview · Face Graph · Curves · Phonemes) in any section. All live on one playhead: drag a curve's keyframe to edit · click a rig node to inspect · click the strip to seek. Layout is remembered.

Waveform & phoneme alignment

A live spectrogram of the loaded audio (or a synthetic energy envelope when there's no clip), with the phonemes (as IPA) over the words they belong to. Drag a boundary between two phonemes to fine-tune its timing — the viseme curves re-solve on release (Ctrl+Z to undo). Click elsewhere to seek. Run QA flags cue-timing outliers & out-of-vocabulary words. (Phonemes are standard ARPABET internally; IPA is display-only.)

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.