@lovelace_lol/embody 0.0.15 → 0.0.16

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.
@@ -33,6 +33,17 @@ export class AnnotationRuntime {
33
33
  needs_frame(): boolean;
34
34
  constructor(settings_json: string);
35
35
  observe_model(model_json: string): void;
36
+ /**
37
+ * Packed world-space XYZ observations in the prepared vertex order. Stale,
38
+ * incomplete or nonfinite observations leave the last valid anchor intact.
39
+ */
40
+ observe_morph_anchor(generation: number, plan_id: number, positions: Float32Array): boolean;
41
+ /**
42
+ * Native geometry identities/versions advance this per-object revision.
43
+ * Returns true when new geometry must be supplied. Retires old plan IDs
44
+ * without changing the region generation, marker IDs or reveal state.
45
+ */
46
+ observe_morph_geometry(generation: number, object_id: number, revision: number, morph_names_json: string): boolean;
36
47
  /**
37
48
  * Native hit observations are [marker id, nearest distance], with infinity for no hit.
38
49
  */
@@ -51,6 +62,12 @@ export class AnnotationRuntime {
51
62
  * tied to this generation; a stale query cannot resurrect cleared markers.
52
63
  */
53
64
  plan_markers(morph_anchors_json: string): string;
65
+ /**
66
+ * Prepare an attachment for this generation from mesh-space geometry.
67
+ * Returns [plan id, vertex indices...] or an empty array for a fallback anchor.
68
+ * Report geometry changes with observe_morph_geometry before preparing replacements.
69
+ */
70
+ prepare_morph_anchor(generation: number, object_id: number, region_name: string, base: Float32Array, morphs: Float32Array, relative: boolean): Uint32Array;
54
71
  revision(): number;
55
72
  set_model(model_json: string): void;
56
73
  snapshot(): string;
@@ -140,6 +157,15 @@ export class NativePlaybackSession {
140
157
  export class RuntimeCore {
141
158
  free(): void;
142
159
  [Symbol.dispose](): void;
160
+ /**
161
+ * Compatibility impulses enter the same continuous state; they do not
162
+ * start an independent clip, reset its phase or replace head history.
163
+ */
164
+ add_hair_response_impulse(horizontal: number, vertical: number): void;
165
+ /**
166
+ * Host supplies elapsed seconds from its existing render clock, independent of clip speed.
167
+ */
168
+ advance_mesh_highlight(delta_seconds: number): string;
143
169
  static au_morph_binding_stride(): number;
144
170
  /**
145
171
  * Begin one host command; its concrete destinations determine which native
@@ -153,16 +179,20 @@ export class RuntimeCore {
153
179
  */
154
180
  build_hair_gravity_clip(name: string, pitch: number, duration_seconds: number, options_json: string): string;
155
181
  /**
156
- * Compile the current live semantic controls into ordinary native tracks.
157
- * The connector captures inherited starts at play time; Rust never ticks
158
- * or interpolates these samples. Empty output relinquishes all live tracks.
182
+ * Advance one character-owned simulation from the renderer's delta and
183
+ * actual blended local head quaternion. Constant additive morph samples
184
+ * are consumed by one persistent native action on its next mixer frame.
185
+ * This does not register a clip or change live AU/viseme/morph controls.
159
186
  */
160
- build_live_clip(name: string, duration_seconds: number): string;
187
+ build_hair_response_clip(name: string, head_quaternion_json: string, dt_seconds: number, options_json: string): string;
161
188
  /**
162
- * Compile relinquished live targets back to their reference values. Run
163
- * this clip with finalPose=release so native ownership ends at completion.
189
+ * Compile the current live semantic controls into ordinary native tracks.
190
+ * `inherit_start` marks timed tracks as continuing from the current pose;
191
+ * the Three adapter resolves it from each live target's own outgoing
192
+ * action (not the mixed pose) at play time. Rust never ticks or
193
+ * interpolates these samples. Empty output relinquishes all live tracks.
164
194
  */
165
- build_live_release_clip(name: string, previous_clip_json: string, duration_seconds: number): string;
195
+ build_live_clip(name: string, duration_seconds: number): string;
166
196
  build_typed_clip(clip_name: string, channels_json: string, options_json: string): string;
167
197
  cleanup_snippet(clip_name: string): boolean;
168
198
  clear(): void;
@@ -214,6 +244,10 @@ export class RuntimeCore {
214
244
  * viseme jaw rotation is applied as an absolute packed frame write.
215
245
  */
216
246
  evaluate_bone_frame_delta(): Float32Array;
247
+ /**
248
+ * Complete versioned snapshot; omitted IDs must have previous preview resources removed.
249
+ */
250
+ evaluate_mesh_highlight_frame(): string;
217
251
  /**
218
252
  * Packed morph FrameDelta rows: `[mesh_id, morph_target_id, value, mode] * N`
219
253
  * Live AU/viseme/direct morph state only — clip playback is host-owned.
@@ -255,6 +289,11 @@ export class RuntimeCore {
255
289
  * adapter fallback. Explicit empty/null mappings remain empty.
256
290
  */
257
291
  get_hair_config_json(): string;
292
+ /**
293
+ * Resolved head role and captured local reference; null leaves ambient
294
+ * hair available without inventing a preset or renderer-side rig mapping.
295
+ */
296
+ get_hair_head_binding_json(): string;
258
297
  get_missing_hair_morph_targets_json(available_json: string): string;
259
298
  /**
260
299
  * Stored direct viseme value, or zero for an unset or out-of-range slot.
@@ -266,6 +305,7 @@ export class RuntimeCore {
266
305
  */
267
306
  get_viseme_jaw_scale(index: number): number;
268
307
  has_left_right_bones(au_id: number): boolean;
308
+ is_hair_response_paused(): boolean;
269
309
  live_command_targets_json(): string;
270
310
  load_animation_clips(clips_json: string): void;
271
311
  /**
@@ -295,7 +335,33 @@ export class RuntimeCore {
295
335
  * Packed rows: `[viseme_index, mesh_id, morph_target_id, weight] * N`
296
336
  */
297
337
  load_viseme_morph_bindings(values: Float32Array): void;
338
+ /**
339
+ * Distance from a slot's current contribution to `destination_json`
340
+ * (`{auId: value}`), measured along profile continuum pairs. Travel is
341
+ * reversed only against an `unfinished` slot. A missing slot is at zero.
342
+ * Returns `{distance, reversal, current}`.
343
+ */
344
+ measure_au_goal(name: string, time: number, weight: number, destination_json: string, unfinished: boolean): string;
298
345
  constructor(viseme_slot_count: number);
346
+ /**
347
+ * One slot's own AU contribution, `{auId: value}`, at the host's native
348
+ * action time and effective weight; `null` when the slot is not readable.
349
+ */
350
+ read_semantic_slot(name: string, time: number, weight: number): string;
351
+ /**
352
+ * Live AU state plus every listed slot's contribution. `slots_json` is
353
+ * `[{name, time, weight}]` for the host's active actions. Returns
354
+ * `{live, animated, total}`; unreadable names are the host's to report.
355
+ */
356
+ read_semantic_state(slots_json: string): string;
357
+ /**
358
+ * Record the semantic AU keys of an admitted AU-curve clip slot. The
359
+ * same-name slot recorded earlier is the predecessor: `predecessor_time`
360
+ * is its native action time (NaN when absent) and `weight_ratio` its
361
+ * effective weight divided by the incoming weight, as for physical
362
+ * inheritance. Only numeric AU curves are kept.
363
+ */
364
+ record_semantic_slot(name: string, curves_json: string, intensity_scale: number, easing: string, predecessor_time: number, weight_ratio: number): void;
299
365
  register_animation_clip(clip_json: string, source: string): void;
300
366
  /**
301
367
  * Release a direct morph override so AU/viseme/mixer ownership can resume.
@@ -312,7 +378,17 @@ export class RuntimeCore {
312
378
  * Release owned morphs through the old renderer binding IDs before rebind.
313
379
  */
314
380
  release_procedural_morph_frame(): Float32Array;
381
+ /**
382
+ * Forget a slot once its native action is released or replaced by a
383
+ * non-curve source. Returns whether a slot existed.
384
+ */
385
+ release_semantic_slot(name: string): boolean;
315
386
  remove_animation_clip(clip_name: string): boolean;
387
+ /**
388
+ * Transient preview request. Names resolve against the configured model in Rust.
389
+ */
390
+ request_mesh_highlight(name?: string | null, color?: number | null, intensity?: number | null): void;
391
+ reset_hair_response(): void;
316
392
  /**
317
393
  * Forget ownership when renderer bindings are discarded. Before replacing
318
394
  * bindings, apply release_procedural_morph_frame through the old IDs.
@@ -324,6 +400,10 @@ export class RuntimeCore {
324
400
  * transforms; the profile resolves which tracks represent head motion.
325
401
  */
326
402
  resolve_hair_motion_json(tracks_json: string, additive: boolean): string;
403
+ /**
404
+ * Apply an in-place strength/easing edit to a running slot.
405
+ */
406
+ restyle_semantic_slot(name: string, intensity_scale: number, easing: string): boolean;
327
407
  set_au(id: number, value: number, balance: number): void;
328
408
  set_au_mix_weight(id: number, weight: number): void;
329
409
  /**
@@ -334,6 +414,11 @@ export class RuntimeCore {
334
414
  set_au_signed(id: number, value: number, balance: number): void;
335
415
  set_continuum(neg_au: number, pos_au: number, value: number, balance: number): void;
336
416
  set_hair_config_json(update_json: string): string;
417
+ /**
418
+ * Suspension intent survives empty mappings, enable changes and dynamics
419
+ * resets. Profile replacement starts a new character configuration.
420
+ */
421
+ set_hair_response_paused(paused: boolean): void;
337
422
  set_mixed_aus(ids: Uint32Array): void;
338
423
  set_morph(morph_name: string, value: number, mesh_names_json: string): number;
339
424
  set_morph_index(morph_index: number, value: number, mesh_names_json: string): number;
@@ -371,6 +456,12 @@ export function annotation_camera_framing_stride(): number;
371
456
 
372
457
  export function annotation_marker_frame_stride(): number;
373
458
 
459
+ /**
460
+ * Final mesh-space attachment vertices as [index, influence] pairs. The same
461
+ * selection is used by AnnotationRuntime; native adapters only evaluate poses.
462
+ */
463
+ export function annotation_morph_anchor_candidates(region_json: string, base: Float32Array, morphs: Float32Array, relative: boolean): Float32Array;
464
+
374
465
  export function annotation_morph_candidates(base: Float32Array, morphs: Float32Array, relative: boolean): Float32Array;
375
466
 
376
467
  export function annotation_morph_center(region_json: string, candidates: Float32Array): Float32Array;
@@ -379,6 +470,12 @@ export function annotation_point_bounds(points: Float32Array): Float32Array;
379
470
 
380
471
  export function annotation_query(operation: string, payload_json: string): string;
381
472
 
473
+ /**
474
+ * Reduce packed [world x, world y, world z, influence] observations without
475
+ * selecting vertices again. Invalid/incomplete observations return no point.
476
+ */
477
+ export function annotation_weighted_anchor(samples: Float32Array): Float32Array;
478
+
382
479
  /**
383
480
  * Build head-pitch gravity hair morph curves.
384
481
  */
@@ -422,6 +519,15 @@ export function core_abi_version(): number;
422
519
 
423
520
  export function create_validation_skeleton_json(template_json: string): string;
424
521
 
522
+ export function decode_legacy_animation(animation_json: string, profile_json: string): string;
523
+
524
+ export function decode_legacy_pose(pose_json: string, profile_json: string): string;
525
+
526
+ /**
527
+ * Decode the supported body-only VRMA subset; rejects unsupported channels.
528
+ */
529
+ export function decode_vrma_animation(bytes: Uint8Array): string;
530
+
425
531
  export function default_hair_color_appearance_json(): string;
426
532
 
427
533
  export function default_hair_physics_config_values(): Float32Array;
@@ -433,6 +539,11 @@ export function default_hair_physics_config_values(): Float32Array;
433
539
  */
434
540
  export function embody_request(request_json: string): string;
435
541
 
542
+ /**
543
+ * Write a standalone glTF 2 GLB with VRMC_vrm_animation 1.0, suitable for .vrma.
544
+ */
545
+ export function encode_vrma_animation(animation_json: string): Uint8Array;
546
+
436
547
  export function extract_humanoid_skeleton_template_json(model_json: string, options_json: string): string;
437
548
 
438
549
  export function extract_model_data_json(model_json: string, clips_json: string): string;
@@ -502,6 +613,11 @@ export function normalize_camera_angle_degrees(angle: number): number;
502
613
 
503
614
  export function normalize_hair_color_appearance_json(value_json: string, fallback_json: string): string;
504
615
 
616
+ /**
617
+ * Convert an explicitly referenced Mixamo rig to normalized VRM humanoid keys.
618
+ */
619
+ export function normalize_mixamo_animation(input_json: string): string;
620
+
505
621
  export function pack_morph_frame_delta(mesh_ids: Uint32Array, morph_target_ids: Uint32Array, values: Float32Array, modes: Uint8Array): Float32Array;
506
622
 
507
623
  export function packed_bone_frame_delta_stride(): number;
@@ -550,6 +666,11 @@ export function resolve_viewport_constrained_line_scale(start_clip: Float32Array
550
666
  */
551
667
  export function resolve_viewport_safe_bounds(label_scale_x: number, label_scale_y: number, projection_x_scale: number, projection_y_scale: number, viewport_width: number, viewport_height: number, edge_padding_px?: number | null): Float32Array;
552
668
 
669
+ /**
670
+ * Convert portable keys to target local rotations/translations without sampling.
671
+ */
672
+ export function retarget_vrma_animation(animation_json: string, target_rig_json: string): string;
673
+
553
674
  /**
554
675
  * Sinusoidal arc leader line points between two world positions.
555
676
  * Returns `(segments + 1) * 3` floats.
@@ -673,65 +794,18 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
673
794
 
674
795
  export interface InitOutput {
675
796
  readonly memory: WebAssembly.Memory;
676
- readonly compose_template_skeleton_fit_transform: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
677
- readonly template_skeleton_fit_transform_stride: () => number;
678
- readonly core_abi_version: () => number;
679
- readonly pack_morph_frame_delta: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
680
- readonly packed_bone_frame_delta_stride: () => number;
681
- readonly packed_morph_frame_delta_stride: () => number;
682
- readonly solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
683
- readonly solve_bilateral_values: (a: number, b: number) => [number, number];
684
- readonly solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
685
- readonly analyze_model_descriptor: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
686
- readonly build_hair_gravity_curves: (a: number, b: number) => [number, number, number, number];
687
- readonly build_hair_idle_curves: (a: number, b: number, c: number) => [number, number, number, number];
688
- readonly build_hair_impulse_curves: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
689
- readonly compile_clip: (a: number, b: number) => [number, number, number, number];
690
- readonly compile_clip_curves: (a: number, b: number) => [number, number, number, number];
691
- readonly extract_model_data_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
692
- readonly get_preset_json: (a: number, b: number) => [number, number, number, number];
693
- readonly has_preset: (a: number, b: number) => number;
694
- readonly list_presets: () => [number, number];
695
- readonly merge_embedded_preset: (a: number, b: number, c: number, d: number) => [number, number, number, number];
696
- readonly merge_preset_profile: (a: number, b: number, c: number, d: number) => [number, number, number, number];
697
- readonly resolve_embedded_profile_view: (a: number, b: number, c: number, d: number) => [number, number, number, number];
698
- readonly resolve_profile_view: (a: number, b: number) => [number, number, number, number];
699
- readonly validate_humanoid_characterization: (a: number, b: number, c: number, d: number) => [number, number, number, number];
700
- readonly validate_profile_model: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
701
- readonly __wbg_annotationlifecycle_free: (a: number, b: number) => void;
702
- readonly annotationlifecycle_command: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
703
- readonly annotationlifecycle_deadline: (a: number) => [number, number];
704
- readonly annotationlifecycle_is_active: (a: number) => number;
705
- readonly annotationlifecycle_new: (a: number, b: number, c: number) => number;
706
- readonly compute_humanoid_skeleton_template_rest_bounds: (a: number, b: number) => [number, number, number, number];
707
- readonly create_validation_skeleton_json: (a: number, b: number) => [number, number, number, number];
708
- readonly extract_humanoid_skeleton_template_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
709
- readonly get_humanoid_skeleton_template_json: (a: number, b: number) => [number, number, number, number];
710
- readonly humanoid_skeleton_template_bone_names: (a: number, b: number) => [number, number, number, number];
711
- readonly list_humanoid_skeleton_templates_json: () => [number, number, number, number];
712
- readonly __wbg_hairphysicssolver_free: (a: number, b: number) => void;
713
797
  readonly __wbg_runtimecore_free: (a: number, b: number) => void;
714
- readonly annotation_bone_vertices: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
715
- readonly annotation_morph_candidates: (a: number, b: number, c: number, d: number, e: number) => [number, number];
716
- readonly annotation_morph_center: (a: number, b: number, c: number, d: number) => [number, number, number, number];
717
- readonly annotation_point_bounds: (a: number, b: number) => [number, number];
718
- readonly annotation_query: (a: number, b: number, c: number, d: number) => [number, number, number, number];
719
- readonly default_hair_physics_config_values: () => [number, number];
720
- readonly hair_config_stride: () => number;
721
- readonly hair_head_state_stride: () => number;
722
- readonly hair_morph_output_stride: () => number;
723
- readonly hair_state_stride: () => number;
724
- readonly hairphysicssolver_get_config: (a: number) => [number, number];
725
- readonly hairphysicssolver_get_state: (a: number) => [number, number];
726
- readonly hairphysicssolver_new: (a: number, b: number) => number;
727
- readonly hairphysicssolver_reset: (a: number) => void;
728
- readonly hairphysicssolver_set_config: (a: number, b: number, c: number) => void;
729
- readonly hairphysicssolver_update: (a: number, b: number, c: number, d: number) => [number, number];
798
+ readonly analyze_mesh_proportions: (a: number, b: number, c: number) => [number, number];
799
+ readonly compose_template_fit_adjustment: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
800
+ readonly mesh_proportions_stride: () => number;
801
+ readonly runtimecore_add_hair_response_impulse: (a: number, b: number, c: number) => [number, number];
802
+ readonly runtimecore_advance_mesh_highlight: (a: number, b: number) => [number, number, number, number];
803
+ readonly runtimecore_au_morph_binding_stride: () => number;
730
804
  readonly runtimecore_begin_live_command: (a: number) => void;
731
805
  readonly runtimecore_build_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
732
806
  readonly runtimecore_build_hair_gravity_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
807
+ readonly runtimecore_build_hair_response_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
733
808
  readonly runtimecore_build_live_clip: (a: number, b: number, c: number, d: number) => [number, number, number, number];
734
- readonly runtimecore_build_live_release_clip: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
735
809
  readonly runtimecore_build_typed_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
736
810
  readonly runtimecore_cleanup_snippet: (a: number, b: number, c: number) => number;
737
811
  readonly runtimecore_clear: (a: number) => void;
@@ -742,6 +816,7 @@ export interface InitOutput {
742
816
  readonly runtimecore_evaluate_active_bone_frame: (a: number) => [number, number];
743
817
  readonly runtimecore_evaluate_active_morph_frame: (a: number) => [number, number];
744
818
  readonly runtimecore_evaluate_bone_frame_delta: (a: number) => [number, number];
819
+ readonly runtimecore_evaluate_mesh_highlight_frame: (a: number) => [number, number, number, number];
745
820
  readonly runtimecore_evaluate_morph_frame_delta: (a: number) => [number, number];
746
821
  readonly runtimecore_evaluate_procedural_bone_frame: (a: number) => [number, number];
747
822
  readonly runtimecore_evaluate_procedural_morph_frame: (a: number) => [number, number];
@@ -753,10 +828,12 @@ export interface InitOutput {
753
828
  readonly runtimecore_get_au_mix_weight: (a: number, b: number) => number;
754
829
  readonly runtimecore_get_continuum: (a: number, b: number, c: number) => number;
755
830
  readonly runtimecore_get_hair_config_json: (a: number) => [number, number, number, number];
831
+ readonly runtimecore_get_hair_head_binding_json: (a: number) => [number, number, number, number];
756
832
  readonly runtimecore_get_missing_hair_morph_targets_json: (a: number, b: number, c: number) => [number, number, number, number];
757
833
  readonly runtimecore_get_viseme: (a: number, b: number) => number;
758
834
  readonly runtimecore_get_viseme_jaw_scale: (a: number, b: number) => number;
759
835
  readonly runtimecore_has_left_right_bones: (a: number, b: number) => number;
836
+ readonly runtimecore_is_hair_response_paused: (a: number) => number;
760
837
  readonly runtimecore_live_command_targets_json: (a: number) => [number, number];
761
838
  readonly runtimecore_load_animation_clips: (a: number, b: number, c: number) => [number, number];
762
839
  readonly runtimecore_load_au_morph_bindings: (a: number, b: number, c: number) => void;
@@ -766,37 +843,41 @@ export interface InitOutput {
766
843
  readonly runtimecore_load_jaw_binding: (a: number, b: number, c: number) => void;
767
844
  readonly runtimecore_load_viseme_jaw_amounts: (a: number, b: number, c: number) => void;
768
845
  readonly runtimecore_load_viseme_morph_bindings: (a: number, b: number, c: number) => void;
846
+ readonly runtimecore_measure_au_goal: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
769
847
  readonly runtimecore_new: (a: number) => number;
848
+ readonly runtimecore_read_semantic_slot: (a: number, b: number, c: number, d: number, e: number) => [number, number];
849
+ readonly runtimecore_read_semantic_state: (a: number, b: number, c: number) => [number, number, number, number];
850
+ readonly runtimecore_record_semantic_slot: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
770
851
  readonly runtimecore_register_animation_clip: (a: number, b: number, c: number, d: number, e: number) => [number, number];
771
852
  readonly runtimecore_release_morph: (a: number, b: number, c: number, d: number, e: number) => number;
772
853
  readonly runtimecore_release_morph_index: (a: number, b: number, c: number, d: number) => number;
773
854
  readonly runtimecore_release_procedural_morph_frame: (a: number) => [number, number];
855
+ readonly runtimecore_release_semantic_slot: (a: number, b: number, c: number) => number;
856
+ readonly runtimecore_request_mesh_highlight: (a: number, b: number, c: number, d: number, e: number) => void;
857
+ readonly runtimecore_reset_hair_response: (a: number) => void;
774
858
  readonly runtimecore_reset_procedural_frame_tracking: (a: number) => void;
775
859
  readonly runtimecore_resolve_hair_motion_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
860
+ readonly runtimecore_restyle_semantic_slot: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
776
861
  readonly runtimecore_set_au: (a: number, b: number, c: number, d: number) => void;
777
862
  readonly runtimecore_set_au_mix_weight: (a: number, b: number, c: number) => void;
778
863
  readonly runtimecore_set_au_signed: (a: number, b: number, c: number, d: number) => void;
779
864
  readonly runtimecore_set_continuum: (a: number, b: number, c: number, d: number, e: number) => void;
780
865
  readonly runtimecore_set_hair_config_json: (a: number, b: number, c: number) => [number, number, number, number];
866
+ readonly runtimecore_set_hair_response_paused: (a: number, b: number) => void;
781
867
  readonly runtimecore_set_mixed_aus: (a: number, b: number, c: number) => void;
782
868
  readonly runtimecore_set_morph: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
783
869
  readonly runtimecore_set_morph_index: (a: number, b: number, c: number, d: number, e: number) => number;
784
870
  readonly runtimecore_set_viseme: (a: number, b: number, c: number) => void;
785
871
  readonly runtimecore_set_viseme_jaw_scale: (a: number, b: number, c: number) => void;
786
872
  readonly runtimecore_set_viseme_slot_count: (a: number, b: number) => void;
787
- readonly runtimecore_viseme_slot_index: (a: number, b: number, c: number) => number;
788
- readonly validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
789
- readonly runtimecore_au_morph_binding_stride: () => number;
790
873
  readonly runtimecore_viseme_morph_binding_stride: () => number;
874
+ readonly runtimecore_viseme_slot_index: (a: number, b: number, c: number) => number;
875
+ readonly solve_template_skeleton_fit: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
876
+ readonly template_skeleton_fit_solution_stride: () => number;
791
877
  readonly runtimecore_remove_animation_clip: (a: number, b: number, c: number) => number;
792
- readonly analyze_mesh_proportions: (a: number, b: number, c: number) => [number, number];
793
- readonly compose_template_fit_adjustment: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
794
- readonly default_hair_color_appearance_json: () => [number, number, number, number];
795
- readonly hair_color_presets_json: () => [number, number, number, number];
878
+ readonly compose_template_skeleton_fit_transform: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
796
879
  readonly marker_endpoint_stride: () => number;
797
880
  readonly marker_visibility_animation_factors: (a: number, b: number) => [number, number];
798
- readonly mesh_proportions_stride: () => number;
799
- readonly normalize_hair_color_appearance_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
800
881
  readonly passes_marker_camera_angle_gate: (a: number, b: number, c: number) => number;
801
882
  readonly resolve_viewport_constrained_line_scale: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
802
883
  readonly resolve_viewport_safe_bounds: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
@@ -804,33 +885,11 @@ export interface InitOutput {
804
885
  readonly sample_marker_bezier_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
805
886
  readonly separate_overlapping_marker_endpoints: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
806
887
  readonly should_show_marker: (a: number, b: number, c: number, d: number) => number;
807
- readonly solve_template_skeleton_fit: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
808
- readonly template_skeleton_fit_solution_stride: () => number;
888
+ readonly template_skeleton_fit_transform_stride: () => number;
809
889
  readonly marker_visibility_factors_stride: () => number;
810
- readonly __wbg_annotationruntime_free: (a: number, b: number) => void;
890
+ readonly analyze_model_descriptor: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
891
+ readonly extract_model_data_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
811
892
  readonly __wbg_nativeplaybacksession_free: (a: number, b: number) => void;
812
- readonly annotation_marker_frame_stride: () => number;
813
- readonly annotationruntime_camera_frame: (a: number, b: number, c: number, d: number) => [number, number];
814
- readonly annotationruntime_command: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
815
- readonly annotationruntime_completed_camera_request: (a: number) => number;
816
- readonly annotationruntime_dispose: (a: number) => void;
817
- readonly annotationruntime_finish_markers: (a: number, b: number) => void;
818
- readonly annotationruntime_generation: (a: number) => number;
819
- readonly annotationruntime_is_current: (a: number, b: number) => number;
820
- readonly annotationruntime_label_metrics: (a: number, b: number, c: number, d: number) => void;
821
- readonly annotationruntime_marker_frame: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
822
- readonly annotationruntime_needs_frame: (a: number) => number;
823
- readonly annotationruntime_new: (a: number, b: number) => [number, number, number];
824
- readonly annotationruntime_observe_model: (a: number, b: number, c: number) => [number, number];
825
- readonly annotationruntime_observe_occlusion: (a: number, b: number, c: number) => void;
826
- readonly annotationruntime_observe_transforms: (a: number, b: number, c: number) => void;
827
- readonly annotationruntime_occlusion_queries: (a: number) => [number, number];
828
- readonly annotationruntime_plan_markers: (a: number, b: number, c: number) => [number, number, number, number];
829
- readonly annotationruntime_revision: (a: number) => number;
830
- readonly annotationruntime_set_model: (a: number, b: number, c: number) => [number, number];
831
- readonly annotationruntime_snapshot: (a: number) => [number, number];
832
- readonly annotationruntime_surface_result: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
833
- readonly annotationruntime_tracked_objects: (a: number) => [number, number];
834
893
  readonly nativeplaybacksession_control: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
835
894
  readonly nativeplaybacksession_dispose: (a: number) => [number, number, number, number];
836
895
  readonly nativeplaybacksession_new: () => [number, number, number];
@@ -838,16 +897,53 @@ export interface InitOutput {
838
897
  readonly nativeplaybacksession_play: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
839
898
  readonly nativeplaybacksession_rebind: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
840
899
  readonly nativeplaybacksession_replace_clip: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
900
+ readonly build_hair_gravity_curves: (a: number, b: number) => [number, number, number, number];
901
+ readonly build_hair_idle_curves: (a: number, b: number, c: number) => [number, number, number, number];
902
+ readonly build_hair_impulse_curves: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
903
+ readonly compile_clip: (a: number, b: number) => [number, number, number, number];
904
+ readonly compile_clip_curves: (a: number, b: number) => [number, number, number, number];
905
+ readonly compute_humanoid_skeleton_template_rest_bounds: (a: number, b: number) => [number, number, number, number];
906
+ readonly create_validation_skeleton_json: (a: number, b: number) => [number, number, number, number];
907
+ readonly extract_humanoid_skeleton_template_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
908
+ readonly get_humanoid_skeleton_template_json: (a: number, b: number) => [number, number, number, number];
909
+ readonly get_preset_json: (a: number, b: number) => [number, number, number, number];
910
+ readonly has_preset: (a: number, b: number) => number;
911
+ readonly humanoid_skeleton_template_bone_names: (a: number, b: number) => [number, number, number, number];
912
+ readonly list_humanoid_skeleton_templates_json: () => [number, number, number, number];
913
+ readonly list_presets: () => [number, number];
914
+ readonly merge_embedded_preset: (a: number, b: number, c: number, d: number) => [number, number, number, number];
915
+ readonly merge_preset_profile: (a: number, b: number, c: number, d: number) => [number, number, number, number];
916
+ readonly resolve_embedded_profile_view: (a: number, b: number, c: number, d: number) => [number, number, number, number];
917
+ readonly resolve_profile_view: (a: number, b: number) => [number, number, number, number];
918
+ readonly validate_humanoid_characterization: (a: number, b: number, c: number, d: number) => [number, number, number, number];
919
+ readonly validate_profile_model: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
920
+ readonly __wbg_annotationlifecycle_free: (a: number, b: number) => void;
841
921
  readonly __wbg_cameraflight_free: (a: number, b: number) => void;
842
922
  readonly __wbg_cameraorbit_free: (a: number, b: number) => void;
923
+ readonly __wbg_hairphysicssolver_free: (a: number, b: number) => void;
843
924
  readonly annotation_camera_framing_stride: () => number;
925
+ readonly annotationlifecycle_command: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
926
+ readonly annotationlifecycle_deadline: (a: number) => [number, number];
927
+ readonly annotationlifecycle_is_active: (a: number) => number;
928
+ readonly annotationlifecycle_new: (a: number, b: number, c: number) => number;
844
929
  readonly cameraflight_duration_ms: (a: number) => number;
845
930
  readonly cameraflight_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
846
931
  readonly cameraflight_sample: (a: number, b: number) => [number, number];
847
932
  readonly cameraorbit_duration_ms: (a: number) => number;
848
933
  readonly cameraorbit_new: (a: number, b: number, c: number, d: number, e: number) => number;
849
934
  readonly cameraorbit_sample: (a: number, b: number) => [number, number];
935
+ readonly default_hair_physics_config_values: () => [number, number];
850
936
  readonly focus_padding_factor: (a: number, b: number, c: number, d: number) => number;
937
+ readonly hair_config_stride: () => number;
938
+ readonly hair_head_state_stride: () => number;
939
+ readonly hair_morph_output_stride: () => number;
940
+ readonly hair_state_stride: () => number;
941
+ readonly hairphysicssolver_get_config: (a: number) => [number, number];
942
+ readonly hairphysicssolver_get_state: (a: number) => [number, number];
943
+ readonly hairphysicssolver_new: (a: number, b: number) => number;
944
+ readonly hairphysicssolver_reset: (a: number) => void;
945
+ readonly hairphysicssolver_set_config: (a: number, b: number, c: number) => void;
946
+ readonly hairphysicssolver_update: (a: number, b: number, c: number, d: number) => [number, number];
851
947
  readonly normalize_camera_angle_degrees: (a: number) => number;
852
948
  readonly resolve_auto_closeup_angle: (a: number, b: number, c: number, d: number, e: number) => number;
853
949
  readonly resolve_focus_camera_direction: (a: number, b: number, c: number, d: number, e: number) => [number, number];
@@ -855,6 +951,56 @@ export interface InitOutput {
855
951
  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];
856
952
  readonly world_direction_for_camera_angle: (a: number, b: number, c: number) => [number, number];
857
953
  readonly camera_flight_sample_stride: () => number;
954
+ readonly default_hair_color_appearance_json: () => [number, number, number, number];
955
+ readonly hair_color_presets_json: () => [number, number, number, number];
956
+ readonly normalize_hair_color_appearance_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
957
+ readonly decode_legacy_animation: (a: number, b: number, c: number, d: number) => [number, number, number, number];
958
+ readonly decode_legacy_pose: (a: number, b: number, c: number, d: number) => [number, number, number, number];
959
+ readonly decode_vrma_animation: (a: number, b: number) => [number, number, number, number];
960
+ readonly encode_vrma_animation: (a: number, b: number) => [number, number, number, number];
961
+ readonly normalize_mixamo_animation: (a: number, b: number) => [number, number, number, number];
962
+ readonly retarget_vrma_animation: (a: number, b: number, c: number, d: number) => [number, number, number, number];
963
+ readonly __wbg_annotationruntime_free: (a: number, b: number) => void;
964
+ readonly annotation_bone_vertices: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
965
+ readonly annotation_marker_frame_stride: () => number;
966
+ readonly annotation_morph_anchor_candidates: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
967
+ readonly annotation_morph_candidates: (a: number, b: number, c: number, d: number, e: number) => [number, number];
968
+ readonly annotation_morph_center: (a: number, b: number, c: number, d: number) => [number, number, number, number];
969
+ readonly annotation_point_bounds: (a: number, b: number) => [number, number];
970
+ readonly annotation_query: (a: number, b: number, c: number, d: number) => [number, number, number, number];
971
+ readonly annotation_weighted_anchor: (a: number, b: number) => [number, number];
972
+ readonly annotationruntime_camera_frame: (a: number, b: number, c: number, d: number) => [number, number];
973
+ readonly annotationruntime_command: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
974
+ readonly annotationruntime_completed_camera_request: (a: number) => number;
975
+ readonly annotationruntime_dispose: (a: number) => void;
976
+ readonly annotationruntime_finish_markers: (a: number, b: number) => void;
977
+ readonly annotationruntime_generation: (a: number) => number;
978
+ readonly annotationruntime_is_current: (a: number, b: number) => number;
979
+ readonly annotationruntime_label_metrics: (a: number, b: number, c: number, d: number) => void;
980
+ readonly annotationruntime_marker_frame: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
981
+ readonly annotationruntime_needs_frame: (a: number) => number;
982
+ readonly annotationruntime_new: (a: number, b: number) => [number, number, number];
983
+ readonly annotationruntime_observe_model: (a: number, b: number, c: number) => [number, number];
984
+ readonly annotationruntime_observe_morph_anchor: (a: number, b: number, c: number, d: number, e: number) => number;
985
+ readonly annotationruntime_observe_morph_geometry: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
986
+ readonly annotationruntime_observe_occlusion: (a: number, b: number, c: number) => void;
987
+ readonly annotationruntime_observe_transforms: (a: number, b: number, c: number) => void;
988
+ readonly annotationruntime_occlusion_queries: (a: number) => [number, number];
989
+ readonly annotationruntime_plan_markers: (a: number, b: number, c: number) => [number, number, number, number];
990
+ readonly annotationruntime_prepare_morph_anchor: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
991
+ readonly annotationruntime_revision: (a: number) => number;
992
+ readonly annotationruntime_set_model: (a: number, b: number, c: number) => [number, number];
993
+ readonly annotationruntime_snapshot: (a: number) => [number, number];
994
+ readonly annotationruntime_surface_result: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
995
+ readonly annotationruntime_tracked_objects: (a: number) => [number, number];
996
+ readonly core_abi_version: () => number;
997
+ readonly pack_morph_frame_delta: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
998
+ readonly packed_bone_frame_delta_stride: () => number;
999
+ readonly packed_morph_frame_delta_stride: () => number;
1000
+ readonly solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
1001
+ readonly solve_bilateral_values: (a: number, b: number) => [number, number];
1002
+ readonly solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
1003
+ readonly validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
858
1004
  readonly embody_request: (a: number, b: number) => [number, number, number, number];
859
1005
  readonly __wbindgen_externrefs: WebAssembly.Table;
860
1006
  readonly __wbindgen_malloc: (a: number, b: number) => number;