@lovelace_lol/embody 0.0.1 → 0.0.2
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.
- package/README.md +12 -9
- package/dist/index.cjs +12 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +12 -9
- package/dist/index.js.map +1 -1
- package/dist/preset.cjs +7 -2
- package/dist/preset.cjs.map +1 -1
- package/dist/preset.js +7 -1
- package/dist/preset.js.map +1 -1
- package/dist/presets/index.d.ts +4 -1
- package/dist/presets/registry.d.ts +57 -0
- package/dist/three.cjs +12 -9
- package/dist/three.cjs.map +1 -1
- package/dist/three.js +12 -9
- package/dist/three.js.map +1 -1
- package/dist/wasm/embody_wasm.d.ts +32 -32
- package/dist/wasm/embody_wasm.js +19 -19
- package/dist/wasm/embody_wasm_bg.wasm +0 -0
- package/dist/wasm/embody_wasm_bg.wasm.d.ts +24 -24
- package/dist/wasmTypes.d.ts +1 -1
- package/package.json +2 -1
|
@@ -59,20 +59,20 @@ export class RuntimeCore {
|
|
|
59
59
|
* continuum pairs) happens here, inside the core.
|
|
60
60
|
*/
|
|
61
61
|
configure(profile_json: string, model_json: string): void;
|
|
62
|
-
/**
|
|
63
|
-
* Configure from a complete profile without applying an embedded preset.
|
|
64
|
-
*
|
|
65
|
-
* This path is intentionally strict so a host cannot accidentally select
|
|
66
|
-
* exact mode for an incomplete custom profile and silently get an inert
|
|
67
|
-
* runtime. Preset fallback remains an explicit host decision.
|
|
68
|
-
*/
|
|
69
|
-
configure_exact_profile(profile_json: string, model_json: string): void;
|
|
70
62
|
/**
|
|
71
63
|
* Configure from an embedded preset id + optional override JSON + model
|
|
72
64
|
* descriptor JSON. The CC4 (etc.) preset data lives in the Wasm core;
|
|
73
65
|
* hosts only pass the preset id and overrides.
|
|
74
66
|
*/
|
|
75
67
|
configure_with_preset(preset_id: string, override_json: string, model_json: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Configure from a resolved profile without applying an embedded preset.
|
|
70
|
+
*
|
|
71
|
+
* This path is intentionally strict so a host cannot accidentally select
|
|
72
|
+
* a profile that has no usable runtime bindings. Preset fallback remains
|
|
73
|
+
* an explicit host decision.
|
|
74
|
+
*/
|
|
75
|
+
configure_with_profile(profile_json: string, model_json: string): void;
|
|
76
76
|
/**
|
|
77
77
|
* Packed bone FrameDelta rows: `[bone_id, px, py, pz, qx, qy, qz, qw, flags] * N`
|
|
78
78
|
* flags: bit0 = has_position, bit1 = has_rotation. Mirrors
|
|
@@ -408,8 +408,8 @@ export interface InitOutput {
|
|
|
408
408
|
readonly runtimecore_clear: (a: number) => void;
|
|
409
409
|
readonly runtimecore_clear_transitions: (a: number) => void;
|
|
410
410
|
readonly runtimecore_configure: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
411
|
-
readonly runtimecore_configure_exact_profile: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
412
411
|
readonly runtimecore_configure_with_preset: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
412
|
+
readonly runtimecore_configure_with_profile: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
413
413
|
readonly runtimecore_evaluate_bone_frame_delta: (a: number) => [number, number];
|
|
414
414
|
readonly runtimecore_evaluate_morph_frame_delta: (a: number) => [number, number];
|
|
415
415
|
readonly runtimecore_get_au: (a: number, b: number) => number;
|
|
@@ -445,29 +445,6 @@ export interface InitOutput {
|
|
|
445
445
|
readonly list_presets: () => [number, number];
|
|
446
446
|
readonly merge_embedded_preset: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
447
447
|
readonly merge_preset_profile: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
448
|
-
readonly validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
449
|
-
readonly analyze_mesh_proportions: (a: number, b: number, c: number) => [number, number];
|
|
450
|
-
readonly compose_template_fit_adjustment: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
451
|
-
readonly marker_endpoint_stride: () => number;
|
|
452
|
-
readonly marker_visibility_animation_factors: (a: number, b: number) => [number, number];
|
|
453
|
-
readonly mesh_proportions_stride: () => number;
|
|
454
|
-
readonly passes_marker_camera_angle_gate: (a: number, b: number, c: number) => number;
|
|
455
|
-
readonly resolve_viewport_constrained_line_scale: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
456
|
-
readonly resolve_viewport_safe_bounds: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
457
|
-
readonly sample_marker_arc_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
458
|
-
readonly sample_marker_bezier_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
459
|
-
readonly separate_overlapping_marker_endpoints: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
460
|
-
readonly should_show_marker: (a: number, b: number, c: number, d: number) => number;
|
|
461
|
-
readonly solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
|
|
462
|
-
readonly solve_bilateral_values: (a: number, b: number) => [number, number];
|
|
463
|
-
readonly solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
464
|
-
readonly solve_template_skeleton_fit: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
465
|
-
readonly template_skeleton_fit_solution_stride: () => number;
|
|
466
|
-
readonly marker_visibility_factors_stride: () => number;
|
|
467
|
-
readonly core_abi_version: () => number;
|
|
468
|
-
readonly pack_morph_frame_delta: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
469
|
-
readonly packed_bone_frame_delta_stride: () => number;
|
|
470
|
-
readonly packed_morph_frame_delta_stride: () => number;
|
|
471
448
|
readonly __wbg_cameraflight_free: (a: number, b: number) => void;
|
|
472
449
|
readonly __wbg_cameraorbit_free: (a: number, b: number) => void;
|
|
473
450
|
readonly __wbg_hairphysicssolver_free: (a: number, b: number) => void;
|
|
@@ -499,6 +476,29 @@ export interface InitOutput {
|
|
|
499
476
|
readonly world_direction_for_camera_angle: (a: number, b: number, c: number) => [number, number];
|
|
500
477
|
readonly camera_flight_sample_stride: () => number;
|
|
501
478
|
readonly template_skeleton_fit_transform_stride: () => number;
|
|
479
|
+
readonly analyze_mesh_proportions: (a: number, b: number, c: number) => [number, number];
|
|
480
|
+
readonly compose_template_fit_adjustment: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
481
|
+
readonly marker_endpoint_stride: () => number;
|
|
482
|
+
readonly marker_visibility_animation_factors: (a: number, b: number) => [number, number];
|
|
483
|
+
readonly mesh_proportions_stride: () => number;
|
|
484
|
+
readonly passes_marker_camera_angle_gate: (a: number, b: number, c: number) => number;
|
|
485
|
+
readonly resolve_viewport_constrained_line_scale: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
486
|
+
readonly resolve_viewport_safe_bounds: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
487
|
+
readonly sample_marker_arc_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
488
|
+
readonly sample_marker_bezier_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
489
|
+
readonly separate_overlapping_marker_endpoints: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
490
|
+
readonly should_show_marker: (a: number, b: number, c: number, d: number) => number;
|
|
491
|
+
readonly solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
|
|
492
|
+
readonly solve_bilateral_values: (a: number, b: number) => [number, number];
|
|
493
|
+
readonly solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
494
|
+
readonly solve_template_skeleton_fit: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
495
|
+
readonly template_skeleton_fit_solution_stride: () => number;
|
|
496
|
+
readonly marker_visibility_factors_stride: () => number;
|
|
497
|
+
readonly validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
498
|
+
readonly core_abi_version: () => number;
|
|
499
|
+
readonly pack_morph_frame_delta: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
500
|
+
readonly packed_bone_frame_delta_stride: () => number;
|
|
501
|
+
readonly packed_morph_frame_delta_stride: () => number;
|
|
502
502
|
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
503
503
|
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
504
504
|
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
package/dist/wasm/embody_wasm.js
CHANGED
|
@@ -230,25 +230,6 @@ export class RuntimeCore {
|
|
|
230
230
|
throw takeFromExternrefTable0(ret[0]);
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
|
-
/**
|
|
234
|
-
* Configure from a complete profile without applying an embedded preset.
|
|
235
|
-
*
|
|
236
|
-
* This path is intentionally strict so a host cannot accidentally select
|
|
237
|
-
* exact mode for an incomplete custom profile and silently get an inert
|
|
238
|
-
* runtime. Preset fallback remains an explicit host decision.
|
|
239
|
-
* @param {string} profile_json
|
|
240
|
-
* @param {string} model_json
|
|
241
|
-
*/
|
|
242
|
-
configure_exact_profile(profile_json, model_json) {
|
|
243
|
-
const ptr0 = passStringToWasm0(profile_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
244
|
-
const len0 = WASM_VECTOR_LEN;
|
|
245
|
-
const ptr1 = passStringToWasm0(model_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
246
|
-
const len1 = WASM_VECTOR_LEN;
|
|
247
|
-
const ret = wasm.runtimecore_configure_exact_profile(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
248
|
-
if (ret[1]) {
|
|
249
|
-
throw takeFromExternrefTable0(ret[0]);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
233
|
/**
|
|
253
234
|
* Configure from an embedded preset id + optional override JSON + model
|
|
254
235
|
* descriptor JSON. The CC4 (etc.) preset data lives in the Wasm core;
|
|
@@ -269,6 +250,25 @@ export class RuntimeCore {
|
|
|
269
250
|
throw takeFromExternrefTable0(ret[0]);
|
|
270
251
|
}
|
|
271
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Configure from a resolved profile without applying an embedded preset.
|
|
255
|
+
*
|
|
256
|
+
* This path is intentionally strict so a host cannot accidentally select
|
|
257
|
+
* a profile that has no usable runtime bindings. Preset fallback remains
|
|
258
|
+
* an explicit host decision.
|
|
259
|
+
* @param {string} profile_json
|
|
260
|
+
* @param {string} model_json
|
|
261
|
+
*/
|
|
262
|
+
configure_with_profile(profile_json, model_json) {
|
|
263
|
+
const ptr0 = passStringToWasm0(profile_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
264
|
+
const len0 = WASM_VECTOR_LEN;
|
|
265
|
+
const ptr1 = passStringToWasm0(model_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
266
|
+
const len1 = WASM_VECTOR_LEN;
|
|
267
|
+
const ret = wasm.runtimecore_configure_with_profile(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
268
|
+
if (ret[1]) {
|
|
269
|
+
throw takeFromExternrefTable0(ret[0]);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
272
|
/**
|
|
273
273
|
* Packed bone FrameDelta rows: `[bone_id, px, py, pz, qx, qy, qz, qw, flags] * N`
|
|
274
274
|
* flags: bit0 = has_position, bit1 = has_rotation. Mirrors
|
|
Binary file
|
|
@@ -7,8 +7,8 @@ export const runtimecore_au_morph_binding_stride: () => number;
|
|
|
7
7
|
export const runtimecore_clear: (a: number) => void;
|
|
8
8
|
export const runtimecore_clear_transitions: (a: number) => void;
|
|
9
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
10
|
export const runtimecore_configure_with_preset: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
11
|
+
export const runtimecore_configure_with_profile: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
12
12
|
export const runtimecore_evaluate_bone_frame_delta: (a: number) => [number, number];
|
|
13
13
|
export const runtimecore_evaluate_morph_frame_delta: (a: number) => [number, number];
|
|
14
14
|
export const runtimecore_get_au: (a: number, b: number) => number;
|
|
@@ -44,29 +44,6 @@ export const has_preset: (a: number, b: number) => number;
|
|
|
44
44
|
export const list_presets: () => [number, number];
|
|
45
45
|
export const merge_embedded_preset: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
46
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
47
|
export const __wbg_cameraflight_free: (a: number, b: number) => void;
|
|
71
48
|
export const __wbg_cameraorbit_free: (a: number, b: number) => void;
|
|
72
49
|
export const __wbg_hairphysicssolver_free: (a: number, b: number) => void;
|
|
@@ -98,6 +75,29 @@ export const solve_full_body_framing: (a: number, b: number, c: number, d: numbe
|
|
|
98
75
|
export const world_direction_for_camera_angle: (a: number, b: number, c: number) => [number, number];
|
|
99
76
|
export const camera_flight_sample_stride: () => number;
|
|
100
77
|
export const template_skeleton_fit_transform_stride: () => number;
|
|
78
|
+
export const analyze_mesh_proportions: (a: number, b: number, c: number) => [number, number];
|
|
79
|
+
export const compose_template_fit_adjustment: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
80
|
+
export const marker_endpoint_stride: () => number;
|
|
81
|
+
export const marker_visibility_animation_factors: (a: number, b: number) => [number, number];
|
|
82
|
+
export const mesh_proportions_stride: () => number;
|
|
83
|
+
export const passes_marker_camera_angle_gate: (a: number, b: number, c: number) => number;
|
|
84
|
+
export const resolve_viewport_constrained_line_scale: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
85
|
+
export const resolve_viewport_safe_bounds: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
86
|
+
export const sample_marker_arc_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
87
|
+
export const sample_marker_bezier_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
88
|
+
export const separate_overlapping_marker_endpoints: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
89
|
+
export const should_show_marker: (a: number, b: number, c: number, d: number) => number;
|
|
90
|
+
export const solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
|
|
91
|
+
export const solve_bilateral_values: (a: number, b: number) => [number, number];
|
|
92
|
+
export const solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
93
|
+
export const solve_template_skeleton_fit: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
94
|
+
export const template_skeleton_fit_solution_stride: () => number;
|
|
95
|
+
export const marker_visibility_factors_stride: () => number;
|
|
96
|
+
export const validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
97
|
+
export const core_abi_version: () => number;
|
|
98
|
+
export const pack_morph_frame_delta: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
99
|
+
export const packed_bone_frame_delta_stride: () => number;
|
|
100
|
+
export const packed_morph_frame_delta_stride: () => number;
|
|
101
101
|
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
102
102
|
export const __wbindgen_malloc: (a: number, b: number) => number;
|
|
103
103
|
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
package/dist/wasmTypes.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface WasmHairPhysicsSolverConstructor {
|
|
|
11
11
|
}
|
|
12
12
|
export interface WasmRuntimeCoreHandle {
|
|
13
13
|
configure(profileJson: string, modelJson: string): void;
|
|
14
|
-
|
|
14
|
+
configure_with_profile(profileJson: string, modelJson: string): void;
|
|
15
15
|
configure_with_preset(presetId: string, overrideJson: string, modelJson: string): void;
|
|
16
16
|
viseme_slot_index(slotId: string): number;
|
|
17
17
|
set_au_signed(id: number, value: number, balance: number): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovelace_lol/embody",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Renderer-agnostic character animation runtime for facial AUs, visemes, and bone-driven motion",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"build": "tsup --config tsup.wasm.config.ts && tsup --config tsup.config.ts && tsc -p tsconfig.declarations.json && node scripts/export-preset-json.mjs --check && npm run wasm:build",
|
|
46
46
|
"dev": "tsup --watch",
|
|
47
47
|
"typecheck": "tsc --noEmit",
|
|
48
|
+
"pretest": "npm run wasm:build",
|
|
48
49
|
"test": "vitest run",
|
|
49
50
|
"test:watch": "vitest",
|
|
50
51
|
"test:coverage": "vitest run --coverage",
|