Navod Peiris has released gsplat-talkinghead, an MIT licensed React library that puts lip synced Gaussian splat avatars in front of AI voice agents in the browser.
gsplat-talkinghead does not render splats itself. Rendering comes from Myned AI's gsplat-flame-avatar-renderer, an MIT licensed library that animates Gaussian splat heads built on the FLAME parametric head model through 52 ARKit blendshapes, and version 1.4.0 or later is a required peer dependency. Lip sync comes from Myned AI's wav2arkit_cpu, an Apache 2.0 ONNX model that onnxruntime-web runs in the browser, converting agent audio resampled to 16kHz into blendshape weights. Neither step needs a server.
gsplat-talkinghead ships components for OpenAI Realtime, OpenAI GPT-Live, Qwen Realtime from Alibaba Cloud, ElevenLabs Conversational AI, Vapi, and LiveKit Agents. Provider secret keys stay on the developer's backend, and each component calls back to it for a short lived token or to forward a WebRTC offer. ElevenLabs is the exception on lip sync. Its SDK exposes only volume and frequency scalars, so ElevenLabs avatars fall back to coarse, volume driven mouth movement.
Four preset avatars, Jack, Jane, John, and Sasha, load from jsDelivr by default or from a self hosted folder, and any asset bundle compatible with the Myned AI renderer can replace them. An emotion prop with neutral, happy, sad, and thinking states layers ARKit blendshape offsets over the lip sync, and a set_emotion tool lets OpenAI and Qwen agents change the avatar's expression mid conversation.
Splat.js added an experimental path in September that turns a walk around capture of a person into a splat avatar. gsplat-talkinghead starts from a finished avatar bundle and handles animation, audio and session control.
The current npm release is gsplat-talkinghead 0.1.2. It is available now on GitHub.



