@convai/web-sdk 0.2.3 → 0.3.0-beta.0

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 (73) hide show
  1. package/README.md +529 -868
  2. package/dist/core/AudioManager.d.ts.map +1 -1
  3. package/dist/core/AudioManager.js +0 -5
  4. package/dist/core/AudioManager.js.map +1 -1
  5. package/dist/core/BlendshapeQueue.d.ts +128 -0
  6. package/dist/core/BlendshapeQueue.d.ts.map +1 -0
  7. package/dist/core/BlendshapeQueue.js +229 -0
  8. package/dist/core/BlendshapeQueue.js.map +1 -0
  9. package/dist/core/ConvaiClient.d.ts +19 -0
  10. package/dist/core/ConvaiClient.d.ts.map +1 -1
  11. package/dist/core/ConvaiClient.js +67 -29
  12. package/dist/core/ConvaiClient.js.map +1 -1
  13. package/dist/core/MessageHandler.d.ts +7 -0
  14. package/dist/core/MessageHandler.d.ts.map +1 -1
  15. package/dist/core/MessageHandler.js +35 -2
  16. package/dist/core/MessageHandler.js.map +1 -1
  17. package/dist/core/ScreenShareManager.d.ts.map +1 -1
  18. package/dist/core/ScreenShareManager.js +0 -3
  19. package/dist/core/ScreenShareManager.js.map +1 -1
  20. package/dist/core/VideoManager.d.ts.map +1 -1
  21. package/dist/core/VideoManager.js +0 -4
  22. package/dist/core/VideoManager.js.map +1 -1
  23. package/dist/core/index.d.ts +2 -0
  24. package/dist/core/index.d.ts.map +1 -1
  25. package/dist/core/index.js +2 -0
  26. package/dist/core/index.js.map +1 -1
  27. package/dist/core/types.d.ts +19 -0
  28. package/dist/core/types.d.ts.map +1 -1
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/lipsync-helpers/arkitBlendshapeHelpers.d.ts +80 -0
  34. package/dist/lipsync-helpers/arkitBlendshapeHelpers.d.ts.map +1 -0
  35. package/dist/lipsync-helpers/arkitBlendshapeHelpers.js +201 -0
  36. package/dist/lipsync-helpers/arkitBlendshapeHelpers.js.map +1 -0
  37. package/dist/lipsync-helpers/arkitOrder61.d.ts +121 -0
  38. package/dist/lipsync-helpers/arkitOrder61.d.ts.map +1 -0
  39. package/dist/lipsync-helpers/arkitOrder61.js +287 -0
  40. package/dist/lipsync-helpers/arkitOrder61.js.map +1 -0
  41. package/dist/lipsync-helpers/arkitPhonemeReference.d.ts +155 -0
  42. package/dist/lipsync-helpers/arkitPhonemeReference.d.ts.map +1 -0
  43. package/dist/lipsync-helpers/arkitPhonemeReference.js +362 -0
  44. package/dist/lipsync-helpers/arkitPhonemeReference.js.map +1 -0
  45. package/dist/lipsync-helpers/index.d.ts +10 -0
  46. package/dist/lipsync-helpers/index.d.ts.map +1 -0
  47. package/dist/lipsync-helpers/index.js +21 -0
  48. package/dist/lipsync-helpers/index.js.map +1 -0
  49. package/dist/lipsync-helpers/metahumanOrder251.d.ts +115 -0
  50. package/dist/lipsync-helpers/metahumanOrder251.d.ts.map +1 -0
  51. package/dist/lipsync-helpers/metahumanOrder251.js +432 -0
  52. package/dist/lipsync-helpers/metahumanOrder251.js.map +1 -0
  53. package/dist/lipsync-helpers/neurosyncBlendshapeMapper.d.ts +30 -0
  54. package/dist/lipsync-helpers/neurosyncBlendshapeMapper.d.ts.map +1 -0
  55. package/dist/lipsync-helpers/neurosyncBlendshapeMapper.js +315 -0
  56. package/dist/lipsync-helpers/neurosyncBlendshapeMapper.js.map +1 -0
  57. package/dist/react/components/ConvaiWidget.d.ts.map +1 -1
  58. package/dist/react/components/ConvaiWidget.js +43 -3
  59. package/dist/react/components/ConvaiWidget.js.map +1 -1
  60. package/dist/react/hooks/useCharacterInfo.d.ts.map +1 -1
  61. package/dist/react/hooks/useCharacterInfo.js +1 -1
  62. package/dist/react/hooks/useCharacterInfo.js.map +1 -1
  63. package/dist/react/hooks/useConvaiClient.d.ts.map +1 -1
  64. package/dist/react/hooks/useConvaiClient.js +5 -0
  65. package/dist/react/hooks/useConvaiClient.js.map +1 -1
  66. package/dist/utils/speakerManagement.d.ts.map +1 -1
  67. package/dist/utils/speakerManagement.js +0 -5
  68. package/dist/utils/speakerManagement.js.map +1 -1
  69. package/dist/vanilla/AudioRenderer.d.ts +5 -0
  70. package/dist/vanilla/AudioRenderer.d.ts.map +1 -1
  71. package/dist/vanilla/AudioRenderer.js +27 -18
  72. package/dist/vanilla/AudioRenderer.js.map +1 -1
  73. package/package.json +4 -4
@@ -0,0 +1,432 @@
1
+ /**
2
+ * MetaHuman 251-Element Blendshape Order
3
+ *
4
+ * This is the standard format sent by Convai's MetaHuman blendshape provider.
5
+ * The server sends 251 CTRL_expressions_* values in this specific order.
6
+ *
7
+ * Based on Unreal Engine MetaHuman Control Rig specification.
8
+ *
9
+ * Source: UConvaiNeuroSyncComponent::CtrlExpressionNames[251]
10
+ */
11
+ /**
12
+ * MetaHuman 251-element blendshape names (CTRL_expressions_*)
13
+ * This is the order in which blendshapes are received from the server
14
+ */
15
+ export const METAHUMAN_ORDER_251 = [
16
+ // ============================================================================
17
+ // BROWS (8 blendshapes)
18
+ // ============================================================================
19
+ "CTRL_expressions_browDownL", // 0
20
+ "CTRL_expressions_browDownR", // 1
21
+ "CTRL_expressions_browLateralL", // 2
22
+ "CTRL_expressions_browLateralR", // 3
23
+ "CTRL_expressions_browRaiseInL", // 4
24
+ "CTRL_expressions_browRaiseInR", // 5
25
+ "CTRL_expressions_browRaiseOuterL", // 6
26
+ "CTRL_expressions_browRaiseOuterR", // 7
27
+ // ============================================================================
28
+ // EARS (2 blendshapes)
29
+ // ============================================================================
30
+ "CTRL_expressions_earUpL", // 8
31
+ "CTRL_expressions_earUpR", // 9
32
+ // ============================================================================
33
+ // EYES (43 blendshapes)
34
+ // ============================================================================
35
+ "CTRL_expressions_eyeBlinkL", // 10 - 🔑 KEY
36
+ "CTRL_expressions_eyeBlinkR", // 11 - 🔑 KEY
37
+ "CTRL_expressions_eyeCheekRaiseL", // 12
38
+ "CTRL_expressions_eyeCheekRaiseR", // 13
39
+ "CTRL_expressions_eyeFaceScrunchL", // 14
40
+ "CTRL_expressions_eyeFaceScrunchR", // 15
41
+ "CTRL_expressions_eyeLidPressL", // 16
42
+ "CTRL_expressions_eyeLidPressR", // 17
43
+ "CTRL_expressions_eyeLookDownL", // 18 - 🔑 KEY
44
+ "CTRL_expressions_eyeLookDownR", // 19 - 🔑 KEY
45
+ "CTRL_expressions_eyeLookLeftL", // 20 - 🔑 KEY
46
+ "CTRL_expressions_eyeLookLeftR", // 21 - 🔑 KEY
47
+ "CTRL_expressions_eyeLookRightL", // 22 - 🔑 KEY
48
+ "CTRL_expressions_eyeLookRightR", // 23 - 🔑 KEY
49
+ "CTRL_expressions_eyeLookUpL", // 24 - 🔑 KEY
50
+ "CTRL_expressions_eyeLookUpR", // 25 - 🔑 KEY
51
+ "CTRL_expressions_eyeLowerLidDownL", // 26
52
+ "CTRL_expressions_eyeLowerLidDownR", // 27
53
+ "CTRL_expressions_eyeLowerLidUpL", // 28
54
+ "CTRL_expressions_eyeLowerLidUpR", // 29
55
+ "CTRL_expressions_eyeParallelLookDirection", // 30
56
+ "CTRL_expressions_eyePupilNarrowL", // 31
57
+ "CTRL_expressions_eyePupilNarrowR", // 32
58
+ "CTRL_expressions_eyePupilWideL", // 33
59
+ "CTRL_expressions_eyePupilWideR", // 34
60
+ "CTRL_expressions_eyeRelaxL", // 35
61
+ "CTRL_expressions_eyeRelaxR", // 36
62
+ "CTRL_expressions_eyeSquintInnerL", // 37 - 🔑 KEY
63
+ "CTRL_expressions_eyeSquintInnerR", // 38 - 🔑 KEY
64
+ "CTRL_expressions_eyeUpperLidUpL", // 39
65
+ "CTRL_expressions_eyeUpperLidUpR", // 40
66
+ "CTRL_expressions_eyeWidenL", // 41 - 🔑 KEY
67
+ "CTRL_expressions_eyeWidenR", // 42 - 🔑 KEY
68
+ // ============================================================================
69
+ // EYELASHES (8 blendshapes)
70
+ // ============================================================================
71
+ "CTRL_expressions_eyelashesDownINL", // 43
72
+ "CTRL_expressions_eyelashesDownINR", // 44
73
+ "CTRL_expressions_eyelashesDownOUTL", // 45
74
+ "CTRL_expressions_eyelashesDownOUTR", // 46
75
+ "CTRL_expressions_eyelashesUpINL", // 47
76
+ "CTRL_expressions_eyelashesUpINR", // 48
77
+ "CTRL_expressions_eyelashesUpOUTL", // 49
78
+ "CTRL_expressions_eyelashesUpOUTR", // 50
79
+ // ============================================================================
80
+ // JAW (13 blendshapes)
81
+ // ============================================================================
82
+ "CTRL_expressions_jawBack", // 51
83
+ "CTRL_expressions_jawChinCompressL", // 52
84
+ "CTRL_expressions_jawChinCompressR", // 53
85
+ "CTRL_expressions_jawChinRaiseDL", // 54
86
+ "CTRL_expressions_jawChinRaiseDR", // 55
87
+ "CTRL_expressions_jawChinRaiseUL", // 56
88
+ "CTRL_expressions_jawChinRaiseUR", // 57
89
+ "CTRL_expressions_jawClenchL", // 58
90
+ "CTRL_expressions_jawClenchR", // 59
91
+ "CTRL_expressions_jawFwd", // 60 - 🔑 KEY
92
+ "CTRL_expressions_jawLeft", // 61 - 🔑 KEY
93
+ "CTRL_expressions_jawOpen", // 62 - 🔑 KEY (most important!)
94
+ "CTRL_expressions_jawOpenExtreme", // 63
95
+ "CTRL_expressions_jawRight", // 64 - 🔑 KEY
96
+ // ============================================================================
97
+ // MOUTH (133 blendshapes) - Most important for lipsync!
98
+ // ============================================================================
99
+ "CTRL_expressions_mouthCheekBlowL", // 65
100
+ "CTRL_expressions_mouthCheekBlowR", // 66
101
+ "CTRL_expressions_mouthCheekSuckL", // 67
102
+ "CTRL_expressions_mouthCheekSuckR", // 68
103
+ "CTRL_expressions_mouthCornerDepressL", // 69
104
+ "CTRL_expressions_mouthCornerDepressR", // 70
105
+ "CTRL_expressions_mouthCornerDownL", // 71
106
+ "CTRL_expressions_mouthCornerDownR", // 72
107
+ "CTRL_expressions_mouthCornerNarrowL", // 73
108
+ "CTRL_expressions_mouthCornerNarrowR", // 74
109
+ "CTRL_expressions_mouthCornerPullL", // 75
110
+ "CTRL_expressions_mouthCornerPullR", // 76
111
+ "CTRL_expressions_mouthCornerRounderDL", // 77
112
+ "CTRL_expressions_mouthCornerRounderDR", // 78
113
+ "CTRL_expressions_mouthCornerRounderUL", // 79
114
+ "CTRL_expressions_mouthCornerRounderUR", // 80
115
+ "CTRL_expressions_mouthCornerSharpenDL", // 81
116
+ "CTRL_expressions_mouthCornerSharpenDR", // 82
117
+ "CTRL_expressions_mouthCornerSharpenUL", // 83
118
+ "CTRL_expressions_mouthCornerSharpenUR", // 84
119
+ "CTRL_expressions_mouthCornerUpL", // 85
120
+ "CTRL_expressions_mouthCornerUpR", // 86
121
+ "CTRL_expressions_mouthCornerWideL", // 87
122
+ "CTRL_expressions_mouthCornerWideR", // 88
123
+ "CTRL_expressions_mouthDimpleL", // 89
124
+ "CTRL_expressions_mouthDimpleR", // 90
125
+ "CTRL_expressions_mouthDown", // 91
126
+ "CTRL_expressions_mouthFunnelDL", // 92 - 🔑 KEY
127
+ "CTRL_expressions_mouthFunnelDR", // 93 - 🔑 KEY
128
+ "CTRL_expressions_mouthFunnelUL", // 94 - 🔑 KEY
129
+ "CTRL_expressions_mouthFunnelUR", // 95 - 🔑 KEY
130
+ "CTRL_expressions_mouthLeft", // 96 - 🔑 KEY
131
+ "CTRL_expressions_mouthLipsBlowL", // 97
132
+ "CTRL_expressions_mouthLipsBlowR", // 98
133
+ "CTRL_expressions_mouthLipsPressL", // 99
134
+ "CTRL_expressions_mouthLipsPressR", // 100
135
+ "CTRL_expressions_mouthLipsPullDL", // 101
136
+ "CTRL_expressions_mouthLipsPullDR", // 102
137
+ "CTRL_expressions_mouthLipsPullUL", // 103
138
+ "CTRL_expressions_mouthLipsPullUR", // 104
139
+ "CTRL_expressions_mouthLipsPurseDL", // 105
140
+ "CTRL_expressions_mouthLipsPurseDR", // 106
141
+ "CTRL_expressions_mouthLipsPurseUL", // 107
142
+ "CTRL_expressions_mouthLipsPurseUR", // 108
143
+ "CTRL_expressions_mouthLipsPushDL", // 109
144
+ "CTRL_expressions_mouthLipsPushDR", // 110
145
+ "CTRL_expressions_mouthLipsPushUL", // 111
146
+ "CTRL_expressions_mouthLipsPushUR", // 112
147
+ "CTRL_expressions_mouthLipsStickyLPh1", // 113
148
+ "CTRL_expressions_mouthLipsStickyLPh2", // 114
149
+ "CTRL_expressions_mouthLipsStickyLPh3", // 115
150
+ "CTRL_expressions_mouthLipsStickyRPh1", // 116
151
+ "CTRL_expressions_mouthLipsStickyRPh2", // 117
152
+ "CTRL_expressions_mouthLipsStickyRPh3", // 118
153
+ "CTRL_expressions_mouthLipsThickDL", // 119
154
+ "CTRL_expressions_mouthLipsThickDR", // 120
155
+ "CTRL_expressions_mouthLipsThickInwardDL", // 121
156
+ "CTRL_expressions_mouthLipsThickInwardDR", // 122
157
+ "CTRL_expressions_mouthLipsThickInwardUL", // 123
158
+ "CTRL_expressions_mouthLipsThickInwardUR", // 124
159
+ "CTRL_expressions_mouthLipsThickUL", // 125
160
+ "CTRL_expressions_mouthLipsThickUR", // 126
161
+ "CTRL_expressions_mouthLipsThinDL", // 127
162
+ "CTRL_expressions_mouthLipsThinDR", // 128
163
+ "CTRL_expressions_mouthLipsThinInwardDL", // 129
164
+ "CTRL_expressions_mouthLipsThinInwardDR", // 130
165
+ "CTRL_expressions_mouthLipsThinInwardUL", // 131
166
+ "CTRL_expressions_mouthLipsThinInwardUR", // 132
167
+ "CTRL_expressions_mouthLipsThinUL", // 133
168
+ "CTRL_expressions_mouthLipsThinUR", // 134
169
+ "CTRL_expressions_mouthLipsTightenDL", // 135
170
+ "CTRL_expressions_mouthLipsTightenDR", // 136
171
+ "CTRL_expressions_mouthLipsTightenUL", // 137
172
+ "CTRL_expressions_mouthLipsTightenUR", // 138
173
+ "CTRL_expressions_mouthLipsTogetherDL", // 139 - 🔑 KEY
174
+ "CTRL_expressions_mouthLipsTogetherDR", // 140 - 🔑 KEY
175
+ "CTRL_expressions_mouthLipsTogetherUL", // 141 - 🔑 KEY
176
+ "CTRL_expressions_mouthLipsTogetherUR", // 142 - 🔑 KEY
177
+ "CTRL_expressions_mouthLipsTowardsDL", // 143
178
+ "CTRL_expressions_mouthLipsTowardsDR", // 144
179
+ "CTRL_expressions_mouthLipsTowardsUL", // 145
180
+ "CTRL_expressions_mouthLipsTowardsUR", // 146
181
+ "CTRL_expressions_mouthLowerLipBiteL", // 147
182
+ "CTRL_expressions_mouthLowerLipBiteR", // 148
183
+ "CTRL_expressions_mouthLowerLipDepressL", // 149
184
+ "CTRL_expressions_mouthLowerLipDepressR", // 150
185
+ "CTRL_expressions_mouthLowerLipRollInL", // 151
186
+ "CTRL_expressions_mouthLowerLipRollInR", // 152
187
+ "CTRL_expressions_mouthLowerLipRollOutL", // 153
188
+ "CTRL_expressions_mouthLowerLipRollOutR", // 154
189
+ "CTRL_expressions_mouthLowerLipShiftLeft", // 155
190
+ "CTRL_expressions_mouthLowerLipShiftRight", // 156
191
+ "CTRL_expressions_mouthLowerLipTowardsTeethL", // 157
192
+ "CTRL_expressions_mouthLowerLipTowardsTeethR", // 158
193
+ "CTRL_expressions_mouthPressDL", // 159
194
+ "CTRL_expressions_mouthPressDR", // 160
195
+ "CTRL_expressions_mouthPressUL", // 161
196
+ "CTRL_expressions_mouthPressUR", // 162
197
+ "CTRL_expressions_mouthRight", // 163 - 🔑 KEY
198
+ "CTRL_expressions_mouthSharpCornerPullL", // 164
199
+ "CTRL_expressions_mouthSharpCornerPullR", // 165
200
+ "CTRL_expressions_mouthStickyDC", // 166
201
+ "CTRL_expressions_mouthStickyDINL", // 167
202
+ "CTRL_expressions_mouthStickyDINR", // 168
203
+ "CTRL_expressions_mouthStickyDOUTL", // 169
204
+ "CTRL_expressions_mouthStickyDOUTR", // 170
205
+ "CTRL_expressions_mouthStickyUC", // 171
206
+ "CTRL_expressions_mouthStickyUINL", // 172
207
+ "CTRL_expressions_mouthStickyUINR", // 173
208
+ "CTRL_expressions_mouthStickyUOUTL", // 174
209
+ "CTRL_expressions_mouthStickyUOUTR", // 175
210
+ "CTRL_expressions_mouthStretchL", // 176 - 🔑 KEY
211
+ "CTRL_expressions_mouthStretchLipsCloseL", // 177
212
+ "CTRL_expressions_mouthStretchLipsCloseR", // 178
213
+ "CTRL_expressions_mouthStretchR", // 179 - 🔑 KEY
214
+ "CTRL_expressions_mouthUp", // 180
215
+ "CTRL_expressions_mouthUpperLipBiteL", // 181
216
+ "CTRL_expressions_mouthUpperLipBiteR", // 182
217
+ "CTRL_expressions_mouthUpperLipRaiseL", // 183
218
+ "CTRL_expressions_mouthUpperLipRaiseR", // 184
219
+ "CTRL_expressions_mouthUpperLipRollInL", // 185
220
+ "CTRL_expressions_mouthUpperLipRollInR", // 186
221
+ "CTRL_expressions_mouthUpperLipRollOutL", // 187
222
+ "CTRL_expressions_mouthUpperLipRollOutR", // 188
223
+ "CTRL_expressions_mouthUpperLipShiftLeft", // 189
224
+ "CTRL_expressions_mouthUpperLipShiftRight", // 190
225
+ "CTRL_expressions_mouthUpperLipTowardsTeethL", // 191
226
+ "CTRL_expressions_mouthUpperLipTowardsTeethR", // 192
227
+ // ============================================================================
228
+ // NECK (14 blendshapes)
229
+ // ============================================================================
230
+ "CTRL_expressions_neckDigastricDown", // 193
231
+ "CTRL_expressions_neckDigastricUp", // 194
232
+ "CTRL_expressions_neckMastoidContractL", // 195
233
+ "CTRL_expressions_neckMastoidContractR", // 196
234
+ "CTRL_expressions_neckStretchL", // 197
235
+ "CTRL_expressions_neckStretchR", // 198
236
+ "CTRL_expressions_neckSwallowPh1", // 199
237
+ "CTRL_expressions_neckSwallowPh2", // 200
238
+ "CTRL_expressions_neckSwallowPh3", // 201
239
+ "CTRL_expressions_neckSwallowPh4", // 202
240
+ "CTRL_expressions_neckThroatDown", // 203
241
+ "CTRL_expressions_neckThroatExhale", // 204
242
+ "CTRL_expressions_neckThroatInhale", // 205
243
+ "CTRL_expressions_neckThroatUp", // 206
244
+ // ============================================================================
245
+ // NOSE (10 blendshapes)
246
+ // ============================================================================
247
+ "CTRL_expressions_noseNasolabialDeepenL", // 207
248
+ "CTRL_expressions_noseNasolabialDeepenR", // 208
249
+ "CTRL_expressions_noseNostrilCompressL", // 209
250
+ "CTRL_expressions_noseNostrilCompressR", // 210
251
+ "CTRL_expressions_noseNostrilDepressL", // 211
252
+ "CTRL_expressions_noseNostrilDepressR", // 212
253
+ "CTRL_expressions_noseNostrilDilateL", // 213
254
+ "CTRL_expressions_noseNostrilDilateR", // 214
255
+ "CTRL_expressions_noseWrinkleL", // 215
256
+ "CTRL_expressions_noseWrinkleR", // 216
257
+ "CTRL_expressions_noseWrinkleUpperL", // 217
258
+ "CTRL_expressions_noseWrinkleUpperR", // 218
259
+ // ============================================================================
260
+ // TEETH (12 blendshapes)
261
+ // ============================================================================
262
+ "CTRL_expressions_teethBackD", // 219
263
+ "CTRL_expressions_teethBackU", // 220
264
+ "CTRL_expressions_teethDownD", // 221
265
+ "CTRL_expressions_teethDownU", // 222
266
+ "CTRL_expressions_teethFwdD", // 223
267
+ "CTRL_expressions_teethFwdU", // 224
268
+ "CTRL_expressions_teethLeftD", // 225
269
+ "CTRL_expressions_teethLeftU", // 226
270
+ "CTRL_expressions_teethRightD", // 227
271
+ "CTRL_expressions_teethRightU", // 228
272
+ "CTRL_expressions_teethUpD", // 229
273
+ "CTRL_expressions_teethUpU", // 230
274
+ // ============================================================================
275
+ // TONGUE (20 blendshapes)
276
+ // ============================================================================
277
+ "CTRL_expressions_tongueBendDown", // 231
278
+ "CTRL_expressions_tongueBendUp", // 232
279
+ "CTRL_expressions_tongueDown", // 233
280
+ "CTRL_expressions_tongueIn", // 234
281
+ "CTRL_expressions_tongueLeft", // 235
282
+ "CTRL_expressions_tongueNarrow", // 236
283
+ "CTRL_expressions_tongueOut", // 237 - 🔑 KEY
284
+ "CTRL_expressions_tonguePress", // 238
285
+ "CTRL_expressions_tongueRight", // 239
286
+ "CTRL_expressions_tongueRoll", // 240
287
+ "CTRL_expressions_tongueThick", // 241
288
+ "CTRL_expressions_tongueThin", // 242
289
+ "CTRL_expressions_tongueTipDown", // 243
290
+ "CTRL_expressions_tongueTipLeft", // 244
291
+ "CTRL_expressions_tongueTipRight", // 245
292
+ "CTRL_expressions_tongueTipUp", // 246
293
+ "CTRL_expressions_tongueTwistLeft", // 247
294
+ "CTRL_expressions_tongueTwistRight", // 248
295
+ "CTRL_expressions_tongueUp", // 249
296
+ "CTRL_expressions_tongueWide", // 250
297
+ ];
298
+ /**
299
+ * Category breakdown for MetaHuman blendshapes
300
+ */
301
+ export const METAHUMAN_CATEGORIES = {
302
+ brows: {
303
+ start: 0,
304
+ end: 7,
305
+ count: 8,
306
+ },
307
+ ears: {
308
+ start: 8,
309
+ end: 9,
310
+ count: 2,
311
+ },
312
+ eyes: {
313
+ start: 10,
314
+ end: 52,
315
+ count: 43,
316
+ },
317
+ eyelashes: {
318
+ start: 43,
319
+ end: 50,
320
+ count: 8,
321
+ },
322
+ jaw: {
323
+ start: 51,
324
+ end: 64,
325
+ count: 14,
326
+ },
327
+ mouth: {
328
+ start: 65,
329
+ end: 197,
330
+ count: 133,
331
+ },
332
+ neck: {
333
+ start: 193,
334
+ end: 206,
335
+ count: 14,
336
+ },
337
+ nose: {
338
+ start: 207,
339
+ end: 218,
340
+ count: 12,
341
+ },
342
+ teeth: {
343
+ start: 219,
344
+ end: 230,
345
+ count: 12,
346
+ },
347
+ tongue: {
348
+ start: 231,
349
+ end: 250,
350
+ count: 20,
351
+ },
352
+ };
353
+ /**
354
+ * Key blendshapes for lip-sync (most important for speech animation)
355
+ */
356
+ export const KEY_METAHUMAN_LIPSYNC = {
357
+ // Eyes
358
+ EYE_BLINK_L: 10,
359
+ EYE_BLINK_R: 11,
360
+ // Jaw
361
+ JAW_FORWARD: 60,
362
+ JAW_LEFT: 61,
363
+ JAW_OPEN: 62, // Most important!
364
+ JAW_RIGHT: 64,
365
+ // Mouth - Funnel (O sounds)
366
+ MOUTH_FUNNEL_DL: 92,
367
+ MOUTH_FUNNEL_DR: 93,
368
+ MOUTH_FUNNEL_UL: 94,
369
+ MOUTH_FUNNEL_UR: 95,
370
+ // Mouth - Movement
371
+ MOUTH_LEFT: 96,
372
+ MOUTH_RIGHT: 163,
373
+ // Mouth - Stretch (wide mouth)
374
+ MOUTH_STRETCH_L: 176,
375
+ MOUTH_STRETCH_R: 179,
376
+ // Mouth - Lips Together
377
+ MOUTH_LIPS_TOGETHER_DL: 139,
378
+ MOUTH_LIPS_TOGETHER_DR: 140,
379
+ MOUTH_LIPS_TOGETHER_UL: 141,
380
+ MOUTH_LIPS_TOGETHER_UR: 142,
381
+ // Tongue
382
+ TONGUE_OUT: 237,
383
+ };
384
+ /**
385
+ * Get blendshape name by index
386
+ */
387
+ export function getMetaHumanBlendshapeName(index) {
388
+ return METAHUMAN_ORDER_251[index];
389
+ }
390
+ /**
391
+ * Get blendshape index by name
392
+ */
393
+ export function getMetaHumanBlendshapeIndex(name) {
394
+ return METAHUMAN_ORDER_251.indexOf(name);
395
+ }
396
+ /**
397
+ * Get blendshapes by category
398
+ */
399
+ export function getMetaHumanBlendshapesByCategory(category) {
400
+ const cat = METAHUMAN_CATEGORIES[category];
401
+ return METAHUMAN_ORDER_251.slice(cat.start, cat.end + 1);
402
+ }
403
+ /**
404
+ * Format MetaHuman blendshapes for logging
405
+ */
406
+ export function formatMetaHumanBlendshapesForLogging(values, threshold = 0.01, maxEntries = 20) {
407
+ const active = {};
408
+ const activeList = [];
409
+ for (let i = 0; i < Math.min(values.length, METAHUMAN_ORDER_251.length); i++) {
410
+ const value = values[i];
411
+ if (Math.abs(value) > threshold) {
412
+ activeList.push({
413
+ name: METAHUMAN_ORDER_251[i],
414
+ value,
415
+ index: i,
416
+ });
417
+ }
418
+ }
419
+ // Sort by absolute value (descending)
420
+ activeList
421
+ .sort((a, b) => Math.abs(b.value) - Math.abs(a.value))
422
+ .slice(0, maxEntries)
423
+ .forEach(item => {
424
+ active[item.name] = Number(item.value.toFixed(4));
425
+ });
426
+ return {
427
+ active,
428
+ total: values.length,
429
+ activeCount: activeList.length,
430
+ };
431
+ }
432
+ //# sourceMappingURL=metahumanOrder251.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metahumanOrder251.js","sourceRoot":"","sources":["../../src/lipsync-helpers/metahumanOrder251.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Neurosync Meta Human Blendshape Mapper
3
+ * Maps 251 blendshape indices to their corresponding names
4
+ * Based on Neurosync Meta Human specification
5
+ */
6
+ export declare const NEUROSYNC_BLENDSHAPE_NAMES: string[];
7
+ /**
8
+ * Maps blendshape values to their names
9
+ */
10
+ export declare function mapBlendshapesToNames(values: number[]): Record<string, number>;
11
+ /**
12
+ * Formats blendshapes for logging with filtering
13
+ * @param values - Array of 251 blendshape values
14
+ * @param threshold - Only log values above this threshold (default: 0.01)
15
+ * @param maxEntries - Maximum number of entries to log (default: 20)
16
+ */
17
+ export declare function formatBlendshapesForLogging(values: number[], threshold?: number, maxEntries?: number): {
18
+ active: Record<string, number>;
19
+ total: number;
20
+ activeCount: number;
21
+ };
22
+ /**
23
+ * Gets the most significant blendshapes
24
+ */
25
+ export declare function getTopBlendshapes(values: number[], count?: number): Array<{
26
+ name: string;
27
+ value: number;
28
+ index: number;
29
+ }>;
30
+ //# sourceMappingURL=neurosyncBlendshapeMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neurosyncBlendshapeMapper.d.ts","sourceRoot":"","sources":["../../src/lipsync-helpers/neurosyncBlendshapeMapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,0BAA0B,EAAE,MAAM,EA+P9C,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc9E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,GAAE,MAAa,EACxB,UAAU,GAAE,MAAW,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAkBxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,GAAE,MAAW,GACjB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAUvD"}