@lovelace_lol/embody 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +541 -2394
  2. package/dist/index.d.ts +2 -100
  3. package/dist/index.js +7714 -12951
  4. package/dist/index.js.map +1 -1
  5. package/dist/three/annotations/DOMControls.d.ts +73 -0
  6. package/dist/three/annotations/DPthree.d.ts +113 -0
  7. package/dist/three/annotations/DPthree3DMarkers.d.ts +319 -0
  8. package/dist/three/annotations/DPthreeCameraController.d.ts +414 -0
  9. package/dist/three/annotations/DPthreeHTMLMarkers.d.ts +131 -0
  10. package/dist/three/annotations/DPthreeMarkers.d.ts +52 -0
  11. package/dist/three/annotations/adapter.d.ts +157 -0
  12. package/dist/three/annotations/animationFrameTaskScheduler.d.ts +18 -0
  13. package/dist/three/annotations/annotationAnchorModel.d.ts +16 -0
  14. package/dist/three/annotations/annotationCameraCore.d.ts +5 -0
  15. package/dist/three/annotations/boneResolutionProfile.d.ts +7 -0
  16. package/dist/three/annotations/index.d.ts +20 -0
  17. package/dist/three/annotations/loadFrame.d.ts +2 -0
  18. package/dist/three/annotations/markerSurfaceRaycast.d.ts +11 -0
  19. package/dist/three/annotations/markerVisibilityLifecycle.d.ts +21 -0
  20. package/dist/three/annotations/modelRenderPreparation.d.ts +6 -0
  21. package/dist/three/annotations/runtimeAnnotationPreview.d.ts +15 -0
  22. package/dist/three/annotations/runtimeAnnotationPreviewSide.d.ts +10 -0
  23. package/dist/three/annotations/runtimeAnnotationSidePreview.d.ts +5 -0
  24. package/dist/three/annotations/types.d.ts +262 -0
  25. package/dist/three/gaze.d.ts +122 -0
  26. package/dist/three/index.d.ts +147 -0
  27. package/dist/three/model.d.ts +31 -0
  28. package/dist/three/modelSkinning.d.ts +3 -0
  29. package/dist/three/reference-pose.d.ts +73 -0
  30. package/dist/three/scene.d.ts +253 -0
  31. package/dist/three/sceneRenderingBinding.d.ts +22 -0
  32. package/dist/three.js +7696 -8936
  33. package/dist/three.js.map +1 -1
  34. package/dist/wasm/README.md +551 -62
  35. package/dist/wasm/auto.d.ts +1 -0
  36. package/dist/wasm/embody_wasm.d.ts +388 -52
  37. package/dist/wasm/embody_wasm.js +1514 -119
  38. package/dist/wasm/embody_wasm_bg.wasm +0 -0
  39. package/dist/wasm/embody_wasm_bg.wasm.d.ts +115 -40
  40. package/dist/wasm/index.d.ts +126 -0
  41. package/dist/wasm.d.ts +1 -43
  42. package/dist/wasm.js +1043 -239
  43. package/dist/wasm.js.map +1 -1
  44. package/package.json +34 -39
  45. package/service-worker/character-asset-service-worker.js +295 -0
  46. package/dist/authoring/boneAuthoring.d.ts +0 -132
  47. package/dist/camera/annotationCameraAngles.d.ts +0 -28
  48. package/dist/camera/cameraRelativeGaze.d.ts +0 -15
  49. package/dist/camera/rustAnnotationCameraCore.d.ts +0 -136
  50. package/dist/cljs.cjs +0 -362
  51. package/dist/cljs.cjs.map +0 -1
  52. package/dist/cljs.d.ts +0 -5
  53. package/dist/cljs.js +0 -359
  54. package/dist/cljs.js.map +0 -1
  55. package/dist/core/TsClipCompiler.d.ts +0 -51
  56. package/dist/core/WasmRuntimeCore.d.ts +0 -41
  57. package/dist/core/compositeAxis.d.ts +0 -4
  58. package/dist/core/contracts/abi.d.ts +0 -70
  59. package/dist/core/contracts/clip.d.ts +0 -44
  60. package/dist/core/contracts/frame.d.ts +0 -27
  61. package/dist/core/contracts/host.d.ts +0 -28
  62. package/dist/core/contracts/ids.d.ts +0 -15
  63. package/dist/core/contracts/index.d.ts +0 -10
  64. package/dist/core/contracts/model.d.ts +0 -31
  65. package/dist/core/contracts/primitives.d.ts +0 -17
  66. package/dist/core/contracts/skeletonFit.d.ts +0 -41
  67. package/dist/core/index.d.ts +0 -6
  68. package/dist/core/types.d.ts +0 -472
  69. package/dist/core.cjs +0 -343
  70. package/dist/core.cjs.map +0 -1
  71. package/dist/core.js +0 -323
  72. package/dist/core.js.map +0 -1
  73. package/dist/engines/three/Embody.d.ts +0 -372
  74. package/dist/engines/three/ThreeAnimationRuntime.d.ts +0 -203
  75. package/dist/engines/three/ThreeClipAdapter.d.ts +0 -24
  76. package/dist/engines/three/ThreeFrameApplier.d.ts +0 -68
  77. package/dist/engines/three/ThreeModelInspector.d.ts +0 -54
  78. package/dist/engines/three/bakedClipPartitioning.d.ts +0 -16
  79. package/dist/engines/three/balanceUtils.d.ts +0 -3
  80. package/dist/engines/three/characterHost.d.ts +0 -80
  81. package/dist/engines/three/characterScene.d.ts +0 -98
  82. package/dist/engines/three/hair/HairPhysicsController.d.ts +0 -124
  83. package/dist/engines/three/index.d.ts +0 -20
  84. package/dist/engines/three/modelLoader.d.ts +0 -61
  85. package/dist/engines/three/profileTestScene.d.ts +0 -52
  86. package/dist/engines/three/types.d.ts +0 -20
  87. package/dist/hair/appearance.d.ts +0 -29
  88. package/dist/index.cjs +0 -14871
  89. package/dist/index.cjs.map +0 -1
  90. package/dist/interfaces/Animation.d.ts +0 -315
  91. package/dist/interfaces/EmbodyRuntime.d.ts +0 -90
  92. package/dist/interfaces/Hair.d.ts +0 -181
  93. package/dist/interfaces/HairPhysics.d.ts +0 -90
  94. package/dist/interfaces/index.d.ts +0 -11
  95. package/dist/mappings/extendPresetWithProfile.d.ts +0 -17
  96. package/dist/mappings/types.d.ts +0 -309
  97. package/dist/mappings/visemeSystem.d.ts +0 -26
  98. package/dist/physics/HairPhysics.d.ts +0 -86
  99. package/dist/physics/RustHairPhysics.d.ts +0 -18
  100. package/dist/physics/index.d.ts +0 -6
  101. package/dist/preset.cjs +0 -2005
  102. package/dist/preset.cjs.map +0 -1
  103. package/dist/preset.js +0 -2003
  104. package/dist/preset.js.map +0 -1
  105. package/dist/presets/bettaFish.d.ts +0 -328
  106. package/dist/presets/cc4.d.ts +0 -145
  107. package/dist/presets/index.d.ts +0 -30
  108. package/dist/presets/registry.d.ts +0 -57
  109. package/dist/profiles/resolveProfileConfig.d.ts +0 -36
  110. package/dist/profiles/rustResolvedProfile.d.ts +0 -31
  111. package/dist/profiles/types.d.ts +0 -118
  112. package/dist/regions/normalizeRegionTree.d.ts +0 -6
  113. package/dist/regions/regionMapping.d.ts +0 -17
  114. package/dist/regions/types.d.ts +0 -122
  115. package/dist/skeletonTemplates/humanoidSkeletonTemplates.d.ts +0 -32
  116. package/dist/test/setupWasm.d.ts +0 -1
  117. package/dist/three.cjs +0 -9550
  118. package/dist/three.cjs.map +0 -1
  119. package/dist/validation/analyzeModel.d.ts +0 -68
  120. package/dist/validation/extractModelData.d.ts +0 -90
  121. package/dist/validation/generateMappingCorrections.d.ts +0 -32
  122. package/dist/validation/geometryHelpers.d.ts +0 -66
  123. package/dist/validation/types.d.ts +0 -10
  124. package/dist/validation/validateMappings.d.ts +0 -77
  125. package/dist/wasm.cjs +0 -302
  126. package/dist/wasm.cjs.map +0 -1
  127. package/dist/wasmTypes.d.ts +0 -123
@@ -1,328 +0,0 @@
1
- /**
2
- * Betta Fish Preset - Skeletal Animation Mappings
3
- *
4
- * Bone mappings for the betta fish model from Sketchfab.
5
- * This fish has 53 bones and 1 embedded animation ("Take 01" swimming).
6
- * No morph targets/blend shapes - all animation is skeletal.
7
- *
8
- * Bone structure (inferred from hierarchy):
9
- * - Armature_rootJoint: Root
10
- * - Bone_Armature: Main body root
11
- * - Bone.001_Armature: Head/Front body
12
- * - Bone.009-017: Likely eyes/gills area (left/right symmetry)
13
- * - Bone.002_Armature: Body spine chain
14
- * - Bone.003 → 004 → 005: Body to tail
15
- * - Bone.018-045: Tail fins (multiple branching chains)
16
- * - Bone.046/047: Pectoral fins (left/right)
17
- * - Bone.006_Armature: Dorsal fin area
18
- * - Bone.007/008: Dorsal fin bones
19
- */
20
- import type { BoneBinding, AUInfo, CompositeRotation } from '../core/types';
21
- import type { AnnotationRegion, MeshInfo } from '../mappings/types';
22
- export declare const BONES: readonly ["Armature_rootJoint", "Bone_Armature", "Bone.001_Armature", "Bone.009_Armature", "Bone.027_Armature", "Bone.029_Armature", "Bone.031_Armature", "Bone.028_Armature", "Bone.030_Armature", "Bone.032_Armature", "Bone.010_Armature", "Bone.012_Armature", "Bone.014_Armature", "Bone.016_Armature", "Bone.011_Armature", "Bone.013_Armature", "Bone.015_Armature", "Bone.017_Armature", "Bone.002_Armature", "Bone.003_Armature", "Bone.004_Armature", "Bone.005_Armature", "Bone.020_Armature", "Bone.025_Armature", "Bone.026_Armature", "Bone.039_Armature", "Bone.040_Armature", "Bone.041_Armature", "Bone.042_Armature", "Bone.043_Armature", "Bone.044_Armature", "Bone.045_Armature", "Bone.019_Armature", "Bone.023_Armature", "Bone.024_Armature", "Bone.034_Armature", "Bone.036_Armature", "Bone.038_Armature", "Bone.018_Armature", "Bone.021_Armature", "Bone.022_Armature", "Bone.033_Armature", "Bone.035_Armature", "Bone.037_Armature", "Bone.046_Armature", "Bone.048_Armature", "Bone.050_Armature", "Bone.047_Armature", "Bone.049_Armature", "Bone.051_Armature", "Bone.006_Armature", "Bone.007_Armature", "Bone.008_Armature"];
23
- export declare const BONE_PREFIX = "Bone.";
24
- export declare const BONE_SUFFIX = "_Armature";
25
- export declare const BONE_NODES: {
26
- readonly ROOT: "Armature_rootJoint";
27
- readonly BODY_ROOT: "Bone_Armature";
28
- readonly HEAD: "001";
29
- readonly BODY_FRONT: "002";
30
- readonly BODY_MID: "003";
31
- readonly BODY_BACK: "004";
32
- readonly TAIL_BASE: "005";
33
- readonly GILL_L: "046";
34
- readonly GILL_L_MID: "048";
35
- readonly GILL_L_TIP: "050";
36
- readonly GILL_R: "047";
37
- readonly GILL_R_MID: "049";
38
- readonly GILL_R_TIP: "051";
39
- readonly DORSAL_ROOT: "006";
40
- readonly DORSAL_L: "007";
41
- readonly DORSAL_R: "008";
42
- readonly VENTRAL_L: "018";
43
- readonly VENTRAL_L_MID: "021";
44
- readonly VENTRAL_L_TIP: "022";
45
- readonly VENTRAL_R: "033";
46
- readonly VENTRAL_R_MID: "035";
47
- readonly VENTRAL_R_TIP: "037";
48
- readonly PECTORAL_L_ROOT: "009";
49
- readonly PECTORAL_L_CHAIN1: "027";
50
- readonly PECTORAL_L_CHAIN1_MID: "029";
51
- readonly PECTORAL_L_CHAIN1_TIP: "031";
52
- readonly PECTORAL_L_CHAIN2: "028";
53
- readonly PECTORAL_L_CHAIN2_MID: "030";
54
- readonly PECTORAL_L_CHAIN2_TIP: "032";
55
- readonly PECTORAL_R_ROOT: "010";
56
- readonly PECTORAL_R_CHAIN1: "012";
57
- readonly PECTORAL_R_CHAIN1_A: "014";
58
- readonly PECTORAL_R_CHAIN1_B: "016";
59
- readonly PECTORAL_R_ROOT2: "011";
60
- readonly PECTORAL_R_CHAIN2: "013";
61
- readonly PECTORAL_R_CHAIN2_A: "015";
62
- readonly PECTORAL_R_CHAIN2_B: "017";
63
- readonly EYE_L: "EYES_0";
64
- readonly EYE_R: "EYES_0";
65
- readonly TAIL_TOP: "020";
66
- readonly TAIL_TOP_MID: "025";
67
- readonly TAIL_TOP_TIP: "026";
68
- readonly TAIL_MID: "039";
69
- readonly TAIL_MID_A: "040";
70
- readonly TAIL_MID_A_TIP: "041";
71
- readonly TAIL_MID_B: "042";
72
- readonly TAIL_MID_B_TIP: "043";
73
- readonly TAIL_MID_C: "044";
74
- readonly TAIL_MID_C_TIP: "045";
75
- readonly TAIL_SIDE_L: "019";
76
- readonly TAIL_SIDE_L_MID: "023";
77
- readonly TAIL_SIDE_L_TIP: "024";
78
- readonly TAIL_SIDE_R: "034";
79
- readonly TAIL_SIDE_R_MID: "036";
80
- readonly TAIL_SIDE_R_TIP: "038";
81
- };
82
- export declare const BONE_BINDINGS: Record<number, BoneBinding[]>;
83
- export declare const AU_INFO: Record<string, AUInfo>;
84
- /**
85
- * Continuum pairs - maps AU ID to its partner for bidirectional sliders
86
- * Format matches loomlarge's CONTINUUM_PAIRS_MAP (animal-agnostic)
87
- */
88
- export declare const CONTINUUM_PAIRS_MAP: Record<number, {
89
- pairId: number;
90
- isNegative: boolean;
91
- axis: 'pitch' | 'yaw' | 'roll';
92
- node: string;
93
- }>;
94
- /**
95
- * Get continuum label for a pair, derived from AU_INFO.
96
- * No need for a separate CONTINUUM_LABELS object.
97
- */
98
- export declare function getContinuumLabelForPair(negativeId: number, positiveId: number): string;
99
- /**
100
- * Build all continuum labels from AU_INFO and CONTINUUM_PAIRS_MAP.
101
- * This replaces the need for a manually-maintained CONTINUUM_LABELS object.
102
- */
103
- export declare function buildContinuumLabels(): Record<string, string>;
104
- export declare const CONTINUUM_LABELS: Record<string, string>;
105
- export declare const COMPOSITE_ROTATIONS: CompositeRotation[];
106
- export declare const EYE_MESH_NODES: {
107
- readonly LEFT: "EYES_0";
108
- readonly RIGHT: "EYES_0";
109
- };
110
- export declare const MESHES: Record<string, MeshInfo>;
111
- export declare const ANNOTATION_REGIONS: AnnotationRegion[];
112
- export declare const BETTA_FISH_PRESET: {
113
- bones: readonly ["Armature_rootJoint", "Bone_Armature", "Bone.001_Armature", "Bone.009_Armature", "Bone.027_Armature", "Bone.029_Armature", "Bone.031_Armature", "Bone.028_Armature", "Bone.030_Armature", "Bone.032_Armature", "Bone.010_Armature", "Bone.012_Armature", "Bone.014_Armature", "Bone.016_Armature", "Bone.011_Armature", "Bone.013_Armature", "Bone.015_Armature", "Bone.017_Armature", "Bone.002_Armature", "Bone.003_Armature", "Bone.004_Armature", "Bone.005_Armature", "Bone.020_Armature", "Bone.025_Armature", "Bone.026_Armature", "Bone.039_Armature", "Bone.040_Armature", "Bone.041_Armature", "Bone.042_Armature", "Bone.043_Armature", "Bone.044_Armature", "Bone.045_Armature", "Bone.019_Armature", "Bone.023_Armature", "Bone.024_Armature", "Bone.034_Armature", "Bone.036_Armature", "Bone.038_Armature", "Bone.018_Armature", "Bone.021_Armature", "Bone.022_Armature", "Bone.033_Armature", "Bone.035_Armature", "Bone.037_Armature", "Bone.046_Armature", "Bone.048_Armature", "Bone.050_Armature", "Bone.047_Armature", "Bone.049_Armature", "Bone.051_Armature", "Bone.006_Armature", "Bone.007_Armature", "Bone.008_Armature"];
114
- boneBindings: Record<number, BoneBinding[]>;
115
- actionInfo: Record<string, AUInfo>;
116
- name?: string;
117
- animalType?: string;
118
- emoji?: string;
119
- auToMorphs: Record<number, import("..").MorphTargetsBySide>;
120
- auToBones: Record<number, BoneBinding[]>;
121
- boneNodes: Record<string, string>;
122
- bonePrefix?: string;
123
- boneSuffix?: string;
124
- morphPrefix?: string;
125
- morphSuffix?: string;
126
- suffixPattern?: string;
127
- leftMorphSuffixes?: string[];
128
- rightMorphSuffixes?: string[];
129
- morphToMesh: Record<string, string[]>;
130
- auFacePartToMeshCategory?: Record<string, string>;
131
- mappingSections?: import("..").MappingEditorSection[];
132
- visemeKeys: import("..").MorphTargetRef[];
133
- visemeSystemId?: string;
134
- visemeSlots?: import("..").VisemeSlot[];
135
- visemeBindings?: Record<string, import("..").VisemeBinding>;
136
- visemeMeshCategory?: string;
137
- visemeJawAmounts?: number[];
138
- auMixDefaults?: Record<number, number>;
139
- auInfo?: Record<string, AUInfo>;
140
- eyeMeshNodes?: {
141
- LEFT: string;
142
- RIGHT: string;
143
- };
144
- compositeRotations?: CompositeRotation[];
145
- meshes?: Record<string, MeshInfo>;
146
- continuumPairs?: Record<number, {
147
- pairId: number;
148
- isNegative: boolean;
149
- axis: "pitch" | "yaw" | "roll";
150
- node: string;
151
- }>;
152
- continuumLabels?: Record<string, string>;
153
- annotationRegions?: AnnotationRegion[];
154
- disabledRegions?: string[];
155
- hairPhysics?: import("..").HairPhysicsProfileConfig;
156
- };
157
- /**
158
- * Check if an AU has bilateral bone bindings (L and R nodes)
159
- * Used to determine if a balance slider should be shown
160
- */
161
- export declare const hasLeftRightBones: (auId: number) => boolean;
162
- export default BETTA_FISH_PRESET;
163
- export declare const AU_MAPPING_CONFIG: {
164
- bones: readonly ["Armature_rootJoint", "Bone_Armature", "Bone.001_Armature", "Bone.009_Armature", "Bone.027_Armature", "Bone.029_Armature", "Bone.031_Armature", "Bone.028_Armature", "Bone.030_Armature", "Bone.032_Armature", "Bone.010_Armature", "Bone.012_Armature", "Bone.014_Armature", "Bone.016_Armature", "Bone.011_Armature", "Bone.013_Armature", "Bone.015_Armature", "Bone.017_Armature", "Bone.002_Armature", "Bone.003_Armature", "Bone.004_Armature", "Bone.005_Armature", "Bone.020_Armature", "Bone.025_Armature", "Bone.026_Armature", "Bone.039_Armature", "Bone.040_Armature", "Bone.041_Armature", "Bone.042_Armature", "Bone.043_Armature", "Bone.044_Armature", "Bone.045_Armature", "Bone.019_Armature", "Bone.023_Armature", "Bone.024_Armature", "Bone.034_Armature", "Bone.036_Armature", "Bone.038_Armature", "Bone.018_Armature", "Bone.021_Armature", "Bone.022_Armature", "Bone.033_Armature", "Bone.035_Armature", "Bone.037_Armature", "Bone.046_Armature", "Bone.048_Armature", "Bone.050_Armature", "Bone.047_Armature", "Bone.049_Armature", "Bone.051_Armature", "Bone.006_Armature", "Bone.007_Armature", "Bone.008_Armature"];
165
- boneBindings: Record<number, BoneBinding[]>;
166
- actionInfo: Record<string, AUInfo>;
167
- name?: string;
168
- animalType?: string;
169
- emoji?: string;
170
- auToMorphs: Record<number, import("..").MorphTargetsBySide>;
171
- auToBones: Record<number, BoneBinding[]>;
172
- boneNodes: Record<string, string>;
173
- bonePrefix?: string;
174
- boneSuffix?: string;
175
- morphPrefix?: string;
176
- morphSuffix?: string;
177
- suffixPattern?: string;
178
- leftMorphSuffixes?: string[];
179
- rightMorphSuffixes?: string[];
180
- morphToMesh: Record<string, string[]>;
181
- auFacePartToMeshCategory?: Record<string, string>;
182
- mappingSections?: import("..").MappingEditorSection[];
183
- visemeKeys: import("..").MorphTargetRef[];
184
- visemeSystemId?: string;
185
- visemeSlots?: import("..").VisemeSlot[];
186
- visemeBindings?: Record<string, import("..").VisemeBinding>;
187
- visemeMeshCategory?: string;
188
- visemeJawAmounts?: number[];
189
- auMixDefaults?: Record<number, number>;
190
- auInfo?: Record<string, AUInfo>;
191
- eyeMeshNodes?: {
192
- LEFT: string;
193
- RIGHT: string;
194
- };
195
- compositeRotations?: CompositeRotation[];
196
- meshes?: Record<string, MeshInfo>;
197
- continuumPairs?: Record<number, {
198
- pairId: number;
199
- isNegative: boolean;
200
- axis: "pitch" | "yaw" | "roll";
201
- node: string;
202
- }>;
203
- continuumLabels?: Record<string, string>;
204
- annotationRegions?: AnnotationRegion[];
205
- disabledRegions?: string[];
206
- hairPhysics?: import("..").HairPhysicsProfileConfig;
207
- };
208
- export declare const ACTION_INFO: Record<string, AUInfo>;
209
- export declare const FISH_BONES: readonly ["Armature_rootJoint", "Bone_Armature", "Bone.001_Armature", "Bone.009_Armature", "Bone.027_Armature", "Bone.029_Armature", "Bone.031_Armature", "Bone.028_Armature", "Bone.030_Armature", "Bone.032_Armature", "Bone.010_Armature", "Bone.012_Armature", "Bone.014_Armature", "Bone.016_Armature", "Bone.011_Armature", "Bone.013_Armature", "Bone.015_Armature", "Bone.017_Armature", "Bone.002_Armature", "Bone.003_Armature", "Bone.004_Armature", "Bone.005_Armature", "Bone.020_Armature", "Bone.025_Armature", "Bone.026_Armature", "Bone.039_Armature", "Bone.040_Armature", "Bone.041_Armature", "Bone.042_Armature", "Bone.043_Armature", "Bone.044_Armature", "Bone.045_Armature", "Bone.019_Armature", "Bone.023_Armature", "Bone.024_Armature", "Bone.034_Armature", "Bone.036_Armature", "Bone.038_Armature", "Bone.018_Armature", "Bone.021_Armature", "Bone.022_Armature", "Bone.033_Armature", "Bone.035_Armature", "Bone.037_Armature", "Bone.046_Armature", "Bone.048_Armature", "Bone.050_Armature", "Bone.047_Armature", "Bone.049_Armature", "Bone.051_Armature", "Bone.006_Armature", "Bone.007_Armature", "Bone.008_Armature"];
210
- export declare const FISH_BONE_NODES: {
211
- readonly ROOT: "Armature_rootJoint";
212
- readonly BODY_ROOT: "Bone_Armature";
213
- readonly HEAD: "001";
214
- readonly BODY_FRONT: "002";
215
- readonly BODY_MID: "003";
216
- readonly BODY_BACK: "004";
217
- readonly TAIL_BASE: "005";
218
- readonly GILL_L: "046";
219
- readonly GILL_L_MID: "048";
220
- readonly GILL_L_TIP: "050";
221
- readonly GILL_R: "047";
222
- readonly GILL_R_MID: "049";
223
- readonly GILL_R_TIP: "051";
224
- readonly DORSAL_ROOT: "006";
225
- readonly DORSAL_L: "007";
226
- readonly DORSAL_R: "008";
227
- readonly VENTRAL_L: "018";
228
- readonly VENTRAL_L_MID: "021";
229
- readonly VENTRAL_L_TIP: "022";
230
- readonly VENTRAL_R: "033";
231
- readonly VENTRAL_R_MID: "035";
232
- readonly VENTRAL_R_TIP: "037";
233
- readonly PECTORAL_L_ROOT: "009";
234
- readonly PECTORAL_L_CHAIN1: "027";
235
- readonly PECTORAL_L_CHAIN1_MID: "029";
236
- readonly PECTORAL_L_CHAIN1_TIP: "031";
237
- readonly PECTORAL_L_CHAIN2: "028";
238
- readonly PECTORAL_L_CHAIN2_MID: "030";
239
- readonly PECTORAL_L_CHAIN2_TIP: "032";
240
- readonly PECTORAL_R_ROOT: "010";
241
- readonly PECTORAL_R_CHAIN1: "012";
242
- readonly PECTORAL_R_CHAIN1_A: "014";
243
- readonly PECTORAL_R_CHAIN1_B: "016";
244
- readonly PECTORAL_R_ROOT2: "011";
245
- readonly PECTORAL_R_CHAIN2: "013";
246
- readonly PECTORAL_R_CHAIN2_A: "015";
247
- readonly PECTORAL_R_CHAIN2_B: "017";
248
- readonly EYE_L: "EYES_0";
249
- readonly EYE_R: "EYES_0";
250
- readonly TAIL_TOP: "020";
251
- readonly TAIL_TOP_MID: "025";
252
- readonly TAIL_TOP_TIP: "026";
253
- readonly TAIL_MID: "039";
254
- readonly TAIL_MID_A: "040";
255
- readonly TAIL_MID_A_TIP: "041";
256
- readonly TAIL_MID_B: "042";
257
- readonly TAIL_MID_B_TIP: "043";
258
- readonly TAIL_MID_C: "044";
259
- readonly TAIL_MID_C_TIP: "045";
260
- readonly TAIL_SIDE_L: "019";
261
- readonly TAIL_SIDE_L_MID: "023";
262
- readonly TAIL_SIDE_L_TIP: "024";
263
- readonly TAIL_SIDE_R: "034";
264
- readonly TAIL_SIDE_R_MID: "036";
265
- readonly TAIL_SIDE_R_TIP: "038";
266
- };
267
- export declare const FISH_BONE_BINDINGS: Record<number, BoneBinding[]>;
268
- export declare const FISH_AU_INFO: Record<string, AUInfo>;
269
- export declare const FISH_ACTION_INFO: Record<string, AUInfo>;
270
- export declare const FISH_CONTINUUM_PAIRS_MAP: Record<number, {
271
- pairId: number;
272
- isNegative: boolean;
273
- axis: "pitch" | "yaw" | "roll";
274
- node: string;
275
- }>;
276
- export declare const FISH_CONTINUUM_LABELS: Record<string, string>;
277
- export declare const FISH_COMPOSITE_ROTATIONS: CompositeRotation[];
278
- export declare const FISH_EYE_MESH_NODES: {
279
- readonly LEFT: "EYES_0";
280
- readonly RIGHT: "EYES_0";
281
- };
282
- export declare const FISH_MESHES: Record<string, MeshInfo>;
283
- export declare const FISH_AU_MAPPING_CONFIG: {
284
- bones: readonly ["Armature_rootJoint", "Bone_Armature", "Bone.001_Armature", "Bone.009_Armature", "Bone.027_Armature", "Bone.029_Armature", "Bone.031_Armature", "Bone.028_Armature", "Bone.030_Armature", "Bone.032_Armature", "Bone.010_Armature", "Bone.012_Armature", "Bone.014_Armature", "Bone.016_Armature", "Bone.011_Armature", "Bone.013_Armature", "Bone.015_Armature", "Bone.017_Armature", "Bone.002_Armature", "Bone.003_Armature", "Bone.004_Armature", "Bone.005_Armature", "Bone.020_Armature", "Bone.025_Armature", "Bone.026_Armature", "Bone.039_Armature", "Bone.040_Armature", "Bone.041_Armature", "Bone.042_Armature", "Bone.043_Armature", "Bone.044_Armature", "Bone.045_Armature", "Bone.019_Armature", "Bone.023_Armature", "Bone.024_Armature", "Bone.034_Armature", "Bone.036_Armature", "Bone.038_Armature", "Bone.018_Armature", "Bone.021_Armature", "Bone.022_Armature", "Bone.033_Armature", "Bone.035_Armature", "Bone.037_Armature", "Bone.046_Armature", "Bone.048_Armature", "Bone.050_Armature", "Bone.047_Armature", "Bone.049_Armature", "Bone.051_Armature", "Bone.006_Armature", "Bone.007_Armature", "Bone.008_Armature"];
285
- boneBindings: Record<number, BoneBinding[]>;
286
- actionInfo: Record<string, AUInfo>;
287
- name?: string;
288
- animalType?: string;
289
- emoji?: string;
290
- auToMorphs: Record<number, import("..").MorphTargetsBySide>;
291
- auToBones: Record<number, BoneBinding[]>;
292
- boneNodes: Record<string, string>;
293
- bonePrefix?: string;
294
- boneSuffix?: string;
295
- morphPrefix?: string;
296
- morphSuffix?: string;
297
- suffixPattern?: string;
298
- leftMorphSuffixes?: string[];
299
- rightMorphSuffixes?: string[];
300
- morphToMesh: Record<string, string[]>;
301
- auFacePartToMeshCategory?: Record<string, string>;
302
- mappingSections?: import("..").MappingEditorSection[];
303
- visemeKeys: import("..").MorphTargetRef[];
304
- visemeSystemId?: string;
305
- visemeSlots?: import("..").VisemeSlot[];
306
- visemeBindings?: Record<string, import("..").VisemeBinding>;
307
- visemeMeshCategory?: string;
308
- visemeJawAmounts?: number[];
309
- auMixDefaults?: Record<number, number>;
310
- auInfo?: Record<string, AUInfo>;
311
- eyeMeshNodes?: {
312
- LEFT: string;
313
- RIGHT: string;
314
- };
315
- compositeRotations?: CompositeRotation[];
316
- meshes?: Record<string, MeshInfo>;
317
- continuumPairs?: Record<number, {
318
- pairId: number;
319
- isNegative: boolean;
320
- axis: "pitch" | "yaw" | "roll";
321
- node: string;
322
- }>;
323
- continuumLabels?: Record<string, string>;
324
- annotationRegions?: AnnotationRegion[];
325
- disabledRegions?: string[];
326
- hairPhysics?: import("..").HairPhysicsProfileConfig;
327
- };
328
- export declare const fishHasLeftRightBones: (auId: number) => boolean;
@@ -1,145 +0,0 @@
1
- /**
2
- * CC4 Preset - Character Creator 4 AU Mappings
3
- *
4
- * Complete FACS Action Unit to morph target and bone mappings for CC4 rigs.
5
- * This includes all the composite rotations, continuum pairs, mesh classifications,
6
- * and AU metadata that we painstakingly worked through.
7
- */
8
- import type { Profile, MeshInfo, MorphCategory, MorphTargetsBySide, VisemeSlot, MappingEditorSection } from '../mappings/types';
9
- import type { BoneBinding, AUInfo, CompositeRotation } from '../core/types';
10
- export declare const AU_TO_MORPHS: Record<number, MorphTargetsBySide>;
11
- /** Bone name prefix used by semantic CC4 profile metadata. */
12
- export declare const CC4_BONE_PREFIX = "CC_Base_";
13
- /**
14
- * Suffix pattern regex for fuzzy bone matching.
15
- * Matches numbered suffixes like _01, _038 (common in Sketchfab exports)
16
- * and .001, .002 (common in Blender exports).
17
- */
18
- export declare const CC4_SUFFIX_PATTERN = "_\\d+$|\\.\\d+$";
19
- /** Actual CC4 skeleton node names used by the stock preset. */
20
- export declare const CC4_BONES: {
21
- readonly EYE_L: "CC_Base_L_Eye";
22
- readonly EYE_R: "CC_Base_R_Eye";
23
- readonly HEAD: "CC_Base_Head";
24
- readonly NECK: "CC_Base_NeckTwist01";
25
- readonly NECK_TWIST: "CC_Base_NeckTwist02";
26
- readonly JAW: "CC_Base_JawRoot";
27
- readonly TONGUE: "CC_Base_Tongue01";
28
- readonly SPINE_01: "CC_Base_Spine01";
29
- readonly SPINE_02: "CC_Base_Spine02";
30
- readonly CLAVICLE_L: "CC_Base_L_Clavicle";
31
- readonly CLAVICLE_R: "CC_Base_R_Clavicle";
32
- readonly HAND_L: "CC_Base_L_Hand";
33
- readonly HAND_R: "CC_Base_R_Hand";
34
- readonly FOOT_L: "CC_Base_L_Foot";
35
- readonly FOOT_R: "CC_Base_R_Foot";
36
- readonly TOEBASE_L: "CC_Base_L_ToeBase";
37
- readonly TOEBASE_R: "CC_Base_R_ToeBase";
38
- };
39
- /**
40
- * Semantic bone keys used by profile metadata and annotation regions. Runtime
41
- * AU/composite bindings may still use concrete CC4 node names directly.
42
- */
43
- export declare const CC4_BONE_NODES: {
44
- readonly EYE_L: "L_Eye";
45
- readonly EYE_R: "R_Eye";
46
- readonly HEAD: "Head";
47
- readonly NECK: "NeckTwist01";
48
- readonly NECK_TWIST: "NeckTwist02";
49
- readonly JAW: "JawRoot";
50
- readonly TONGUE: "Tongue01";
51
- readonly SPINE_01: "Spine01";
52
- readonly SPINE_02: "Spine02";
53
- readonly CLAVICLE_L: "L_Clavicle";
54
- readonly CLAVICLE_R: "R_Clavicle";
55
- readonly HAND_L: "L_Hand";
56
- readonly HAND_R: "R_Hand";
57
- readonly FOOT_L: "L_Foot";
58
- readonly FOOT_R: "R_Foot";
59
- readonly TOEBASE_L: "L_ToeBase";
60
- readonly TOEBASE_R: "R_ToeBase";
61
- readonly CC_Base_L_Eye: "CC_Base_L_Eye";
62
- readonly CC_Base_R_Eye: "CC_Base_R_Eye";
63
- readonly CC_Base_Head: "CC_Base_Head";
64
- readonly CC_Base_NeckTwist01: "CC_Base_NeckTwist01";
65
- readonly CC_Base_NeckTwist02: "CC_Base_NeckTwist02";
66
- readonly CC_Base_JawRoot: "CC_Base_JawRoot";
67
- readonly CC_Base_Tongue01: "CC_Base_Tongue01";
68
- readonly CC_Base_Spine01: "CC_Base_Spine01";
69
- readonly CC_Base_Spine02: "CC_Base_Spine02";
70
- readonly CC_Base_L_Clavicle: "CC_Base_L_Clavicle";
71
- readonly CC_Base_R_Clavicle: "CC_Base_R_Clavicle";
72
- readonly CC_Base_L_Hand: "CC_Base_L_Hand";
73
- readonly CC_Base_R_Hand: "CC_Base_R_Hand";
74
- readonly CC_Base_L_Foot: "CC_Base_L_Foot";
75
- readonly CC_Base_R_Foot: "CC_Base_R_Foot";
76
- readonly CC_Base_L_ToeBase: "CC_Base_L_ToeBase";
77
- readonly CC_Base_R_ToeBase: "CC_Base_R_ToeBase";
78
- };
79
- export declare const BONE_AU_TO_BINDINGS: Record<number, BoneBinding[]>;
80
- /**
81
- * Lip-sync support controls are not FACS AUs. They are semantic controls emitted
82
- * by speech planning when the runtime needs articulation support that should not
83
- * activate a visible FACS morph. Control 103 opens the jaw bone for speech while
84
- * leaving AU 26's Jaw_Open morph untouched.
85
- *
86
- * This is kept as a separate preset object so the data model does not pretend
87
- * lip-sync support controls are ordinary AUs. `CC4_PROFILE_BONE_BINDINGS` folds
88
- * it into the legacy `Profile.auToBones` field until Embody has the canonical
89
- * control/binding model tracked in meekmachine/embody#30.
90
- */
91
- export declare const LIP_SYNC_CONTROL_TO_BINDINGS: Record<number, BoneBinding[]>;
92
- /** Legacy compatibility map consumed by the current runtime profile shape. */
93
- export declare const CC4_PROFILE_BONE_BINDINGS: Record<number, BoneBinding[]>;
94
- export declare const VISEME_KEYS: string[];
95
- /**
96
- * Jaw opening amounts for each viseme index (0-14).
97
- * Values are 0-1 representing how much the jaw should open.
98
- * Used by snippetToClip when autoVisemeJaw is enabled.
99
- */
100
- export declare const VISEME_JAW_AMOUNTS: number[];
101
- export declare const CC4_VISEME_SYSTEM_ID = "cc4-arkit-15";
102
- export declare const CC4_VISEME_SLOTS: VisemeSlot[];
103
- /** Check if an AU has both morphs and bones (can blend between them) */
104
- export declare const isMixedAU: (id: number) => boolean;
105
- /** Check if an AU has separate left/right morphs */
106
- export declare const hasLeftRightMorphs: (auId: number) => boolean;
107
- /** Check if an AU has bilateral bone bindings (L and R nodes) in CC4 preset */
108
- export declare const hasLeftRightBones: (auId: number) => boolean;
109
- /** Helper to check if bone bindings have L and R nodes */
110
- export declare const checkBindingsForLeftRight: (bindings: BoneBinding[] | undefined) => boolean;
111
- export declare const COMPOSITE_ROTATIONS: CompositeRotation[];
112
- /**
113
- * Continuum pair mappings - precomputed from COMPOSITE_ROTATIONS
114
- * Maps AU ID to its continuum partner info for bidirectional axes
115
- * (e.g., AU 51 "Head Left" is paired with AU 52 "Head Right")
116
- */
117
- export declare const CONTINUUM_PAIRS_MAP: Record<number, {
118
- pairId: number;
119
- isNegative: boolean;
120
- axis: 'pitch' | 'yaw' | 'roll';
121
- node: string;
122
- }>;
123
- /**
124
- * Human-readable labels for continuum pairs
125
- * Key format: "negativeAU-positiveAU"
126
- * Used by UI components (ContinuumSlider, AUSection) to display friendly axis names
127
- */
128
- export declare const CONTINUUM_LABELS: Record<string, string>;
129
- export declare const CC4_EYE_MESH_NODES: {
130
- readonly LEFT: "CC_Base_Eye";
131
- readonly RIGHT: "CC_Base_Eye_1";
132
- };
133
- export declare const AU_INFO: Record<string, AUInfo>;
134
- /** Default mix weights (0 = morph only, 1 = bone only) */
135
- export declare const AU_MIX_DEFAULTS: Record<number, number>;
136
- /** Exact mesh name -> category mapping from the character GLB */
137
- export declare const CC4_MESHES: Record<string, MeshInfo>;
138
- /** Which mesh each morph category applies to */
139
- export declare const MORPH_TO_MESH: Record<MorphCategory, string[]>;
140
- /** Map AU facePart labels to morphToMesh categories for configurable AU mesh routing. */
141
- export declare const AU_FACEPART_TO_MESH_CATEGORY: Record<string, MorphCategory>;
142
- export declare const CC4_MAPPING_SECTIONS: MappingEditorSection[];
143
- export declare const CC4_HAIR_PHYSICS: Profile['hairPhysics'];
144
- export declare const CC4_PRESET: Profile;
145
- export default CC4_PRESET;
@@ -1,30 +0,0 @@
1
- /**
2
- * Embody - Preset Exports
3
- *
4
- * All AU presets are exported from here.
5
- * Frontend passes a presetType string and Embody looks up or extends the preset internally.
6
- */
7
- export { CC4_PRESET, default } from './cc4';
8
- export * from './cc4';
9
- import type { Profile } from '../mappings/types';
10
- export { extendPresetWithProfile, mergePresetWithProfile, } from '../mappings/extendPresetWithProfile';
11
- export { BETTA_FISH_PRESET, AU_MAPPING_CONFIG, FISH_AU_MAPPING_CONFIG } from './bettaFish';
12
- export { EMBEDDED_PRESETS, getEmbeddedPreset, } from './registry';
13
- export type { EmbeddedPresetId } from './registry';
14
- export { BONE_NODES as FISH_BONE_NODES, BONE_BINDINGS as FISH_BONE_BINDINGS, COMPOSITE_ROTATIONS as FISH_COMPOSITE_ROTATIONS, EYE_MESH_NODES as FISH_EYE_MESH_NODES, } from './bettaFish';
15
- /**
16
- * Preset types that can be passed to Embody
17
- */
18
- import { type EmbeddedPresetId } from './registry';
19
- export type PresetType = EmbeddedPresetId | 'skeletal' | 'custom';
20
- /**
21
- * Get a preset by type name.
22
- * This allows frontend to pass a string instead of importing the full preset.
23
- */
24
- export declare function getPreset(presetType: PresetType | string | undefined): Profile;
25
- export declare const resolvePreset: typeof getPreset;
26
- /**
27
- * Get a preset, then extend it with an optional profile.
28
- */
29
- export declare function getPresetWithProfile(presetType: PresetType | string | undefined, profile?: Partial<Profile>): Promise<Profile>;
30
- export declare const resolvePresetWithOverrides: typeof getPresetWithProfile;
@@ -1,57 +0,0 @@
1
- import type { Profile } from '../mappings/types';
2
- /**
3
- * Authoring registry for presets embedded in the Rust/Wasm package.
4
- *
5
- * Preset IDs are data identifiers. Runtime code must look them up through the
6
- * generated Wasm registry rather than branching on individual characters.
7
- */
8
- export declare const EMBEDDED_PRESETS: {
9
- readonly cc4: Profile;
10
- readonly fish: {
11
- bones: readonly ["Armature_rootJoint", "Bone_Armature", "Bone.001_Armature", "Bone.009_Armature", "Bone.027_Armature", "Bone.029_Armature", "Bone.031_Armature", "Bone.028_Armature", "Bone.030_Armature", "Bone.032_Armature", "Bone.010_Armature", "Bone.012_Armature", "Bone.014_Armature", "Bone.016_Armature", "Bone.011_Armature", "Bone.013_Armature", "Bone.015_Armature", "Bone.017_Armature", "Bone.002_Armature", "Bone.003_Armature", "Bone.004_Armature", "Bone.005_Armature", "Bone.020_Armature", "Bone.025_Armature", "Bone.026_Armature", "Bone.039_Armature", "Bone.040_Armature", "Bone.041_Armature", "Bone.042_Armature", "Bone.043_Armature", "Bone.044_Armature", "Bone.045_Armature", "Bone.019_Armature", "Bone.023_Armature", "Bone.024_Armature", "Bone.034_Armature", "Bone.036_Armature", "Bone.038_Armature", "Bone.018_Armature", "Bone.021_Armature", "Bone.022_Armature", "Bone.033_Armature", "Bone.035_Armature", "Bone.037_Armature", "Bone.046_Armature", "Bone.048_Armature", "Bone.050_Armature", "Bone.047_Armature", "Bone.049_Armature", "Bone.051_Armature", "Bone.006_Armature", "Bone.007_Armature", "Bone.008_Armature"];
12
- boneBindings: Record<number, import("..").BoneBinding[]>;
13
- actionInfo: Record<string, import("..").AUInfo>;
14
- name?: string;
15
- animalType?: string;
16
- emoji?: string;
17
- auToMorphs: Record<number, import("..").MorphTargetsBySide>;
18
- auToBones: Record<number, import("..").BoneBinding[]>;
19
- boneNodes: Record<string, string>;
20
- bonePrefix?: string;
21
- boneSuffix?: string;
22
- morphPrefix?: string;
23
- morphSuffix?: string;
24
- suffixPattern?: string;
25
- leftMorphSuffixes?: string[];
26
- rightMorphSuffixes?: string[];
27
- morphToMesh: Record<string, string[]>;
28
- auFacePartToMeshCategory?: Record<string, string>;
29
- mappingSections?: import("..").MappingEditorSection[];
30
- visemeKeys: import("..").MorphTargetRef[];
31
- visemeSystemId?: string;
32
- visemeSlots?: import("..").VisemeSlot[];
33
- visemeBindings?: Record<string, import("..").VisemeBinding>;
34
- visemeMeshCategory?: string;
35
- visemeJawAmounts?: number[];
36
- auMixDefaults?: Record<number, number>;
37
- auInfo?: Record<string, import("..").AUInfo>;
38
- eyeMeshNodes?: {
39
- LEFT: string;
40
- RIGHT: string;
41
- };
42
- compositeRotations?: import("..").CompositeRotation[];
43
- meshes?: Record<string, import("..").MeshInfo>;
44
- continuumPairs?: Record<number, {
45
- pairId: number;
46
- isNegative: boolean;
47
- axis: "pitch" | "yaw" | "roll";
48
- node: string;
49
- }>;
50
- continuumLabels?: Record<string, string>;
51
- annotationRegions?: import("..").AnnotationRegion[];
52
- disabledRegions?: string[];
53
- hairPhysics?: import("..").HairPhysicsProfileConfig;
54
- };
55
- };
56
- export type EmbeddedPresetId = keyof typeof EMBEDDED_PRESETS;
57
- export declare function getEmbeddedPreset(presetId: string): Profile | undefined;
@@ -1,36 +0,0 @@
1
- import type { Profile } from '../mappings/types';
2
- import type { Region } from '../regions/types';
3
- import type { CharacterConfig, CharacterProfile, CustomProfileRuntimeConfig, PresetBackedProfileRuntimeConfig, ProfilePresetId, ProfileRuntimeConfig, ResolvedProfileRuntimeConfig } from './types';
4
- export declare function mergeProfileRegionsByName(base?: Region[], override?: Region[]): Region[] | undefined;
5
- /**
6
- * @deprecated Use `mergeProfileRegionsByName`.
7
- */
8
- export declare const mergeRegionsByName: typeof mergeProfileRegionsByName;
9
- export declare function getProfilePresetId(config: ProfileRuntimeConfig): ProfilePresetId | undefined;
10
- export declare function extractLegacyCharacterProfileOverrides(config: CharacterProfile): Partial<Profile>;
11
- /**
12
- * @deprecated Use `extractLegacyCharacterProfileOverrides`.
13
- */
14
- export declare function extractProfileOverrides(config: CharacterProfile): Partial<Profile>;
15
- export declare function resolveProfileFromPreset(config: CharacterProfile): Promise<Profile | null>;
16
- /**
17
- * @deprecated Use `resolveProfileFromPreset`.
18
- */
19
- export declare function applyCharacterProfileToPreset(config: CharacterProfile): Promise<Profile | null>;
20
- /**
21
- * Extend a profile config with its selected base profile preset so callers get
22
- * one canonical runtime object.
23
- *
24
- * Precedence:
25
- * 1. preset defaults
26
- * 2. canonical flattened `annotationRegions` / top-level profile overrides
27
- * 3. legacy nested `config.profile` overrides (compatibility only)
28
- * 4. legacy `config.regions` fallback only when canonical annotation overrides are absent
29
- */
30
- export declare function extendProfileConfigWithPreset<T extends CustomProfileRuntimeConfig>(config: T): Promise<T>;
31
- export declare function extendProfileConfigWithPreset<T extends PresetBackedProfileRuntimeConfig>(config: T): Promise<ResolvedProfileRuntimeConfig<T>>;
32
- export declare function extendProfileConfigWithPreset<T extends CharacterProfile>(config: T): Promise<T | ResolvedProfileRuntimeConfig<T>>;
33
- /**
34
- * @deprecated Use `extendProfileConfigWithPreset`.
35
- */
36
- export declare function extendCharacterConfigWithPreset(config: CharacterConfig): Promise<CharacterConfig>;
@@ -1,31 +0,0 @@
1
- import type { BoneBinding, CompositeRotation } from '../core/types';
2
- import type { HairPhysicsProfileConfig, MappingEditorSection, MeshInfo, MorphTargetRef, Profile, VisemeSlot } from '../mappings/types';
3
- import type { EmbodyCoreWasmModule } from '../wasmTypes';
4
- export interface RustResolvedVisemeBindingTarget {
5
- morph: MorphTargetRef;
6
- weight: number;
7
- }
8
- export interface RustResolvedProfileView {
9
- visemeSlots: VisemeSlot[];
10
- visemeJawAmounts: number[];
11
- visemeBindingTargets: RustResolvedVisemeBindingTarget[][];
12
- visemeMeshCategory: string;
13
- visemeMeshNames: string[];
14
- auMeshNames: Record<string, string[]>;
15
- meshes: Record<string, MeshInfo>;
16
- mappingSections: MappingEditorSection[];
17
- auFacePartToMeshCategory: Record<string, string>;
18
- auMixDefaults: Record<string, number>;
19
- boneNodes: Record<string, string>;
20
- auToBones: Record<string, BoneBinding[]>;
21
- compositeRotations: CompositeRotation[];
22
- continuumPairs: Record<string, {
23
- pairId: number;
24
- isNegative: boolean;
25
- axis?: 'pitch' | 'yaw' | 'roll';
26
- node?: string;
27
- } | null>;
28
- hairPhysics?: HairPhysicsProfileConfig;
29
- }
30
- export declare function resolveRustProfileView(wasm: EmbodyCoreWasmModule, profile: Profile | Record<string, unknown>): RustResolvedProfileView;
31
- export declare function resolveRustEmbeddedProfileView(wasm: EmbodyCoreWasmModule, presetId: string, profileOverride?: Partial<Profile> | Record<string, unknown> | null): RustResolvedProfileView;