@lovelace_lol/embody 0.0.13 → 0.0.15
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 +123 -23
- package/dist/index.js +1644 -5876
- package/dist/index.js.map +1 -1
- package/dist/three/annotations/DOMControls.d.ts +5 -1
- package/dist/three/annotations/HtmlAnnotationMarkers.d.ts +5 -0
- package/dist/three/annotations/OverlayAnnotationMarkers.d.ts +1 -0
- package/dist/three/annotations/ThreeAnnotationController.d.ts +145 -0
- package/dist/three/annotations/ThreeAnnotationControls.d.ts +42 -0
- package/dist/three/annotations/ThreeAnnotationMarkers.d.ts +42 -0
- package/dist/three/annotations/ThreeAnnotationRenderer.d.ts +35 -0
- package/dist/three/annotations/{DPthree.d.ts → ThreeAnnotations.d.ts} +18 -27
- package/dist/three/annotations/adapter.d.ts +2 -8
- package/dist/three/annotations/annotationAnchorModel.d.ts +0 -4
- package/dist/three/annotations/index.d.ts +9 -8
- package/dist/three/annotations/lifecycleBridge.d.ts +26 -0
- package/dist/three/annotations/markerVisibilityLifecycle.d.ts +8 -7
- package/dist/three/annotations/modelObservation.d.ts +44 -0
- package/dist/three/annotations/runtime.d.ts +46 -0
- package/dist/three/annotations/runtimeAnnotationPreview.d.ts +2 -2
- package/dist/three/annotations/runtimeAnnotationPreviewSide.d.ts +0 -4
- package/dist/three/annotations/runtimeAnnotationSidePreview.d.ts +2 -1
- package/dist/three/annotations/types.d.ts +7 -8
- package/dist/three/authoring.d.ts +4 -0
- package/dist/three/authoringTypes.d.ts +7 -0
- package/dist/three/characterHost.d.ts +5 -5
- package/dist/three/editor/morphVertexPreview.d.ts +3 -2
- package/dist/three.js +1644 -5876
- package/dist/three.js.map +1 -1
- package/dist/wasm/README.md +123 -23
- package/dist/wasm/embody_wasm.d.ts +183 -77
- package/dist/wasm/embody_wasm.js +455 -2
- package/dist/wasm/embody_wasm_bg.wasm +0 -0
- package/dist/wasm/embody_wasm_bg.wasm.d.ts +108 -75
- package/dist/wasm/index.d.ts +1 -1
- package/dist/wasm.js.map +1 -1
- package/package.json +2 -2
- package/dist/three/annotations/DPthree3DMarkers.d.ts +0 -320
- package/dist/three/annotations/DPthreeCameraController.d.ts +0 -415
- package/dist/three/annotations/DPthreeHTMLMarkers.d.ts +0 -131
- package/dist/three/annotations/DPthreeMarkers.d.ts +0 -52
- package/dist/three/annotations/animationFrameTaskScheduler.d.ts +0 -18
package/dist/wasm/README.md
CHANGED
|
@@ -33,10 +33,31 @@ The Rust core owns:
|
|
|
33
33
|
(`morphTarget` / `boneTransform` tracks) for the host mixer to schedule
|
|
34
34
|
- mesh-category routing and material profile data
|
|
35
35
|
- hair curves, hair physics, and appearance normalization
|
|
36
|
-
- annotation camera/marker
|
|
36
|
+
- annotation regions, camera gestures/flights/orbits, marker placement and visibility,
|
|
37
|
+
preview/reveal lifecycles, and humanoid template fitting
|
|
37
38
|
- profile-aware screen-space gaze geometry for eye/head AU trajectories
|
|
38
39
|
- renderer-neutral model analysis and packed live frame generation
|
|
39
40
|
|
|
41
|
+
`resolveMorphMeshSelections(profile, categories, availableNames)` resolves editor
|
|
42
|
+
mesh selections in one Rust request. It returns each requested category's effective
|
|
43
|
+
category, `hasSelection` (including explicit empty arrays), resolved loaded names,
|
|
44
|
+
and unresolved configured names. Request `viseme` for speech routing. Facial
|
|
45
|
+
categories share an authored `face` selection; body and hair stay independent.
|
|
46
|
+
Exact names take precedence over legacy mesh aliases. Consumers save concrete
|
|
47
|
+
resolved names plus unresolved names when editing, so deselecting one mesh does
|
|
48
|
+
not reactivate it through a legacy alias. This query does not change the profile.
|
|
49
|
+
|
|
50
|
+
`getAUBoneBindingStates(profile, auIds)` resolves a panel's AU bone links in one
|
|
51
|
+
Rust request and returns an object keyed by AU ID. It uses the existing
|
|
52
|
+
`getAUBoneBindingState` semantics, including custom bone names, axis/range,
|
|
53
|
+
continuum opposites and explicitly cleared bindings. Its profile input contains
|
|
54
|
+
only `auToBones`, `boneNodes`, `bonePrefix`, `boneSuffix`, `suffixPattern`,
|
|
55
|
+
`compositeRotations`, `continuumPairs` and `humanoidCharacterization`.
|
|
56
|
+
The adapter omits unrelated morph/mesh configuration, authored vertices and saved
|
|
57
|
+
clips before serialization. Mesh selection edits do not invalidate these bone
|
|
58
|
+
links; hosts can cache by those bone inputs and the requested AU IDs. This is a
|
|
59
|
+
read-only authoring query, with no rig replacement or playback effects.
|
|
60
|
+
|
|
40
61
|
The host animation library (Three `AnimationMixer`, Unity Animator, etc.) owns
|
|
41
62
|
clip playback, lerping, blending, looping, seeking, and crossfades. Rust must
|
|
42
63
|
not sample or lerp clips on the hot path.
|
|
@@ -53,45 +74,118 @@ disable the AU's mapped morphs or the viseme shapes.
|
|
|
53
74
|
The TypeScript adapter is intentionally limited to operations that require
|
|
54
75
|
Three.js objects: scene traversal, ClipIR ↔ `AnimationClip` conversion, frame
|
|
55
76
|
application, material writes, model loading/disposal, and default scene
|
|
56
|
-
construction.
|
|
57
|
-
|
|
58
|
-
|
|
77
|
+
construction. Annotation adapters capture DOM input, observe native geometry,
|
|
78
|
+
apply Rust camera/marker frames, render labels and release native resources.
|
|
79
|
+
Camera integration, region selection and marker state belong to Rust.
|
|
59
80
|
|
|
60
81
|
`ThreeFrameApplier.applyMeshMaterialConfigs(model, profile.meshes)` replays named
|
|
61
82
|
mesh visibility and material overrides when a host binds or replaces a profile.
|
|
62
83
|
It applies explicit `visible: false` and `visible: true` even without a material
|
|
63
84
|
entry, and restores render order, opacity, transparency, depth flags and blending
|
|
64
85
|
from `material`. Omitted fields leave the model's current values unchanged.
|
|
86
|
+
Replaying identical material values during a mapping edit leaves the material
|
|
87
|
+
version unchanged; render-order-only edits also avoid invalidating material programs.
|
|
65
88
|
Polymer calls this adapter during model binding and profile replacement; hosts
|
|
66
89
|
do not need a separate mesh-visibility replay loop.
|
|
67
90
|
|
|
91
|
+
`MorphVertexPreview` owns the editor's affected-vertex overlay and updates from
|
|
92
|
+
the existing Three scene render callback. It reuses position/color frame arrays,
|
|
93
|
+
retains samples only for the active hover, and releases old GPU attributes before
|
|
94
|
+
replacing differently sized geometry. Hiding or changing the hover clears its
|
|
95
|
+
sample cache; an explicitly empty mesh selection produces no preview. Applications
|
|
96
|
+
forward hover/show/hide events and dispose the overlay when its scene is released.
|
|
97
|
+
|
|
68
98
|
### Annotation runtime
|
|
69
99
|
|
|
70
|
-
`
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
100
|
+
`AnnotationRuntime` in `src/annotation_runtime/` owns the annotation behavior
|
|
101
|
+
and mutable state in Rust/Wasm: camera input and damping, framing and intro
|
|
102
|
+
transitions, authored/runtime regions, AU/bone target selection, laterality,
|
|
103
|
+
anchors, surface-query planning, expansion, solo, styles, visibility and layout.
|
|
104
|
+
`AnnotationLifecycle` owns preview/reveal deadlines and the effects they emit.
|
|
105
|
+
There is no TypeScript annotation state machine or OrbitControls dependency.
|
|
106
|
+
|
|
107
|
+
`ThreeAnnotationController` and the `ThreeAnnotations` convenience facade from
|
|
108
|
+
`@lovelace_lol/embody/three` provide native adapters. `ThreeAnnotationMarkers`,
|
|
109
|
+
`HtmlAnnotationMarkers`, and its `OverlayAnnotationMarkers` alias provide
|
|
110
|
+
marker-only views of the same Rust runtime. Their TypeScript code captures input,
|
|
111
|
+
serializes model observations, calls native raycasts and skinned-vertex evaluation,
|
|
112
|
+
applies packed Rust frames, creates labels, and owns renderer resources. Three
|
|
113
|
+
continues to own scene objects and GPU operations; those APIs cannot be replaced
|
|
114
|
+
by renderer-neutral Rust. Both marker styles share the same state and selection
|
|
115
|
+
rules. HTML occlusion uses Rust-planned rays evaluated by Three.
|
|
116
|
+
|
|
117
|
+
Rust fits marker endpoints before marker loading returns and on each update,
|
|
118
|
+
including additions, endpoint separation and reveal overshoot. Clipping uses
|
|
119
|
+
the displayed label dimensions and preserves the minimum leader-line length;
|
|
120
|
+
temporary overshoot clipping does not restart the reveal. Sphere sizing retains
|
|
121
|
+
the close-up scale and clamped distance scaling outside that range. Explicit
|
|
122
|
+
`markerAnchor.projectToSurface: false` also applies to `objects: ['*']` anchors.
|
|
123
|
+
HTML overlays align with the canvas rectangle inside its container, update on
|
|
124
|
+
resize/rebind, and restore borrowed parent positioning when the final view is
|
|
125
|
+
disposed. These coordinates assume axis-aligned CSS boxes without transforms.
|
|
126
|
+
|
|
127
|
+
AU morph anchors currently sample native deformed vertices during marker
|
|
128
|
+
preparation, then follow the selected object's transform. They do not yet
|
|
129
|
+
resample morph weights or skinning on subsequent frames. Animated surface
|
|
130
|
+
tracking requires cached vertex candidates and per-frame pose observations;
|
|
131
|
+
ordinary object-transform tracking does not provide that behavior.
|
|
132
|
+
|
|
133
|
+
This is a breaking replacement of the DPthree exports. Use
|
|
134
|
+
`ThreeAnnotationController.create(options)` or `ThreeAnnotations.create(options)`
|
|
135
|
+
to await Wasm initialization; synchronous constructors require an already initialized
|
|
136
|
+
core. Replace DPthree-prefixed types with `AnnotationCharacterConfig`,
|
|
137
|
+
`AnnotationRegion`, `AnnotationRegistry`, and the corresponding callback types.
|
|
138
|
+
The `controls` bridge retains `target`, `enabled`, damping/distance settings,
|
|
139
|
+
`update()`, and `change`/`start`/`end` listeners, but is not a Three `OrbitControls`
|
|
140
|
+
instance. Region and camera snapshots are observations; mutate through controller
|
|
141
|
+
methods. Explicit `undefined` fields in `updateAnnotationRegion` remove overrides.
|
|
142
|
+
`getCharacterConfig()` retains snapshot identity until configuration content or
|
|
143
|
+
the model changes; selection, visibility and camera input do not replace it.
|
|
144
|
+
Call `clearModel()` before releasing a removed model's native resources. The
|
|
145
|
+
controller retains renderer rebinding, canvas input reconnect and resource-drain
|
|
146
|
+
support through the scene's rendering controller.
|
|
147
|
+
Runtime preview region IDs retain the `runtime:annotation:` namespace.
|
|
148
|
+
|
|
149
|
+
When the annotation controller owns the renderer loop, it advances registered
|
|
150
|
+
native character mixers before observing annotation transforms and drawing the
|
|
151
|
+
scene. The first frame establishes the timer origin; skipped asynchronous draws
|
|
152
|
+
do not accumulate playback time. External render loops use the existing
|
|
153
|
+
`createScenePlaybackFrame` integration to advance character playback.
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
import { ThreeAnnotations } from '@lovelace_lol/embody/three';
|
|
157
|
+
|
|
158
|
+
const annotations = await ThreeAnnotations.create({ scene, camera, domElement: canvas });
|
|
159
|
+
annotations.setModel(model);
|
|
160
|
+
await annotations.loadCharacter({ characterId: 'character', profilePresetId: 'cc4' });
|
|
161
|
+
// Host-owned render loop: call annotations.update() before renderer.render(...).
|
|
162
|
+
```
|
|
77
163
|
|
|
78
164
|
Applications pass `AnnotationCharacterConfig`; storage, agency, editor and
|
|
79
165
|
character-asset metadata remain host concerns. `loadRegions` defaults to
|
|
80
166
|
`resolveAnnotationCharacterConfig`, which resolves annotation and AU mapping
|
|
81
167
|
fields from an Embody preset without serializing unrelated host metadata.
|
|
82
168
|
An optional `resolveCharacterConfig` callback supports host profile intake.
|
|
169
|
+
`prepareRegionsForReveal` defers native marker construction until the first
|
|
170
|
+
`setMarkersVisible(true)` call. Later visibility changes reuse those resources;
|
|
171
|
+
Rust's loaded state resets when the model or configuration is replaced.
|
|
83
172
|
`prepareRegionsAndMarkersForReveal` accepts an already-resolved profile and
|
|
84
173
|
prepares native surface queries while the model pose is still stable.
|
|
85
174
|
Initial queries yield to a browser paint between meshes once a 4 ms slice is
|
|
86
|
-
spent. Each native mesh raycast is indivisible;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
175
|
+
spent. Each native mesh raycast is indivisible; slicing does not reduce total
|
|
176
|
+
raycast CPU time. Interactive edits retain synchronous queries so a marker samples
|
|
177
|
+
one pose. Rust generations reject stale profile, surface and reveal completions
|
|
178
|
+
after replacement, clearing, region edits or disposal. Camera requests settle when
|
|
179
|
+
completed or cancelled, including controller disposal.
|
|
180
|
+
|
|
181
|
+
The direct Wasm boundary uses JSON commands/snapshots for configuration and
|
|
182
|
+
primitive model observations with stable object IDs. Frames, vertex candidates,
|
|
183
|
+
transform observations and ray results use packed typed arrays; coordinates are
|
|
184
|
+
world-space, camera/visibility angles are degrees, durations are milliseconds,
|
|
185
|
+
and viewport dimensions are CSS pixels. The layouts and operations are maintained
|
|
186
|
+
in [the Rust runtime](src/annotation_runtime/mod.rs) and
|
|
187
|
+
[marker frames](src/annotation_runtime/markers.rs); generated Wasm declarations
|
|
188
|
+
remain the ABI type source. IDs are scoped to one model lifetime.
|
|
95
189
|
|
|
96
190
|
For first reveal, call `controller.prepareModelForRender(model, { signal })`
|
|
97
191
|
from the existing `beforeReveal` callback (or directly before attaching the
|
|
@@ -103,8 +197,14 @@ it settles, even after `controller.dispose()`. This prepares visible variants,
|
|
|
103
197
|
not every future hidden material or animation state. See the
|
|
104
198
|
[model readiness contract](docs/SCENE_READINESS.md#model-readiness).
|
|
105
199
|
|
|
106
|
-
`createMarkerVisibilityLifecycle`
|
|
107
|
-
`
|
|
200
|
+
`createMarkerVisibilityLifecycle` and `createRuntimeAnnotationPreviewLifecycle`
|
|
201
|
+
transport host events to `AnnotationLifecycle`; browser timers only wake Rust at
|
|
202
|
+
its next deadline. Factories can queue input while Wasm initializes; `ready`
|
|
203
|
+
reports the current initialization attempt. After an initialization failure,
|
|
204
|
+
the next command retries or adopts a core initialized by another scene. Failed
|
|
205
|
+
attempts discard their queued input. `dispose()` also discards pending input,
|
|
206
|
+
cancels timers and frees the runtime, so cleanup before readiness cannot replay
|
|
207
|
+
callbacks. Later calls create a fresh runtime, preserving host effect-replay cleanup.
|
|
108
208
|
React hosts forward user events and subscribe to controller state. They do not
|
|
109
209
|
need local copies of the camera, marker, placement or timer algorithms.
|
|
110
210
|
The convenience facade delegates to one controller-owned marker layer.
|
|
@@ -177,7 +277,7 @@ controller immediately. `ready` reports the initial attempt; failure retains the
|
|
|
177
277
|
controller for recovery through `setSettings`. `getSettings`, `getSnapshot` and
|
|
178
278
|
`subscribe` expose the requested preference, actual backend, status and errors.
|
|
179
279
|
Live changes prepare and replace only backend resources, preserving the character,
|
|
180
|
-
scene, camera, lighting and marker state. `
|
|
280
|
+
scene, camera, lighting and marker state. `ThreeAnnotationController({ rendering,
|
|
181
281
|
scene, camera, domElement: container })` retargets its existing loop and controls;
|
|
182
282
|
hosts persist settings and display status without recreating the scene.
|
|
183
283
|
|
|
@@ -1,10 +1,67 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Browser timers only wake this state machine. Rust owns deadlines, expiry,
|
|
6
|
+
* manual overrides, repeated preview starts, and one-shot end notifications.
|
|
7
|
+
*/
|
|
8
|
+
export class AnnotationLifecycle {
|
|
9
|
+
free(): void;
|
|
10
|
+
[Symbol.dispose](): void;
|
|
11
|
+
command(operation: string, options_json: string, now_ms: number): string;
|
|
12
|
+
deadline(): number | undefined;
|
|
13
|
+
is_active(): boolean;
|
|
14
|
+
constructor(mode: string, default_duration_ms: number);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class AnnotationRuntime {
|
|
18
|
+
free(): void;
|
|
19
|
+
[Symbol.dispose](): void;
|
|
20
|
+
/**
|
|
21
|
+
* The only camera integrator: pose observation(6), fov/aspect/viewport(4).
|
|
22
|
+
* Returns pose(6), active request id, completed request id, needs frame.
|
|
23
|
+
*/
|
|
24
|
+
camera_frame(now_ms: number, observation: Float32Array): Float32Array;
|
|
25
|
+
command(operation: string, payload_json: string, now_ms: number): string;
|
|
26
|
+
completed_camera_request(): number;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
finish_markers(generation: number): void;
|
|
29
|
+
generation(): number;
|
|
30
|
+
is_current(generation: number): boolean;
|
|
31
|
+
label_metrics(id: number, width: number, height: number): void;
|
|
32
|
+
marker_frame(now_ms: number, projection: Float32Array, view_projection: Float32Array, width: number, height: number): Float32Array;
|
|
33
|
+
needs_frame(): boolean;
|
|
34
|
+
constructor(settings_json: string);
|
|
35
|
+
observe_model(model_json: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Native hit observations are [marker id, nearest distance], with infinity for no hit.
|
|
38
|
+
*/
|
|
39
|
+
observe_occlusion(hits: Float32Array): void;
|
|
40
|
+
/**
|
|
41
|
+
* Packed observation records are [object id, column-major matrixWorld(16)].
|
|
42
|
+
*/
|
|
43
|
+
observe_transforms(transforms: Float32Array): void;
|
|
44
|
+
/**
|
|
45
|
+
* HTML occlusion rays: [id, origin(3), direction(3), maximum distance].
|
|
46
|
+
* Three reports the nearest native hit; Rust owns its visibility meaning.
|
|
47
|
+
*/
|
|
48
|
+
occlusion_queries(): Float32Array;
|
|
49
|
+
/**
|
|
50
|
+
* Plans contain native ray queries, never native handles. Every result is
|
|
51
|
+
* tied to this generation; a stale query cannot resurrect cleared markers.
|
|
52
|
+
*/
|
|
53
|
+
plan_markers(morph_anchors_json: string): string;
|
|
54
|
+
revision(): number;
|
|
55
|
+
set_model(model_json: string): void;
|
|
56
|
+
snapshot(): string;
|
|
57
|
+
surface_result(generation: number, id: number, phase: number, hits: Float32Array): string;
|
|
58
|
+
tracked_objects(): Uint32Array;
|
|
59
|
+
}
|
|
60
|
+
|
|
4
61
|
/**
|
|
5
62
|
* Spherical camera flight between two camera poses.
|
|
6
63
|
*
|
|
7
|
-
* Mirrors the
|
|
64
|
+
* Mirrors the ThreeAnnotations camera transition: orbital interpolation with a
|
|
8
65
|
* pullback arc so large rotations do not pass through the model.
|
|
9
66
|
* `sample(elapsed_ms)` returns
|
|
10
67
|
* `[posX, posY, posZ, targetX, targetY, targetZ, done]`.
|
|
@@ -304,8 +361,24 @@ export function analyze_mesh_proportions(vertices: Float32Array, vertical_axis:
|
|
|
304
361
|
|
|
305
362
|
export function analyze_model_descriptor(model_json: string, clips_json: string, profile_json: string, options_json: string): string;
|
|
306
363
|
|
|
364
|
+
/**
|
|
365
|
+
* Select vertices influenced by any requested skeleton index. The adapter
|
|
366
|
+
* evaluates these indices through the native skinned vertex API.
|
|
367
|
+
*/
|
|
368
|
+
export function annotation_bone_vertices(indices: Float32Array, weights: Float32Array, bones: Uint32Array): Uint32Array;
|
|
369
|
+
|
|
307
370
|
export function annotation_camera_framing_stride(): number;
|
|
308
371
|
|
|
372
|
+
export function annotation_marker_frame_stride(): number;
|
|
373
|
+
|
|
374
|
+
export function annotation_morph_candidates(base: Float32Array, morphs: Float32Array, relative: boolean): Float32Array;
|
|
375
|
+
|
|
376
|
+
export function annotation_morph_center(region_json: string, candidates: Float32Array): Float32Array;
|
|
377
|
+
|
|
378
|
+
export function annotation_point_bounds(points: Float32Array): Float32Array;
|
|
379
|
+
|
|
380
|
+
export function annotation_query(operation: string, payload_json: string): string;
|
|
381
|
+
|
|
309
382
|
/**
|
|
310
383
|
* Build head-pitch gravity hair morph curves.
|
|
311
384
|
*/
|
|
@@ -495,7 +568,7 @@ export function sample_marker_bezier_curve(start: Float32Array, end: Float32Arra
|
|
|
495
568
|
*
|
|
496
569
|
* `starts` and `ends` are packed `[x, y, z, ...]` arrays. The output includes
|
|
497
570
|
* one endpoint for every complete start/end pair. Proximity and rotation
|
|
498
|
-
* constants match
|
|
571
|
+
* constants match ThreeAnnotations's marker layout, scaled to the current model height.
|
|
499
572
|
*/
|
|
500
573
|
export function separate_overlapping_marker_endpoints(starts: Float32Array, ends: Float32Array, model_center: Float32Array, model_height: number): Float32Array;
|
|
501
574
|
|
|
@@ -600,48 +673,60 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
600
673
|
|
|
601
674
|
export interface InitOutput {
|
|
602
675
|
readonly memory: WebAssembly.Memory;
|
|
603
|
-
readonly
|
|
604
|
-
readonly
|
|
605
|
-
readonly normalize_hair_color_appearance_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
606
|
-
readonly embody_request: (a: number, b: number) => [number, number, number, number];
|
|
607
|
-
readonly compute_humanoid_skeleton_template_rest_bounds: (a: number, b: number) => [number, number, number, number];
|
|
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;
|
|
608
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];
|
|
609
707
|
readonly create_validation_skeleton_json: (a: number, b: number) => [number, number, number, number];
|
|
610
708
|
readonly extract_humanoid_skeleton_template_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
611
709
|
readonly get_humanoid_skeleton_template_json: (a: number, b: number) => [number, number, number, number];
|
|
612
710
|
readonly humanoid_skeleton_template_bone_names: (a: number, b: number) => [number, number, number, number];
|
|
613
711
|
readonly list_humanoid_skeleton_templates_json: () => [number, number, number, number];
|
|
614
|
-
readonly
|
|
615
|
-
readonly marker_visibility_animation_factors: (a: number, b: number) => [number, number];
|
|
616
|
-
readonly pack_morph_frame_delta: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
617
|
-
readonly packed_bone_frame_delta_stride: () => number;
|
|
618
|
-
readonly packed_morph_frame_delta_stride: () => number;
|
|
619
|
-
readonly passes_marker_camera_angle_gate: (a: number, b: number, c: number) => number;
|
|
620
|
-
readonly resolve_viewport_constrained_line_scale: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
621
|
-
readonly resolve_viewport_safe_bounds: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
622
|
-
readonly sample_marker_arc_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
623
|
-
readonly sample_marker_bezier_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
624
|
-
readonly separate_overlapping_marker_endpoints: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
625
|
-
readonly should_show_marker: (a: number, b: number, c: number, d: number) => number;
|
|
626
|
-
readonly marker_visibility_factors_stride: () => number;
|
|
627
|
-
readonly __wbg_cameraflight_free: (a: number, b: number) => void;
|
|
628
|
-
readonly __wbg_cameraorbit_free: (a: number, b: number) => void;
|
|
712
|
+
readonly __wbg_hairphysicssolver_free: (a: number, b: number) => void;
|
|
629
713
|
readonly __wbg_runtimecore_free: (a: number, b: number) => void;
|
|
630
|
-
readonly
|
|
631
|
-
readonly
|
|
632
|
-
readonly
|
|
633
|
-
readonly
|
|
634
|
-
readonly
|
|
635
|
-
readonly
|
|
636
|
-
readonly
|
|
637
|
-
readonly
|
|
638
|
-
readonly
|
|
639
|
-
readonly
|
|
640
|
-
readonly
|
|
641
|
-
readonly
|
|
642
|
-
readonly
|
|
643
|
-
readonly
|
|
644
|
-
readonly
|
|
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];
|
|
645
730
|
readonly runtimecore_begin_live_command: (a: number) => void;
|
|
646
731
|
readonly runtimecore_build_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
647
732
|
readonly runtimecore_build_hair_gravity_clip: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
@@ -699,50 +784,53 @@ export interface InitOutput {
|
|
|
699
784
|
readonly runtimecore_set_viseme: (a: number, b: number, c: number) => void;
|
|
700
785
|
readonly runtimecore_set_viseme_jaw_scale: (a: number, b: number, c: number) => void;
|
|
701
786
|
readonly runtimecore_set_viseme_slot_count: (a: number, b: number) => void;
|
|
702
|
-
readonly runtimecore_viseme_morph_binding_stride: () => number;
|
|
703
787
|
readonly runtimecore_viseme_slot_index: (a: number, b: number, c: number) => number;
|
|
704
|
-
readonly
|
|
705
|
-
readonly
|
|
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
|
+
readonly runtimecore_viseme_morph_binding_stride: () => number;
|
|
791
|
+
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];
|
|
796
|
+
readonly marker_endpoint_stride: () => number;
|
|
797
|
+
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
|
+
readonly passes_marker_camera_angle_gate: (a: number, b: number, c: number) => number;
|
|
801
|
+
readonly resolve_viewport_constrained_line_scale: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
802
|
+
readonly resolve_viewport_safe_bounds: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
803
|
+
readonly sample_marker_arc_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
804
|
+
readonly sample_marker_bezier_curve: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
805
|
+
readonly separate_overlapping_marker_endpoints: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
806
|
+
readonly should_show_marker: (a: number, b: number, c: number, d: number) => number;
|
|
706
807
|
readonly solve_template_skeleton_fit: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
707
808
|
readonly template_skeleton_fit_solution_stride: () => number;
|
|
708
|
-
readonly
|
|
709
|
-
readonly
|
|
710
|
-
readonly runtimecore_remove_animation_clip: (a: number, b: number, c: number) => number;
|
|
711
|
-
readonly analyze_model_descriptor: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
712
|
-
readonly build_hair_gravity_curves: (a: number, b: number) => [number, number, number, number];
|
|
713
|
-
readonly build_hair_idle_curves: (a: number, b: number, c: number) => [number, number, number, number];
|
|
714
|
-
readonly build_hair_impulse_curves: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
715
|
-
readonly compile_clip: (a: number, b: number) => [number, number, number, number];
|
|
716
|
-
readonly compile_clip_curves: (a: number, b: number) => [number, number, number, number];
|
|
717
|
-
readonly compose_template_skeleton_fit_transform: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
718
|
-
readonly extract_model_data_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
719
|
-
readonly get_preset_json: (a: number, b: number) => [number, number, number, number];
|
|
720
|
-
readonly has_preset: (a: number, b: number) => number;
|
|
721
|
-
readonly list_presets: () => [number, number];
|
|
722
|
-
readonly merge_embedded_preset: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
723
|
-
readonly merge_preset_profile: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
724
|
-
readonly resolve_embedded_profile_view: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
725
|
-
readonly resolve_profile_view: (a: number, b: number) => [number, number, number, number];
|
|
726
|
-
readonly solve_axis_quaternion: (a: number, b: number, c: number, d: number) => [number, number];
|
|
727
|
-
readonly solve_bilateral_values: (a: number, b: number) => [number, number];
|
|
728
|
-
readonly solve_morph_batch: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
729
|
-
readonly template_skeleton_fit_transform_stride: () => number;
|
|
730
|
-
readonly validate_generated_template_fit_metadata: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
731
|
-
readonly validate_humanoid_characterization: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
732
|
-
readonly validate_profile_model: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
733
|
-
readonly __wbg_hairphysicssolver_free: (a: number, b: number) => void;
|
|
809
|
+
readonly marker_visibility_factors_stride: () => number;
|
|
810
|
+
readonly __wbg_annotationruntime_free: (a: number, b: number) => void;
|
|
734
811
|
readonly __wbg_nativeplaybacksession_free: (a: number, b: number) => void;
|
|
735
|
-
readonly
|
|
736
|
-
readonly
|
|
737
|
-
readonly
|
|
738
|
-
readonly
|
|
739
|
-
readonly
|
|
740
|
-
readonly
|
|
741
|
-
readonly
|
|
742
|
-
readonly
|
|
743
|
-
readonly
|
|
744
|
-
readonly
|
|
745
|
-
readonly
|
|
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];
|
|
746
834
|
readonly nativeplaybacksession_control: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
747
835
|
readonly nativeplaybacksession_dispose: (a: number) => [number, number, number, number];
|
|
748
836
|
readonly nativeplaybacksession_new: () => [number, number, number];
|
|
@@ -750,6 +838,24 @@ export interface InitOutput {
|
|
|
750
838
|
readonly nativeplaybacksession_play: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
751
839
|
readonly nativeplaybacksession_rebind: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
752
840
|
readonly nativeplaybacksession_replace_clip: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
841
|
+
readonly __wbg_cameraflight_free: (a: number, b: number) => void;
|
|
842
|
+
readonly __wbg_cameraorbit_free: (a: number, b: number) => void;
|
|
843
|
+
readonly annotation_camera_framing_stride: () => number;
|
|
844
|
+
readonly cameraflight_duration_ms: (a: number) => number;
|
|
845
|
+
readonly cameraflight_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
846
|
+
readonly cameraflight_sample: (a: number, b: number) => [number, number];
|
|
847
|
+
readonly cameraorbit_duration_ms: (a: number) => number;
|
|
848
|
+
readonly cameraorbit_new: (a: number, b: number, c: number, d: number, e: number) => number;
|
|
849
|
+
readonly cameraorbit_sample: (a: number, b: number) => [number, number];
|
|
850
|
+
readonly focus_padding_factor: (a: number, b: number, c: number, d: number) => number;
|
|
851
|
+
readonly normalize_camera_angle_degrees: (a: number) => number;
|
|
852
|
+
readonly resolve_auto_closeup_angle: (a: number, b: number, c: number, d: number, e: number) => number;
|
|
853
|
+
readonly resolve_focus_camera_direction: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
854
|
+
readonly solve_focus_framing: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number];
|
|
855
|
+
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
|
+
readonly world_direction_for_camera_angle: (a: number, b: number, c: number) => [number, number];
|
|
857
|
+
readonly camera_flight_sample_stride: () => number;
|
|
858
|
+
readonly embody_request: (a: number, b: number) => [number, number, number, number];
|
|
753
859
|
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
754
860
|
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
755
861
|
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|