@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.
@@ -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;
@@ -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;
@@ -11,7 +11,7 @@ export interface WasmHairPhysicsSolverConstructor {
11
11
  }
12
12
  export interface WasmRuntimeCoreHandle {
13
13
  configure(profileJson: string, modelJson: string): void;
14
- configure_exact_profile(profileJson: string, modelJson: string): void;
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.1",
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",