Skip to main content
Needs React 18 or later, and three. In the Next.js App Router, use it in a client component ("use client").

Props

string
required
Your .glb avatar. Changing it swaps the avatar without recreating anything.
Record<string, string | string[]>
Your avatar’s morph names, applied with avatarUrl. See Other morph names.
MediaStream | null
Live audio to play and lip sync. null or undefined detaches it.
"listening" | "thinking"
default:"listening"
Behaviour while not speaking.
string
Where to load the model from. Read on mount.
number
default:"150"
Delay before an attached stream plays. Read on mount.
(error: Error) => void
Errors from background work.
string, CSSProperties
Applied to the wrapper div, which is 100% × 100% by default.
TalkingAvatar
The TalkingAvatar instance, for speak() and its other methods.
The component disposes itself when it unmounts.