@holoscript/engine 6.0.3 → 6.0.4

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 (192) hide show
  1. package/dist/AutoMesher-CK47F6AV.js +17 -0
  2. package/dist/GPUBuffers-2LHBCD7X.js +9 -0
  3. package/dist/WebGPUContext-TNEUYU2Y.js +11 -0
  4. package/dist/animation/index.cjs +38 -38
  5. package/dist/animation/index.d.cts +1 -1
  6. package/dist/animation/index.d.ts +1 -1
  7. package/dist/animation/index.js +1 -1
  8. package/dist/audio/index.cjs +16 -6
  9. package/dist/audio/index.d.cts +1 -1
  10. package/dist/audio/index.d.ts +1 -1
  11. package/dist/audio/index.js +1 -1
  12. package/dist/camera/index.cjs +23 -23
  13. package/dist/camera/index.d.cts +1 -1
  14. package/dist/camera/index.d.ts +1 -1
  15. package/dist/camera/index.js +1 -1
  16. package/dist/character/index.cjs +6 -4
  17. package/dist/character/index.js +1 -1
  18. package/dist/choreography/index.cjs +1194 -0
  19. package/dist/choreography/index.d.cts +687 -0
  20. package/dist/choreography/index.d.ts +687 -0
  21. package/dist/choreography/index.js +1156 -0
  22. package/dist/chunk-2CSNRI2N.js +217 -0
  23. package/dist/chunk-33T2WINR.js +266 -0
  24. package/dist/chunk-35R73OFM.js +1257 -0
  25. package/dist/chunk-4MMDSUNP.js +1256 -0
  26. package/dist/chunk-5V6HOU72.js +319 -0
  27. package/dist/chunk-6QOP6PYF.js +1038 -0
  28. package/dist/chunk-7KMJVHIL.js +8944 -0
  29. package/dist/chunk-7VPUC62U.js +1106 -0
  30. package/dist/chunk-A2Y6RCAT.js +1878 -0
  31. package/dist/chunk-AHM42MK6.js +8944 -0
  32. package/dist/chunk-BL7IDTHE.js +218 -0
  33. package/dist/chunk-CITOMSWL.js +10462 -0
  34. package/dist/chunk-CXDPKW2K.js +8944 -0
  35. package/dist/chunk-CXZPLD4S.js +223 -0
  36. package/dist/chunk-CZYJE7IH.js +5169 -0
  37. package/dist/chunk-D2OP7YC7.js +6325 -0
  38. package/dist/chunk-EDRVQHUU.js +1544 -0
  39. package/dist/chunk-EJSLOOW2.js +3589 -0
  40. package/dist/chunk-F53SFGW5.js +1878 -0
  41. package/dist/chunk-HCFPELPY.js +919 -0
  42. package/dist/chunk-HNEE36PY.js +93 -0
  43. package/dist/chunk-HYXNV36F.js +1256 -0
  44. package/dist/chunk-IB7KHVFY.js +821 -0
  45. package/dist/chunk-IBBO7YYG.js +690 -0
  46. package/dist/chunk-ILIBGINU.js +5470 -0
  47. package/dist/chunk-IS4MHLKN.js +5479 -0
  48. package/dist/chunk-JT2PFKWD.js +5479 -0
  49. package/dist/chunk-K4CUB4NY.js +1038 -0
  50. package/dist/chunk-KATDQXRJ.js +10462 -0
  51. package/dist/chunk-KBQE6ZFJ.js +8944 -0
  52. package/dist/chunk-KBVD5K7E.js +560 -0
  53. package/dist/chunk-KCDPVQRY.js +4088 -0
  54. package/dist/chunk-KN4QJPKN.js +8944 -0
  55. package/dist/chunk-KWJ3ROSI.js +8944 -0
  56. package/dist/chunk-L45VF6DD.js +919 -0
  57. package/dist/chunk-LY4T37YK.js +307 -0
  58. package/dist/chunk-MDN5WZXA.js +1544 -0
  59. package/dist/chunk-MGCDP6VU.js +928 -0
  60. package/dist/chunk-NCX7X6G2.js +8681 -0
  61. package/dist/chunk-OF54BPVD.js +913 -0
  62. package/dist/chunk-OWSN2Q3Q.js +690 -0
  63. package/dist/chunk-PRRB5TTA.js +406 -0
  64. package/dist/chunk-PXWVQF76.js +4086 -0
  65. package/dist/chunk-PYCOIDT2.js +812 -0
  66. package/dist/chunk-PZCSADOV.js +928 -0
  67. package/dist/chunk-Q2XBVS2K.js +1038 -0
  68. package/dist/chunk-QDZRXWN5.js +1776 -0
  69. package/dist/chunk-RNWOZ6WQ.js +913 -0
  70. package/dist/chunk-ROLFT4CJ.js +1693 -0
  71. package/dist/chunk-SLTJRZ2N.js +266 -0
  72. package/dist/chunk-SRUS5XSU.js +4088 -0
  73. package/dist/chunk-TKCA3WZ5.js +5409 -0
  74. package/dist/chunk-TNRMXYI2.js +1650 -0
  75. package/dist/chunk-TQB3GJGM.js +9763 -0
  76. package/dist/chunk-TUFGXG6K.js +510 -0
  77. package/dist/chunk-U6KMTGQJ.js +632 -0
  78. package/dist/chunk-VMGJQST6.js +8681 -0
  79. package/dist/chunk-X4F4TCG4.js +5470 -0
  80. package/dist/chunk-ZIFROE75.js +1544 -0
  81. package/dist/chunk-ZIJQYHSQ.js +1204 -0
  82. package/dist/combat/index.cjs +4 -4
  83. package/dist/combat/index.d.cts +1 -1
  84. package/dist/combat/index.d.ts +1 -1
  85. package/dist/combat/index.js +1 -1
  86. package/dist/ecs/index.cjs +1 -1
  87. package/dist/ecs/index.js +1 -1
  88. package/dist/environment/index.cjs +14 -14
  89. package/dist/environment/index.d.cts +1 -1
  90. package/dist/environment/index.d.ts +1 -1
  91. package/dist/environment/index.js +1 -1
  92. package/dist/gpu/index.cjs +4810 -0
  93. package/dist/gpu/index.js +3714 -0
  94. package/dist/hologram/index.cjs +27 -1
  95. package/dist/hologram/index.js +1 -1
  96. package/dist/index-B2PIsAmR.d.cts +2180 -0
  97. package/dist/index-B2PIsAmR.d.ts +2180 -0
  98. package/dist/index-BHySEPX7.d.cts +2921 -0
  99. package/dist/index-BJV21zuy.d.cts +341 -0
  100. package/dist/index-BJV21zuy.d.ts +341 -0
  101. package/dist/index-BQutTphC.d.cts +790 -0
  102. package/dist/index-ByIq2XrS.d.cts +3910 -0
  103. package/dist/index-BysHjDSO.d.cts +224 -0
  104. package/dist/index-BysHjDSO.d.ts +224 -0
  105. package/dist/index-CKwAJGck.d.ts +455 -0
  106. package/dist/index-CUl3QstQ.d.cts +3006 -0
  107. package/dist/index-CUl3QstQ.d.ts +3006 -0
  108. package/dist/index-CmYtNiI-.d.cts +953 -0
  109. package/dist/index-CmYtNiI-.d.ts +953 -0
  110. package/dist/index-CnRzWxi_.d.cts +522 -0
  111. package/dist/index-CnRzWxi_.d.ts +522 -0
  112. package/dist/index-CwRWbSC7.d.ts +2921 -0
  113. package/dist/index-CxKIBstO.d.ts +790 -0
  114. package/dist/index-DJ6-R8vh.d.cts +455 -0
  115. package/dist/index-DQKisbcI.d.cts +4968 -0
  116. package/dist/index-DQKisbcI.d.ts +4968 -0
  117. package/dist/index-DRT2zJez.d.ts +3910 -0
  118. package/dist/index-DfNLiAka.d.cts +192 -0
  119. package/dist/index-DfNLiAka.d.ts +192 -0
  120. package/dist/index-nMvkoRm8.d.cts +405 -0
  121. package/dist/index-nMvkoRm8.d.ts +405 -0
  122. package/dist/index-s9yOFU37.d.cts +604 -0
  123. package/dist/index-s9yOFU37.d.ts +604 -0
  124. package/dist/index.cjs +22966 -6960
  125. package/dist/index.d.cts +864 -20
  126. package/dist/index.d.ts +864 -20
  127. package/dist/index.js +3062 -48
  128. package/dist/input/index.cjs +1 -1
  129. package/dist/input/index.js +1 -1
  130. package/dist/orbital/index.cjs +3 -3
  131. package/dist/orbital/index.d.cts +1 -1
  132. package/dist/orbital/index.d.ts +1 -1
  133. package/dist/orbital/index.js +1 -1
  134. package/dist/particles/index.cjs +16 -16
  135. package/dist/particles/index.d.cts +1 -1
  136. package/dist/particles/index.d.ts +1 -1
  137. package/dist/particles/index.js +1 -1
  138. package/dist/physics/index.cjs +2377 -21
  139. package/dist/physics/index.d.cts +1 -1
  140. package/dist/physics/index.d.ts +1 -1
  141. package/dist/physics/index.js +35 -1
  142. package/dist/postfx/index.cjs +3491 -0
  143. package/dist/postfx/index.js +93 -0
  144. package/dist/procedural/index.cjs +1 -1
  145. package/dist/procedural/index.js +1 -1
  146. package/dist/puppeteer-5VF6KDVO.js +52197 -0
  147. package/dist/puppeteer-IZVZ3SG4.js +52197 -0
  148. package/dist/rendering/index.cjs +33 -32
  149. package/dist/rendering/index.d.cts +1 -1
  150. package/dist/rendering/index.d.ts +1 -1
  151. package/dist/rendering/index.js +8 -6
  152. package/dist/runtime/index.cjs +23 -13
  153. package/dist/runtime/index.d.cts +1 -1
  154. package/dist/runtime/index.d.ts +1 -1
  155. package/dist/runtime/index.js +8 -6
  156. package/dist/runtime/protocols/index.cjs +349 -0
  157. package/dist/runtime/protocols/index.js +15 -0
  158. package/dist/scene/index.cjs +8 -8
  159. package/dist/scene/index.d.cts +1 -1
  160. package/dist/scene/index.d.ts +1 -1
  161. package/dist/scene/index.js +1 -1
  162. package/dist/shader/index.cjs +3087 -0
  163. package/dist/shader/index.js +3044 -0
  164. package/dist/simulation/index.cjs +10680 -0
  165. package/dist/simulation/index.d.cts +3 -0
  166. package/dist/simulation/index.d.ts +3 -0
  167. package/dist/simulation/index.js +307 -0
  168. package/dist/spatial/index.cjs +2443 -0
  169. package/dist/spatial/index.d.cts +1545 -0
  170. package/dist/spatial/index.d.ts +1545 -0
  171. package/dist/spatial/index.js +2400 -0
  172. package/dist/terrain/index.cjs +1 -1
  173. package/dist/terrain/index.d.cts +1 -1
  174. package/dist/terrain/index.d.ts +1 -1
  175. package/dist/terrain/index.js +1 -1
  176. package/dist/transformers.node-4NKAPD5U.js +45620 -0
  177. package/dist/vm/index.cjs +7 -8
  178. package/dist/vm/index.d.cts +1 -1
  179. package/dist/vm/index.d.ts +1 -1
  180. package/dist/vm/index.js +1 -1
  181. package/dist/vm-bridge/index.cjs +2 -2
  182. package/dist/vm-bridge/index.d.cts +2 -2
  183. package/dist/vm-bridge/index.d.ts +2 -2
  184. package/dist/vm-bridge/index.js +1 -1
  185. package/dist/vr/index.cjs +6 -6
  186. package/dist/vr/index.js +1 -1
  187. package/dist/world/index.cjs +3 -3
  188. package/dist/world/index.d.cts +1 -1
  189. package/dist/world/index.d.ts +1 -1
  190. package/dist/world/index.js +1 -1
  191. package/package.json +53 -21
  192. package/LICENSE +0 -21
@@ -0,0 +1,953 @@
1
+ /**
2
+ * AnimationClip.ts
3
+ *
4
+ * Keyframe-based animation clip: multi-track keyframes,
5
+ * interpolation modes, animation events, looping, and blending.
6
+ *
7
+ * @module animation
8
+ */
9
+ type InterpolationMode = 'step' | 'linear' | 'cubic' | 'slerp';
10
+ interface ClipKeyframe {
11
+ time: number;
12
+ value: number | number[];
13
+ inTangent?: number;
14
+ outTangent?: number;
15
+ }
16
+ interface ClipTrack {
17
+ id: string;
18
+ targetPath: string;
19
+ property: string;
20
+ component?: string;
21
+ interpolation: InterpolationMode;
22
+ keyframes: ClipKeyframe[];
23
+ }
24
+ interface ClipEvent {
25
+ time: number;
26
+ name: string;
27
+ data: Record<string, unknown>;
28
+ }
29
+ declare class AnimClip {
30
+ readonly id: string;
31
+ readonly name: string;
32
+ private tracks;
33
+ private events;
34
+ private _duration;
35
+ private loop;
36
+ private speed;
37
+ private wrapMode;
38
+ constructor(id: string, name: string, duration: number);
39
+ setLoop(loop: boolean): void;
40
+ isLooping(): boolean;
41
+ setSpeed(speed: number): void;
42
+ getSpeed(): number;
43
+ setWrapMode(mode: typeof this.wrapMode): void;
44
+ getWrapMode(): string;
45
+ getDuration(): number;
46
+ addTrack(track: ClipTrack): void;
47
+ getTrack(id: string): ClipTrack | undefined;
48
+ getTracks(): ClipTrack[];
49
+ getTrackCount(): number;
50
+ addEvent(time: number, name: string, data?: Record<string, unknown>): void;
51
+ getEventsInRange(fromTime: number, toTime: number): ClipEvent[];
52
+ getEvents(): ClipEvent[];
53
+ sample(time: number): Map<string, number>;
54
+ private sampleTrack;
55
+ private wrapTime;
56
+ static blend(a: Map<string, number>, b: Map<string, number>, weight: number): Map<string, number>;
57
+ }
58
+
59
+ /**
60
+ * AnimationEngine.ts
61
+ *
62
+ * Core animation system for HoloScript+.
63
+ * Provides keyframe interpolation, easing functions,
64
+ * and a centralized update loop for all active animations.
65
+ */
66
+ type EasingFn = (t: number) => number;
67
+ declare const Easing: {
68
+ readonly linear: (t: number) => number;
69
+ readonly easeInQuad: (t: number) => number;
70
+ readonly easeOutQuad: (t: number) => number;
71
+ readonly easeInOutQuad: (t: number) => number;
72
+ readonly easeInCubic: (t: number) => number;
73
+ readonly easeOutCubic: (t: number) => number;
74
+ readonly easeInOutCubic: (t: number) => number;
75
+ readonly easeInExpo: (t: number) => number;
76
+ readonly easeOutExpo: (t: number) => number;
77
+ readonly easeInOutExpo: (t: number) => number;
78
+ readonly easeOutBack: (t: number) => number;
79
+ readonly easeOutElastic: (t: number) => number;
80
+ readonly easeOutBounce: (t: number) => number;
81
+ };
82
+ interface Keyframe$1<T = number> {
83
+ time: number;
84
+ value: T;
85
+ easing?: EasingFn;
86
+ }
87
+ interface AnimationClip$1 {
88
+ id: string;
89
+ property: string;
90
+ keyframes: Keyframe$1[];
91
+ duration: number;
92
+ loop: boolean;
93
+ pingPong: boolean;
94
+ delay: number;
95
+ onComplete?: () => void;
96
+ }
97
+ interface ActiveAnimation {
98
+ clip: AnimationClip$1;
99
+ elapsed: number;
100
+ isPlaying: boolean;
101
+ isPaused: boolean;
102
+ direction: 1 | -1;
103
+ loopCount: number;
104
+ }
105
+ declare class AnimationEngine {
106
+ private animations;
107
+ private propertySetters;
108
+ /**
109
+ * Register an animation clip and start playing it.
110
+ */
111
+ play(clip: AnimationClip$1, setter: (value: number) => void): void;
112
+ /**
113
+ * Stop and remove an animation.
114
+ */
115
+ stop(clipId: string): void;
116
+ /**
117
+ * Pause an animation.
118
+ */
119
+ pause(clipId: string): void;
120
+ /**
121
+ * Resume a paused animation.
122
+ */
123
+ resume(clipId: string): void;
124
+ /**
125
+ * Check if an animation is active.
126
+ */
127
+ isActive(clipId: string): boolean;
128
+ /**
129
+ * Get all active animation IDs.
130
+ */
131
+ getActiveIds(): string[];
132
+ /**
133
+ * Update all active animations. Call this every frame.
134
+ */
135
+ update(delta: number): void;
136
+ /**
137
+ * Stop all animations.
138
+ */
139
+ clear(): void;
140
+ }
141
+
142
+ /**
143
+ * AnimationGraph.ts
144
+ *
145
+ * State machine-driven animation blending system.
146
+ * Supports weighted transitions, blend trees, and animation layers.
147
+ *
148
+ * @module animation
149
+ */
150
+ interface AnimationClip {
151
+ id: string;
152
+ name: string;
153
+ duration: number;
154
+ loop: boolean;
155
+ speed: number;
156
+ tracks: AnimationTrack[];
157
+ }
158
+ interface AnimationTrack {
159
+ targetProperty: string;
160
+ keyframes: Keyframe[];
161
+ interpolation: 'linear' | 'step' | 'cubic';
162
+ }
163
+ interface Keyframe {
164
+ time: number;
165
+ value: number;
166
+ inTangent?: number;
167
+ outTangent?: number;
168
+ }
169
+ interface AnimationState {
170
+ id: string;
171
+ clipId: string;
172
+ speed: number;
173
+ loop: boolean;
174
+ currentTime: number;
175
+ weight: number;
176
+ isPlaying: boolean;
177
+ }
178
+ interface AnimationTransition {
179
+ id: string;
180
+ fromState: string;
181
+ toState: string;
182
+ duration: number;
183
+ condition: TransitionCondition;
184
+ interruptible: boolean;
185
+ }
186
+ type TransitionCondition = {
187
+ type: 'parameter';
188
+ name: string;
189
+ comparator: '>' | '<' | '==' | '!=';
190
+ value: number | boolean;
191
+ } | {
192
+ type: 'finished';
193
+ } | {
194
+ type: 'trigger';
195
+ name: string;
196
+ };
197
+ interface BlendNode {
198
+ type: 'clip' | 'blend1d' | 'blend2d';
199
+ clipId?: string;
200
+ parameter?: string;
201
+ children?: {
202
+ position: number;
203
+ node: BlendNode;
204
+ }[];
205
+ children2D?: {
206
+ position: {
207
+ x: number;
208
+ y: number;
209
+ };
210
+ node: BlendNode;
211
+ }[];
212
+ }
213
+ interface AnimationLayer {
214
+ id: string;
215
+ weight: number;
216
+ blendMode: 'override' | 'additive';
217
+ mask?: string[];
218
+ graph: AnimationGraphInstance;
219
+ }
220
+ interface AnimationGraphInstance {
221
+ states: Map<string, AnimationState>;
222
+ transitions: AnimationTransition[];
223
+ currentState: string;
224
+ parameters: Map<string, number | boolean>;
225
+ activeTransition: {
226
+ from: string;
227
+ to: string;
228
+ progress: number;
229
+ duration: number;
230
+ } | null;
231
+ }
232
+ declare class AnimationGraph {
233
+ private clips;
234
+ private layers;
235
+ private defaultGraph;
236
+ constructor();
237
+ addClip(clip: AnimationClip): void;
238
+ getClip(id: string): AnimationClip | undefined;
239
+ removeClip(id: string): boolean;
240
+ getClipIds(): string[];
241
+ addState(id: string, clipId: string, options?: Partial<{
242
+ speed: number;
243
+ loop: boolean;
244
+ }>): AnimationState;
245
+ getState(id: string): AnimationState | undefined;
246
+ getCurrentState(): string;
247
+ addTransition(transition: AnimationTransition): void;
248
+ setParameter(name: string, value: number | boolean): void;
249
+ getParameter(name: string): number | boolean | undefined;
250
+ setTrigger(name: string): void;
251
+ update(dt: number): Map<string, number>;
252
+ addLayer(layer: AnimationLayer): void;
253
+ getLayers(): AnimationLayer[];
254
+ private evaluateCondition;
255
+ private sampleTrack;
256
+ }
257
+
258
+ /**
259
+ * SpringAnimator.ts
260
+ *
261
+ * Physics-based spring dynamics for smooth, natural-feeling animations.
262
+ * Implements a critically-damped spring model for responsive UI motion.
263
+ */
264
+ interface SpringConfig {
265
+ stiffness: number;
266
+ damping: number;
267
+ mass: number;
268
+ precision: number;
269
+ }
270
+ declare const SpringPresets: Record<string, SpringConfig>;
271
+ declare class SpringAnimator {
272
+ private current;
273
+ private target;
274
+ private velocity;
275
+ private config;
276
+ private atRest;
277
+ private onUpdate?;
278
+ private onRest?;
279
+ constructor(initialValue: number, config?: Partial<SpringConfig>, onUpdate?: (value: number) => void, onRest?: () => void);
280
+ /**
281
+ * Set a new target value. The spring will animate towards it.
282
+ */
283
+ setTarget(target: number): void;
284
+ /**
285
+ * Instantly jump to a value (no animation).
286
+ */
287
+ setValue(value: number): void;
288
+ /**
289
+ * Apply an impulse (instant velocity change).
290
+ */
291
+ impulse(force: number): void;
292
+ /**
293
+ * Step the spring simulation forward.
294
+ * Uses semi-implicit Euler integration.
295
+ */
296
+ update(delta: number): number;
297
+ /**
298
+ * Get current value.
299
+ */
300
+ getValue(): number;
301
+ /**
302
+ * Check if the spring has settled.
303
+ */
304
+ isAtRest(): boolean;
305
+ /**
306
+ * Change spring configuration dynamically.
307
+ */
308
+ setConfig(config: Partial<SpringConfig>): void;
309
+ }
310
+ declare class Vec3SpringAnimator {
311
+ x: SpringAnimator;
312
+ y: SpringAnimator;
313
+ z: SpringAnimator;
314
+ constructor(initial: {
315
+ x: number;
316
+ y: number;
317
+ z: number;
318
+ }, config?: Partial<SpringConfig>, onUpdate?: (value: {
319
+ x: number;
320
+ y: number;
321
+ z: number;
322
+ }) => void);
323
+ setTarget(target: {
324
+ x: number;
325
+ y: number;
326
+ z: number;
327
+ }): void;
328
+ update(delta: number): {
329
+ x: number;
330
+ y: number;
331
+ z: number;
332
+ };
333
+ getValue(): {
334
+ x: number;
335
+ y: number;
336
+ z: number;
337
+ };
338
+ isAtRest(): boolean;
339
+ }
340
+
341
+ /**
342
+ * AnimationTrait.ts
343
+ *
344
+ * Declarative animation attachment for HoloScript+ nodes.
345
+ * Allows any node to have animations defined as traits.
346
+ *
347
+ * @trait animate
348
+ */
349
+
350
+ interface HSPlusNode {
351
+ id?: string;
352
+ properties?: Record<string, unknown>;
353
+ }
354
+ interface TraitHandler<TConfig> {
355
+ name: string;
356
+ defaultConfig: TConfig;
357
+ onAttach(node: HSPlusNode, config: TConfig, context: unknown): void;
358
+ onDetach(node: HSPlusNode, config: TConfig, context: unknown): void;
359
+ onUpdate(node: HSPlusNode, config: TConfig, context: unknown, delta: number): void;
360
+ }
361
+ interface AnimationTraitConfig {
362
+ clips?: AnimationClipDef[];
363
+ springs?: SpringDef[];
364
+ autoPlay: boolean;
365
+ }
366
+ interface AnimationClipDef {
367
+ property: string;
368
+ keyframes: Array<{
369
+ time: number;
370
+ value: number;
371
+ easing?: string;
372
+ }>;
373
+ duration: number;
374
+ loop?: boolean;
375
+ pingPong?: boolean;
376
+ delay?: number;
377
+ }
378
+ interface SpringDef {
379
+ property: string;
380
+ target: number;
381
+ preset?: string;
382
+ config?: Partial<SpringConfig>;
383
+ }
384
+ declare function getSharedAnimationEngine(): AnimationEngine;
385
+ declare const animationTraitHandler: TraitHandler<AnimationTraitConfig>;
386
+
387
+ /**
388
+ * AnimationTransitions.ts
389
+ *
390
+ * Ragdoll ? Animation blending system.
391
+ * Enables seamless transitions between physics-driven ragdoll and keyframed animation.
392
+ *
393
+ * @module animation
394
+ */
395
+ interface IVector3 {
396
+ x: number;
397
+ y: number;
398
+ z: number;
399
+ }
400
+ interface BonePose {
401
+ boneId: string;
402
+ position: IVector3;
403
+ rotation: {
404
+ x: number;
405
+ y: number;
406
+ z: number;
407
+ w: number;
408
+ };
409
+ }
410
+ interface TransitionConfig {
411
+ duration: number;
412
+ curve: 'linear' | 'ease_in' | 'ease_out' | 'ease_in_out';
413
+ settleThreshold: number;
414
+ }
415
+ type TransitionDirection$1 = 'animation_to_ragdoll' | 'ragdoll_to_animation';
416
+ interface BlendState {
417
+ direction: TransitionDirection$1;
418
+ progress: number;
419
+ duration: number;
420
+ sourcePose: BonePose[];
421
+ isComplete: boolean;
422
+ }
423
+ declare class AnimationTransitionSystem {
424
+ private config;
425
+ private activeBlends;
426
+ constructor(config?: Partial<TransitionConfig>);
427
+ startAnimToRagdoll(entityId: string, currentPose: BonePose[]): void;
428
+ startRagdollToAnim(entityId: string, currentPose: BonePose[]): void;
429
+ update(dt: number, ragdollPoses: Map<string, BonePose[]>, animPoses: Map<string, BonePose[]>): Map<string, BonePose[]>;
430
+ isTransitioning(entityId: string): boolean;
431
+ getBlendProgress(entityId: string): number;
432
+ clearTransition(entityId: string): void;
433
+ getActiveTransitionCount(): number;
434
+ private applyCurve;
435
+ private lerpVec3;
436
+ private slerpQuat;
437
+ }
438
+
439
+ /**
440
+ * IKSolver.ts
441
+ *
442
+ * Inverse Kinematics: two-bone IK, CCD chain solver,
443
+ * pole target, foot placement, and constraint limits.
444
+ *
445
+ * @module animation
446
+ */
447
+ interface IKBone {
448
+ id: string;
449
+ position: [number, number, number];
450
+ rotation: {
451
+ x: number;
452
+ y: number;
453
+ z: number;
454
+ w: number;
455
+ };
456
+ length: number;
457
+ minAngle?: number;
458
+ maxAngle?: number;
459
+ }
460
+ interface IKChain {
461
+ id: string;
462
+ bones: IKBone[];
463
+ target: {
464
+ x: number;
465
+ y: number;
466
+ z: number;
467
+ };
468
+ poleTarget?: {
469
+ x: number;
470
+ y: number;
471
+ z: number;
472
+ };
473
+ weight: number;
474
+ iterations: number;
475
+ }
476
+ interface FootPlacementConfig {
477
+ rayHeight: number;
478
+ rayLength: number;
479
+ footOffset: number;
480
+ blendSpeed: number;
481
+ enabled: boolean;
482
+ }
483
+ declare class IKSolver {
484
+ private chains;
485
+ private footConfig;
486
+ private footPositions;
487
+ addChain(chain: IKChain): void;
488
+ removeChain(id: string): boolean;
489
+ getChain(id: string): IKChain | undefined;
490
+ getChainCount(): number;
491
+ setTarget(chainId: string, x: number, y: number, z: number): void;
492
+ setPoleTarget(chainId: string, x: number, y: number, z: number): void;
493
+ setWeight(chainId: string, weight: number): void;
494
+ solveTwoBone(chainId: string): boolean;
495
+ solveCCD(chainId: string): boolean;
496
+ setFootPlacement(config: Partial<FootPlacementConfig>): void;
497
+ getFootPlacement(): FootPlacementConfig;
498
+ updateFootPlacement(footId: string, groundHeight: number, dt: number): {
499
+ x: number;
500
+ y: number;
501
+ z: number;
502
+ };
503
+ solveAll(): void;
504
+ }
505
+
506
+ /**
507
+ * BoneSystem.ts
508
+ *
509
+ * Skeletal bone hierarchy: bind pose, joint transforms,
510
+ * world-space chain computation, and pose application.
511
+ *
512
+ * @module animation
513
+ */
514
+ interface BoneTransform {
515
+ tx: number;
516
+ ty: number;
517
+ tz: number;
518
+ rx: number;
519
+ ry: number;
520
+ rz: number;
521
+ rw: number;
522
+ sx: number;
523
+ sy: number;
524
+ sz: number;
525
+ }
526
+ interface Bone {
527
+ id: string;
528
+ name: string;
529
+ parentId: string | null;
530
+ local: BoneTransform;
531
+ world: BoneTransform;
532
+ bindInverse: BoneTransform;
533
+ childIds: string[];
534
+ }
535
+ declare class BoneSystem {
536
+ private bones;
537
+ private roots;
538
+ private dirty;
539
+ addBone(id: string, name: string, parentId: string | null, local?: Partial<BoneTransform>): void;
540
+ getBone(id: string): Bone | undefined;
541
+ getBoneCount(): number;
542
+ getRoots(): string[];
543
+ setLocalTransform(id: string, transform: Partial<BoneTransform>): void;
544
+ updateWorldTransforms(): void;
545
+ private updateBoneChain;
546
+ captureBindPose(): void;
547
+ getSkinningMatrix(id: string): BoneTransform | null;
548
+ private combineTransforms;
549
+ private invertTransform;
550
+ getWorldPosition(id: string): {
551
+ x: number;
552
+ y: number;
553
+ z: number;
554
+ } | null;
555
+ getChain(leafId: string): string[];
556
+ }
557
+
558
+ /**
559
+ * AvatarController.ts
560
+ *
561
+ * Maps VR input sources (HMD, Controllers) to IK Solver targets.
562
+ * Handles calibration and VRIK logic (spine handling, shoulder offsets).
563
+ *
564
+ * @module animation
565
+ */
566
+
567
+ interface AvatarInput {
568
+ head: {
569
+ position: [number, number, number];
570
+ rotation: {
571
+ x: number;
572
+ y: number;
573
+ z: number;
574
+ w: number;
575
+ };
576
+ };
577
+ leftHand: {
578
+ position: [number, number, number];
579
+ rotation: {
580
+ x: number;
581
+ y: number;
582
+ z: number;
583
+ w: number;
584
+ };
585
+ };
586
+ rightHand: {
587
+ position: [number, number, number];
588
+ rotation: {
589
+ x: number;
590
+ y: number;
591
+ z: number;
592
+ w: number;
593
+ };
594
+ };
595
+ height: number;
596
+ }
597
+ declare class AvatarController {
598
+ private solver;
599
+ private bones;
600
+ private calibrated;
601
+ private config;
602
+ constructor(solver: IKSolver, bones: BoneSystem);
603
+ /**
604
+ * Calibrate avatar scale based on user height
605
+ */
606
+ calibrate(_userHeight: number): void;
607
+ /**
608
+ * Update IK targets from VR input
609
+ */
610
+ update(input: AvatarInput): void;
611
+ }
612
+
613
+ /**
614
+ * CutsceneTimeline.ts
615
+ *
616
+ * Sequenced animation/event timeline for cutscenes.
617
+ * Supports parallel tracks, timed events, camera control, and dialogue cues.
618
+ *
619
+ * @module animation
620
+ */
621
+ type TimelineEventType = 'animation' | 'camera' | 'dialogue' | 'audio' | 'effect' | 'wait' | 'callback';
622
+ interface TimelineEvent {
623
+ id: string;
624
+ type: TimelineEventType;
625
+ startTime: number;
626
+ duration: number;
627
+ data: Record<string, unknown>;
628
+ }
629
+ interface TimelineTrack {
630
+ id: string;
631
+ name: string;
632
+ targetEntity?: string;
633
+ events: TimelineEvent[];
634
+ muted: boolean;
635
+ }
636
+ interface CutsceneDefinition {
637
+ id: string;
638
+ name: string;
639
+ duration: number;
640
+ tracks: TimelineTrack[];
641
+ loop: boolean;
642
+ }
643
+ interface CutsceneState {
644
+ definition: CutsceneDefinition;
645
+ currentTime: number;
646
+ isPlaying: boolean;
647
+ isPaused: boolean;
648
+ speed: number;
649
+ activeEvents: Set<string>;
650
+ completedEvents: Set<string>;
651
+ triggeredCallbacks: string[];
652
+ }
653
+ declare class CutsceneTimeline {
654
+ private cutscenes;
655
+ private callbacks;
656
+ load(definition: CutsceneDefinition): string;
657
+ play(id: string, startTime?: number): boolean;
658
+ pause(id: string): void;
659
+ resume(id: string): void;
660
+ stop(id: string): void;
661
+ setSpeed(id: string, speed: number): void;
662
+ seek(id: string, time: number): void;
663
+ registerCallback(callbackId: string, fn: () => void): void;
664
+ unregisterCallback(callbackId: string): void;
665
+ update(dt: number): Map<string, TimelineEvent[]>;
666
+ getState(id: string): CutsceneState | undefined;
667
+ isPlaying(id: string): boolean;
668
+ getCurrentTime(id: string): number;
669
+ getProgress(id: string): number;
670
+ removeCutscene(id: string): boolean;
671
+ }
672
+ declare class CutsceneBuilder {
673
+ private tracks;
674
+ private eventCounter;
675
+ private id;
676
+ private name;
677
+ constructor(id: string, name: string);
678
+ addTrack(name: string, targetEntity?: string): CutsceneBuilder;
679
+ addEvent(trackIndex: number, type: TimelineEventType, startTime: number, duration: number, data?: Record<string, unknown>): CutsceneBuilder;
680
+ build(): CutsceneDefinition;
681
+ }
682
+
683
+ /**
684
+ * MorphTargets.ts
685
+ *
686
+ * Blend shapes / morph targets: named targets with delta vertices,
687
+ * weight interpolation, presets, and batch application.
688
+ *
689
+ * @module animation
690
+ */
691
+ interface MorphDelta {
692
+ vertexIndex: number;
693
+ dx: number;
694
+ dy: number;
695
+ dz: number;
696
+ }
697
+ interface MorphTarget {
698
+ name: string;
699
+ deltas: MorphDelta[];
700
+ weight: number;
701
+ }
702
+ interface MorphPreset {
703
+ name: string;
704
+ weights: Map<string, number>;
705
+ }
706
+ declare class MorphTargetSystem {
707
+ private targets;
708
+ private presets;
709
+ private vertexCount;
710
+ constructor(vertexCount: number);
711
+ addTarget(name: string, deltas: MorphDelta[]): void;
712
+ removeTarget(name: string): void;
713
+ setWeight(name: string, weight: number): void;
714
+ getWeight(name: string): number;
715
+ addPreset(name: string, weights: Map<string, number>): void;
716
+ applyPreset(name: string): void;
717
+ computeDeformedPositions(basePositions: Float32Array): Float32Array;
718
+ lerpWeights(targetWeights: Map<string, number>, t: number): void;
719
+ getTargetCount(): number;
720
+ getActiveTargets(): string[];
721
+ getVertexCount(): number;
722
+ }
723
+
724
+ /**
725
+ * SkeletalBlender.ts
726
+ *
727
+ * Multi-clip animation blending: layer weights,
728
+ * additive/override modes, crossfade, and pose mixing.
729
+ *
730
+ * @module animation
731
+ */
732
+ interface AnimPose {
733
+ boneId: string;
734
+ tx: number;
735
+ ty: number;
736
+ tz: number;
737
+ sx: number;
738
+ sy: number;
739
+ sz: number;
740
+ }
741
+ interface AnimLayer {
742
+ id: string;
743
+ poses: AnimPose[];
744
+ weight: number;
745
+ mode: 'override' | 'additive';
746
+ mask?: Set<string>;
747
+ }
748
+ declare class SkeletalBlender {
749
+ private layers;
750
+ private blendedPoses;
751
+ addLayer(layer: AnimLayer): void;
752
+ removeLayer(id: string): void;
753
+ setLayerWeight(id: string, weight: number): void;
754
+ getLayerWeight(id: string): number;
755
+ blend(): Map<string, AnimPose>;
756
+ crossfade(fromId: string, toId: string, t: number): void;
757
+ private lerpPose;
758
+ getLayerCount(): number;
759
+ getBlendedPose(boneId: string): AnimPose | undefined;
760
+ }
761
+
762
+ /**
763
+ * Timeline.ts
764
+ *
765
+ * Sequential and parallel animation group orchestration.
766
+ * Enables complex choreographed animation sequences.
767
+ */
768
+
769
+ type TimelineMode = 'sequential' | 'parallel';
770
+ interface TimelineEntry {
771
+ clip: AnimationClip$1;
772
+ setter: (value: number) => void;
773
+ startOffset?: number;
774
+ }
775
+ interface TimelineConfig {
776
+ mode: TimelineMode;
777
+ loop: boolean;
778
+ loopCount: number;
779
+ pingPong: boolean;
780
+ delay: number;
781
+ onComplete?: () => void;
782
+ onLoop?: (count: number) => void;
783
+ }
784
+ declare class Timeline {
785
+ private entries;
786
+ private config;
787
+ private engine;
788
+ private elapsed;
789
+ private isPlaying;
790
+ private isPaused;
791
+ private currentLoop;
792
+ private direction;
793
+ private totalDuration;
794
+ constructor(config?: Partial<TimelineConfig>, engine?: AnimationEngine);
795
+ /**
796
+ * Add an animation to the timeline.
797
+ */
798
+ add(clip: AnimationClip$1, setter: (value: number) => void, startOffset?: number): Timeline;
799
+ /**
800
+ * Start playing the timeline.
801
+ */
802
+ play(): void;
803
+ pause(): void;
804
+ resume(): void;
805
+ stop(): void;
806
+ /**
807
+ * Update the timeline. Call every frame.
808
+ */
809
+ update(delta: number): void;
810
+ private updateSequential;
811
+ private updateParallel;
812
+ private handleCompletion;
813
+ private recalcDuration;
814
+ /**
815
+ * Get total duration of the timeline.
816
+ */
817
+ getDuration(): number;
818
+ /**
819
+ * Get current elapsed time.
820
+ */
821
+ getElapsed(): number;
822
+ /**
823
+ * Get normalized progress (0-1).
824
+ */
825
+ getProgress(): number;
826
+ }
827
+
828
+ /**
829
+ * TransitionSystem.ts
830
+ *
831
+ * Pre-built UI transition patterns using the AnimationEngine.
832
+ * Provides fade, scale, slide, and combined transitions.
833
+ */
834
+
835
+ type TransitionDirection = 'in' | 'out';
836
+ interface TransitionOptions {
837
+ duration?: number;
838
+ easing?: EasingFn;
839
+ delay?: number;
840
+ onComplete?: () => void;
841
+ }
842
+ declare class TransitionSystem {
843
+ private engine;
844
+ constructor(engine?: AnimationEngine);
845
+ getEngine(): AnimationEngine;
846
+ /**
847
+ * Fade in/out (opacity 0 <-> 1)
848
+ */
849
+ fade(nodeId: string, direction: TransitionDirection, setter: (opacity: number) => void, options?: TransitionOptions): void;
850
+ /**
851
+ * Scale in/out (scale 0 <-> 1)
852
+ */
853
+ scale(nodeId: string, direction: TransitionDirection, setter: (scale: number) => void, options?: TransitionOptions): void;
854
+ /**
855
+ * Slide from a direction (e.g., slide up from below)
856
+ */
857
+ slide(nodeId: string, direction: TransitionDirection, axis: 'x' | 'y' | 'z', distance: number, setter: (offset: number) => void, options?: TransitionOptions): void;
858
+ /**
859
+ * Combined: Scale + Fade (common for dialogs/menus)
860
+ */
861
+ popIn(nodeId: string, scaleSetter: (s: number) => void, opacitySetter: (o: number) => void, options?: TransitionOptions): void;
862
+ /**
863
+ * Combined: Scale + Fade out
864
+ */
865
+ popOut(nodeId: string, scaleSetter: (s: number) => void, opacitySetter: (o: number) => void, options?: TransitionOptions): void;
866
+ /**
867
+ * Update all transitions. Must be called every frame.
868
+ */
869
+ update(delta: number): void;
870
+ }
871
+
872
+ type index_ActiveAnimation = ActiveAnimation;
873
+ type index_AnimClip = AnimClip;
874
+ declare const index_AnimClip: typeof AnimClip;
875
+ type index_AnimLayer = AnimLayer;
876
+ type index_AnimPose = AnimPose;
877
+ type index_AnimationClipDef = AnimationClipDef;
878
+ type index_AnimationEngine = AnimationEngine;
879
+ declare const index_AnimationEngine: typeof AnimationEngine;
880
+ type index_AnimationGraph = AnimationGraph;
881
+ declare const index_AnimationGraph: typeof AnimationGraph;
882
+ type index_AnimationGraphInstance = AnimationGraphInstance;
883
+ type index_AnimationLayer = AnimationLayer;
884
+ type index_AnimationState = AnimationState;
885
+ type index_AnimationTrack = AnimationTrack;
886
+ type index_AnimationTraitConfig = AnimationTraitConfig;
887
+ type index_AnimationTransition = AnimationTransition;
888
+ type index_AnimationTransitionSystem = AnimationTransitionSystem;
889
+ declare const index_AnimationTransitionSystem: typeof AnimationTransitionSystem;
890
+ type index_AvatarController = AvatarController;
891
+ declare const index_AvatarController: typeof AvatarController;
892
+ type index_AvatarInput = AvatarInput;
893
+ type index_BlendNode = BlendNode;
894
+ type index_BlendState = BlendState;
895
+ type index_Bone = Bone;
896
+ type index_BonePose = BonePose;
897
+ type index_BoneSystem = BoneSystem;
898
+ declare const index_BoneSystem: typeof BoneSystem;
899
+ type index_BoneTransform = BoneTransform;
900
+ type index_ClipEvent = ClipEvent;
901
+ type index_ClipKeyframe = ClipKeyframe;
902
+ type index_ClipTrack = ClipTrack;
903
+ type index_CutsceneBuilder = CutsceneBuilder;
904
+ declare const index_CutsceneBuilder: typeof CutsceneBuilder;
905
+ type index_CutsceneDefinition = CutsceneDefinition;
906
+ type index_CutsceneState = CutsceneState;
907
+ type index_CutsceneTimeline = CutsceneTimeline;
908
+ declare const index_CutsceneTimeline: typeof CutsceneTimeline;
909
+ declare const index_Easing: typeof Easing;
910
+ type index_EasingFn = EasingFn;
911
+ type index_FootPlacementConfig = FootPlacementConfig;
912
+ type index_HSPlusNode = HSPlusNode;
913
+ type index_IKBone = IKBone;
914
+ type index_IKChain = IKChain;
915
+ type index_IKSolver = IKSolver;
916
+ declare const index_IKSolver: typeof IKSolver;
917
+ type index_IVector3 = IVector3;
918
+ type index_InterpolationMode = InterpolationMode;
919
+ type index_MorphDelta = MorphDelta;
920
+ type index_MorphPreset = MorphPreset;
921
+ type index_MorphTarget = MorphTarget;
922
+ type index_MorphTargetSystem = MorphTargetSystem;
923
+ declare const index_MorphTargetSystem: typeof MorphTargetSystem;
924
+ type index_SkeletalBlender = SkeletalBlender;
925
+ declare const index_SkeletalBlender: typeof SkeletalBlender;
926
+ type index_SpringAnimator = SpringAnimator;
927
+ declare const index_SpringAnimator: typeof SpringAnimator;
928
+ type index_SpringConfig = SpringConfig;
929
+ type index_SpringDef = SpringDef;
930
+ declare const index_SpringPresets: typeof SpringPresets;
931
+ type index_Timeline = Timeline;
932
+ declare const index_Timeline: typeof Timeline;
933
+ type index_TimelineConfig = TimelineConfig;
934
+ type index_TimelineEntry = TimelineEntry;
935
+ type index_TimelineEvent = TimelineEvent;
936
+ type index_TimelineEventType = TimelineEventType;
937
+ type index_TimelineMode = TimelineMode;
938
+ type index_TimelineTrack = TimelineTrack;
939
+ type index_TraitHandler<TConfig> = TraitHandler<TConfig>;
940
+ type index_TransitionCondition = TransitionCondition;
941
+ type index_TransitionConfig = TransitionConfig;
942
+ type index_TransitionOptions = TransitionOptions;
943
+ type index_TransitionSystem = TransitionSystem;
944
+ declare const index_TransitionSystem: typeof TransitionSystem;
945
+ type index_Vec3SpringAnimator = Vec3SpringAnimator;
946
+ declare const index_Vec3SpringAnimator: typeof Vec3SpringAnimator;
947
+ declare const index_animationTraitHandler: typeof animationTraitHandler;
948
+ declare const index_getSharedAnimationEngine: typeof getSharedAnimationEngine;
949
+ declare namespace index {
950
+ export { type index_ActiveAnimation as ActiveAnimation, index_AnimClip as AnimClip, type index_AnimLayer as AnimLayer, type index_AnimPose as AnimPose, type index_AnimationClipDef as AnimationClipDef, index_AnimationEngine as AnimationEngine, type Keyframe$1 as AnimationEngineKeyframe, index_AnimationGraph as AnimationGraph, type index_AnimationGraphInstance as AnimationGraphInstance, type index_AnimationLayer as AnimationLayer, type index_AnimationState as AnimationState, type index_AnimationTrack as AnimationTrack, type index_AnimationTraitConfig as AnimationTraitConfig, type index_AnimationTransition as AnimationTransition, index_AnimationTransitionSystem as AnimationTransitionSystem, index_AvatarController as AvatarController, type index_AvatarInput as AvatarInput, type index_BlendNode as BlendNode, type index_BlendState as BlendState, type index_Bone as Bone, type index_BonePose as BonePose, index_BoneSystem as BoneSystem, type index_BoneTransform as BoneTransform, type index_ClipEvent as ClipEvent, type index_ClipKeyframe as ClipKeyframe, type index_ClipTrack as ClipTrack, index_CutsceneBuilder as CutsceneBuilder, type index_CutsceneDefinition as CutsceneDefinition, type index_CutsceneState as CutsceneState, index_CutsceneTimeline as CutsceneTimeline, index_Easing as Easing, type index_EasingFn as EasingFn, type AnimationClip$1 as EngineAnimationClip, type index_FootPlacementConfig as FootPlacementConfig, type AnimationClip as GraphAnimationClip, type Keyframe as GraphKeyframe, type index_HSPlusNode as HSPlusNode, type index_IKBone as IKBone, type index_IKChain as IKChain, index_IKSolver as IKSolver, type index_IVector3 as IVector3, type index_InterpolationMode as InterpolationMode, type index_MorphDelta as MorphDelta, type index_MorphPreset as MorphPreset, type index_MorphTarget as MorphTarget, index_MorphTargetSystem as MorphTargetSystem, type TransitionDirection$1 as RagdollTransitionDirection, index_SkeletalBlender as SkeletalBlender, index_SpringAnimator as SpringAnimator, type index_SpringConfig as SpringConfig, type index_SpringDef as SpringDef, index_SpringPresets as SpringPresets, index_Timeline as Timeline, type index_TimelineConfig as TimelineConfig, type index_TimelineEntry as TimelineEntry, type index_TimelineEvent as TimelineEvent, type index_TimelineEventType as TimelineEventType, type index_TimelineMode as TimelineMode, type index_TimelineTrack as TimelineTrack, type index_TraitHandler as TraitHandler, type index_TransitionCondition as TransitionCondition, type index_TransitionConfig as TransitionConfig, type index_TransitionOptions as TransitionOptions, index_TransitionSystem as TransitionSystem, type TransitionDirection as UiTransitionDirection, index_Vec3SpringAnimator as Vec3SpringAnimator, index_animationTraitHandler as animationTraitHandler, index_getSharedAnimationEngine as getSharedAnimationEngine };
951
+ }
952
+
953
+ export { Timeline as $, AnimationEngine as A, type BlendNode as B, type ClipEvent as C, CutsceneTimeline as D, Easing as E, type EasingFn as F, type AnimationClip$1 as G, type FootPlacementConfig as H, type AnimationClip as I, type Keyframe as J, type Keyframe$1 as K, type HSPlusNode as L, type IKBone as M, type IKChain as N, IKSolver as O, type IVector3 as P, type InterpolationMode as Q, type MorphDelta as R, type MorphPreset as S, type MorphTarget as T, MorphTargetSystem as U, type TransitionDirection$1 as V, SkeletalBlender as W, SpringAnimator as X, type SpringConfig as Y, type SpringDef as Z, SpringPresets as _, type ActiveAnimation as a, type TimelineConfig as a0, type TimelineEntry as a1, type TimelineEvent as a2, type TimelineEventType as a3, type TimelineMode as a4, type TimelineTrack as a5, type TraitHandler as a6, type TransitionCondition as a7, type TransitionConfig as a8, type TransitionOptions as a9, TransitionSystem as aa, type TransitionDirection as ab, Vec3SpringAnimator as ac, animationTraitHandler as ad, getSharedAnimationEngine as ae, AnimClip as b, type AnimLayer as c, type AnimPose as d, type AnimationClipDef as e, AnimationGraph as f, type AnimationGraphInstance as g, type AnimationLayer as h, index as i, type AnimationState as j, type AnimationTrack as k, type AnimationTraitConfig as l, type AnimationTransition as m, AnimationTransitionSystem as n, AvatarController as o, type AvatarInput as p, type BlendState as q, type Bone as r, type BonePose as s, BoneSystem as t, type BoneTransform as u, type ClipKeyframe as v, type ClipTrack as w, CutsceneBuilder as x, type CutsceneDefinition as y, type CutsceneState as z };