@lovelace_lol/embody 0.0.7 → 0.0.9
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 +541 -2394
- package/dist/index.d.ts +2 -100
- package/dist/index.js +9197 -13851
- package/dist/index.js.map +1 -1
- package/dist/three/annotations/DOMControls.d.ts +73 -0
- package/dist/three/annotations/DPthree.d.ts +113 -0
- package/dist/three/annotations/DPthree3DMarkers.d.ts +319 -0
- package/dist/three/annotations/DPthreeCameraController.d.ts +415 -0
- package/dist/three/annotations/DPthreeHTMLMarkers.d.ts +131 -0
- package/dist/three/annotations/DPthreeMarkers.d.ts +52 -0
- package/dist/three/annotations/adapter.d.ts +157 -0
- package/dist/three/annotations/animationFrameTaskScheduler.d.ts +18 -0
- package/dist/three/annotations/annotationAnchorModel.d.ts +16 -0
- package/dist/three/annotations/annotationCameraCore.d.ts +5 -0
- package/dist/three/annotations/boneResolutionProfile.d.ts +7 -0
- package/dist/three/annotations/index.d.ts +20 -0
- package/dist/three/annotations/loadFrame.d.ts +2 -0
- package/dist/three/annotations/markerSurfaceRaycast.d.ts +11 -0
- package/dist/three/annotations/markerVisibilityLifecycle.d.ts +21 -0
- package/dist/three/annotations/modelRenderPreparation.d.ts +6 -0
- package/dist/three/annotations/runtimeAnnotationPreview.d.ts +15 -0
- package/dist/three/annotations/runtimeAnnotationPreviewSide.d.ts +10 -0
- package/dist/three/annotations/runtimeAnnotationSidePreview.d.ts +5 -0
- package/dist/three/annotations/types.d.ts +262 -0
- package/dist/three/authoring.d.ts +95 -0
- package/dist/three/authoringTypes.d.ts +576 -0
- package/dist/three/character.d.ts +243 -0
- package/dist/three/characterHost.d.ts +48 -0
- package/dist/three/clipBindings.d.ts +6 -0
- package/dist/three/index.d.ts +171 -0
- package/dist/three/model.d.ts +31 -0
- package/dist/three/modelSkinning.d.ts +3 -0
- package/dist/three/nativePlayback.d.ts +121 -0
- package/dist/three/playbackRendering.d.ts +14 -0
- package/dist/three/reference-pose.d.ts +73 -0
- package/dist/three/scene.d.ts +253 -0
- package/dist/three/sceneRenderingBinding.d.ts +22 -0
- package/dist/three.js +9252 -8844
- package/dist/three.js.map +1 -1
- package/dist/wasm/README.md +551 -62
- package/dist/wasm/auto.d.ts +1 -0
- package/dist/wasm/compatibility.d.ts +14 -0
- package/dist/wasm/embody_wasm.d.ts +352 -71
- package/dist/wasm/embody_wasm.js +1266 -37
- package/dist/wasm/embody_wasm_bg.wasm +0 -0
- package/dist/wasm/embody_wasm_bg.wasm.d.ts +113 -54
- package/dist/wasm/index.d.ts +131 -0
- package/dist/wasm.d.ts +1 -43
- package/dist/wasm.js +1100 -239
- package/dist/wasm.js.map +1 -1
- package/package.json +35 -39
- package/service-worker/character-asset-service-worker.js +295 -0
- package/dist/authoring/boneAuthoring.d.ts +0 -132
- package/dist/camera/annotationCameraAngles.d.ts +0 -28
- package/dist/camera/cameraRelativeGaze.d.ts +0 -15
- package/dist/camera/rustAnnotationCameraCore.d.ts +0 -136
- package/dist/cljs.cjs +0 -362
- package/dist/cljs.cjs.map +0 -1
- package/dist/cljs.d.ts +0 -5
- package/dist/cljs.js +0 -359
- package/dist/cljs.js.map +0 -1
- package/dist/core/TsClipCompiler.d.ts +0 -51
- package/dist/core/WasmRuntimeCore.d.ts +0 -41
- package/dist/core/compositeAxis.d.ts +0 -4
- package/dist/core/contracts/abi.d.ts +0 -70
- package/dist/core/contracts/clip.d.ts +0 -44
- package/dist/core/contracts/frame.d.ts +0 -27
- package/dist/core/contracts/host.d.ts +0 -28
- package/dist/core/contracts/ids.d.ts +0 -15
- package/dist/core/contracts/index.d.ts +0 -10
- package/dist/core/contracts/model.d.ts +0 -31
- package/dist/core/contracts/primitives.d.ts +0 -17
- package/dist/core/contracts/skeletonFit.d.ts +0 -41
- package/dist/core/index.d.ts +0 -6
- package/dist/core/types.d.ts +0 -472
- package/dist/core.cjs +0 -343
- package/dist/core.cjs.map +0 -1
- package/dist/core.js +0 -323
- package/dist/core.js.map +0 -1
- package/dist/engines/three/Embody.d.ts +0 -372
- package/dist/engines/three/ThreeAnimationRuntime.d.ts +0 -203
- package/dist/engines/three/ThreeClipAdapter.d.ts +0 -24
- package/dist/engines/three/ThreeFrameApplier.d.ts +0 -68
- package/dist/engines/three/ThreeModelInspector.d.ts +0 -54
- package/dist/engines/three/bakedClipPartitioning.d.ts +0 -16
- package/dist/engines/three/balanceUtils.d.ts +0 -3
- package/dist/engines/three/characterHost.d.ts +0 -80
- package/dist/engines/three/characterScene.d.ts +0 -98
- package/dist/engines/three/hair/HairPhysicsController.d.ts +0 -124
- package/dist/engines/three/index.d.ts +0 -20
- package/dist/engines/three/modelLoader.d.ts +0 -61
- package/dist/engines/three/profileTestScene.d.ts +0 -52
- package/dist/engines/three/types.d.ts +0 -20
- package/dist/hair/appearance.d.ts +0 -29
- package/dist/index.cjs +0 -14871
- package/dist/index.cjs.map +0 -1
- package/dist/interfaces/Animation.d.ts +0 -315
- package/dist/interfaces/EmbodyRuntime.d.ts +0 -90
- package/dist/interfaces/Hair.d.ts +0 -181
- package/dist/interfaces/HairPhysics.d.ts +0 -90
- package/dist/interfaces/index.d.ts +0 -11
- package/dist/mappings/extendPresetWithProfile.d.ts +0 -17
- package/dist/mappings/types.d.ts +0 -309
- package/dist/mappings/visemeSystem.d.ts +0 -26
- package/dist/physics/HairPhysics.d.ts +0 -86
- package/dist/physics/RustHairPhysics.d.ts +0 -18
- package/dist/physics/index.d.ts +0 -6
- package/dist/preset.cjs +0 -2005
- package/dist/preset.cjs.map +0 -1
- package/dist/preset.js +0 -2003
- package/dist/preset.js.map +0 -1
- package/dist/presets/bettaFish.d.ts +0 -328
- package/dist/presets/cc4.d.ts +0 -145
- package/dist/presets/index.d.ts +0 -30
- package/dist/presets/registry.d.ts +0 -57
- package/dist/profiles/resolveProfileConfig.d.ts +0 -36
- package/dist/profiles/rustResolvedProfile.d.ts +0 -31
- package/dist/profiles/types.d.ts +0 -118
- package/dist/regions/normalizeRegionTree.d.ts +0 -6
- package/dist/regions/regionMapping.d.ts +0 -17
- package/dist/regions/types.d.ts +0 -122
- package/dist/skeletonTemplates/humanoidSkeletonTemplates.d.ts +0 -32
- package/dist/test/setupWasm.d.ts +0 -1
- package/dist/three.cjs +0 -9550
- package/dist/three.cjs.map +0 -1
- package/dist/validation/analyzeModel.d.ts +0 -68
- package/dist/validation/extractModelData.d.ts +0 -90
- package/dist/validation/generateMappingCorrections.d.ts +0 -32
- package/dist/validation/geometryHelpers.d.ts +0 -66
- package/dist/validation/types.d.ts +0 -10
- package/dist/validation/validateMappings.d.ts +0 -77
- package/dist/wasm.cjs +0 -302
- package/dist/wasm.cjs.map +0 -1
- package/dist/wasmTypes.d.ts +0 -123
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embody - Unified Model Analysis API
|
|
3
|
-
*
|
|
4
|
-
* Combines model extraction, validation, and correction suggestions
|
|
5
|
-
* into a single comprehensive analysis report.
|
|
6
|
-
*/
|
|
7
|
-
import * as THREE from 'three';
|
|
8
|
-
import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
9
|
-
import type { Profile } from '../mappings/types';
|
|
10
|
-
import { type ModelData } from './extractModelData';
|
|
11
|
-
import { type ValidationResult } from './validateMappings';
|
|
12
|
-
/**
|
|
13
|
-
* Animation analysis results
|
|
14
|
-
*/
|
|
15
|
-
export interface AnimationAnalysis {
|
|
16
|
-
count: number;
|
|
17
|
-
hasIdleCandidate: boolean;
|
|
18
|
-
clips: Array<{
|
|
19
|
-
name: string;
|
|
20
|
-
duration: number;
|
|
21
|
-
affectedBones: string[];
|
|
22
|
-
affectedMorphs: string[];
|
|
23
|
-
}>;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Complete model analysis report
|
|
27
|
-
*/
|
|
28
|
-
export interface ModelAnalysisReport {
|
|
29
|
-
/** Extracted model data */
|
|
30
|
-
model: ModelData;
|
|
31
|
-
/** Validation results (if preset provided) */
|
|
32
|
-
validation?: ValidationResult;
|
|
33
|
-
/** Animation analysis */
|
|
34
|
-
animations: AnimationAnalysis;
|
|
35
|
-
/** Overall health score (0-100) */
|
|
36
|
-
overallScore: number;
|
|
37
|
-
/** Human-readable summary */
|
|
38
|
-
summary: string;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Options for model analysis
|
|
42
|
-
*/
|
|
43
|
-
export interface AnalyzeModelOptions {
|
|
44
|
-
/** The model source */
|
|
45
|
-
source: {
|
|
46
|
-
type: 'gltf';
|
|
47
|
-
gltf: GLTF;
|
|
48
|
-
} | {
|
|
49
|
-
type: 'runtime';
|
|
50
|
-
model: THREE.Object3D;
|
|
51
|
-
meshes: THREE.Mesh[];
|
|
52
|
-
animations: THREE.AnimationClip[];
|
|
53
|
-
};
|
|
54
|
-
/** Optional preset to validate against */
|
|
55
|
-
preset?: Profile;
|
|
56
|
-
/** Request correction suggestions */
|
|
57
|
-
suggestCorrections?: boolean;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Analyze a 3D model comprehensively
|
|
61
|
-
*
|
|
62
|
-
* Extracts model data, validates against a preset (if provided),
|
|
63
|
-
* analyzes animations, and returns a comprehensive report.
|
|
64
|
-
*
|
|
65
|
-
* @param options - Analysis options
|
|
66
|
-
* @returns Complete analysis report
|
|
67
|
-
*/
|
|
68
|
-
export declare function analyzeModel(options: AnalyzeModelOptions): Promise<ModelAnalysisReport>;
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embody - Model Data Extraction
|
|
3
|
-
*
|
|
4
|
-
* Extracts bones, morph targets, meshes, and animations from 3D models.
|
|
5
|
-
* Works with both GLTF files and runtime Three.js models.
|
|
6
|
-
*/
|
|
7
|
-
import * as THREE from 'three';
|
|
8
|
-
import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
9
|
-
/**
|
|
10
|
-
* Bone information extracted from skeleton
|
|
11
|
-
*/
|
|
12
|
-
export interface BoneInfo {
|
|
13
|
-
name: string;
|
|
14
|
-
parent: string | null;
|
|
15
|
-
children: string[];
|
|
16
|
-
worldPosition: {
|
|
17
|
-
x: number;
|
|
18
|
-
y: number;
|
|
19
|
-
z: number;
|
|
20
|
-
};
|
|
21
|
-
/** Depth in hierarchy (0 = root) */
|
|
22
|
-
depth: number;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Morph target information
|
|
26
|
-
*/
|
|
27
|
-
export interface MorphInfo {
|
|
28
|
-
name: string;
|
|
29
|
-
meshName: string;
|
|
30
|
-
index: number;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Model mesh information (from extraction)
|
|
34
|
-
*/
|
|
35
|
-
export interface ModelMeshInfo {
|
|
36
|
-
name: string;
|
|
37
|
-
hasMorphTargets: boolean;
|
|
38
|
-
morphCount: number;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Animation track information
|
|
42
|
-
*/
|
|
43
|
-
export interface TrackInfo {
|
|
44
|
-
name: string;
|
|
45
|
-
targetName: string;
|
|
46
|
-
property: string;
|
|
47
|
-
type: 'position' | 'rotation' | 'scale' | 'morph' | 'unknown';
|
|
48
|
-
keyframeCount: number;
|
|
49
|
-
valueRange?: {
|
|
50
|
-
min: number[];
|
|
51
|
-
max: number[];
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Animation clip information
|
|
56
|
-
*/
|
|
57
|
-
export interface AnimationInfo {
|
|
58
|
-
name: string;
|
|
59
|
-
duration: number;
|
|
60
|
-
tracks: TrackInfo[];
|
|
61
|
-
animatedBones: string[];
|
|
62
|
-
animatedMorphs: string[];
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Complete model data extraction result
|
|
66
|
-
*/
|
|
67
|
-
export interface ModelData {
|
|
68
|
-
bones: BoneInfo[];
|
|
69
|
-
morphs: MorphInfo[];
|
|
70
|
-
meshes: ModelMeshInfo[];
|
|
71
|
-
animations: AnimationInfo[];
|
|
72
|
-
/** Quick lookups */
|
|
73
|
-
boneNames: string[];
|
|
74
|
-
morphNames: string[];
|
|
75
|
-
meshNames: string[];
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Extract all data from a runtime Three.js model
|
|
79
|
-
*
|
|
80
|
-
* @param model - The root Object3D of the loaded model
|
|
81
|
-
* @param meshes - Array of meshes with morph targets (optional, will be collected if not provided)
|
|
82
|
-
* @param animations - Array of AnimationClips from the GLTF (optional)
|
|
83
|
-
*/
|
|
84
|
-
export declare function extractModelData(model: THREE.Object3D, meshes?: THREE.Mesh[], animations?: THREE.AnimationClip[]): ModelData;
|
|
85
|
-
/**
|
|
86
|
-
* Extract all data from a GLTF file
|
|
87
|
-
*
|
|
88
|
-
* @param gltf - The loaded GLTF object
|
|
89
|
-
*/
|
|
90
|
-
export declare function extractFromGLTF(gltf: GLTF): ModelData;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embody - Mapping Corrections
|
|
3
|
-
*
|
|
4
|
-
* Attempts to generate a corrected mapping configuration using fuzzy matching.
|
|
5
|
-
* This is a best-effort helper that can be layered on top of validation.
|
|
6
|
-
*/
|
|
7
|
-
import type { Profile } from '../mappings/types';
|
|
8
|
-
import type { ValidationMorphMesh as MorphMesh, ValidationSkeleton as Skeleton } from './types';
|
|
9
|
-
export interface MappingCorrection {
|
|
10
|
-
type: 'bone' | 'morph' | 'viseme' | 'mesh';
|
|
11
|
-
source: string;
|
|
12
|
-
target: string;
|
|
13
|
-
confidence: number;
|
|
14
|
-
reason: string;
|
|
15
|
-
applied: boolean;
|
|
16
|
-
auId?: number;
|
|
17
|
-
key?: string;
|
|
18
|
-
}
|
|
19
|
-
export interface MappingCorrectionResult {
|
|
20
|
-
correctedConfig: Profile;
|
|
21
|
-
corrections: MappingCorrection[];
|
|
22
|
-
unresolved: MappingCorrection[];
|
|
23
|
-
}
|
|
24
|
-
export interface MappingCorrectionOptions {
|
|
25
|
-
minConfidence?: number;
|
|
26
|
-
/**
|
|
27
|
-
* When true, normalize names to resolved full names and clear prefix/suffix.
|
|
28
|
-
* This is useful when target names don't follow the prefix/suffix pattern.
|
|
29
|
-
*/
|
|
30
|
-
useResolvedNames?: boolean;
|
|
31
|
-
}
|
|
32
|
-
export declare function generateMappingCorrections(meshes: MorphMesh[], skeleton: Skeleton | null, config: Profile, options?: MappingCorrectionOptions): MappingCorrectionResult;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embody - Geometry Helpers
|
|
3
|
-
*
|
|
4
|
-
* Helper functions for finding face positions, annotation centers,
|
|
5
|
-
* and other geometry-related calculations for character models.
|
|
6
|
-
*/
|
|
7
|
-
import * as THREE from 'three';
|
|
8
|
-
/**
|
|
9
|
-
* Result of finding a face center position
|
|
10
|
-
*/
|
|
11
|
-
export interface FaceCenterResult {
|
|
12
|
-
/** The calculated face center position in world space */
|
|
13
|
-
center: THREE.Vector3;
|
|
14
|
-
/** The head bone position (if found) */
|
|
15
|
-
headBonePosition?: THREE.Vector3;
|
|
16
|
-
/** How the center was determined */
|
|
17
|
-
method: 'head-bone-offset' | 'bone-average' | 'mesh-center' | 'fallback';
|
|
18
|
-
/** Debug info about what was found */
|
|
19
|
-
debugInfo: string[];
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Options for finding face center
|
|
23
|
-
*/
|
|
24
|
-
export interface FindFaceCenterOptions {
|
|
25
|
-
/** Names of bones to search for head bone (e.g., ['CC_Base_Head']) */
|
|
26
|
-
headBoneNames?: string[];
|
|
27
|
-
/** Names of face meshes - when provided, uses mesh bounding box center for positioning */
|
|
28
|
-
faceMeshNames?: string[];
|
|
29
|
-
/** Forward offset from head bone to face surface (default: 0.08 = 8cm) */
|
|
30
|
-
forwardOffset?: number;
|
|
31
|
-
/** Reference model height for scaling (default: 1.8m) */
|
|
32
|
-
referenceHeight?: number;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Find the center position of a character's face.
|
|
36
|
-
*
|
|
37
|
-
* Strategy:
|
|
38
|
-
* 1. If face mesh names provided and they're face-only meshes, use mesh center
|
|
39
|
-
* 2. Otherwise find head bone and use EYE positions to determine forward direction
|
|
40
|
-
* (Eyes are reliably IN FRONT of the head bone, unlike jaw which is below)
|
|
41
|
-
*
|
|
42
|
-
* @param model - The root Object3D of the character model
|
|
43
|
-
* @param options - Configuration options
|
|
44
|
-
* @returns FaceCenterResult with the calculated position
|
|
45
|
-
*/
|
|
46
|
-
export declare function findFaceCenter(model: THREE.Object3D, options?: FindFaceCenterOptions): FaceCenterResult;
|
|
47
|
-
/**
|
|
48
|
-
* Get the forward direction of a model in world space.
|
|
49
|
-
* Assumes the model's local forward is positive Z.
|
|
50
|
-
*
|
|
51
|
-
* @param model - The model to get forward direction for
|
|
52
|
-
* @returns Normalized forward direction vector in world space
|
|
53
|
-
*/
|
|
54
|
-
export declare function getModelForwardDirection(model: THREE.Object3D): THREE.Vector3;
|
|
55
|
-
/**
|
|
56
|
-
* Check if a character model is facing forward (toward camera at origin).
|
|
57
|
-
* Uses head/eye bone positions to determine facing direction.
|
|
58
|
-
*
|
|
59
|
-
* @param model - The character model
|
|
60
|
-
* @param eyeBoneNames - Names of eye bones to search for
|
|
61
|
-
* @returns 'forward' if facing camera, 'backward' if facing away, 'unknown' if can't determine
|
|
62
|
-
*/
|
|
63
|
-
export declare function detectFacingDirection(model: THREE.Object3D, eyeBoneNames?: {
|
|
64
|
-
left: string[];
|
|
65
|
-
right: string[];
|
|
66
|
-
}): 'forward' | 'backward' | 'unknown';
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embody - Mapping Validation
|
|
3
|
-
*
|
|
4
|
-
* Validates that AU mapping presets are compatible with a loaded character model.
|
|
5
|
-
* Checks that bones, morph targets, and meshes referenced in the preset exist in the model.
|
|
6
|
-
*/
|
|
7
|
-
import type { Profile } from '../mappings/types';
|
|
8
|
-
import type { MappingCorrection, MappingCorrectionOptions } from './generateMappingCorrections';
|
|
9
|
-
import type { ValidationMorphMesh as MorphMesh, ValidationSkeleton as Skeleton } from './types';
|
|
10
|
-
/**
|
|
11
|
-
* Result of validating a preset against a model
|
|
12
|
-
*/
|
|
13
|
-
export interface ValidationResult {
|
|
14
|
-
/** Overall validity - true if essential mappings are found */
|
|
15
|
-
valid: boolean;
|
|
16
|
-
/** Compatibility score from 0-100 */
|
|
17
|
-
score: number;
|
|
18
|
-
/** Morph targets referenced in preset but not found in model */
|
|
19
|
-
missingMorphs: string[];
|
|
20
|
-
/** Bones referenced in preset but not found in model */
|
|
21
|
-
missingBones: string[];
|
|
22
|
-
/** Morph targets successfully matched */
|
|
23
|
-
foundMorphs: string[];
|
|
24
|
-
/** Bones successfully matched */
|
|
25
|
-
foundBones: string[];
|
|
26
|
-
/** Morph targets in model not used by preset */
|
|
27
|
-
unmappedMorphs: string[];
|
|
28
|
-
/** Bones in model not used by preset */
|
|
29
|
-
unmappedBones: string[];
|
|
30
|
-
/** Meshes referenced by morphToMesh but not found in model */
|
|
31
|
-
missingMeshes: string[];
|
|
32
|
-
/** Meshes referenced by morphToMesh and found in model */
|
|
33
|
-
foundMeshes: string[];
|
|
34
|
-
/** Meshes in model not referenced by morphToMesh */
|
|
35
|
-
unmappedMeshes: string[];
|
|
36
|
-
/** Non-fatal warnings and suggestions */
|
|
37
|
-
warnings: string[];
|
|
38
|
-
/** Optional: corrected config when suggestions are requested */
|
|
39
|
-
suggestedConfig?: Profile;
|
|
40
|
-
/** Optional: corrections applied or suggested */
|
|
41
|
-
corrections?: MappingCorrection[];
|
|
42
|
-
/** Optional: unresolved mappings that could not be corrected */
|
|
43
|
-
unresolved?: MappingCorrection[];
|
|
44
|
-
}
|
|
45
|
-
export type IssueSeverity = 'error' | 'warning';
|
|
46
|
-
export interface MappingIssue {
|
|
47
|
-
code: string;
|
|
48
|
-
severity: IssueSeverity;
|
|
49
|
-
message: string;
|
|
50
|
-
data?: Record<string, unknown>;
|
|
51
|
-
}
|
|
52
|
-
export interface MappingConsistencyResult {
|
|
53
|
-
valid: boolean;
|
|
54
|
-
errors: MappingIssue[];
|
|
55
|
-
warnings: MappingIssue[];
|
|
56
|
-
issues: MappingIssue[];
|
|
57
|
-
}
|
|
58
|
-
export interface ValidateMappingOptions extends MappingCorrectionOptions {
|
|
59
|
-
suggestCorrections?: boolean;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Validate that the mapping dictionaries are internally consistent.
|
|
63
|
-
*/
|
|
64
|
-
export declare function validateMappingConfig(config: Profile): MappingConsistencyResult;
|
|
65
|
-
export declare function validateMappings(meshes: MorphMesh[], skeleton: Skeleton | null, config: Profile, options?: ValidateMappingOptions): ValidationResult;
|
|
66
|
-
/**
|
|
67
|
-
* Quick check if a preset is compatible with a model.
|
|
68
|
-
* Returns true if at least 50% of mappings are found.
|
|
69
|
-
*/
|
|
70
|
-
export declare function isPresetCompatible(meshes: MorphMesh[], skeleton: Skeleton | null, config: Profile): boolean;
|
|
71
|
-
/**
|
|
72
|
-
* Suggest the best preset from a list based on validation scores.
|
|
73
|
-
*/
|
|
74
|
-
export declare function suggestBestPreset<T extends Profile>(meshes: MorphMesh[], skeleton: Skeleton | null, presets: T[]): {
|
|
75
|
-
preset: T;
|
|
76
|
-
score: number;
|
|
77
|
-
} | null;
|
package/dist/wasm.cjs
DELETED
|
@@ -1,302 +0,0 @@
|
|
|
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
|