@spatialwalk/avatarkit 1.0.0-beta.86 → 1.0.0-beta.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +29 -0
- package/dist/{StreamingAudioPlayer-pfCQ3Bn7.js → StreamingAudioPlayer-CCQgsR1j.js} +1 -1
- package/dist/avatar_core_wasm-Dv943JJl.js +1 -1
- package/dist/benchmark-demo/src/main.d.ts +1 -0
- package/dist/core/AvatarView.d.ts +3 -5
- package/dist/{index-Z9AXSJw3.js → index-BNATNpKA.js} +299 -555
- package/dist/index.js +1 -1
- package/package.json +2 -1
- package/dist/avatar_core_wasm-e68766db.wasm +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.0-beta.87] - 2026-03-09
|
|
9
|
+
|
|
10
|
+
### 🔧 Performance
|
|
11
|
+
|
|
12
|
+
- **Playback Cadence Stabilization** - Replaced RAF + `Math.floor(audioTime*25)` frame dispatch with fixed 25fps tick scheduler and bounded async queue, eliminating bursty frame production
|
|
13
|
+
- **Display Decoupling** - Speaking state uses RAF-driven `presentFrameOnly()` to present latest computed frame (WebGPU only), reducing display-side pacing jitter
|
|
14
|
+
- **WebGL Speaking-State Loop Suspension** - WebGL backend pauses realtime animation loop during Speaking state to avoid redundant `reorderPackedData` CPU work and RAF callback competition
|
|
15
|
+
|
|
16
|
+
### 🐛 Bugfixes
|
|
17
|
+
|
|
18
|
+
- **Frame Index Floating-Point Precision** - Added epsilon tolerance (`+1e-6`) to `Math.floor(audioTime * fps)` to prevent IEEE 754 precision errors from producing duplicate frame indices at frame boundaries
|
|
19
|
+
- **WebGL Regression Fix** - Fixed severe WebGL performance regression (jank 9.47%→0.16%) caused by WebGPU-only optimization that triggered 60fps `reorderPackedData` calls on WebGL path
|
|
20
|
+
- **SDK Duplicate Initialize** - Deduplicated SDK initialization to prevent repeated setup when `initialize()` is called multiple times
|
|
21
|
+
|
|
22
|
+
### ✅ Tests
|
|
23
|
+
|
|
24
|
+
- **Android Init Coverage** - Added Android duplicate-initialize regression coverage
|
|
25
|
+
|
|
26
|
+
### 📊 Benchmark
|
|
27
|
+
|
|
28
|
+
- **beta.86 vs beta.87 Baseline** - Full cross-backend performance comparison (WebGPU + WebGL), 1 warmup + 10 measure rounds, 10s/round. Jank rate reduced 94.6% (WebGPU) and 93.9% (WebGL); frame interval stability improved 64-67%
|
|
29
|
+
|
|
8
30
|
## [1.0.0-beta.86] - 2026-03-03
|
|
9
31
|
|
|
10
32
|
### 🐛 Bugfixes
|
package/README.md
CHANGED
|
@@ -16,6 +16,35 @@ Real-time virtual avatar rendering SDK for Web, supporting audio-driven animatio
|
|
|
16
16
|
npm install @spatialwalk/avatarkit
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
+
## 🚧 Release Gate (Hard Rule)
|
|
20
|
+
|
|
21
|
+
Release must pass gates before publish. Do not publish by manual ad-hoc commands.
|
|
22
|
+
|
|
23
|
+
Required gate checks:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pnpm typecheck
|
|
27
|
+
pnpm test
|
|
28
|
+
pnpm build
|
|
29
|
+
./tools/check_perf_baseline_release_gate.sh
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If iteration includes bugfixes, `docs/bugfix-history.md` must have completed rows (test mapping + red/green evidence).
|
|
33
|
+
|
|
34
|
+
Hotfix bypass is allowed only for emergency and must be recorded:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
HOTFIX_BYPASS=1 ./tools/check_perf_baseline_release_gate.sh
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 🧪 Benchmark Demo (Web SDK)
|
|
41
|
+
|
|
42
|
+
Use the dedicated benchmark demo (independent from `vanilla/`) for perf/render baseline runs:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pnpm demo:benchmark
|
|
46
|
+
```
|
|
47
|
+
|
|
19
48
|
## 🚀 Demo Repository
|
|
20
49
|
|
|
21
50
|
<div align="center">
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { A as APP_CONFIG, l as logger, e as errorToMessage, a as logEvent } from "./index-
|
|
4
|
+
import { A as APP_CONFIG, l as logger, e as errorToMessage, a as logEvent } from "./index-BNATNpKA.js";
|
|
5
5
|
class StreamingAudioPlayer {
|
|
6
6
|
// Mark if AudioContext is being resumed, avoid concurrent resume requests
|
|
7
7
|
constructor(options) {
|