WebAssembly (Browser)
Run bitHuman visual agents entirely in the browser with WebAssembly — the avatar renders on the user's machine, no server GPU required.
New — the WebAssembly runtime lets a bitHuman agent render fully client-side, in any modern browser.
What it is
The bitHuman engine (libessence) is compiled to WebAssembly, so the entire avatar
pipeline — mel spectrogram → audio encoder → frame compositing — runs in the user’s tab,
in realtime, on a <canvas> (via ONNX Runtime Web
on a WASM backend, with SIMD). The avatar video never leaves the device, and your server’s GPU
stays free.
This is the same Essence model you run on-device elsewhere — now in the browser.
Two modes
| Mode | What the server does | What the browser does | Use it for |
|---|---|---|---|
Browser rendering_mode=browser | Runs the conversation brain (STT / LLM / TTS) and streams audio over LiveKit | Renders the lip-synced face locally | Offloading render cost while keeping a cloud brain |
Avatar rendering_mode=avatar | Nothing | Mic-driven puppet, fully client-side; .imx cached in IndexedDB | Pure-client, offline-capable demos |
Quickstart
The fastest path is the embed, with the rendering mode set in the URL:
<iframe
src="https://bithuman.ai/embed/A74NWD9723?rendering_mode=browser"
allow="microphone; autoplay"
style="width:100%;height:100%;border:0">
</iframe>
Requirements
- A modern browser with WebAssembly SIMD (recent Chrome, Firefox, Safari).
SharedArrayBuffer— your page must be cross-origin isolated, so serve these headers:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
- A one-time model download per identity, cached in IndexedDB for instant reloads and offline use.
When to use it
- Cost — rendering happens on the client, so a single server can drive far more sessions.
- Privacy — the rendered video stays on the user’s machine.
- Scale & reach — ship a talking agent to anyone with a browser, no install.
See the full Browser rendering guide for the pipeline internals and the cross-origin-isolation setup. For a server-rendered or native path instead, see Python, Swift, or Android.