Developers · iPhone & iPad

A real-time avatar for your iPhone and iPad app

The bitHuman Swift package renders Essence 2 — a photoreal person — or Expression 2 — any character — on the iPhone or iPad itself. Your app passes in 16 kHz speech from any voice stack and draws the frames it gets back.

From 12 October 2026, API and SDK use requires the Creator plan or higher.

Install

Install

Swift Package Manager
.package(url: "https://github.com/bithuman-product/homebrew-bithuman.git", from: "2.19.0")
Products
.product(name: "Expression2", package: "homebrew-bithuman")   // any character
.product(name: "Essence2Kit", package: "homebrew-bithuman")   // a photoreal person

What you need: Xcode 26+, API secret (from the docs)

Your first frame, step by step The full iPhone & iPad guide

Conversation

Add a conversation

The Swift package only renders: your app passes in 16 kHz mono speech and draws the frames it returns. Bring your own voice stack, or let bitHuman's managed agent run the conversation instead.
  • Your own speech recognition, language model and voice

    Any stack works: the SDK takes 16 kHz mono speech. OpenAI Realtime returns 24 kHz audio: resample it to 16 kHz before you pass it in. The converter is in the docs.

    Resample speech to 16 kHz

  • Build the companion screen

    The companion guide walks through the whole loop on the phone: the SDK, the API secret, resampling, replies, interruption and closing the avatar with the screen.

    Companion app (docs)

  • Or let bitHuman run the conversation

    The web embed runs a managed agent on bitHuman's servers with your persona and, if you like, your own OpenAI-compatible model; a LiveKit agent can use a bitHuman cloud avatar. Either way the avatar renders in the bitHuman cloud (the web embed's default), not on the phone.

    Web embed

When the avatar renders in your app on the device and you use your own voice and language services, bitHuman receives usage metering only, never audio, video or conversation text.

Requirements

Requirements

  • Essence 2 needs a physical iPhone or iPad; it does not run in the Simulator. Expression 2 also runs in the Simulator.
  • The first run downloads the avatar model.
  • Device and OS floors for each model are in the docs.

Performance

Measured on real hardware

Every configuration we publish for this platform renders faster than real time.
Seconds of avatar video rendered per second, iPhone & iPad
DeviceEssence 2Expression 2
iPhone · Swift packageiPhone 152.16× real time2026-09-275.55× real time2026-09-27
iPhone · Swift package · held 10 miniPhone 151.32× real time2026-09-255.15× 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 →

Pricing

What it costs

What it costs to run an avatar in your app
ItemOn the device (Essence 2, Expression 2)bitHuman cloud avatarManaged voice chat (all-inclusive)
Credits per minute of active session time2410
At top-up rates ($1 = 100 credits)about $0.02about $0.04about $0.10

From 12 October 2026, API and SDK use requires the Creator plan or higher.

Rates from GET https://api.bithuman.ai/v1/pricing, as published on docs.bithuman.ai/pricing.

The full table, with a worked example Budget an app (docs)

Examples

Examples you can clone

  • iOS — Expression 2: a still from the recording

    iOS — Expression 2

    A SwiftUI app with a talking character, rendered on the iPhone or iPad.

    Runs on
    iPhone, iPad
    Conversation
    No: it speaks a bundled clip, or lip-syncs your microphone
    Needs
    API secret, Xcode 26, an iPhone or iPad

    swift/ios-expression2 Walkthrough

  • Screenshot coming

    iOS — Essence 2

    A photoreal person with idle motion, rendered on the iPhone or iPad.

    Runs on
    iPhone, iPad (iOS 26)
    Conversation
    No: it plays a bundled line
    Needs
    API secret, Xcode 26, a physical iPhone or iPad

    swift/ios-essence2 Walkthrough

All examples

Checklist

Before you ship

The full checklist

Limits

Not available on this platform

  • A conversation brain that runs on the iPhone: the conversation is your app's, or runs in the cloud.
  • Offline operation: a session needs a connection to start, and keeps rendering through a network drop of up to 5 minutes.

More

Other platforms