> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spatialreal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> AvatarKit Web SDK version update history

## 1.0.0-beta.97

### ⚡ Breaking Changes

* **`transform` renamed to `avatarTransform`** — `avatarView.transform` is now `avatarView.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 `avatarTransform` stacks 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 `onError` callback.
* **New ErrorCode values** — Added `insufficientBalance`, `sessionTimeout`, `concurrentLimitExceeded`.

## 1.0.0-beta.92

### ✨ Features

* **Host mode animation end signal** — `yieldFramesData()` now returns a `boolean` indicating 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 `useCompressedModel` failing to load compressed point cloud models.

## 1.0.0-beta.89

### ⚡ Breaking Changes

* **Enum rename** — `ConversationState.pausing` renamed to `ConversationState.paused` for 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** — `deviceScore` and `isDeviceSupported` APIs for runtime device capability assessment.
* **Compressed model (Beta)** — `load()` accepts optional `useCompressedModel` parameter 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 `withAvatarkit` wrapper 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 `avatarkitVitePlugin` to 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 `eyeTrackingEnabled` parameter to `PostProcessingConfig`.
* **Point Count API** — Added `getPointCount()` method to `AvatarController`.

## 1.0.0-beta.51

* **Post-Processing Enhancement** — Added `translation` and `eyePose` fields to `PostProcessingConfig`.
* **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 `ready` Promise with `onFirstRendering` callback.

## 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 to `transform` getter/setter property.

## 1.0.0-beta.29

* **Breaking Changes** — Removed `Environment.test`, changed default log level to `off`.
* **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 `AvatarKit` to `AvatarSDK`. Update imports accordingly.

## 1.0.0-beta.22

* **API Changes** — Renamed `onAvatarState` to `onConversationState`, `Environment.us` to `Environment.intl`.
* **Volume Control** — Added `setVolume()` and `getVolume()` 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.
