@spatialwalk/avatarkit 1.0.0-beta.80 → 1.0.0-beta.82

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +26 -0
  3. package/dist/{StreamingAudioPlayer-BT5-8dZQ.js → StreamingAudioPlayer-Pe6o4lP8.js} +1 -1
  4. package/dist/avatar_core_wasm-e68766db.wasm +0 -0
  5. package/dist/core/AvatarController.d.ts +1 -25
  6. package/dist/{index-a-0wPb5D.js → index-DvCy6yVA.js} +9249 -8937
  7. package/dist/index.d.ts +0 -1
  8. package/dist/index.js +1 -1
  9. package/dist/next.d.ts +2 -0
  10. package/dist/types/character.d.ts +37 -1
  11. package/dist/types/index.d.ts +9 -0
  12. package/next.d.ts +1 -12
  13. package/next.js +115 -25
  14. package/package.json +20 -17
  15. package/dist/animation/AnimationWebSocketClient.d.ts +0 -6
  16. package/dist/animation/utils/eventEmitter.d.ts +0 -5
  17. package/dist/animation/utils/flameConverter.d.ts +0 -5
  18. package/dist/audio/AnimationPlayer.d.ts +0 -6
  19. package/dist/audio/StreamingAudioPlayer.d.ts +0 -7
  20. package/dist/config/app-config.d.ts +0 -43
  21. package/dist/config/constants.d.ts +0 -21
  22. package/dist/config/sdk-config-loader.d.ts +0 -6
  23. package/dist/core/AvatarDownloader.d.ts +0 -15
  24. package/dist/core/NetworkLayer.d.ts +0 -7
  25. package/dist/generated/common/v1/models.d.ts +0 -36
  26. package/dist/generated/driveningress/v1/driveningress.d.ts +0 -79
  27. package/dist/generated/driveningress/v2/driveningress.d.ts +0 -162
  28. package/dist/generated/google/protobuf/struct.d.ts +0 -107
  29. package/dist/generated/google/protobuf/timestamp.d.ts +0 -128
  30. package/dist/internal/constants.d.ts +0 -102
  31. package/dist/internal/index.d.ts +0 -7
  32. package/dist/renderer/RenderSystem.d.ts +0 -9
  33. package/dist/renderer/covariance.d.ts +0 -5
  34. package/dist/renderer/renderer.d.ts +0 -12
  35. package/dist/renderer/sortSplats.d.ts +0 -5
  36. package/dist/renderer/webgl/reorderData.d.ts +0 -7
  37. package/dist/renderer/webgl/webglRenderer.d.ts +0 -96
  38. package/dist/renderer/webgpu/webgpuRenderer.d.ts +0 -79
  39. package/dist/utils/animation-interpolation.d.ts +0 -8
  40. package/dist/utils/client-id.d.ts +0 -6
  41. package/dist/utils/conversationId.d.ts +0 -10
  42. package/dist/utils/error-utils.d.ts +0 -26
  43. package/dist/utils/id-manager.d.ts +0 -34
  44. package/dist/utils/log-sanitizer.d.ts +0 -15
  45. package/dist/utils/log-sink.d.ts +0 -47
  46. package/dist/utils/logger.d.ts +0 -25
  47. package/dist/utils/posthog-tracker.d.ts +0 -8
  48. package/dist/utils/pwa-cache-manager.d.ts +0 -17
  49. package/dist/utils/usage-tracker.d.ts +0 -6
  50. package/dist/vanilla/vite.config.d.ts +0 -2
  51. package/dist/wasm/avatarCoreAdapter.d.ts +0 -77
  52. package/dist/wasm/avatarCoreMemory.d.ts +0 -144
@@ -1,79 +0,0 @@
1
- import { I3DGSRenderer, Transform } from '../renderer';
2
- export declare class WebGPURenderer implements I3DGSRenderer {
3
- private canvas;
4
- private backgroundColor;
5
- private device;
6
- private context;
7
- private renderPipeline;
8
- private renderTexturePipeline;
9
- private quadVertexBuffer;
10
- private uniformBuffer;
11
- private uniformBindGroup;
12
- private sortIndexBuffer;
13
- private splatDataBuffer;
14
- private storageBindGroup;
15
- private bindGroupNeedsUpdate;
16
- private splatCount;
17
- private presentationFormat;
18
- private alpha;
19
- private renderTexture;
20
- private renderTextureView;
21
- private depthTexture;
22
- private framebufferWidth;
23
- private framebufferHeight;
24
- private blitPipeline;
25
- private blitUniformBuffer;
26
- private blitQuadBuffer;
27
- private blitSampler;
28
- constructor(canvas: HTMLCanvasElement, backgroundColor?: [number, number, number, number], alpha?: boolean);
29
- /**
30
- * 初始化 WebGPU 渲染器
31
- */
32
- initialize(): Promise<void>;
33
- /**
34
- * 创建 Uniform Buffer
35
- */
36
- private createUniformBuffer;
37
- /**
38
- * 创建四边形顶点缓冲区(实例化渲染用)
39
- */
40
- private createQuadVertexBuffer;
41
- /**
42
- * 创建 Render Pipeline
43
- */
44
- private createRenderPipeline;
45
- /**
46
- * 创建 Blit Pipeline(用于绘制 render texture 到屏幕)
47
- */
48
- private createBlitPipeline;
49
- /**
50
- * 创建 render texture 和 depth texture
51
- */
52
- private createRenderTexture;
53
- /**
54
- * 从已打包数据加载
55
- * 🚀 间接索引渲染:packedData 是原始数据,sortOrder 是排序索引
56
- * 🚀 完全消除 CPU 重排序开销
57
- */
58
- loadSplatsFromPackedData(packedData: Float32Array, pointCount: number, sortOrder?: Uint32Array): void;
59
- /**
60
- * 渲染一帧
61
- */
62
- render(viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number], transform?: Transform): void;
63
- /**
64
- * 将 render texture 绘制到屏幕(应用 transform)
65
- */
66
- private blitToScreen;
67
- /**
68
- * 更新 Uniform Buffer
69
- */
70
- private updateUniforms;
71
- /**
72
- * 更新背景颜色
73
- */
74
- updateBackgroundColor(backgroundColor: [number, number, number, number]): void;
75
- /**
76
- * 清理资源
77
- */
78
- dispose(): void;
79
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Animation Interpolation Utilities (SDK)
3
- * Layered interpolation with different timing for each facial component
4
- * Aligned with app implementation and iOS/Android behavior
5
- *
6
- * 贝塞尔曲线和时间缩放配置与 Android FlameFrameData.kt 保持一致
7
- */
8
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Client ID management utility
3
- * Used to generate and persist unique device identifier
4
- * @internal
5
- */
6
- export {};
@@ -1,10 +0,0 @@
1
- /**
2
- * Conversation ID generation utility
3
- *
4
- * Unified format: timestamp (UTC time, second-level, format: YYYYMMDDHHmmss) + underscore + 12-digit NanoID
5
- * Example: 20251027143034_aB3dEf9hIjKl
6
- *
7
- * Time part uses UTC time for easier cross-platform log troubleshooting with unified timezone conversion
8
- * @internal
9
- */
10
- export {};
@@ -1,26 +0,0 @@
1
- /**
2
- * Error Utility Functions
3
- * Provides consistent error handling and formatting across the application
4
- */
5
- /**
6
- * Convert unknown error to a readable error message string
7
- *
8
- * @param err - Unknown error object (could be Error, string, object, etc.)
9
- * @returns Formatted error message string
10
- *
11
- * @example
12
- * try {
13
- * riskyOperation()
14
- * } catch (err) {
15
- * const message = errorToMessage(err)
16
- * logger.error('Operation failed:', message)
17
- * }
18
- */
19
- export declare function errorToMessage(err: unknown): string;
20
- /**
21
- * Convert unknown error to a detailed error message with stack trace (for logging)
22
- *
23
- * @param err - Unknown error object
24
- * @returns Detailed error message with stack if available
25
- */
26
- export declare function errorToDetailedMessage(err: unknown): string;
@@ -1,34 +0,0 @@
1
- /**
2
- * ID Manager
3
- * Unified management of all types of IDs in SDK
4
- * @internal
5
- */
6
- /**
7
- * ID type definitions
8
- */
9
- export interface SdkIds {
10
- clientId: string;
11
- userId: string | null;
12
- appId: string | null;
13
- sessionToken: string | null;
14
- connectionId: string | null;
15
- conversationId: string | null;
16
- }
17
- declare class IdManager {
18
- private ids;
19
- constructor();
20
- getClientId(): string;
21
- setUserId(userId: string | null): void;
22
- getUserId(): string | null;
23
- setAppId(appId: string | null): void;
24
- getAppId(): string | null;
25
- setSessionToken(token: string | null): void;
26
- getSessionToken(): string | null;
27
- getConnectionId(): string | null;
28
- clearConnectionId(): void;
29
- getConversationId(): string | null;
30
- setConversationId(conversationId: string | null): void;
31
- clearConversationId(): void;
32
- }
33
- export declare const idManager: IdManager;
34
- export {};
@@ -1,15 +0,0 @@
1
- /**
2
- * Log sanitizer for local log persistence.
3
- * Ensures: no sensitive content, no Chinese, no algorithm/internal terms (e.g. Flame, splat).
4
- * @internal
5
- */
6
- export interface SanitizeResult {
7
- shouldPersist: boolean;
8
- sanitized: string;
9
- }
10
- /**
11
- * Sanitize a log message for local persistence.
12
- * - Do not persist if message contains Chinese or algorithm terms.
13
- * - Otherwise persist, but redact sensitive content first.
14
- */
15
- export declare function sanitizeForLocalLog(message: string): SanitizeResult;
@@ -1,47 +0,0 @@
1
- /**
2
- * Log Sink - Local log storage and upload
3
- * Stores logs in IndexedDB and provides upload functionality
4
- * @internal
5
- */
6
- declare class LogSink {
7
- private static instance;
8
- private db;
9
- private readonly dbName;
10
- private readonly storeName;
11
- private readonly version;
12
- private readonly trimThreshold;
13
- private readonly trimBufferSize;
14
- private isFlushing;
15
- private constructor();
16
- static getInstance(): LogSink;
17
- /**
18
- * Initialize IndexedDB
19
- */
20
- initialize(): Promise<void>;
21
- /**
22
- * Append log entry to IndexedDB
23
- */
24
- append(entry: LogEntry): Promise<void>;
25
- /**
26
- * Get total log count
27
- */
28
- private getCount;
29
- /**
30
- * Trim logs to keep only recent entries
31
- */
32
- private trim;
33
- /**
34
- * Flush logs to server
35
- */
36
- flush(): Promise<void>;
37
- /**
38
- * Clear first N log entries
39
- */
40
- private clearFirst;
41
- /**
42
- * Gzip string data
43
- */
44
- private gzip;
45
- }
46
- export declare const logSink: LogSink;
47
- export {};
@@ -1,25 +0,0 @@
1
- /**
2
- * Logger Utility
3
- * Environment-aware logger wrapper with local log persistence
4
- * - Always writes to local log file (IndexedDB) regardless of logLevel
5
- * - Console output is controlled by logLevel
6
- * - Errors and warnings are always reported to PostHog (when enabled)
7
- *
8
- * Usage: Replace `console.log()` with `logger.log()`
9
- */
10
- export declare const logger: {
11
- debug: (message: string, ...args: unknown[]) => void;
12
- verbose: (message: string, ...args: unknown[]) => void;
13
- log: (message: string, ...args: unknown[]) => void;
14
- warn: (message: string, ...args: unknown[]) => void;
15
- error: (message: string, ..._args: unknown[]) => void;
16
- errorWithError: (message: string, error: Error | unknown) => void;
17
- };
18
- export declare const loggerWithUnknown: {
19
- error: (message: string, error?: unknown) => void;
20
- warn: (message: string, error?: unknown) => void;
21
- debug: (message: string, ...args: unknown[]) => void;
22
- verbose: (message: string, ...args: unknown[]) => void;
23
- log: (message: string, ...args: unknown[]) => void;
24
- errorWithError: (message: string, error: Error | unknown) => void;
25
- };
@@ -1,8 +0,0 @@
1
- /**
2
- * PostHog Telemetry Tool (Browser Version)
3
- *
4
- * Unified PostHog telemetry reporting, supports custom reporting
5
- * Uses PostHog JS SDK for event tracking, suitable for browser environments
6
- * @internal
7
- */
8
- export {};
@@ -1,17 +0,0 @@
1
- /**
2
- * PWA Cache Manager
3
- * Manages Service Worker Cache for character resources and template resources
4
- * @internal
5
- */
6
- /**
7
- * PWA Cache Manager
8
- * Manages character resources cache (per character) and template resources cache (versioned)
9
- */
10
- export declare class PwaCacheManager {
11
- private static readonly TEMPLATE_RESOURCE_VERSION;
12
- private static readonly TEMPLATE_CACHE_NAME;
13
- private static readonly TEMPLATE_VERSION_STORAGE_KEY;
14
- private static readonly CHARACTER_CACHE_PREFIX;
15
- private static readonly CHARACTER_CACHE_SUFFIX;
16
- private static readonly MAX_CHARACTER_CACHE_ENTRIES;
17
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Usage tracking utility
3
- * Used to determine first use, daily active status, etc.
4
- * @internal
5
- */
6
- export {};
@@ -1,2 +0,0 @@
1
- declare const _default: any;
2
- export default _default;
@@ -1,77 +0,0 @@
1
- /**
2
- * Avatar Core WASM Adapter
3
- *
4
- * Completely replaces FlameComplete3DGSManager, provides full functionality of avatar_core_wasm
5
- * Includes advanced features such as teeth subdivision, eye tracking, etc.
6
- * @internal
7
- */
8
- export interface WasmModuleConfig {
9
- baseUrl?: string;
10
- [key: string]: unknown;
11
- }
12
- export interface AvatarCoreOptions {
13
- logLevel?: 'basic' | 'verbose';
14
- enableValidation?: boolean;
15
- enablePerformanceMetrics?: boolean;
16
- retryCount?: number;
17
- baseAssetsPath?: string;
18
- modelFolder?: string;
19
- wasmConfig?: WasmModuleConfig;
20
- wasmPath?: string;
21
- }
22
- export interface FlameInfo {
23
- vertexCount: number;
24
- faceCount: number;
25
- jointCount: number;
26
- }
27
- export interface CharacterInfo {
28
- pointCount: number;
29
- hasAnimation: boolean;
30
- }
31
- export interface FlameParams {
32
- shape_params?: number[];
33
- expr_params?: number[];
34
- rotation?: number[];
35
- translation?: number[];
36
- neck_pose?: number[];
37
- jaw_pose?: number[];
38
- eyes_pose?: number[];
39
- eyelid?: number[];
40
- has_eyelid?: boolean;
41
- }
42
- export declare class AvatarCoreAdapter {
43
- private options;
44
- private wasmConfig;
45
- private wasmModule;
46
- private memoryManager;
47
- private coreHandle;
48
- private characterHandles;
49
- private animationHandles;
50
- private characterHandle;
51
- private animationHandle;
52
- private totalFrames;
53
- private isInitialized;
54
- private isCharacterLoaded;
55
- private api;
56
- private performanceMetrics;
57
- wasmTime: number;
58
- private errorCodes;
59
- private flameInfo?;
60
- private characterInfo?;
61
- constructor(options?: AvatarCoreOptions);
62
- private loadAnimationFromData;
63
- /**
64
- * Load animation from ArrayBuffer (for CDN-based dynamic loading)
65
- * @param animData Animation data buffer
66
- * @param characterId Optional character ID for multi-character support
67
- * @returns Animation handle
68
- */
69
- loadAnimationFromBuffer(animData: ArrayBuffer, characterId?: string): Promise<number>;
70
- switchAnimationFile(animationFile: string): Promise<number>;
71
- /**
72
- * Release current character (legacy method, kept for backward compatibility)
73
- * @deprecated Use removeCharacter() instead for multi-character support
74
- */
75
- releaseCurrentCharacter(): void;
76
- load3DGSData(_original3DGSPoints: any, _binding: any, _flameFaces: any): Promise<boolean>;
77
- }
@@ -1,144 +0,0 @@
1
- /**
2
- * Avatar Core WASM 内存管理工具
3
- *
4
- * 提供高效的内存分配、数据传递和零拷贝访问功能
5
- * 专门为 avatar_core_wasm 优化
6
- */
7
- interface WASMModule {
8
- _malloc: (size: number) => number;
9
- _free: (ptr: number) => void;
10
- writeArrayToMemory: (array: Uint8Array, ptr: number) => void;
11
- HEAPU8: Uint8Array;
12
- HEAP32: Int32Array;
13
- HEAPF32: Float32Array;
14
- getValue: (ptr: number, type: string) => number;
15
- setValue: (ptr: number, value: number, type: string) => void;
16
- }
17
- interface MemoryAllocation {
18
- ptr: number;
19
- size: number;
20
- }
21
- export interface TemplateResources {
22
- flameModel: ArrayBuffer;
23
- flameTemplate: ArrayBuffer;
24
- teethPb: ArrayBuffer;
25
- teethNpz: ArrayBuffer;
26
- }
27
- export interface CharacterData {
28
- shape: ArrayBuffer;
29
- pointCloud: ArrayBuffer;
30
- }
31
- export interface ExpressionParams {
32
- expression?: number[];
33
- jaw?: number[];
34
- eyeR?: number[];
35
- eyeL?: number[];
36
- pose?: number[];
37
- neck?: number[];
38
- translation?: number[];
39
- }
40
- export interface ArrayMetadata {
41
- ptr: number;
42
- size: number;
43
- dtype: string;
44
- }
45
- export declare class AvatarCoreMemoryManager {
46
- private module;
47
- private allocatedPointers;
48
- private structPointers;
49
- constructor(wasmModule: WASMModule);
50
- /**
51
- * 分配 WASM 内存并复制数据 - 纯 API 方式
52
- */
53
- allocateAndCopy(arrayBuffer: ArrayBuffer): MemoryAllocation;
54
- /**
55
- * 创建 AvatarTemplateConfig 结构体
56
- */
57
- createTemplateConfig(resources: TemplateResources): number;
58
- /**
59
- * 创建 AvatarCharacterData 结构体 - 新版 Emscripten 方式
60
- */
61
- createCharacterData(shapeBuffer: ArrayBuffer, plyBuffer: ArrayBuffer, characterId?: string): {
62
- dataPtr: number;
63
- shapePtr: number;
64
- plyPtr: number;
65
- };
66
- /**
67
- * 读取 AvatarFlameParams 结构体数据
68
- * Used to extract current animation frame parameters from WASM memory
69
- */
70
- readFlameParams(paramsPtr: number): {
71
- shape_params: number[];
72
- expr_params: number[];
73
- rotation: number[];
74
- translation: number[];
75
- neck_pose: number[];
76
- jaw_pose: number[];
77
- eyes_pose: number[];
78
- eyelid: number[];
79
- has_eyelid: boolean;
80
- };
81
- /**
82
- * 创建 AvatarFlameParams 结构体 - 新版 Emscripten 方式
83
- */
84
- createFlameParams(params: {
85
- shape_params?: number[];
86
- expr_params?: number[];
87
- rotation?: number[];
88
- translation?: number[];
89
- neck_pose?: number[];
90
- jaw_pose?: number[];
91
- eyes_pose?: number[];
92
- eyelid?: number[];
93
- has_eyelid?: boolean;
94
- }): number;
95
- /**
96
- * 读取 AvatarSplatPointFlatArray 结构体数据(预计算协方差)
97
- *
98
- * 结构体布局:
99
- * - AvatarSplatPointFlat* points (0-3, 32位指针)
100
- * - uint32_t point_count (4-7)
101
- * - float compute_time_ms (8-11)
102
- *
103
- * 每个点布局 (52 bytes):
104
- * - position[3] (12 bytes)
105
- * - color[4] (16 bytes, RGBA)
106
- * - covariance[6] (24 bytes, 预计算好的协方差矩阵上三角)
107
- *
108
- * ⚠️ 使用 getValue 逐个读取,避免动态内存的 HEAPF32 detachment 问题
109
- */
110
- readSplatPointFlatArray(arrayPtr: number): Float32Array | null;
111
- /**
112
- * 读取AvatarMeshData结构体数据
113
- */
114
- readMeshData(outputPtr: number): {
115
- vertices: Float32Array;
116
- vertexCount: number;
117
- faces: Uint32Array;
118
- faceCount: number;
119
- landmarks: Float32Array | null;
120
- landmarkCount: number;
121
- computeTime: number;
122
- };
123
- /**
124
- * 释放指定指针的内存
125
- */
126
- free(ptr: number): void;
127
- /**
128
- * 释放结构体内存
129
- */
130
- freeStruct(name: string): void;
131
- /**
132
- * 清理所有分配的内存
133
- */
134
- cleanup(): void;
135
- /**
136
- * 获取内存使用统计
137
- */
138
- getMemoryStats(): {
139
- allocatedPointers: number;
140
- structPointers: number;
141
- totalAllocatedMB: number;
142
- };
143
- }
144
- export {};