1.0.0-beta.97
⚡ Breaking Changes
transformrenamed toavatarTransform—avatarView.transformis nowavatarView.avatarTransform. Aligned naming across Web, Android, and iOS SDKs.
✨ Features
- Avatar transform from character settings — Avatar automatically applies position and scale from character settings. User-set
avatarTransformstacks on top of the base values.
🐛 Bugfixes
- Rendering quality improvement — Improved color accuracy for avatar rendering.
1.0.0-beta.96
🐛 Bugfixes
- WASM loading compatibility — Fixed WASM loading failure when consumed via Vite dev server.
1.0.0-beta.95
🐛 Bugfixes
- Rendering quality fix — Fixed blurry splat edges on arms/hands in WebGPU renderer.
⚡ Performance
- WASM download reliability — Added integrity validation and automatic retry (up to 3 attempts) for WASM module loading. Prevents loading failures from truncated or corrupted downloads.
1.0.0-beta.94
🐛 Bugfixes
- Tab switch rendering fix — Fixed avatar rendering corruption when switching back to a tab (WebGPU).
✨ Features
- WebSocket close code handling — Added handling for server custom close codes: auth failure, insufficient balance, session timeout, concurrent limit exceeded. Non-recoverable errors no longer trigger reconnection attempts.
- Error transparency — All non-normal close events are now propagated to
onErrorcallback. - New ErrorCode values — Added
insufficientBalance,sessionTimeout,concurrentLimitExceeded.
1.0.0-beta.92
✨ Features
- Host mode animation end signal —
yieldFramesData()now returns abooleanindicating whether the server has sent all animation data for the current conversation.
1.0.0-beta.91
🐛 Bugfixes
- Vite consumer build fix — Fixed build failure when consuming the SDK in Vite projects.
1.0.0-beta.90
🐛 Bugfixes
- Compressed model support fix — Fixed
useCompressedModelfailing to load compressed point cloud models.
1.0.0-beta.89
⚡ Breaking Changes
- Enum rename —
ConversationState.pausingrenamed toConversationState.pausedfor cross-SDK consistency. - FrameRateInfo — Unified as pre-computed fields for cross-SDK consistency.
✨ Features
- Frame rate monitor — Unified public API for frame rate monitoring with enable/disable switch.
- Device benchmark —
deviceScoreandisDeviceSupportedAPIs for runtime device capability assessment. - Compressed model (Beta) —
load()accepts optionaluseCompressedModelparameter for loading compressed models (~30% smaller). Please verify rendering quality before using in production.
⚡ Performance
- Playback scheduling improvement — Improved frame pacing accuracy during speaking state.
1.0.0-beta.88
🐛 Bugfixes
- Build packaging fix — Fixed WASM binary missing from npm package in beta.87.
1.0.0-beta.87
⚡ Performance
- Playback smoothness — Significantly reduced frame jank during avatar speaking. Jank rate reduced ~95% compared to previous version.
🐛 Bugfixes
- Frame pacing precision — Fixed occasional frame skipping at frame boundaries during playback.
- Duplicate initialize guard — Prevented duplicate
initialize()calls from causing unexpected state.
1.0.0-beta.86
🐛 Bugfixes
- Transition smoothness — Fixed first-frame jump when transitioning between idle and speaking states.
1.0.0-beta.82
🔧 Improvements
- Protocol update — Updated to latest communication protocol version.
1.0.0-beta.80
- Next.js Plugin — Added
withAvatarkitwrapper for Next.js projects to automate WASM file configuration.
1.0.0-beta.75
- Local Log Upload — Automatic local log upload for debugging and troubleshooting.
1.0.0-beta.71
- API Refinement — Improved API structure by hiding internal implementation details from public API.
1.0.0-beta.64
- Vite Plugin — Added
avatarkitVitePluginto automate WASM file configuration.
1.0.0-beta.63
- Audio Context API — Added
initializeAudioContext()method that must be called in user gesture context.
1.0.0-beta.55
- Eye Tracking Control — Added
eyeTrackingEnabledparameter toPostProcessingConfig. - Point Count API — Added
getPointCount()method toAvatarController.
1.0.0-beta.51
- Post-Processing Enhancement — Added
translationandeyePosefields toPostProcessingConfig. - Bugfix — Fixed avatar settings update issue when using cached avatars.
1.0.0-beta.45
- Immediate Rendering — Post-processing and camera updates apply immediately when playback is paused.
- API Change — Replaced
readyPromise withonFirstRenderingcallback.
1.0.0-beta.36
- Audio Configuration — Added configurable audio sample rate support (8000-48000 Hz, default: 16000).
1.0.0-beta.35
- API Change — Changed
setTransform()method totransformgetter/setter property.
1.0.0-beta.29
- Breaking Changes — Removed
Environment.test, changed default log level tooff. - New Features — Added avatar caching methods (
retrieve,clear,clearAll). - Background Image — Added background image control in
AvatarView.
1.0.0-beta.28
- Breaking Change — Renamed
AvatarKittoAvatarSDK. Update imports accordingly.
1.0.0-beta.22
- API Changes — Renamed
onAvatarStatetoonConversationState,Environment.ustoEnvironment.intl. - Volume Control — Added
setVolume()andgetVolume()methods.
1.0.0-beta.17
- Fallback Mechanism — Added automatic audio-only fallback when animation data is unavailable.
1.0.0-beta.3
- Architecture — Initial release with SDK mode and Host mode support.

