Skip to main content

What is SDK Mode?

SDK Mode is the default integration mode. The SDK handles all network communication with AvatarKit servers automatically — you just send audio data, and the SDK takes care of fetching animation data, synchronizing playback, and rendering.

When to Use

  • Real-time audio input — microphone or audio file playback driving an avatar
  • Simplest integration — minimal code, SDK handles networking
  • Server-side processing — animation data is generated by AvatarKit backend

Requirements

RequirementDescription
App IDObtained from Developer Platform
Session TokenObtained from your backend server (max 1 hour validity)
Audio FormatPCM16, mono, configurable sample rate (default 16000 Hz)
Authentication Flow:
Your Client → Your Backend → AvatarKit Server → Session Token (1 hour max)
The Session Token must be set before calling start(). See the platform-specific guides below for details.

Platform Comparison

FeatureWebiOSAndroid
Package@spatialwalk/avatarkitAvatarKit.xcframework / SPMai.spatialwalk:avatarkit
RenderingWebGL / WebGPUMetalVulkan
UI FrameworkDOM CanvasUIKit + SwiftUI wrapperAndroid View + Compose wrapper
Audio InitinitializeAudioContext() in user gestureAutomaticAutomatic
Build ConfigVite plugin / Next.js wrapper requiredXcode linker flagsGradle dependency

Key Concepts

Fallback Mechanism

If the WebSocket connection fails within 15 seconds, the SDK automatically enters audio-only fallback mode — audio continues to play normally without animation. This ensures uninterrupted audio playback even when the server is unreachable.

ConversationId

Every send() call returns a conversationId that identifies the current conversation round. When end: true is passed, the round is completed. Sending new audio after that starts a new round and interrupts any ongoing playback.

Get Started