@lovelace_lol/embody 0.0.1

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 (98) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2411 -0
  3. package/dist/authoring/boneAuthoring.d.ts +132 -0
  4. package/dist/camera/annotationCameraAngles.d.ts +28 -0
  5. package/dist/camera/cameraRelativeGaze.d.ts +15 -0
  6. package/dist/camera/rustAnnotationCameraCore.d.ts +136 -0
  7. package/dist/cljs.cjs +362 -0
  8. package/dist/cljs.cjs.map +1 -0
  9. package/dist/cljs.d.ts +5 -0
  10. package/dist/cljs.js +359 -0
  11. package/dist/cljs.js.map +1 -0
  12. package/dist/core/TsClipCompiler.d.ts +51 -0
  13. package/dist/core/TsRuntimeCore.d.ts +40 -0
  14. package/dist/core/WasmRuntimeCore.d.ts +55 -0
  15. package/dist/core/compositeAxis.d.ts +4 -0
  16. package/dist/core/contracts/abi.d.ts +70 -0
  17. package/dist/core/contracts/clip.d.ts +44 -0
  18. package/dist/core/contracts/frame.d.ts +27 -0
  19. package/dist/core/contracts/host.d.ts +28 -0
  20. package/dist/core/contracts/ids.d.ts +15 -0
  21. package/dist/core/contracts/index.d.ts +10 -0
  22. package/dist/core/contracts/model.d.ts +31 -0
  23. package/dist/core/contracts/primitives.d.ts +17 -0
  24. package/dist/core/contracts/skeletonFit.d.ts +41 -0
  25. package/dist/core/index.d.ts +8 -0
  26. package/dist/core/types.d.ts +472 -0
  27. package/dist/core.cjs +1065 -0
  28. package/dist/core.cjs.map +1 -0
  29. package/dist/core.js +1040 -0
  30. package/dist/core.js.map +1 -0
  31. package/dist/engines/three/Embody.d.ts +373 -0
  32. package/dist/engines/three/ThreeAnimationRuntime.d.ts +203 -0
  33. package/dist/engines/three/ThreeClipAdapter.d.ts +24 -0
  34. package/dist/engines/three/ThreeFrameApplier.d.ts +68 -0
  35. package/dist/engines/three/ThreeModelInspector.d.ts +54 -0
  36. package/dist/engines/three/bakedClipPartitioning.d.ts +16 -0
  37. package/dist/engines/three/balanceUtils.d.ts +3 -0
  38. package/dist/engines/three/characterHost.d.ts +80 -0
  39. package/dist/engines/three/characterScene.d.ts +98 -0
  40. package/dist/engines/three/hair/HairPhysicsController.d.ts +124 -0
  41. package/dist/engines/three/index.d.ts +20 -0
  42. package/dist/engines/three/modelLoader.d.ts +61 -0
  43. package/dist/engines/three/profileTestScene.d.ts +52 -0
  44. package/dist/engines/three/types.d.ts +20 -0
  45. package/dist/hair/appearance.d.ts +29 -0
  46. package/dist/index.cjs +15431 -0
  47. package/dist/index.cjs.map +1 -0
  48. package/dist/index.d.ts +100 -0
  49. package/dist/index.js +15141 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/interfaces/Animation.d.ts +315 -0
  52. package/dist/interfaces/EmbodyRuntime.d.ts +90 -0
  53. package/dist/interfaces/Hair.d.ts +181 -0
  54. package/dist/interfaces/HairPhysics.d.ts +90 -0
  55. package/dist/interfaces/index.d.ts +11 -0
  56. package/dist/mappings/extendPresetWithProfile.d.ts +17 -0
  57. package/dist/mappings/types.d.ts +309 -0
  58. package/dist/mappings/visemeSystem.d.ts +26 -0
  59. package/dist/physics/HairPhysics.d.ts +86 -0
  60. package/dist/physics/RustHairPhysics.d.ts +18 -0
  61. package/dist/physics/index.d.ts +6 -0
  62. package/dist/preset.cjs +2000 -0
  63. package/dist/preset.cjs.map +1 -0
  64. package/dist/preset.js +1997 -0
  65. package/dist/preset.js.map +1 -0
  66. package/dist/presets/bettaFish.d.ts +328 -0
  67. package/dist/presets/cc4.d.ts +145 -0
  68. package/dist/presets/index.d.ts +27 -0
  69. package/dist/profiles/resolveProfileConfig.d.ts +36 -0
  70. package/dist/profiles/types.d.ts +118 -0
  71. package/dist/regions/normalizeRegionTree.d.ts +6 -0
  72. package/dist/regions/regionMapping.d.ts +17 -0
  73. package/dist/regions/types.d.ts +122 -0
  74. package/dist/skeletonTemplates/humanoidSkeletonTemplates.d.ts +32 -0
  75. package/dist/test/setupWasm.d.ts +1 -0
  76. package/dist/three.cjs +10115 -0
  77. package/dist/three.cjs.map +1 -0
  78. package/dist/three.js +10086 -0
  79. package/dist/three.js.map +1 -0
  80. package/dist/validation/analyzeModel.d.ts +68 -0
  81. package/dist/validation/extractModelData.d.ts +90 -0
  82. package/dist/validation/generateMappingCorrections.d.ts +32 -0
  83. package/dist/validation/geometryHelpers.d.ts +66 -0
  84. package/dist/validation/types.d.ts +10 -0
  85. package/dist/validation/validateMappings.d.ts +77 -0
  86. package/dist/wasm/LICENSE +21 -0
  87. package/dist/wasm/README.md +72 -0
  88. package/dist/wasm/embody_wasm.d.ts +531 -0
  89. package/dist/wasm/embody_wasm.js +1635 -0
  90. package/dist/wasm/embody_wasm_bg.wasm +0 -0
  91. package/dist/wasm/embody_wasm_bg.wasm.d.ts +107 -0
  92. package/dist/wasm.cjs +302 -0
  93. package/dist/wasm.cjs.map +1 -0
  94. package/dist/wasm.d.ts +43 -0
  95. package/dist/wasm.js +268 -0
  96. package/dist/wasm.js.map +1 -0
  97. package/dist/wasmTypes.d.ts +121 -0
  98. package/package.json +99 -0
Binary file
@@ -0,0 +1,107 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export const __wbg_runtimecore_free: (a: number, b: number) => void;
5
+ export const runtimecore_active_transition_count: (a: number) => number;
6
+ export const runtimecore_au_morph_binding_stride: () => number;
7
+ export const runtimecore_clear: (a: number) => void;
8
+ export const runtimecore_clear_transitions: (a: number) => void;
9
+ export const runtimecore_configure: (a: number, b: number, c: number, d: number, e: number) => [number, number];
10
+ export const runtimecore_configure_exact_profile: (a: number, b: number, c: number, d: number, e: number) => [number, number];
11
+ export const runtimecore_configure_with_preset: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
12
+ export const runtimecore_evaluate_bone_frame_delta: (a: number) => [number, number];
13
+ export const runtimecore_evaluate_morph_frame_delta: (a: number) => [number, number];
14
+ export const runtimecore_get_au: (a: number, b: number) => number;
15
+ export const runtimecore_get_continuum: (a: number, b: number, c: number) => number;
16
+ export const runtimecore_load_au_morph_bindings: (a: number, b: number, c: number) => void;
17
+ export const runtimecore_load_bone_rest_transforms: (a: number, b: number, c: number) => void;
18
+ export const runtimecore_load_bone_translations: (a: number, b: number, c: number) => void;
19
+ export const runtimecore_load_composite_axes: (a: number, b: number, c: number) => void;
20
+ export const runtimecore_load_jaw_binding: (a: number, b: number, c: number) => void;
21
+ export const runtimecore_load_viseme_jaw_amounts: (a: number, b: number, c: number) => void;
22
+ export const runtimecore_load_viseme_morph_bindings: (a: number, b: number, c: number) => void;
23
+ export const runtimecore_new: (a: number) => number;
24
+ export const runtimecore_set_au: (a: number, b: number, c: number, d: number) => void;
25
+ export const runtimecore_set_au_mix_weight: (a: number, b: number, c: number) => void;
26
+ export const runtimecore_set_au_signed: (a: number, b: number, c: number, d: number) => void;
27
+ export const runtimecore_set_continuum: (a: number, b: number, c: number, d: number, e: number) => void;
28
+ export const runtimecore_set_mixed_aus: (a: number, b: number, c: number) => void;
29
+ export const runtimecore_set_viseme: (a: number, b: number, c: number) => void;
30
+ export const runtimecore_set_viseme_jaw_scale: (a: number, b: number, c: number) => void;
31
+ export const runtimecore_set_viseme_slot_count: (a: number, b: number) => void;
32
+ export const runtimecore_transition_au: (a: number, b: number, c: number, d: number, e: number) => void;
33
+ export const runtimecore_transition_viseme: (a: number, b: number, c: number, d: number, e: number) => void;
34
+ export const runtimecore_update: (a: number, b: number) => number;
35
+ export const runtimecore_viseme_morph_binding_stride: () => number;
36
+ export const runtimecore_viseme_slot_index: (a: number, b: number, c: number) => number;
37
+ export const build_hair_gravity_curves: (a: number, b: number) => [number, number, number, number];
38
+ export const build_hair_idle_curves: (a: number, b: number, c: number) => [number, number, number, number];
39
+ export const build_hair_impulse_curves: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
40
+ export const compile_clip: (a: number, b: number) => [number, number, number, number];
41
+ export const compile_clip_curves: (a: number, b: number) => [number, number, number, number];
42
+ export const get_preset_json: (a: number, b: number) => [number, number, number, number];
43
+ export const has_preset: (a: number, b: number) => number;
44
+ export const list_presets: () => [number, number];
45
+ export const merge_embedded_preset: (a: number, b: number, c: number, d: number) => [number, number, number, number];
46
+ export const merge_preset_profile: (a: number, b: number, c: number, d: number) => [number, number, number, number];
47
+ export const validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
48
+ export const analyze_mesh_proportions: (a: number, b: number, c: number) => [number, number];
49
+ export const compose_template_fit_adjustment: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
50
+ export const marker_endpoint_stride: () => number;
51
+ export const marker_visibility_animation_factors: (a: number, b: number) => [number, number];
52
+ export const mesh_proportions_stride: () => number;
53
+ export const passes_marker_camera_angle_gate: (a: number, b: number, c: number) => number;
54
+ export const resolve_viewport_constrained_line_scale: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
55
+ export const resolve_viewport_safe_bounds: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
56
+ export const sample_marker_arc_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
57
+ export const sample_marker_bezier_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
58
+ export const separate_overlapping_marker_endpoints: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
59
+ export const should_show_marker: (a: number, b: number, c: number, d: number) => number;
60
+ export const solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
61
+ export const solve_bilateral_values: (a: number, b: number) => [number, number];
62
+ export const solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
63
+ export const solve_template_skeleton_fit: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
64
+ export const template_skeleton_fit_solution_stride: () => number;
65
+ export const marker_visibility_factors_stride: () => number;
66
+ export const core_abi_version: () => number;
67
+ export const pack_morph_frame_delta: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
68
+ export const packed_bone_frame_delta_stride: () => number;
69
+ export const packed_morph_frame_delta_stride: () => number;
70
+ export const __wbg_cameraflight_free: (a: number, b: number) => void;
71
+ export const __wbg_cameraorbit_free: (a: number, b: number) => void;
72
+ export const __wbg_hairphysicssolver_free: (a: number, b: number) => void;
73
+ export const annotation_camera_framing_stride: () => number;
74
+ export const cameraflight_duration_ms: (a: number) => number;
75
+ export const cameraflight_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
76
+ export const cameraflight_sample: (a: number, b: number) => [number, number];
77
+ export const cameraorbit_duration_ms: (a: number) => number;
78
+ export const cameraorbit_new: (a: number, b: number, c: number, d: number, e: number) => number;
79
+ export const cameraorbit_sample: (a: number, b: number) => [number, number];
80
+ export const compose_template_skeleton_fit_transform: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
81
+ export const default_hair_physics_config_values: () => [number, number];
82
+ export const focus_padding_factor: (a: number, b: number, c: number, d: number) => number;
83
+ export const hair_config_stride: () => number;
84
+ export const hair_head_state_stride: () => number;
85
+ export const hair_morph_output_stride: () => number;
86
+ export const hair_state_stride: () => number;
87
+ export const hairphysicssolver_get_config: (a: number) => [number, number];
88
+ export const hairphysicssolver_get_state: (a: number) => [number, number];
89
+ export const hairphysicssolver_new: (a: number, b: number) => number;
90
+ export const hairphysicssolver_reset: (a: number) => void;
91
+ export const hairphysicssolver_set_config: (a: number, b: number, c: number) => void;
92
+ export const hairphysicssolver_update: (a: number, b: number, c: number, d: number) => [number, number];
93
+ export const normalize_camera_angle_degrees: (a: number) => number;
94
+ export const resolve_auto_closeup_angle: (a: number, b: number, c: number, d: number, e: number) => number;
95
+ export const resolve_focus_camera_direction: (a: number, b: number, c: number, d: number, e: number) => [number, number];
96
+ export const 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];
97
+ export const 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];
98
+ export const world_direction_for_camera_angle: (a: number, b: number, c: number) => [number, number];
99
+ export const camera_flight_sample_stride: () => number;
100
+ export const template_skeleton_fit_transform_stride: () => number;
101
+ export const __wbindgen_externrefs: WebAssembly.Table;
102
+ export const __wbindgen_malloc: (a: number, b: number) => number;
103
+ export const __wbindgen_free: (a: number, b: number, c: number) => void;
104
+ export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
105
+ export const __externref_table_dealloc: (a: number) => void;
106
+ export const __externref_drop_slice: (a: number, b: number) => void;
107
+ export const __wbindgen_start: () => void;
package/dist/wasm.cjs ADDED
@@ -0,0 +1,302 @@
1
+ 'use strict';
2
+
3
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
4
+ // src/core/contracts/abi.ts
5
+ var EMBODY_CORE_ABI_VERSION = 1;
6
+ var PACKED_MORPH_FRAME_DELTA_STRIDE = 4;
7
+ var PACKED_MORPH_FRAME_DELTA_FIELDS = [
8
+ "meshId",
9
+ "morphTargetId",
10
+ "value",
11
+ "mode"
12
+ ];
13
+ var PACKED_BONE_FRAME_DELTA_STRIDE = 9;
14
+ var PACKED_BONE_FRAME_DELTA_FIELDS = [
15
+ "boneId",
16
+ "positionX",
17
+ "positionY",
18
+ "positionZ",
19
+ "rotationX",
20
+ "rotationY",
21
+ "rotationZ",
22
+ "rotationW",
23
+ "flags"
24
+ ];
25
+ var HAIR_CONFIG_STRIDE = 11;
26
+ var HAIR_STATE_STRIDE = 4;
27
+ var HAIR_HEAD_STATE_STRIDE = 5;
28
+ var HAIR_MORPH_OUTPUT_STRIDE = 6;
29
+ var TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE = 4;
30
+ var MESH_PROPORTIONS_STRIDE = 16;
31
+ var TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE = 10;
32
+ var ANNOTATION_CAMERA_FRAMING_STRIDE = 7;
33
+ var CAMERA_FLIGHT_SAMPLE_STRIDE = 7;
34
+ var MARKER_VISIBILITY_FACTORS_STRIDE = 3;
35
+ var MARKER_ENDPOINT_STRIDE = 3;
36
+ var HAIR_CONFIG_FIELDS = [
37
+ "mass",
38
+ "stiffness",
39
+ "damping",
40
+ "gravity",
41
+ "headInfluence",
42
+ "windEnabled",
43
+ "windStrength",
44
+ "windDirectionX",
45
+ "windDirectionZ",
46
+ "windTurbulence",
47
+ "windFrequency"
48
+ ];
49
+ var HAIR_STATE_FIELDS = ["x", "z", "vx", "vz"];
50
+ var HAIR_HEAD_STATE_FIELDS = ["yaw", "pitch", "roll", "yawVelocity", "pitchVelocity"];
51
+ var HAIR_MORPH_OUTPUT_FIELDS = [
52
+ "L_Hair_Left",
53
+ "L_Hair_Right",
54
+ "L_Hair_Front",
55
+ "R_Hair_Left",
56
+ "R_Hair_Right",
57
+ "R_Hair_Front"
58
+ ];
59
+ var TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS = [
60
+ "scale",
61
+ "translationX",
62
+ "translationY",
63
+ "translationZ"
64
+ ];
65
+ var MESH_PROPORTIONS_FIELDS = [
66
+ "minX",
67
+ "minY",
68
+ "minZ",
69
+ "maxX",
70
+ "maxY",
71
+ "maxZ",
72
+ "centerX",
73
+ "centerY",
74
+ "centerZ",
75
+ "spanX",
76
+ "spanY",
77
+ "spanZ",
78
+ "verticalHeight",
79
+ "crossAxisWideSpan",
80
+ "crossAxisNarrowSpan",
81
+ "humanoidLikelihood"
82
+ ];
83
+ var TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS = [
84
+ "scale",
85
+ "translationX",
86
+ "translationY",
87
+ "translationZ",
88
+ "confidence",
89
+ "meshHeight",
90
+ "templateHeight",
91
+ "meshCrossAxisWideSpan",
92
+ "templateCrossAxisWideSpan",
93
+ "status"
94
+ ];
95
+ var ANNOTATION_CAMERA_FRAMING_FIELDS = [
96
+ "positionX",
97
+ "positionY",
98
+ "positionZ",
99
+ "targetX",
100
+ "targetY",
101
+ "targetZ",
102
+ "distance"
103
+ ];
104
+ var CAMERA_FLIGHT_SAMPLE_FIELDS = [
105
+ "positionX",
106
+ "positionY",
107
+ "positionZ",
108
+ "targetX",
109
+ "targetY",
110
+ "targetZ",
111
+ "done"
112
+ ];
113
+ var MARKER_VISIBILITY_FACTORS_FIELDS = [
114
+ "itemOpacityFactor",
115
+ "labelScaleFactor",
116
+ "lineOpacityFactor"
117
+ ];
118
+ var MARKER_ENDPOINT_FIELDS = ["x", "y", "z"];
119
+
120
+ // src/wasm.ts
121
+ var EMBODY_CORE_ABI_VERSION2 = EMBODY_CORE_ABI_VERSION;
122
+ var PACKED_MORPH_FRAME_DELTA_STRIDE2 = PACKED_MORPH_FRAME_DELTA_STRIDE;
123
+ var PACKED_MORPH_FRAME_DELTA_FIELDS2 = PACKED_MORPH_FRAME_DELTA_FIELDS;
124
+ var PACKED_BONE_FRAME_DELTA_STRIDE2 = PACKED_BONE_FRAME_DELTA_STRIDE;
125
+ var PACKED_BONE_FRAME_DELTA_FIELDS2 = PACKED_BONE_FRAME_DELTA_FIELDS;
126
+ var HAIR_CONFIG_STRIDE2 = HAIR_CONFIG_STRIDE;
127
+ var HAIR_CONFIG_FIELDS2 = HAIR_CONFIG_FIELDS;
128
+ var HAIR_STATE_STRIDE2 = HAIR_STATE_STRIDE;
129
+ var HAIR_STATE_FIELDS2 = HAIR_STATE_FIELDS;
130
+ var HAIR_HEAD_STATE_STRIDE2 = HAIR_HEAD_STATE_STRIDE;
131
+ var HAIR_HEAD_STATE_FIELDS2 = HAIR_HEAD_STATE_FIELDS;
132
+ var HAIR_MORPH_OUTPUT_STRIDE2 = HAIR_MORPH_OUTPUT_STRIDE;
133
+ var HAIR_MORPH_OUTPUT_FIELDS2 = HAIR_MORPH_OUTPUT_FIELDS;
134
+ var MESH_PROPORTIONS_STRIDE2 = MESH_PROPORTIONS_STRIDE;
135
+ var MESH_PROPORTIONS_FIELDS2 = MESH_PROPORTIONS_FIELDS;
136
+ var TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE2 = TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE;
137
+ var TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS2 = TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS;
138
+ var TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE2 = TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE;
139
+ var TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS2 = TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS;
140
+ var ANNOTATION_CAMERA_FRAMING_STRIDE2 = ANNOTATION_CAMERA_FRAMING_STRIDE;
141
+ var ANNOTATION_CAMERA_FRAMING_FIELDS2 = ANNOTATION_CAMERA_FRAMING_FIELDS;
142
+ var CAMERA_FLIGHT_SAMPLE_STRIDE2 = CAMERA_FLIGHT_SAMPLE_STRIDE;
143
+ var CAMERA_FLIGHT_SAMPLE_FIELDS2 = CAMERA_FLIGHT_SAMPLE_FIELDS;
144
+ var MARKER_VISIBILITY_FACTORS_STRIDE2 = MARKER_VISIBILITY_FACTORS_STRIDE;
145
+ var MARKER_VISIBILITY_FACTORS_FIELDS2 = MARKER_VISIBILITY_FACTORS_FIELDS;
146
+ var MARKER_ENDPOINT_STRIDE2 = MARKER_ENDPOINT_STRIDE;
147
+ var MARKER_ENDPOINT_FIELDS2 = MARKER_ENDPOINT_FIELDS;
148
+ var WASM_MODULE_SPECIFIER = "./wasm/embody_wasm.js";
149
+ var WASM_BINARY_SPECIFIER = "./wasm/embody_wasm_bg.wasm";
150
+ var corePromise = null;
151
+ var cachedCore = null;
152
+ async function initEmbodyCore() {
153
+ if (!corePromise) {
154
+ corePromise = loadCoreModule().catch((error) => {
155
+ corePromise = null;
156
+ cachedCore = null;
157
+ throw error;
158
+ });
159
+ }
160
+ return corePromise;
161
+ }
162
+ async function getEmbodyCore() {
163
+ return initEmbodyCore();
164
+ }
165
+ function requireInitializedEmbodyCore() {
166
+ if (!cachedCore) {
167
+ throw new Error(
168
+ "Embody Wasm core is not initialized. Await initEmbodyCore() before calling sync engine helpers."
169
+ );
170
+ }
171
+ return cachedCore;
172
+ }
173
+ function resetEmbodyCoreForTests() {
174
+ corePromise = null;
175
+ cachedCore = null;
176
+ }
177
+ function setEmbodyCoreForTests(mod) {
178
+ assertCoreAbi(mod);
179
+ cachedCore = mod;
180
+ corePromise = Promise.resolve(mod);
181
+ }
182
+ async function loadCoreModule() {
183
+ const mod = await importGeneratedWasmModule();
184
+ if (typeof mod.default === "function") {
185
+ await mod.default({ module_or_path: await resolveWasmInitInput() });
186
+ }
187
+ assertCoreAbi(mod);
188
+ cachedCore = mod;
189
+ return mod;
190
+ }
191
+ async function importGeneratedWasmModule() {
192
+ const dynamicImport = (
193
+ /** @type {(specifier: string) => Promise<import('./wasmTypes').EmbodyCoreWasmModule>} */
194
+ new Function("specifier", "return import(specifier)")
195
+ );
196
+ try {
197
+ return await dynamicImport(resolveWasmModuleSpecifier());
198
+ } catch (error) {
199
+ const message = error instanceof Error ? error.message : String(error);
200
+ throw new Error(
201
+ `Unable to load Embody Wasm core from generated package artifacts. Run "npm run build" before using @lovelace_lol/embody/wasm. Cause: ${message}`
202
+ );
203
+ }
204
+ }
205
+ function resolveWasmModuleSpecifier() {
206
+ if (typeof (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('wasm.cjs', document.baseURI).href)) === "string" && (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('wasm.cjs', document.baseURI).href)).length > 0) {
207
+ return new URL(WASM_MODULE_SPECIFIER, (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('wasm.cjs', document.baseURI).href))).href;
208
+ }
209
+ return WASM_MODULE_SPECIFIER;
210
+ }
211
+ async function resolveWasmInitInput() {
212
+ if (!isNodeLikeRuntime()) {
213
+ return void 0;
214
+ }
215
+ const binaryUrl = resolveWasmBinarySpecifier();
216
+ if (!binaryUrl.startsWith("file:")) {
217
+ return void 0;
218
+ }
219
+ const dynamicImport = (
220
+ /** @type {(specifier: string) => Promise<any>} */
221
+ new Function("specifier", "return import(specifier)")
222
+ );
223
+ const [{ readFile }, { fileURLToPath }] = await Promise.all([
224
+ dynamicImport("node:fs/promises"),
225
+ dynamicImport("node:url")
226
+ ]);
227
+ return readFile(fileURLToPath(binaryUrl));
228
+ }
229
+ function resolveWasmBinarySpecifier() {
230
+ if (typeof (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('wasm.cjs', document.baseURI).href)) === "string" && (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('wasm.cjs', document.baseURI).href)).length > 0) {
231
+ return new URL(WASM_BINARY_SPECIFIER, (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('wasm.cjs', document.baseURI).href))).href;
232
+ }
233
+ return WASM_BINARY_SPECIFIER;
234
+ }
235
+ function isNodeLikeRuntime() {
236
+ const runtime = (
237
+ /** @type {{ process?: { versions?: { node?: string } } }} */
238
+ globalThis
239
+ );
240
+ return Boolean(runtime.process?.versions?.node);
241
+ }
242
+ function assertCoreAbi(mod) {
243
+ const version = mod.core_abi_version();
244
+ if (version !== EMBODY_CORE_ABI_VERSION2) {
245
+ throw new Error(`Unsupported Embody Wasm ABI version ${version}; expected ${EMBODY_CORE_ABI_VERSION2}.`);
246
+ }
247
+ const checks = [
248
+ ["packed morph frame delta", mod.packed_morph_frame_delta_stride(), PACKED_MORPH_FRAME_DELTA_STRIDE2],
249
+ ["packed bone frame delta", mod.packed_bone_frame_delta_stride(), PACKED_BONE_FRAME_DELTA_STRIDE2],
250
+ ["hair config", mod.hair_config_stride(), HAIR_CONFIG_STRIDE2],
251
+ ["hair state", mod.hair_state_stride(), HAIR_STATE_STRIDE2],
252
+ ["hair head state", mod.hair_head_state_stride(), HAIR_HEAD_STATE_STRIDE2],
253
+ ["hair morph output", mod.hair_morph_output_stride(), HAIR_MORPH_OUTPUT_STRIDE2],
254
+ ["mesh proportions", mod.mesh_proportions_stride(), MESH_PROPORTIONS_STRIDE2],
255
+ ["template skeleton fit solution", mod.template_skeleton_fit_solution_stride(), TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE2],
256
+ ["template skeleton fit transform", mod.template_skeleton_fit_transform_stride(), TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE2],
257
+ ["annotation camera framing", mod.annotation_camera_framing_stride(), ANNOTATION_CAMERA_FRAMING_STRIDE2],
258
+ ["camera flight sample", mod.camera_flight_sample_stride(), CAMERA_FLIGHT_SAMPLE_STRIDE2],
259
+ ["marker visibility factors", mod.marker_visibility_factors_stride(), MARKER_VISIBILITY_FACTORS_STRIDE2],
260
+ ["marker endpoint", mod.marker_endpoint_stride(), MARKER_ENDPOINT_STRIDE2]
261
+ ];
262
+ for (const [name, actual, expected] of checks) {
263
+ if (actual !== expected) {
264
+ throw new Error(`Unsupported Embody Wasm ${name} stride ${actual}; expected ${expected}.`);
265
+ }
266
+ }
267
+ }
268
+
269
+ exports.ANNOTATION_CAMERA_FRAMING_FIELDS = ANNOTATION_CAMERA_FRAMING_FIELDS2;
270
+ exports.ANNOTATION_CAMERA_FRAMING_STRIDE = ANNOTATION_CAMERA_FRAMING_STRIDE2;
271
+ exports.CAMERA_FLIGHT_SAMPLE_FIELDS = CAMERA_FLIGHT_SAMPLE_FIELDS2;
272
+ exports.CAMERA_FLIGHT_SAMPLE_STRIDE = CAMERA_FLIGHT_SAMPLE_STRIDE2;
273
+ exports.EMBODY_CORE_ABI_VERSION = EMBODY_CORE_ABI_VERSION2;
274
+ exports.HAIR_CONFIG_FIELDS = HAIR_CONFIG_FIELDS2;
275
+ exports.HAIR_CONFIG_STRIDE = HAIR_CONFIG_STRIDE2;
276
+ exports.HAIR_HEAD_STATE_FIELDS = HAIR_HEAD_STATE_FIELDS2;
277
+ exports.HAIR_HEAD_STATE_STRIDE = HAIR_HEAD_STATE_STRIDE2;
278
+ exports.HAIR_MORPH_OUTPUT_FIELDS = HAIR_MORPH_OUTPUT_FIELDS2;
279
+ exports.HAIR_MORPH_OUTPUT_STRIDE = HAIR_MORPH_OUTPUT_STRIDE2;
280
+ exports.HAIR_STATE_FIELDS = HAIR_STATE_FIELDS2;
281
+ exports.HAIR_STATE_STRIDE = HAIR_STATE_STRIDE2;
282
+ exports.MARKER_ENDPOINT_FIELDS = MARKER_ENDPOINT_FIELDS2;
283
+ exports.MARKER_ENDPOINT_STRIDE = MARKER_ENDPOINT_STRIDE2;
284
+ exports.MARKER_VISIBILITY_FACTORS_FIELDS = MARKER_VISIBILITY_FACTORS_FIELDS2;
285
+ exports.MARKER_VISIBILITY_FACTORS_STRIDE = MARKER_VISIBILITY_FACTORS_STRIDE2;
286
+ exports.MESH_PROPORTIONS_FIELDS = MESH_PROPORTIONS_FIELDS2;
287
+ exports.MESH_PROPORTIONS_STRIDE = MESH_PROPORTIONS_STRIDE2;
288
+ exports.PACKED_BONE_FRAME_DELTA_FIELDS = PACKED_BONE_FRAME_DELTA_FIELDS2;
289
+ exports.PACKED_BONE_FRAME_DELTA_STRIDE = PACKED_BONE_FRAME_DELTA_STRIDE2;
290
+ exports.PACKED_MORPH_FRAME_DELTA_FIELDS = PACKED_MORPH_FRAME_DELTA_FIELDS2;
291
+ exports.PACKED_MORPH_FRAME_DELTA_STRIDE = PACKED_MORPH_FRAME_DELTA_STRIDE2;
292
+ exports.TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS = TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS2;
293
+ exports.TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE = TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE2;
294
+ exports.TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS = TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS2;
295
+ exports.TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE = TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE2;
296
+ exports.getEmbodyCore = getEmbodyCore;
297
+ exports.initEmbodyCore = initEmbodyCore;
298
+ exports.requireInitializedEmbodyCore = requireInitializedEmbodyCore;
299
+ exports.resetEmbodyCoreForTests = resetEmbodyCoreForTests;
300
+ exports.setEmbodyCoreForTests = setEmbodyCoreForTests;
301
+ //# sourceMappingURL=wasm.cjs.map
302
+ //# sourceMappingURL=wasm.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/contracts/abi.ts","../src/wasm.ts"],"names":["EMBODY_CORE_ABI_VERSION","PACKED_MORPH_FRAME_DELTA_STRIDE","PACKED_MORPH_FRAME_DELTA_FIELDS","PACKED_BONE_FRAME_DELTA_STRIDE","PACKED_BONE_FRAME_DELTA_FIELDS","HAIR_CONFIG_STRIDE","HAIR_CONFIG_FIELDS","HAIR_STATE_STRIDE","HAIR_STATE_FIELDS","HAIR_HEAD_STATE_STRIDE","HAIR_HEAD_STATE_FIELDS","HAIR_MORPH_OUTPUT_STRIDE","HAIR_MORPH_OUTPUT_FIELDS","MESH_PROPORTIONS_STRIDE","MESH_PROPORTIONS_FIELDS","TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE","TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS","TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE","TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS","ANNOTATION_CAMERA_FRAMING_STRIDE","ANNOTATION_CAMERA_FRAMING_FIELDS","CAMERA_FLIGHT_SAMPLE_STRIDE","CAMERA_FLIGHT_SAMPLE_FIELDS","MARKER_VISIBILITY_FACTORS_STRIDE","MARKER_VISIBILITY_FACTORS_FIELDS","MARKER_ENDPOINT_STRIDE","MARKER_ENDPOINT_FIELDS"],"mappings":"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","file":"wasm.cjs","sourcesContent":["import type { NumericArray } from './primitives';\n\nexport const EMBODY_CORE_ABI_VERSION = 1;\n\nexport const PACKED_MORPH_FRAME_DELTA_STRIDE = 4;\nexport const PACKED_MORPH_FRAME_DELTA_FIELDS = [\n 'meshId',\n 'morphTargetId',\n 'value',\n 'mode',\n] as const;\n\nexport const PACKED_BONE_FRAME_DELTA_STRIDE = 9;\nexport const PACKED_BONE_FRAME_DELTA_FIELDS = [\n 'boneId',\n 'positionX',\n 'positionY',\n 'positionZ',\n 'rotationX',\n 'rotationY',\n 'rotationZ',\n 'rotationW',\n 'flags',\n] as const;\n\n/** Packed bone FrameDelta flags: bit 0 = has position, bit 1 = has rotation. */\nexport const PACKED_BONE_FLAG_HAS_POSITION = 1;\nexport const PACKED_BONE_FLAG_HAS_ROTATION = 2;\n\nexport const HAIR_CONFIG_STRIDE = 11;\nexport const HAIR_STATE_STRIDE = 4;\nexport const HAIR_HEAD_STATE_STRIDE = 5;\nexport const HAIR_MORPH_OUTPUT_STRIDE = 6;\nexport const TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE = 4;\nexport const MESH_PROPORTIONS_STRIDE = 16;\nexport const TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE = 10;\nexport const ANNOTATION_CAMERA_FRAMING_STRIDE = 7;\nexport const CAMERA_FLIGHT_SAMPLE_STRIDE = 7;\nexport const MARKER_VISIBILITY_FACTORS_STRIDE = 3;\nexport const MARKER_ENDPOINT_STRIDE = 3;\n\nexport const HAIR_CONFIG_FIELDS = [\n 'mass',\n 'stiffness',\n 'damping',\n 'gravity',\n 'headInfluence',\n 'windEnabled',\n 'windStrength',\n 'windDirectionX',\n 'windDirectionZ',\n 'windTurbulence',\n 'windFrequency',\n] as const;\n\nexport const HAIR_STATE_FIELDS = ['x', 'z', 'vx', 'vz'] as const;\nexport const HAIR_HEAD_STATE_FIELDS = ['yaw', 'pitch', 'roll', 'yawVelocity', 'pitchVelocity'] as const;\nexport const HAIR_MORPH_OUTPUT_FIELDS = [\n 'L_Hair_Left',\n 'L_Hair_Right',\n 'L_Hair_Front',\n 'R_Hair_Left',\n 'R_Hair_Right',\n 'R_Hair_Front',\n] as const;\nexport const TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS = [\n 'scale',\n 'translationX',\n 'translationY',\n 'translationZ',\n] as const;\nexport const MESH_PROPORTIONS_FIELDS = [\n 'minX',\n 'minY',\n 'minZ',\n 'maxX',\n 'maxY',\n 'maxZ',\n 'centerX',\n 'centerY',\n 'centerZ',\n 'spanX',\n 'spanY',\n 'spanZ',\n 'verticalHeight',\n 'crossAxisWideSpan',\n 'crossAxisNarrowSpan',\n 'humanoidLikelihood',\n] as const;\nexport const TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS = [\n 'scale',\n 'translationX',\n 'translationY',\n 'translationZ',\n 'confidence',\n 'meshHeight',\n 'templateHeight',\n 'meshCrossAxisWideSpan',\n 'templateCrossAxisWideSpan',\n 'status',\n] as const;\nexport const ANNOTATION_CAMERA_FRAMING_FIELDS = [\n 'positionX',\n 'positionY',\n 'positionZ',\n 'targetX',\n 'targetY',\n 'targetZ',\n 'distance',\n] as const;\nexport const CAMERA_FLIGHT_SAMPLE_FIELDS = [\n 'positionX',\n 'positionY',\n 'positionZ',\n 'targetX',\n 'targetY',\n 'targetZ',\n 'done',\n] as const;\nexport const MARKER_VISIBILITY_FACTORS_FIELDS = [\n 'itemOpacityFactor',\n 'labelScaleFactor',\n 'lineOpacityFactor',\n] as const;\nexport const MARKER_ENDPOINT_FIELDS = ['x', 'y', 'z'] as const;\n\nexport type PackedMorphFrameDeltaField = (typeof PACKED_MORPH_FRAME_DELTA_FIELDS)[number];\nexport type HairConfigField = (typeof HAIR_CONFIG_FIELDS)[number];\nexport type HairStateField = (typeof HAIR_STATE_FIELDS)[number];\nexport type HairHeadStateField = (typeof HAIR_HEAD_STATE_FIELDS)[number];\nexport type HairMorphOutputField = (typeof HAIR_MORPH_OUTPUT_FIELDS)[number];\nexport type TemplateSkeletonFitTransformField = (typeof TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS)[number];\nexport type MeshProportionsField = (typeof MESH_PROPORTIONS_FIELDS)[number];\nexport type TemplateSkeletonFitSolutionField = (typeof TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS)[number];\n\nexport interface PackedMorphFrameDelta {\n readonly abiVersion: typeof EMBODY_CORE_ABI_VERSION;\n readonly stride: typeof PACKED_MORPH_FRAME_DELTA_STRIDE;\n readonly fields: typeof PACKED_MORPH_FRAME_DELTA_FIELDS;\n readonly values: NumericArray;\n}\n\nexport interface PackedHairPhysicsState {\n readonly stride: typeof HAIR_STATE_STRIDE;\n readonly fields: typeof HAIR_STATE_FIELDS;\n readonly values: NumericArray;\n}\n\nexport interface PackedHairMorphOutput {\n readonly stride: typeof HAIR_MORPH_OUTPUT_STRIDE;\n readonly fields: typeof HAIR_MORPH_OUTPUT_FIELDS;\n readonly values: NumericArray;\n}\n\nexport interface PackedTemplateSkeletonFitTransform {\n readonly stride: typeof TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE;\n readonly fields: typeof TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS;\n readonly values: NumericArray;\n}\n\nexport interface PackedMeshProportions {\n readonly stride: typeof MESH_PROPORTIONS_STRIDE;\n readonly fields: typeof MESH_PROPORTIONS_FIELDS;\n readonly values: NumericArray;\n}\n\nexport interface PackedTemplateSkeletonFitSolution {\n readonly stride: typeof TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE;\n readonly fields: typeof TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS;\n readonly values: NumericArray;\n}\n","// @ts-nocheck\nimport {\n ANNOTATION_CAMERA_FRAMING_FIELDS as CORE_ANNOTATION_CAMERA_FRAMING_FIELDS,\n ANNOTATION_CAMERA_FRAMING_STRIDE as CORE_ANNOTATION_CAMERA_FRAMING_STRIDE,\n CAMERA_FLIGHT_SAMPLE_FIELDS as CORE_CAMERA_FLIGHT_SAMPLE_FIELDS,\n CAMERA_FLIGHT_SAMPLE_STRIDE as CORE_CAMERA_FLIGHT_SAMPLE_STRIDE,\n EMBODY_CORE_ABI_VERSION as CORE_ABI_VERSION,\n HAIR_CONFIG_FIELDS as CORE_HAIR_CONFIG_FIELDS,\n HAIR_CONFIG_STRIDE as CORE_HAIR_CONFIG_STRIDE,\n HAIR_HEAD_STATE_FIELDS as CORE_HAIR_HEAD_STATE_FIELDS,\n HAIR_HEAD_STATE_STRIDE as CORE_HAIR_HEAD_STATE_STRIDE,\n HAIR_MORPH_OUTPUT_FIELDS as CORE_HAIR_MORPH_OUTPUT_FIELDS,\n HAIR_MORPH_OUTPUT_STRIDE as CORE_HAIR_MORPH_OUTPUT_STRIDE,\n HAIR_STATE_FIELDS as CORE_HAIR_STATE_FIELDS,\n HAIR_STATE_STRIDE as CORE_HAIR_STATE_STRIDE,\n MARKER_VISIBILITY_FACTORS_FIELDS as CORE_MARKER_VISIBILITY_FACTORS_FIELDS,\n MARKER_VISIBILITY_FACTORS_STRIDE as CORE_MARKER_VISIBILITY_FACTORS_STRIDE,\n MARKER_ENDPOINT_FIELDS as CORE_MARKER_ENDPOINT_FIELDS,\n MARKER_ENDPOINT_STRIDE as CORE_MARKER_ENDPOINT_STRIDE,\n MESH_PROPORTIONS_FIELDS as CORE_MESH_PROPORTIONS_FIELDS,\n MESH_PROPORTIONS_STRIDE as CORE_MESH_PROPORTIONS_STRIDE,\n PACKED_MORPH_FRAME_DELTA_FIELDS as CORE_PACKED_MORPH_FRAME_DELTA_FIELDS,\n PACKED_MORPH_FRAME_DELTA_STRIDE as CORE_PACKED_MORPH_FRAME_DELTA_STRIDE,\n PACKED_BONE_FRAME_DELTA_FIELDS as CORE_PACKED_BONE_FRAME_DELTA_FIELDS,\n PACKED_BONE_FRAME_DELTA_STRIDE as CORE_PACKED_BONE_FRAME_DELTA_STRIDE,\n TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS as CORE_TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS,\n TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE as CORE_TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE,\n TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS as CORE_TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS,\n TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE as CORE_TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE,\n} from './core/contracts';\n\nexport const EMBODY_CORE_ABI_VERSION = CORE_ABI_VERSION;\nexport const PACKED_MORPH_FRAME_DELTA_STRIDE = CORE_PACKED_MORPH_FRAME_DELTA_STRIDE;\nexport const PACKED_MORPH_FRAME_DELTA_FIELDS = CORE_PACKED_MORPH_FRAME_DELTA_FIELDS;\nexport const PACKED_BONE_FRAME_DELTA_STRIDE = CORE_PACKED_BONE_FRAME_DELTA_STRIDE;\nexport const PACKED_BONE_FRAME_DELTA_FIELDS = CORE_PACKED_BONE_FRAME_DELTA_FIELDS;\nexport const HAIR_CONFIG_STRIDE = CORE_HAIR_CONFIG_STRIDE;\nexport const HAIR_CONFIG_FIELDS = CORE_HAIR_CONFIG_FIELDS;\nexport const HAIR_STATE_STRIDE = CORE_HAIR_STATE_STRIDE;\nexport const HAIR_STATE_FIELDS = CORE_HAIR_STATE_FIELDS;\nexport const HAIR_HEAD_STATE_STRIDE = CORE_HAIR_HEAD_STATE_STRIDE;\nexport const HAIR_HEAD_STATE_FIELDS = CORE_HAIR_HEAD_STATE_FIELDS;\nexport const HAIR_MORPH_OUTPUT_STRIDE = CORE_HAIR_MORPH_OUTPUT_STRIDE;\nexport const HAIR_MORPH_OUTPUT_FIELDS = CORE_HAIR_MORPH_OUTPUT_FIELDS;\nexport const MESH_PROPORTIONS_STRIDE = CORE_MESH_PROPORTIONS_STRIDE;\nexport const MESH_PROPORTIONS_FIELDS = CORE_MESH_PROPORTIONS_FIELDS;\nexport const TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE = CORE_TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE;\nexport const TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS = CORE_TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS;\nexport const TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE = CORE_TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE;\nexport const TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS = CORE_TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS;\nexport const ANNOTATION_CAMERA_FRAMING_STRIDE = CORE_ANNOTATION_CAMERA_FRAMING_STRIDE;\nexport const ANNOTATION_CAMERA_FRAMING_FIELDS = CORE_ANNOTATION_CAMERA_FRAMING_FIELDS;\nexport const CAMERA_FLIGHT_SAMPLE_STRIDE = CORE_CAMERA_FLIGHT_SAMPLE_STRIDE;\nexport const CAMERA_FLIGHT_SAMPLE_FIELDS = CORE_CAMERA_FLIGHT_SAMPLE_FIELDS;\nexport const MARKER_VISIBILITY_FACTORS_STRIDE = CORE_MARKER_VISIBILITY_FACTORS_STRIDE;\nexport const MARKER_VISIBILITY_FACTORS_FIELDS = CORE_MARKER_VISIBILITY_FACTORS_FIELDS;\nexport const MARKER_ENDPOINT_STRIDE = CORE_MARKER_ENDPOINT_STRIDE;\nexport const MARKER_ENDPOINT_FIELDS = CORE_MARKER_ENDPOINT_FIELDS;\n\nconst WASM_MODULE_SPECIFIER = './wasm/embody_wasm.js';\nconst WASM_BINARY_SPECIFIER = './wasm/embody_wasm_bg.wasm';\n\n/** Per-entry loader state. Core consumers receive the resolved module explicitly. */\nlet corePromise: Promise<import('./wasmTypes').EmbodyCoreWasmModule> | null = null;\nlet cachedCore: import('./wasmTypes').EmbodyCoreWasmModule | null = null;\n\n/** @returns {Promise<import('./wasmTypes').EmbodyCoreWasmModule>} */\nexport async function initEmbodyCore() {\n if (!corePromise) {\n corePromise = loadCoreModule().catch((error) => {\n // Allow a later retry after a transient load failure.\n corePromise = null;\n cachedCore = null;\n throw error;\n });\n }\n return corePromise;\n}\n\n/** @returns {Promise<import('./wasmTypes').EmbodyCoreWasmModule>} */\nexport async function getEmbodyCore() {\n return initEmbodyCore();\n}\n\n/**\n * Return the Wasm module already loaded by this package entry.\n * Prefer passing the module returned by `initEmbodyCore()` explicitly.\n */\nexport function requireInitializedEmbodyCore() {\n if (!cachedCore) {\n throw new Error(\n 'Embody Wasm core is not initialized. Await initEmbodyCore() before calling sync engine helpers.'\n );\n }\n return cachedCore;\n}\n\nexport function resetEmbodyCoreForTests() {\n corePromise = null;\n cachedCore = null;\n}\n\n/**\n * Install a pre-loaded Wasm module into the sync cache (used by vitest setup\n * when the package dynamic import cannot resolve dist/wasm from source).\n * @param {import('./wasmTypes').EmbodyCoreWasmModule} mod\n */\nexport function setEmbodyCoreForTests(mod) {\n assertCoreAbi(mod);\n cachedCore = mod;\n corePromise = Promise.resolve(mod);\n}\n\n/** @returns {Promise<import('./wasmTypes').EmbodyCoreWasmModule>} */\nasync function loadCoreModule() {\n const mod = await importGeneratedWasmModule();\n if (typeof mod.default === 'function') {\n await mod.default({ module_or_path: await resolveWasmInitInput() });\n }\n\n assertCoreAbi(mod);\n cachedCore = mod;\n return mod;\n}\n\n/** @returns {Promise<import('./wasmTypes').EmbodyCoreWasmModule>} */\nasync function importGeneratedWasmModule() {\n const dynamicImport = /** @type {(specifier: string) => Promise<import('./wasmTypes').EmbodyCoreWasmModule>} */ (\n new Function('specifier', 'return import(specifier)')\n );\n\n try {\n return await dynamicImport(resolveWasmModuleSpecifier());\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Unable to load Embody Wasm core from generated package artifacts. Run \"npm run build\" before using @lovelace_lol/embody/wasm. Cause: ${message}`\n );\n }\n}\n\nfunction resolveWasmModuleSpecifier() {\n if (typeof import.meta.url === 'string' && import.meta.url.length > 0) {\n return new URL(WASM_MODULE_SPECIFIER, import.meta.url).href;\n }\n return WASM_MODULE_SPECIFIER;\n}\n\n/** @returns {Promise<unknown | undefined>} */\nasync function resolveWasmInitInput() {\n if (!isNodeLikeRuntime()) {\n return undefined;\n }\n\n const binaryUrl = resolveWasmBinarySpecifier();\n if (!binaryUrl.startsWith('file:')) {\n return undefined;\n }\n\n const dynamicImport = /** @type {(specifier: string) => Promise<any>} */ (\n new Function('specifier', 'return import(specifier)')\n );\n const [{ readFile }, { fileURLToPath }] = await Promise.all([\n dynamicImport('node:fs/promises'),\n dynamicImport('node:url'),\n ]);\n\n return readFile(fileURLToPath(binaryUrl));\n}\n\nfunction resolveWasmBinarySpecifier() {\n if (typeof import.meta.url === 'string' && import.meta.url.length > 0) {\n return new URL(WASM_BINARY_SPECIFIER, import.meta.url).href;\n }\n return WASM_BINARY_SPECIFIER;\n}\n\nfunction isNodeLikeRuntime() {\n const runtime = /** @type {{ process?: { versions?: { node?: string } } }} */ (globalThis);\n return Boolean(runtime.process?.versions?.node);\n}\n\n/** @param {import('./wasmTypes').EmbodyCoreWasmModule} mod */\nfunction assertCoreAbi(mod) {\n const version = mod.core_abi_version();\n if (version !== EMBODY_CORE_ABI_VERSION) {\n throw new Error(`Unsupported Embody Wasm ABI version ${version}; expected ${EMBODY_CORE_ABI_VERSION}.`);\n }\n\n const checks = [\n ['packed morph frame delta', mod.packed_morph_frame_delta_stride(), PACKED_MORPH_FRAME_DELTA_STRIDE],\n ['packed bone frame delta', mod.packed_bone_frame_delta_stride(), PACKED_BONE_FRAME_DELTA_STRIDE],\n ['hair config', mod.hair_config_stride(), HAIR_CONFIG_STRIDE],\n ['hair state', mod.hair_state_stride(), HAIR_STATE_STRIDE],\n ['hair head state', mod.hair_head_state_stride(), HAIR_HEAD_STATE_STRIDE],\n ['hair morph output', mod.hair_morph_output_stride(), HAIR_MORPH_OUTPUT_STRIDE],\n ['mesh proportions', mod.mesh_proportions_stride(), MESH_PROPORTIONS_STRIDE],\n ['template skeleton fit solution', mod.template_skeleton_fit_solution_stride(), TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE],\n ['template skeleton fit transform', mod.template_skeleton_fit_transform_stride(), TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE],\n ['annotation camera framing', mod.annotation_camera_framing_stride(), ANNOTATION_CAMERA_FRAMING_STRIDE],\n ['camera flight sample', mod.camera_flight_sample_stride(), CAMERA_FLIGHT_SAMPLE_STRIDE],\n ['marker visibility factors', mod.marker_visibility_factors_stride(), MARKER_VISIBILITY_FACTORS_STRIDE],\n ['marker endpoint', mod.marker_endpoint_stride(), MARKER_ENDPOINT_STRIDE],\n ];\n\n for (const [name, actual, expected] of checks) {\n if (actual !== expected) {\n throw new Error(`Unsupported Embody Wasm ${name} stride ${actual}; expected ${expected}.`);\n }\n }\n}\n"]}
package/dist/wasm.d.ts ADDED
@@ -0,0 +1,43 @@
1
+ export declare const EMBODY_CORE_ABI_VERSION = 1;
2
+ export declare const PACKED_MORPH_FRAME_DELTA_STRIDE = 4;
3
+ export declare const PACKED_MORPH_FRAME_DELTA_FIELDS: readonly ["meshId", "morphTargetId", "value", "mode"];
4
+ export declare const PACKED_BONE_FRAME_DELTA_STRIDE = 9;
5
+ export declare const PACKED_BONE_FRAME_DELTA_FIELDS: readonly ["boneId", "positionX", "positionY", "positionZ", "rotationX", "rotationY", "rotationZ", "rotationW", "flags"];
6
+ export declare const HAIR_CONFIG_STRIDE = 11;
7
+ export declare const HAIR_CONFIG_FIELDS: readonly ["mass", "stiffness", "damping", "gravity", "headInfluence", "windEnabled", "windStrength", "windDirectionX", "windDirectionZ", "windTurbulence", "windFrequency"];
8
+ export declare const HAIR_STATE_STRIDE = 4;
9
+ export declare const HAIR_STATE_FIELDS: readonly ["x", "z", "vx", "vz"];
10
+ export declare const HAIR_HEAD_STATE_STRIDE = 5;
11
+ export declare const HAIR_HEAD_STATE_FIELDS: readonly ["yaw", "pitch", "roll", "yawVelocity", "pitchVelocity"];
12
+ export declare const HAIR_MORPH_OUTPUT_STRIDE = 6;
13
+ export declare const HAIR_MORPH_OUTPUT_FIELDS: readonly ["L_Hair_Left", "L_Hair_Right", "L_Hair_Front", "R_Hair_Left", "R_Hair_Right", "R_Hair_Front"];
14
+ export declare const MESH_PROPORTIONS_STRIDE = 16;
15
+ export declare const MESH_PROPORTIONS_FIELDS: readonly ["minX", "minY", "minZ", "maxX", "maxY", "maxZ", "centerX", "centerY", "centerZ", "spanX", "spanY", "spanZ", "verticalHeight", "crossAxisWideSpan", "crossAxisNarrowSpan", "humanoidLikelihood"];
16
+ export declare const TEMPLATE_SKELETON_FIT_SOLUTION_STRIDE = 10;
17
+ export declare const TEMPLATE_SKELETON_FIT_SOLUTION_FIELDS: readonly ["scale", "translationX", "translationY", "translationZ", "confidence", "meshHeight", "templateHeight", "meshCrossAxisWideSpan", "templateCrossAxisWideSpan", "status"];
18
+ export declare const TEMPLATE_SKELETON_FIT_TRANSFORM_STRIDE = 4;
19
+ export declare const TEMPLATE_SKELETON_FIT_TRANSFORM_FIELDS: readonly ["scale", "translationX", "translationY", "translationZ"];
20
+ export declare const ANNOTATION_CAMERA_FRAMING_STRIDE = 7;
21
+ export declare const ANNOTATION_CAMERA_FRAMING_FIELDS: readonly ["positionX", "positionY", "positionZ", "targetX", "targetY", "targetZ", "distance"];
22
+ export declare const CAMERA_FLIGHT_SAMPLE_STRIDE = 7;
23
+ export declare const CAMERA_FLIGHT_SAMPLE_FIELDS: readonly ["positionX", "positionY", "positionZ", "targetX", "targetY", "targetZ", "done"];
24
+ export declare const MARKER_VISIBILITY_FACTORS_STRIDE = 3;
25
+ export declare const MARKER_VISIBILITY_FACTORS_FIELDS: readonly ["itemOpacityFactor", "labelScaleFactor", "lineOpacityFactor"];
26
+ export declare const MARKER_ENDPOINT_STRIDE = 3;
27
+ export declare const MARKER_ENDPOINT_FIELDS: readonly ["x", "y", "z"];
28
+ /** @returns {Promise<import('./wasmTypes').EmbodyCoreWasmModule>} */
29
+ export declare function initEmbodyCore(): Promise<import("./wasmTypes").EmbodyCoreWasmModule>;
30
+ /** @returns {Promise<import('./wasmTypes').EmbodyCoreWasmModule>} */
31
+ export declare function getEmbodyCore(): Promise<import("./wasmTypes").EmbodyCoreWasmModule>;
32
+ /**
33
+ * Return the Wasm module already loaded by this package entry.
34
+ * Prefer passing the module returned by `initEmbodyCore()` explicitly.
35
+ */
36
+ export declare function requireInitializedEmbodyCore(): import("./wasmTypes").EmbodyCoreWasmModule;
37
+ export declare function resetEmbodyCoreForTests(): void;
38
+ /**
39
+ * Install a pre-loaded Wasm module into the sync cache (used by vitest setup
40
+ * when the package dynamic import cannot resolve dist/wasm from source).
41
+ * @param {import('./wasmTypes').EmbodyCoreWasmModule} mod
42
+ */
43
+ export declare function setEmbodyCoreForTests(mod: any): void;