@lovelace_lol/embody 0.0.8 → 0.0.9

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.
@@ -0,0 +1,14 @@
1
+ /** JavaScript names for the numeric Rust API used by profile tooling. */
2
+ export declare function isEmbodyCoreReady(): boolean;
3
+ export declare const coreAbiVersion: () => number;
4
+ export declare const packMorphFrameDelta: (meshIds: Uint32Array, morphTargetIds: Uint32Array, values: Float32Array, modes: Uint8Array) => Float32Array<ArrayBufferLike>;
5
+ export declare const solveBilateralValues: (base: number, balance: number) => Float32Array<ArrayBufferLike>;
6
+ export declare const solveMorphBatch: (values: Float32Array, balances: Float32Array, mixWeights: Float32Array) => Float32Array<ArrayBufferLike>;
7
+ export declare const solveAxisQuaternion: (axis: number, degrees: number, value: number, scale: number) => Float32Array<ArrayBufferLike>;
8
+ export declare const analyzeMeshProportions: (vertices: Float32Array, verticalAxis: number) => Float32Array<ArrayBufferLike>;
9
+ export declare const solveTemplateSkeletonFit: (meshVertices: Float32Array, templateBounds: Float32Array, verticalAxis: number, verticalAnchor: number) => Float32Array<ArrayBufferLike>;
10
+ export declare const composeTemplateFitAdjustment: (fit: Float32Array, scaleMultiplier: number, offsetX: number, offsetY: number, offsetZ: number) => Float32Array<ArrayBufferLike>;
11
+ export declare const composeTemplateSkeletonFitTransform: (fitScale: number, fitTranslation: Float32Array, manualScale: number, manualTranslation: Float32Array) => Float32Array<ArrayBufferLike>;
12
+ export declare const defaultHairPhysicsConfigValues: () => Float32Array<ArrayBufferLike>;
13
+ export declare function createHairPhysicsSolver(configValues?: Float32Array<ArrayBufferLike>): import("./embody_wasm").HairPhysicsSolver;
14
+ export declare function createRuntimeCore(visemeSlotCount: number): import("./embody_wasm").RuntimeCore;
@@ -41,6 +41,41 @@ export class HairPhysicsSolver {
41
41
  update(dt: number, head_values: Float32Array): Float32Array;
42
42
  }
43
43
 
44
+ /**
45
+ * A command protocol for one bound model/profile, not an animation evaluator.
46
+ * Dispatch each returned batch in order, then feed native events to `notify`.
47
+ * Before `free`, dispatch `dispose` to release engine-owned resources.
48
+ */
49
+ export class NativePlaybackSession {
50
+ free(): void;
51
+ [Symbol.dispose](): void;
52
+ control(handle: string, control_json: string): string;
53
+ dispose(): string;
54
+ constructor();
55
+ /**
56
+ * Late/duplicate/foreign well-formed notifications return an empty batch.
57
+ * A native error after held completion releases resources without emitting
58
+ * a second terminal event.
59
+ */
60
+ notify(native_event_json: string): string;
61
+ /**
62
+ * Takes concrete ClipIR from RuntimeCore compilation or baked-clip intake.
63
+ * Semantic strength must already be compiled into the clip; weight is the
64
+ * native action's contribution and never changes compiled samples.
65
+ */
66
+ play(clip_json: string, options_json: string): string;
67
+ /**
68
+ * Always starts a new generation, even if the identity labels are reused.
69
+ * Hosts must call this on every model/profile replacement before new play.
70
+ */
71
+ rebind(model_key: string, profile_key: string): string;
72
+ /**
73
+ * Replace authored samples without resetting native time, loop progress or
74
+ * the request identity. A held request remains terminal after a pose edit.
75
+ */
76
+ replace_clip(handle: string, clip_json: string): string;
77
+ }
78
+
44
79
  /**
45
80
  * Host-neutral live morph runtime. Owns AU/viseme/mix state and emits packed
46
81
  * morph frame deltas. Engine objects never enter this struct.
@@ -48,13 +83,33 @@ export class HairPhysicsSolver {
48
83
  export class RuntimeCore {
49
84
  free(): void;
50
85
  [Symbol.dispose](): void;
51
- active_transition_count(): number;
52
86
  /**
53
87
  * Validate every channel before replacing Body state. Other FACS state remains.
54
88
  */
55
89
  apply_semantic_pose_json(json: string): void;
56
90
  static au_morph_binding_stride(): number;
91
+ /**
92
+ * Begin one host command; its concrete destinations determine which native
93
+ * actions are replaced. Unrelated targets keep their existing playback.
94
+ */
95
+ begin_live_command(): void;
57
96
  build_clip(clip_name: string, curves_json: string, options_json: string): string;
97
+ /**
98
+ * Compile the configured gravity response directly to concrete morph
99
+ * tracks. Three owns interpolation from the captured initial scene pose.
100
+ */
101
+ build_hair_gravity_clip(name: string, pitch: number, duration_seconds: number, options_json: string): string;
102
+ /**
103
+ * Compile the current live semantic controls into ordinary native tracks.
104
+ * The connector captures inherited starts at play time; Rust never ticks
105
+ * or interpolates these samples. Empty output relinquishes all live tracks.
106
+ */
107
+ build_live_clip(name: string, duration_seconds: number): string;
108
+ /**
109
+ * Compile relinquished live targets back to their reference values. Run
110
+ * this clip with finalPose=release so native ownership ends at completion.
111
+ */
112
+ build_live_release_clip(name: string, previous_clip_json: string, duration_seconds: number): string;
58
113
  /**
59
114
  * Compile semantic motions and optional facial curves together without changing live state.
60
115
  */
@@ -66,7 +121,6 @@ export class RuntimeCore {
66
121
  capture_semantic_pose_json(): string;
67
122
  cleanup_snippet(clip_name: string): boolean;
68
123
  clear(): void;
69
- clear_transitions(): void;
70
124
  /**
71
125
  * Configure the core from the profile and model descriptor JSON hosts
72
126
  * already have. All binding compilation (mesh/morph/bone name resolution,
@@ -89,10 +143,10 @@ export class RuntimeCore {
89
143
  */
90
144
  configure_with_profile(profile_json: string, model_json: string): void;
91
145
  /**
92
- * Host-owned crossfade marker. Rust does not lerp; the host mixer should fade.
146
+ * Carry canonical controls across a renderer rebind. Model-local IDs and
147
+ * reference values belong to the new binding and are never copied.
93
148
  */
94
- crossfade_to(clip_name: string, _duration: number, options_json: string): string;
95
- drain_animation_events(): string;
149
+ copy_live_state_from(previous: RuntimeCore): void;
96
150
  /**
97
151
  * Same rows as `evaluate_bone_frame_delta`, but only bones an active AU,
98
152
  * translation, or viseme jaw value is currently rotating or moving.
@@ -142,7 +196,6 @@ export class RuntimeCore {
142
196
  */
143
197
  evaluate_semantic_body_bone_frame(): Float32Array;
144
198
  get_animation_clips(): string;
145
- get_animation_state(clip_name: string): string;
146
199
  get_au(id: number): number;
147
200
  /**
148
201
  * Stored live AU balance in [-1, 1], or neutral zero when unset or cleared.
@@ -158,7 +211,12 @@ export class RuntimeCore {
158
211
  */
159
212
  get_body_controls_json(): string;
160
213
  get_continuum(neg_au: number, pos_au: number): number;
161
- get_playing_animations(): string;
214
+ /**
215
+ * Normalized hair configuration belongs to the selected profile, never an
216
+ * adapter fallback. Explicit empty/null mappings remain empty.
217
+ */
218
+ get_hair_config_json(): string;
219
+ get_missing_hair_morph_targets_json(available_json: string): string;
162
220
  /**
163
221
  * Profile-derived motions and resolved model support for prompt/pose editors.
164
222
  */
@@ -172,15 +230,14 @@ export class RuntimeCore {
172
230
  * Stored direct viseme jaw scale, or one for an unset or out-of-range slot.
173
231
  */
174
232
  get_viseme_jaw_scale(index: number): number;
233
+ has_left_right_bones(au_id: number): boolean;
234
+ live_command_targets_json(): string;
175
235
  load_animation_clips(clips_json: string): void;
176
236
  /**
177
237
  * Packed rows: `[au_id, side, mesh_id, morph_target_id, weight] * N`
178
238
  * side: 0=left, 1=right, 2=center
179
239
  */
180
240
  load_au_morph_bindings(values: Float32Array): void;
181
- /**
182
- * Packed rows: `[bone_id, px, py, pz, qx, qy, qz, qw] * N`
183
- */
184
241
  load_bone_rest_transforms(values: Float32Array): void;
185
242
  /**
186
243
  * Packed rows: `[au_id, bone_id, axis(0=x,1=y,2=z), scale, max_units] * N`
@@ -204,15 +261,6 @@ export class RuntimeCore {
204
261
  */
205
262
  load_viseme_morph_bindings(values: Float32Array): void;
206
263
  constructor(viseme_slot_count: number);
207
- pause_all_animations(): void;
208
- pause_animation(clip_name: string): void;
209
- /**
210
- * Registry lookup only. Host animation libraries own play/lerp; this returns
211
- * a host-owned action id marker when the clip exists in the registry.
212
- */
213
- play_animation(clip_name: string, _options_json: string): string;
214
- play_snippet(clip_name: string, curves_json: string, options_json: string): string;
215
- play_typed_snippet(clip_name: string, channels_json: string, options_json: string): string;
216
264
  register_animation_clip(clip_json: string, source: string): void;
217
265
  /**
218
266
  * Release a direct morph override so AU/viseme/mixer ownership can resume.
@@ -242,17 +290,11 @@ export class RuntimeCore {
242
290
  * Normal clear/reset deliberately retain tracking for the next frame.
243
291
  */
244
292
  reset_procedural_frame_tracking(): void;
245
- resume_all_animations(): void;
246
- resume_animation(clip_name: string): void;
247
- seek_animation(clip_name: string, time: number): void;
248
- set_animation_blend_mode(clip_name: string, blend_mode: string): void;
249
- set_animation_easing(clip_name: string, easing: string): void;
250
- set_animation_intensity(clip_name: string, intensity: number): void;
251
- set_animation_loop_mode(clip_name: string, loop_mode: string): void;
252
- set_animation_repeat_count(clip_name: string, repeat_count: number): void;
253
- set_animation_reverse(clip_name: string, reverse: boolean): void;
254
- set_animation_speed(clip_name: string, speed: number): void;
255
- set_animation_time_scale(time_scale: number): void;
293
+ /**
294
+ * The adapter supplies native quaternion samples and scene/reference
295
+ * transforms; the profile resolves which tracks represent head motion.
296
+ */
297
+ resolve_hair_motion_json(tracks_json: string, additive: boolean): string;
256
298
  set_au(id: number, value: number, balance: number): void;
257
299
  set_au_mix_weight(id: number, weight: number): void;
258
300
  /**
@@ -262,36 +304,13 @@ export class RuntimeCore {
262
304
  */
263
305
  set_au_signed(id: number, value: number, balance: number): void;
264
306
  set_continuum(neg_au: number, pos_au: number, value: number, balance: number): void;
307
+ set_hair_config_json(update_json: string): string;
265
308
  set_mixed_aus(ids: Uint32Array): void;
266
309
  set_morph(morph_name: string, value: number, mesh_names_json: string): number;
267
310
  set_morph_index(morph_index: number, value: number, mesh_names_json: string): number;
268
311
  set_viseme(index: number, value: number): void;
269
312
  set_viseme_jaw_scale(index: number, jaw_scale: number): void;
270
313
  set_viseme_slot_count(count: number): void;
271
- stop_all_animations(): void;
272
- stop_animation(clip_name: string): void;
273
- /**
274
- * Set an AU immediately. Duration is ignored — host mixers own timed fades.
275
- */
276
- transition_au(id: number, to: number, _duration_ms: number, balance: number): void;
277
- /**
278
- * Set morph(s) immediately. Duration is ignored — host mixers own timed fades.
279
- */
280
- transition_morph(morph_name: string, to: number, _duration_ms: number, mesh_names_json: string): number;
281
- /**
282
- * Set morph index target(s) immediately. Duration is ignored.
283
- */
284
- transition_morph_index(morph_index: number, to: number, _duration_ms: number, mesh_names_json: string): number;
285
- /**
286
- * Set a viseme immediately. Duration is ignored — host mixers own timed fades.
287
- */
288
- transition_viseme(index: number, to: number, _duration_ms: number, jaw_scale: number): void;
289
- /**
290
- * Tick hook for hosts. Clip playback/lerp lives in the host animation
291
- * library; Rust only exposes live AU/viseme state for packed frames.
292
- */
293
- update(_dt_seconds: number): number;
294
- update_clip_params(clip_name: string, params_json: string): boolean;
295
314
  /**
296
315
  * Compile and validate without registering a clip or changing live controls.
297
316
  */
@@ -506,8 +525,6 @@ export function sample_marker_arc_curve(start: Float32Array, end: Float32Array,
506
525
  */
507
526
  export function sample_marker_bezier_curve(start: Float32Array, end: Float32Array, segments: number): Float32Array;
508
527
 
509
- export function screen_space_gaze_solution_stride(): number;
510
-
511
528
  /**
512
529
  * Separates overlapping marker endpoints while preserving each marker's
513
530
  * surface anchor and leader-line length.
@@ -555,62 +572,6 @@ export function solve_full_body_framing(box_min: Float32Array, box_max: Float32A
555
572
 
556
573
  export function solve_morph_batch(values: Float32Array, balances: Float32Array, mix_weights: Float32Array): Float32Array;
557
574
 
558
- /**
559
- * Solve a screen-space eye target against rendered-camera and character-eye
560
- * geometry using the profile's authored AU rotation limits.
561
- *
562
- * Output layout (14 floats): combined target x/y, eye target x/y, head target
563
- * x/y, total yaw/pitch degrees, camera-center yaw/pitch degrees, eye-to-camera
564
- * distance, and viewer-target world x/y/z.
565
- *
566
- * The profile must describe the active rig and calibrated semantic yaw/pitch
567
- * axes: neutral forward is model +Z, up is +Y, and head yaw precedes pitch.
568
- * Bone availability/rest and optical-axis calibration are not encoded by this
569
- * ABI. Missing or morph-only AUs have no inferred angular capacity. Shared eye
570
- * outputs cannot represent vergence or independently calibrated eye ranges.
571
- * Head follow is participation from model-neutral +Z toward the shared target;
572
- * zero prefers neutral, with additional head movement allowed for eye overflow.
573
- */
574
- export function solve_profile_screen_space_gaze(profile_json: string, screen_target: Float32Array, camera_position: Float32Array, camera_quaternion: Float32Array, gaze_origin: Float32Array, model_quaternion: Float32Array, vertical_fov_degrees: number, aspect: number, eyes_enabled: boolean, head_enabled: boolean, head_follow_fraction: number): Float32Array;
575
-
576
- /**
577
- * Normalized tracking controls span the active profile's signed head AU range
578
- * (or eye range with the head disabled). At full head participation, +/-1 on
579
- * an aligned display axis reaches the same rotation as its AU at intensity 1.
580
- * Zero input retains the camera bearing, bounded by that range. Camera roll
581
- * rotates display axes into the model frame. X/Y are clamped to [-1, 1]; Z is
582
- * finite-target depth in meters and does not attenuate angular movement.
583
- * Pass 1 for full head participation; smaller explicit fractions retain the
584
- * existing allocation policy. Output layout matches the physical gaze solvers.
585
- */
586
- export function solve_profile_tracking_gaze(profile_json: string, tracking_target: Float32Array, camera_position: Float32Array, camera_quaternion: Float32Array, gaze_origin: Float32Array, model_quaternion: Float32Array, eyes_enabled: boolean, head_enabled: boolean, head_follow_fraction: number, lock_head_to_camera: boolean, world_units_per_meter: number): Float32Array;
587
-
588
- /**
589
- * Solve a webcam/user target against the rendered camera. `viewer_target` is
590
- * x/y in webcam NDC and z as estimated viewer distance behind the rendered
591
- * camera in the same units as `camera_position` and `gaze_origin`. Hosts must
592
- * convert estimated meters to scene units before calling. Zero x/y extends the
593
- * eye-to-camera bearing; camera-right/up offsets retain the viewer projection
594
- * without making eye contact depend on where the eyes sit in the image.
595
- * `lock_head_to_camera` prefers the camera bearing while eyes can reach; it
596
- * allows head overflow correction and follows the viewer with eyes disabled.
597
- * Without that explicit lock, head follow participates from model-neutral +Z
598
- * toward the shared target. A zero follow fraction does not imply camera lock.
599
- * New consumers with metric viewer depth should use
600
- * `solve_profile_viewer_space_gaze_scaled` to supply the scene conversion.
601
- */
602
- export function solve_profile_viewer_space_gaze(profile_json: string, viewer_target: Float32Array, camera_position: Float32Array, camera_quaternion: Float32Array, gaze_origin: Float32Array, model_quaternion: Float32Array, viewer_vertical_fov_degrees: number, viewer_aspect: number, eyes_enabled: boolean, head_enabled: boolean, head_follow_fraction: number, lock_head_to_camera: boolean): Float32Array;
603
-
604
- /**
605
- * Solve a webcam/user target with an explicit scene-unit conversion.
606
- * `viewer_target` x/y are normalized webcam coordinates and z is estimated
607
- * viewer distance in meters. `world_units_per_meter` converts both that depth
608
- * and its projected lateral offsets into the units of `camera_position` and
609
- * `gaze_origin`. Positive finite scales are accepted; malformed scales use 1.
610
- * The output layout and head/eye allocation match the unscaled export.
611
- */
612
- export function solve_profile_viewer_space_gaze_scaled(profile_json: string, viewer_target: Float32Array, camera_position: Float32Array, camera_quaternion: Float32Array, gaze_origin: Float32Array, model_quaternion: Float32Array, viewer_vertical_fov_degrees: number, viewer_aspect: number, eyes_enabled: boolean, head_enabled: boolean, head_follow_fraction: number, lock_head_to_camera: boolean, world_units_per_meter: number): Float32Array;
613
-
614
575
  /**
615
576
  * Solve a uniform scale and translation for placing a template skeleton inside a mesh.
616
577
  *
@@ -675,35 +636,43 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
675
636
 
676
637
  export interface InitOutput {
677
638
  readonly memory: WebAssembly.Memory;
678
- readonly embody_request: (a: number, b: number) => [number, number, number, number];
679
- readonly compute_humanoid_skeleton_template_rest_bounds: (a: number, b: number) => [number, number, number, number];
680
- readonly create_validation_skeleton_json: (a: number, b: number) => [number, number, number, number];
681
- readonly extract_humanoid_skeleton_template_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
682
- readonly get_humanoid_skeleton_template_json: (a: number, b: number) => [number, number, number, number];
683
- readonly humanoid_skeleton_template_bone_names: (a: number, b: number) => [number, number, number, number];
684
- readonly list_humanoid_skeleton_templates_json: () => [number, number, number, number];
685
- readonly validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
639
+ readonly default_hair_color_appearance_json: () => [number, number, number, number];
640
+ readonly hair_color_presets_json: () => [number, number, number, number];
641
+ readonly normalize_hair_color_appearance_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
642
+ readonly solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
643
+ readonly solve_bilateral_values: (a: number, b: number) => [number, number];
644
+ readonly solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
645
+ readonly __wbg_hairphysicssolver_free: (a: number, b: number) => void;
686
646
  readonly __wbg_runtimecore_free: (a: number, b: number) => void;
687
- readonly compose_template_skeleton_fit_transform: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
688
647
  readonly core_abi_version: () => number;
648
+ readonly default_hair_physics_config_values: () => [number, number];
649
+ readonly hair_config_stride: () => number;
650
+ readonly hair_head_state_stride: () => number;
651
+ readonly hair_morph_output_stride: () => number;
652
+ readonly hair_state_stride: () => number;
653
+ readonly hairphysicssolver_get_config: (a: number) => [number, number];
654
+ readonly hairphysicssolver_get_state: (a: number) => [number, number];
655
+ readonly hairphysicssolver_new: (a: number, b: number) => number;
656
+ readonly hairphysicssolver_reset: (a: number) => void;
657
+ readonly hairphysicssolver_set_config: (a: number, b: number, c: number) => void;
658
+ readonly hairphysicssolver_update: (a: number, b: number, c: number, d: number) => [number, number];
689
659
  readonly pack_morph_frame_delta: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
690
660
  readonly packed_bone_frame_delta_stride: () => number;
691
- readonly packed_morph_frame_delta_stride: () => number;
692
- readonly runtimecore_active_transition_count: (a: number) => number;
693
661
  readonly runtimecore_apply_semantic_pose_json: (a: number, b: number, c: number) => [number, number];
694
- readonly runtimecore_au_morph_binding_stride: () => number;
662
+ readonly runtimecore_begin_live_command: (a: number) => void;
695
663
  readonly runtimecore_build_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
664
+ readonly runtimecore_build_hair_gravity_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
665
+ readonly runtimecore_build_live_clip: (a: number, b: number, c: number, d: number) => [number, number, number, number];
666
+ readonly runtimecore_build_live_release_clip: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
696
667
  readonly runtimecore_build_semantic_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
697
668
  readonly runtimecore_build_typed_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
698
669
  readonly runtimecore_capture_semantic_pose_json: (a: number) => [number, number];
699
670
  readonly runtimecore_cleanup_snippet: (a: number, b: number, c: number) => number;
700
671
  readonly runtimecore_clear: (a: number) => void;
701
- readonly runtimecore_clear_transitions: (a: number) => void;
702
672
  readonly runtimecore_configure: (a: number, b: number, c: number, d: number, e: number) => [number, number];
703
673
  readonly runtimecore_configure_with_preset: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
704
674
  readonly runtimecore_configure_with_profile: (a: number, b: number, c: number, d: number, e: number) => [number, number];
705
- readonly runtimecore_crossfade_to: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
706
- readonly runtimecore_drain_animation_events: (a: number) => [number, number, number, number];
675
+ readonly runtimecore_copy_live_state_from: (a: number, b: number) => void;
707
676
  readonly runtimecore_evaluate_active_bone_frame: (a: number) => [number, number];
708
677
  readonly runtimecore_evaluate_active_morph_frame: (a: number) => [number, number];
709
678
  readonly runtimecore_evaluate_bone_frame_delta: (a: number) => [number, number];
@@ -713,16 +682,18 @@ export interface InitOutput {
713
682
  readonly runtimecore_evaluate_scene_frame: (a: number) => [number, number, number, number];
714
683
  readonly runtimecore_evaluate_semantic_body_bone_frame: (a: number) => [number, number];
715
684
  readonly runtimecore_get_animation_clips: (a: number) => [number, number, number, number];
716
- readonly runtimecore_get_animation_state: (a: number, b: number, c: number) => [number, number, number, number];
717
685
  readonly runtimecore_get_au: (a: number, b: number) => number;
718
686
  readonly runtimecore_get_au_balance: (a: number, b: number) => number;
719
687
  readonly runtimecore_get_au_mix_weight: (a: number, b: number) => number;
720
688
  readonly runtimecore_get_body_controls_json: (a: number) => [number, number];
721
689
  readonly runtimecore_get_continuum: (a: number, b: number, c: number) => number;
722
- readonly runtimecore_get_playing_animations: (a: number) => [number, number, number, number];
690
+ readonly runtimecore_get_hair_config_json: (a: number) => [number, number, number, number];
691
+ readonly runtimecore_get_missing_hair_morph_targets_json: (a: number, b: number, c: number) => [number, number, number, number];
723
692
  readonly runtimecore_get_semantic_pose_catalog_json: (a: number) => [number, number];
724
693
  readonly runtimecore_get_viseme: (a: number, b: number) => number;
725
694
  readonly runtimecore_get_viseme_jaw_scale: (a: number, b: number) => number;
695
+ readonly runtimecore_has_left_right_bones: (a: number, b: number) => number;
696
+ readonly runtimecore_live_command_targets_json: (a: number) => [number, number];
726
697
  readonly runtimecore_load_animation_clips: (a: number, b: number, c: number) => [number, number];
727
698
  readonly runtimecore_load_au_morph_bindings: (a: number, b: number, c: number) => void;
728
699
  readonly runtimecore_load_bone_rest_transforms: (a: number, b: number, c: number) => void;
@@ -732,54 +703,41 @@ export interface InitOutput {
732
703
  readonly runtimecore_load_viseme_jaw_amounts: (a: number, b: number, c: number) => void;
733
704
  readonly runtimecore_load_viseme_morph_bindings: (a: number, b: number, c: number) => void;
734
705
  readonly runtimecore_new: (a: number) => number;
735
- readonly runtimecore_pause_all_animations: (a: number) => void;
736
- readonly runtimecore_pause_animation: (a: number, b: number, c: number) => void;
737
- readonly runtimecore_play_animation: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
738
- readonly runtimecore_play_snippet: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
739
- readonly runtimecore_play_typed_snippet: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
740
706
  readonly runtimecore_register_animation_clip: (a: number, b: number, c: number, d: number, e: number) => [number, number];
741
707
  readonly runtimecore_release_morph: (a: number, b: number, c: number, d: number, e: number) => number;
742
708
  readonly runtimecore_release_morph_index: (a: number, b: number, c: number, d: number) => number;
743
709
  readonly runtimecore_release_procedural_morph_frame: (a: number) => [number, number];
744
710
  readonly runtimecore_reset_body_controls: (a: number) => void;
745
711
  readonly runtimecore_reset_procedural_frame_tracking: (a: number) => void;
746
- readonly runtimecore_resume_all_animations: (a: number) => void;
747
- readonly runtimecore_resume_animation: (a: number, b: number, c: number) => void;
748
- readonly runtimecore_seek_animation: (a: number, b: number, c: number, d: number) => void;
749
- readonly runtimecore_set_animation_blend_mode: (a: number, b: number, c: number, d: number, e: number) => [number, number];
750
- readonly runtimecore_set_animation_easing: (a: number, b: number, c: number, d: number, e: number) => [number, number];
751
- readonly runtimecore_set_animation_intensity: (a: number, b: number, c: number, d: number) => void;
752
- readonly runtimecore_set_animation_loop_mode: (a: number, b: number, c: number, d: number, e: number) => [number, number];
753
- readonly runtimecore_set_animation_repeat_count: (a: number, b: number, c: number, d: number) => void;
754
- readonly runtimecore_set_animation_reverse: (a: number, b: number, c: number, d: number) => void;
755
- readonly runtimecore_set_animation_speed: (a: number, b: number, c: number, d: number) => void;
756
- readonly runtimecore_set_animation_time_scale: (a: number, b: number) => void;
712
+ readonly runtimecore_resolve_hair_motion_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
757
713
  readonly runtimecore_set_au: (a: number, b: number, c: number, d: number) => void;
758
714
  readonly runtimecore_set_au_mix_weight: (a: number, b: number, c: number) => void;
759
715
  readonly runtimecore_set_au_signed: (a: number, b: number, c: number, d: number) => void;
760
716
  readonly runtimecore_set_continuum: (a: number, b: number, c: number, d: number, e: number) => void;
717
+ readonly runtimecore_set_hair_config_json: (a: number, b: number, c: number) => [number, number, number, number];
761
718
  readonly runtimecore_set_mixed_aus: (a: number, b: number, c: number) => void;
762
719
  readonly runtimecore_set_morph: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
763
720
  readonly runtimecore_set_morph_index: (a: number, b: number, c: number, d: number, e: number) => number;
764
721
  readonly runtimecore_set_viseme: (a: number, b: number, c: number) => void;
765
722
  readonly runtimecore_set_viseme_jaw_scale: (a: number, b: number, c: number) => void;
766
723
  readonly runtimecore_set_viseme_slot_count: (a: number, b: number) => void;
767
- readonly runtimecore_stop_all_animations: (a: number) => void;
768
- readonly runtimecore_stop_animation: (a: number, b: number, c: number) => void;
769
- readonly runtimecore_transition_au: (a: number, b: number, c: number, d: number, e: number) => void;
770
- readonly runtimecore_transition_morph: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
771
- readonly runtimecore_transition_morph_index: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
772
- readonly runtimecore_transition_viseme: (a: number, b: number, c: number, d: number, e: number) => void;
773
- readonly runtimecore_update: (a: number, b: number) => number;
774
- readonly runtimecore_update_clip_params: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
775
724
  readonly runtimecore_validate_semantic_animation_json: (a: number, b: number, c: number, d: number, e: number) => [number, number];
776
725
  readonly runtimecore_validate_semantic_pose_json: (a: number, b: number, c: number) => [number, number, number, number];
777
726
  readonly runtimecore_viseme_slot_index: (a: number, b: number, c: number) => number;
778
- readonly runtimecore_remove_animation_clip: (a: number, b: number, c: number) => number;
727
+ readonly packed_morph_frame_delta_stride: () => number;
728
+ readonly runtimecore_au_morph_binding_stride: () => number;
779
729
  readonly runtimecore_viseme_morph_binding_stride: () => number;
780
- readonly template_skeleton_fit_transform_stride: () => number;
730
+ readonly runtimecore_remove_animation_clip: (a: number, b: number, c: number) => number;
731
+ readonly __wbg_nativeplaybacksession_free: (a: number, b: number) => void;
781
732
  readonly marker_endpoint_stride: () => number;
782
733
  readonly marker_visibility_animation_factors: (a: number, b: number) => [number, number];
734
+ readonly nativeplaybacksession_control: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
735
+ readonly nativeplaybacksession_dispose: (a: number) => [number, number, number, number];
736
+ readonly nativeplaybacksession_new: () => [number, number, number];
737
+ readonly nativeplaybacksession_notify: (a: number, b: number, c: number) => [number, number, number, number];
738
+ readonly nativeplaybacksession_play: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
739
+ readonly nativeplaybacksession_rebind: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
740
+ readonly nativeplaybacksession_replace_clip: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
783
741
  readonly passes_marker_camera_angle_gate: (a: number, b: number, c: number) => number;
784
742
  readonly resolve_viewport_constrained_line_scale: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
785
743
  readonly resolve_viewport_safe_bounds: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
@@ -788,38 +746,11 @@ export interface InitOutput {
788
746
  readonly separate_overlapping_marker_endpoints: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
789
747
  readonly should_show_marker: (a: number, b: number, c: number, d: number) => number;
790
748
  readonly marker_visibility_factors_stride: () => number;
791
- readonly __wbg_hairphysicssolver_free: (a: number, b: number) => void;
792
- readonly build_hair_gravity_curves: (a: number, b: number) => [number, number, number, number];
793
- readonly build_hair_idle_curves: (a: number, b: number, c: number) => [number, number, number, number];
794
- readonly build_hair_impulse_curves: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
795
- readonly compile_clip: (a: number, b: number) => [number, number, number, number];
796
- readonly compile_clip_curves: (a: number, b: number) => [number, number, number, number];
797
- readonly default_hair_color_appearance_json: () => [number, number, number, number];
798
- readonly default_hair_physics_config_values: () => [number, number];
799
- readonly get_preset_json: (a: number, b: number) => [number, number, number, number];
800
- readonly hair_color_presets_json: () => [number, number, number, number];
801
- readonly hair_config_stride: () => number;
802
- readonly hair_head_state_stride: () => number;
803
- readonly hair_morph_output_stride: () => number;
804
- readonly hair_state_stride: () => number;
805
- readonly hairphysicssolver_get_config: (a: number) => [number, number];
806
- readonly hairphysicssolver_get_state: (a: number) => [number, number];
807
- readonly hairphysicssolver_new: (a: number, b: number) => number;
808
- readonly hairphysicssolver_reset: (a: number) => void;
809
- readonly hairphysicssolver_set_config: (a: number, b: number, c: number) => void;
810
- readonly hairphysicssolver_update: (a: number, b: number, c: number, d: number) => [number, number];
811
- readonly has_preset: (a: number, b: number) => number;
812
- readonly list_presets: () => [number, number];
813
- readonly merge_embedded_preset: (a: number, b: number, c: number, d: number) => [number, number, number, number];
814
- readonly merge_preset_profile: (a: number, b: number, c: number, d: number) => [number, number, number, number];
815
- readonly normalize_hair_color_appearance_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
816
- readonly resolve_embedded_profile_view: (a: number, b: number, c: number, d: number) => [number, number, number, number];
817
- readonly resolve_profile_view: (a: number, b: number) => [number, number, number, number];
818
- readonly validate_humanoid_characterization: (a: number, b: number, c: number, d: number) => [number, number, number, number];
819
- readonly validate_profile_model: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
749
+ readonly analyze_model_descriptor: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
750
+ readonly extract_model_data_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
820
751
  readonly __wbg_cameraflight_free: (a: number, b: number) => void;
821
752
  readonly __wbg_cameraorbit_free: (a: number, b: number) => void;
822
- readonly analyze_model_descriptor: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
753
+ readonly analyze_mesh_proportions: (a: number, b: number, c: number) => [number, number];
823
754
  readonly annotation_camera_framing_stride: () => number;
824
755
  readonly cameraflight_duration_ms: (a: number) => number;
825
756
  readonly cameraflight_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
@@ -827,28 +758,42 @@ export interface InitOutput {
827
758
  readonly cameraorbit_duration_ms: (a: number) => number;
828
759
  readonly cameraorbit_new: (a: number, b: number, c: number, d: number, e: number) => number;
829
760
  readonly cameraorbit_sample: (a: number, b: number) => [number, number];
830
- readonly extract_model_data_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
761
+ readonly compose_template_fit_adjustment: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
762
+ readonly compute_humanoid_skeleton_template_rest_bounds: (a: number, b: number) => [number, number, number, number];
763
+ readonly create_validation_skeleton_json: (a: number, b: number) => [number, number, number, number];
764
+ readonly extract_humanoid_skeleton_template_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
831
765
  readonly focus_padding_factor: (a: number, b: number, c: number, d: number) => number;
766
+ readonly get_humanoid_skeleton_template_json: (a: number, b: number) => [number, number, number, number];
767
+ readonly humanoid_skeleton_template_bone_names: (a: number, b: number) => [number, number, number, number];
768
+ readonly list_humanoid_skeleton_templates_json: () => [number, number, number, number];
769
+ readonly mesh_proportions_stride: () => number;
832
770
  readonly normalize_camera_angle_degrees: (a: number) => number;
833
771
  readonly resolve_auto_closeup_angle: (a: number, b: number, c: number, d: number, e: number) => number;
834
772
  readonly resolve_focus_camera_direction: (a: number, b: number, c: number, d: number, e: number) => [number, number];
835
- readonly screen_space_gaze_solution_stride: () => number;
836
773
  readonly solve_focus_framing: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number];
837
774
  readonly solve_full_body_framing: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number];
838
- readonly solve_profile_screen_space_gaze: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => [number, number, number, number];
839
- readonly solve_profile_tracking_gaze: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => [number, number, number, number];
840
- readonly solve_profile_viewer_space_gaze: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number) => [number, number, number, number];
841
- readonly solve_profile_viewer_space_gaze_scaled: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number) => [number, number, number, number];
842
- readonly world_direction_for_camera_angle: (a: number, b: number, c: number) => [number, number];
843
- readonly camera_flight_sample_stride: () => number;
844
- readonly analyze_mesh_proportions: (a: number, b: number, c: number) => [number, number];
845
- readonly compose_template_fit_adjustment: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
846
- readonly mesh_proportions_stride: () => number;
847
- readonly solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
848
- readonly solve_bilateral_values: (a: number, b: number) => [number, number];
849
- readonly solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
850
775
  readonly solve_template_skeleton_fit: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
851
776
  readonly template_skeleton_fit_solution_stride: () => number;
777
+ readonly world_direction_for_camera_angle: (a: number, b: number, c: number) => [number, number];
778
+ readonly camera_flight_sample_stride: () => number;
779
+ readonly build_hair_gravity_curves: (a: number, b: number) => [number, number, number, number];
780
+ readonly build_hair_idle_curves: (a: number, b: number, c: number) => [number, number, number, number];
781
+ readonly build_hair_impulse_curves: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
782
+ readonly compile_clip: (a: number, b: number) => [number, number, number, number];
783
+ readonly compile_clip_curves: (a: number, b: number) => [number, number, number, number];
784
+ readonly compose_template_skeleton_fit_transform: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
785
+ readonly get_preset_json: (a: number, b: number) => [number, number, number, number];
786
+ readonly has_preset: (a: number, b: number) => number;
787
+ readonly list_presets: () => [number, number];
788
+ readonly merge_embedded_preset: (a: number, b: number, c: number, d: number) => [number, number, number, number];
789
+ readonly merge_preset_profile: (a: number, b: number, c: number, d: number) => [number, number, number, number];
790
+ readonly resolve_embedded_profile_view: (a: number, b: number, c: number, d: number) => [number, number, number, number];
791
+ readonly resolve_profile_view: (a: number, b: number) => [number, number, number, number];
792
+ readonly template_skeleton_fit_transform_stride: () => number;
793
+ readonly validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
794
+ readonly validate_humanoid_characterization: (a: number, b: number, c: number, d: number) => [number, number, number, number];
795
+ readonly validate_profile_model: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
796
+ readonly embody_request: (a: number, b: number) => [number, number, number, number];
852
797
  readonly __wbindgen_externrefs: WebAssembly.Table;
853
798
  readonly __wbindgen_malloc: (a: number, b: number) => number;
854
799
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;