Embedded devices

Put a real-time avatar in the device you build

Essence 2 and Expression 2 ship as SDKs that render on the device's own processor: Android (arm64, Maven Central), iPhone, iPad and Mac (Swift package), and Linux or macOS (CLI and Python).

Network

Devices check in when a session starts and keep rendering through a network drop of up to 5 minutes. On Android, after the one-time model download, the only network traffic is usage reporting. Fully disconnected operation is available on Linux under an offline license.

Essence 1 runs fully offline on Linux (x86_64 and ARM64) today. Essence 2 and Expression 2 offline come later. Expression 1 runs in the bitHuman cloud only.

Credentials

Each device authenticates with an API secret when a session starts. Use a separate secret for each device fleet, and rotate it if a device is lost.

API secrets (docs)

What the device needs

The hardware we measure and publish, and how fast each model renders on it.
Seconds of avatar video rendered per second, per device and model
DeviceEssence 2Expression 2
macOS · CLIApple M44.24× real time2026-09-278.4× real time2026-09-27
macOS · PythonApple M46.96× real time2026-09-258.45× real time2026-09-25
macOS · Swift packageApple M44.8× real time2026-09-248.85× real time2026-09-24
Linux · CLIIntel Core i7-13700F (x86_64)2× real time2026-09-272.2× real time2026-09-27
Linux · PythonIntel Core i7-13700F (x86_64)1.96× real time2026-09-262.35× real time2026-09-26
iPhone · Swift packageiPhone 152.16× real time2026-09-275.55× real time2026-09-27
AndroidSamsung Galaxy S25+2.08× real time2026-09-252.4× real time2026-09-23
Web browser (WebGPU)Chrome on Apple M41.72× real time2026-09-271.95× real time2026-09-27
iPhone · Swift package · held 10 miniPhone 151.32× real time2026-09-255.15× real time2026-09-25
Android · held 10 minSamsung Galaxy S25+1.48× real time2026-09-272.2× real time2026-09-27
Web browser (WebGPU) · held 10 minChrome on Apple M42.16× real time2026-09-272.05× real time2026-09-25
“× real time” is seconds of avatar video rendered per second of wall-clock time: end-to-end audio in to frame out, one session, unpaced; the slowest of three quiet runs at least ten minutes apart on the published release. Read from docs performance.json (generated 2026-09-27). How we measure →

The SDKs

Swift package (Expression2, Essence2Kit, Essence2)2.18.0

iPhone and iPad on a physical device, and Mac on Apple silicon (Xcode 26+)

Renders on the device.

Swift Package Manager: https://github.com/bithuman-product/homebrew-bithuman.git

Docs

Android SDK (ai.bithuman:expression2-android, ai.bithuman:essence2-android)expression2-android 0.5.2 · essence2-android 0.8.1

Android arm64-v8a on a physical device

Renders on the device.

Maven Central: ai.bithuman:expression2-android, ai.bithuman:essence2-android

Docs

Python SDK (bithuman)2.11.16

Python 3.10-3.14 on Linux x86_64, Linux arm64 and macOS on Apple silicon; Windows through WSL2 only

Renders on your machine.

pip install "bithuman[expression-2]"

Docs

bithuman CLI2.8.3

macOS on Apple silicon, Linux x86_64 and arm64

Renders on your machine.

curl -fsSL https://install.bithuman.ai | sh

Docs

LiveKit plugin (livekit-plugins-bithuman)1.8.4

Python 3.10-3.14

Renders in the bitHuman cloud, or on your own server.

pip install livekit-plugins-bithuman

Docs

REST API and web embed

Any language; any browser

Renders in the bitHuman cloud, or in the tab with WebGPU.

https://api.bithuman.ai with the api-secret header; the embed at https://www.bithuman.ai/embed/<CODE>

Docs

Next steps