@vincentt-xr/sdk 2.0.0-alpha.8 → 2.0.0-alpha.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.
Files changed (517) hide show
  1. package/GROUNDING.md +4643 -170
  2. package/README.md +1 -0
  3. package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
  4. package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
  5. package/dist/DebuggerUI-7ngnJsBe.js +275 -0
  6. package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
  7. package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
  8. package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
  9. package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
  10. package/dist/FaceSurface-DmP9AEeC.js +27 -0
  11. package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
  12. package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
  13. package/dist/SkeletonUtils-C2r90MtN.js +21 -0
  14. package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
  15. package/dist/TextLabel-XE0rQSDn.cjs +2 -0
  16. package/dist/TextLabel-c9BCucOI.js +961 -0
  17. package/dist/assets/gltfLoader.d.ts +16 -0
  18. package/dist/assets/loaders.d.ts +16 -1
  19. package/dist/body-pose/index.d.ts +521 -0
  20. package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
  21. package/dist/body-trigger/frame.d.ts +88 -0
  22. package/dist/body-trigger/index.d.ts +6 -0
  23. package/dist/body-trigger/moves.d.ts +235 -0
  24. package/dist/body-trigger/trigger.d.ts +75 -0
  25. package/dist/calibration/calibration.d.ts +11 -6
  26. package/dist/canonicalFace-BHwyCx1c.js +9 -0
  27. package/dist/canonicalFace-C83I225R.cjs +1 -0
  28. package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
  29. package/dist/components/BodyInstruction/index.d.ts +69 -0
  30. package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
  31. package/dist/components/BodyTracker/index.d.ts +10 -2
  32. package/dist/components/BodyTrigger/index.d.ts +49 -0
  33. package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
  34. package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
  35. package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
  36. package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
  37. package/dist/components/FaceAtlas/constants.d.ts +8 -0
  38. package/dist/components/FaceAtlas/index.d.ts +7 -0
  39. package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
  40. package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
  41. package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
  42. package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
  43. package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
  44. package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
  45. package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
  46. package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
  47. package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
  48. package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
  49. package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
  50. package/dist/components/FaceCharacter/index.d.ts +18 -0
  51. package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
  52. package/dist/components/FaceInset/FaceInset.d.ts +68 -0
  53. package/dist/components/FaceInset/frame.d.ts +94 -0
  54. package/dist/components/FaceInset/index.d.ts +6 -0
  55. package/dist/components/FaceInset/material.d.ts +40 -0
  56. package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
  57. package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
  58. package/dist/components/FaceInstruction/index.d.ts +56 -0
  59. package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
  60. package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
  61. package/dist/components/FaceLiquify/debug.d.ts +37 -0
  62. package/dist/components/FaceLiquify/frame.d.ts +55 -0
  63. package/dist/components/FaceLiquify/index.d.ts +10 -0
  64. package/dist/components/FaceLiquify/material.d.ts +39 -0
  65. package/dist/components/FaceLiquify/pass.d.ts +49 -0
  66. package/dist/components/FaceLiquify/presence.d.ts +25 -0
  67. package/dist/components/FaceLiquify/presets.d.ts +82 -0
  68. package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
  69. package/dist/components/FaceLiquify/target.d.ts +85 -0
  70. package/dist/components/FaceLiquify/warp.d.ts +72 -0
  71. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +5 -3
  72. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
  73. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +9 -0
  74. package/dist/components/FaceMesh/index.d.ts +1 -1
  75. package/dist/components/FaceRetouch/Background.d.ts +3 -1
  76. package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
  77. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  78. package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
  79. package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
  80. package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
  81. package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
  82. package/dist/components/FaceSwap/index.d.ts +13 -0
  83. package/dist/components/FaceSwap/settings.d.ts +300 -0
  84. package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
  85. package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
  86. package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
  87. package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
  88. package/dist/components/FaceWarp3D/index.d.ts +2 -3
  89. package/dist/components/Faceless/Faceless.d.ts +51 -0
  90. package/dist/components/Faceless/index.d.ts +2 -0
  91. package/dist/components/HairLock/HairLock.d.ts +39 -0
  92. package/dist/components/HairLock/index.d.ts +2 -0
  93. package/dist/components/HairLock/lockGeometry.d.ts +15 -0
  94. package/dist/components/HandCutout/index.d.ts +35 -0
  95. package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
  96. package/dist/components/HandInstruction/index.d.ts +74 -0
  97. package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
  98. package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
  99. package/dist/components/HandRig/HandAttachment.d.ts +34 -0
  100. package/dist/components/HandRig/HandOccluder.d.ts +55 -0
  101. package/dist/components/HandRig/HandTattoo.d.ts +61 -0
  102. package/dist/components/HandRig/WristAttachment.d.ts +34 -0
  103. package/dist/components/HandRig/index.d.ts +101 -0
  104. package/dist/components/HandRig/useArmMask.d.ts +29 -0
  105. package/dist/components/HandRig/wristSolve.d.ts +69 -0
  106. package/dist/components/HandTouch/HandTouch.d.ts +62 -0
  107. package/dist/components/HandTouch/Touchable.d.ts +36 -0
  108. package/dist/components/HandTouch/index.d.ts +2 -0
  109. package/dist/components/HeadBinding/index.d.ts +14 -0
  110. package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
  111. package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
  112. package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
  113. package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
  114. package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
  115. package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
  116. package/dist/components/HeadOccluder/index.d.ts +57 -3
  117. package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
  118. package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
  119. package/dist/components/Instruction/HintStage.d.ts +29 -0
  120. package/dist/components/Instruction/InstructionCue.d.ts +126 -0
  121. package/dist/components/Instruction/gestureHold.d.ts +20 -0
  122. package/dist/components/Instruction/ghost.d.ts +129 -0
  123. package/dist/components/Instruction/hintBlend.d.ts +19 -0
  124. package/dist/components/Instruction/hintLook.d.ts +81 -0
  125. package/dist/components/Instruction/hintLoop.d.ts +36 -0
  126. package/dist/components/Instruction/index.d.ts +41 -0
  127. package/dist/components/Instruction/useGhostModel.d.ts +33 -0
  128. package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
  129. package/dist/components/LipEffect/LipEffect.d.ts +22 -2
  130. package/dist/components/LipEffect/LipEffectMaterial.d.ts +62 -10
  131. package/dist/components/LipEffect/LipEffects.d.ts +5 -2
  132. package/dist/components/LipEffect/defaults.d.ts +21 -2
  133. package/dist/components/LipEffect/index.d.ts +1 -1
  134. package/dist/components/LipEffect/lipShading.d.ts +73 -0
  135. package/dist/components/LipEffect/settings.d.ts +117 -13
  136. package/dist/components/LipEffect/shader.d.ts +39 -0
  137. package/dist/components/LipEffect/types.d.ts +82 -10
  138. package/dist/components/LipEffect/useLipDesignTextures.d.ts +6 -0
  139. package/dist/components/LipEffect/uvGuide.d.ts +31 -16
  140. package/dist/components/Makeup/Blush.d.ts +18 -0
  141. package/dist/components/Makeup/Brows.d.ts +20 -0
  142. package/dist/components/Makeup/Contour.d.ts +17 -0
  143. package/dist/components/Makeup/Eyeliner.d.ts +20 -0
  144. package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
  145. package/dist/components/Makeup/Highlighter.d.ts +18 -0
  146. package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
  147. package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
  148. package/dist/components/Makeup/constants.d.ts +44 -0
  149. package/dist/components/Makeup/design.d.ts +106 -0
  150. package/dist/components/Makeup/designSamples.d.ts +42 -0
  151. package/dist/components/Makeup/eyes.d.ts +114 -0
  152. package/dist/components/Makeup/fields.d.ts +10 -0
  153. package/dist/components/Makeup/geometry.d.ts +106 -0
  154. package/dist/components/Makeup/index.d.ts +26 -0
  155. package/dist/components/Makeup/looks.d.ts +28 -0
  156. package/dist/components/Makeup/material.d.ts +239 -0
  157. package/dist/components/Makeup/settings.d.ts +54 -0
  158. package/dist/components/Makeup/shades.d.ts +143 -0
  159. package/dist/components/Makeup/shapes.d.ts +27 -0
  160. package/dist/components/Makeup/skinTone.d.ts +135 -0
  161. package/dist/components/Makeup/types.d.ts +110 -0
  162. package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
  163. package/dist/components/Necklace/Necklace.d.ts +44 -0
  164. package/dist/components/Necklace/index.d.ts +1 -0
  165. package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
  166. package/dist/components/ParticleEmitter/index.d.ts +1 -0
  167. package/dist/components/ShoulderOccluder/index.d.ts +43 -0
  168. package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
  169. package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
  170. package/dist/components/SpringSwing/index.d.ts +1 -0
  171. package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
  172. package/dist/components/index.d.ts +8 -0
  173. package/dist/config/index.d.ts +0 -1
  174. package/dist/context-DTxSQvp4.js +13 -0
  175. package/dist/context-hA0Rb2Xa.cjs +1 -0
  176. package/dist/contexts-BH7PdKFS.cjs +1 -0
  177. package/dist/contexts-jak8-tND.js +667 -0
  178. package/dist/coordinates/index.d.ts +2 -0
  179. package/dist/coordinates/side.d.ts +40 -0
  180. package/dist/debug-ui/default-setting.cjs +2 -2
  181. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  182. package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
  183. package/dist/debug-ui/index.d.ts +4 -3
  184. package/dist/debug-ui/media-source/index.d.ts +1 -1
  185. package/dist/debug-ui/media-source/session.d.ts +30 -2
  186. package/dist/debug-ui/media-source.cjs +1 -1
  187. package/dist/debug-ui/media-source.js +1 -1
  188. package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
  189. package/dist/debug-ui/product-hotspots/index.d.ts +3 -2
  190. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
  191. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
  192. package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
  193. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
  194. package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
  195. package/dist/debug-ui/settings-panel/index.d.ts +6 -1
  196. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  197. package/dist/debug-ui/xr-diagnostics/index.d.ts +3 -2
  198. package/dist/debug-ui.cjs +3 -3
  199. package/dist/debug-ui.js +2250 -2472
  200. package/dist/entries/all.d.ts +3 -1
  201. package/dist/entries/core.d.ts +3 -2
  202. package/dist/entries/face-effects.d.ts +114 -8
  203. package/dist/entries/instructions.d.ts +48 -0
  204. package/dist/entries/internal.d.ts +2 -1
  205. package/dist/entries/low-level.d.ts +28 -1
  206. package/dist/entries/particles.d.ts +11 -0
  207. package/dist/entries/tracking.d.ts +37 -2
  208. package/dist/face-atlas/attributes.d.ts +30 -0
  209. package/dist/face-atlas/eyes.d.ts +272 -0
  210. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  211. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  212. package/dist/face-atlas/glsl/common.d.ts +55 -0
  213. package/dist/face-atlas/glsl/design.d.ts +49 -0
  214. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  215. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  216. package/dist/face-atlas/glsl/format.d.ts +4 -0
  217. package/dist/face-atlas/glsl/index.d.ts +59 -0
  218. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  219. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  220. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  221. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  222. package/dist/face-atlas/guide.d.ts +51 -0
  223. package/dist/face-atlas/index.d.ts +25 -0
  224. package/dist/face-atlas/lead.d.ts +117 -0
  225. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  226. package/dist/face-atlas/masks.d.ts +53 -0
  227. package/dist/face-atlas/obj.d.ts +69 -0
  228. package/dist/face-atlas/polylines.d.ts +63 -0
  229. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  230. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  231. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  232. package/dist/face-atlas/probe/constants.d.ts +137 -0
  233. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  234. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  235. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  236. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  237. package/dist/face-atlas/probe/stats.d.ts +143 -0
  238. package/dist/face-atlas/probe/targets.d.ts +70 -0
  239. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  240. package/dist/face-atlas/quality.d.ts +28 -0
  241. package/dist/face-atlas/regions.d.ts +31 -0
  242. package/dist/face-atlas/registry.d.ts +252 -0
  243. package/dist/face-atlas/renderState.d.ts +86 -0
  244. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  245. package/dist/face-atlas/shading.d.ts +406 -0
  246. package/dist/face-atlas/shapes.d.ts +86 -0
  247. package/dist/face-atlas/sides.d.ts +41 -0
  248. package/dist/face-atlas/skinMask.d.ts +35 -0
  249. package/dist/face-atlas/surface.d.ts +155 -0
  250. package/dist/face-atlas/topology.d.ts +44 -0
  251. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  252. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  253. package/dist/face-character/bindFaceModel.d.ts +106 -0
  254. package/dist/face-character/canonicalFace.d.ts +17 -0
  255. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  256. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  257. package/dist/face-character/driveFaceModel.d.ts +57 -0
  258. package/dist/face-character/expressionOutputs.d.ts +45 -0
  259. package/dist/face-character/faceExpressions.d.ts +104 -0
  260. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  261. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  262. package/dist/face-character/faceMorph.d.ts +77 -0
  263. package/dist/face-character/faceMorphs.d.ts +46 -0
  264. package/dist/face-character/facePhoto.d.ts +138 -0
  265. package/dist/face-character/facePiercings.d.ts +116 -0
  266. package/dist/face-character/facePin.d.ts +131 -0
  267. package/dist/face-character/faceReprojection.d.ts +273 -0
  268. package/dist/face-character/faceReprojector.d.ts +171 -0
  269. package/dist/face-character/faceRig.d.ts +176 -0
  270. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  271. package/dist/face-character/faceTexture.d.ts +169 -0
  272. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  273. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  274. package/dist/face-character/faceTextureStats.d.ts +298 -0
  275. package/dist/face-character/faceTransfer.d.ts +396 -0
  276. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  277. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  278. package/dist/face-character/faceWarp3D.d.ts +101 -0
  279. package/dist/face-character/faceless.d.ts +79 -0
  280. package/dist/face-character/featureWarp.d.ts +28 -0
  281. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  282. package/dist/face-character/liveValue.d.ts +12 -0
  283. package/dist/face-character/memo.d.ts +15 -0
  284. package/dist/face-effects.cjs +2252 -83
  285. package/dist/face-effects.js +14234 -1231
  286. package/dist/face-expression/index.d.ts +182 -0
  287. package/dist/face-info/landmarks.d.ts +17 -3
  288. package/dist/face-info/types.d.ts +20 -3
  289. package/dist/gestures/definitions.d.ts +15 -2
  290. package/dist/gestures/index.d.ts +1 -1
  291. package/dist/gestures/measures.d.ts +21 -8
  292. package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
  293. package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
  294. package/dist/hand/armFit.d.ts +46 -0
  295. package/dist/hand/armMask.d.ts +178 -0
  296. package/dist/hand/handCutout.d.ts +23 -0
  297. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  298. package/dist/hand/handGestures.d.ts +524 -0
  299. package/dist/hand/handPose.d.ts +98 -0
  300. package/dist/hand/handRigSolver.d.ts +159 -0
  301. package/dist/hand/handTattoo.d.ts +81 -0
  302. package/dist/hand/handTouch.d.ts +240 -0
  303. package/dist/hand/wrist.d.ts +44 -0
  304. package/dist/hand/wristFilter.d.ts +44 -0
  305. package/dist/hooks/selectors.d.ts +8 -0
  306. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  307. package/dist/hooks/useTrackerContext.d.ts +6 -0
  308. package/dist/index-B1_TzJaI.js +1104 -0
  309. package/dist/index-BavF06C6.js +190 -0
  310. package/dist/index-BfFmpddl.cjs +21 -0
  311. package/dist/index-BuBzneeW.cjs +46 -0
  312. package/dist/index-CGsQWodV.cjs +1 -0
  313. package/dist/index-CIe7eCMH.js +3200 -0
  314. package/dist/index-CfSF8LXa.cjs +1 -0
  315. package/dist/index-D5GTzOzD.cjs +1 -0
  316. package/dist/index-DBhQzvVa.js +314 -0
  317. package/dist/index-DE17y0ZI.cjs +1 -0
  318. package/dist/index-JII7huPk.js +442 -0
  319. package/dist/index-tpCr9CLj.cjs +1 -0
  320. package/dist/{renderPasses-NnKZVfBy.js → index-w1S7fI2B.js} +219 -247
  321. package/dist/index-zGaqrz_K.js +188 -0
  322. package/dist/instructions.cjs +30 -0
  323. package/dist/instructions.js +1507 -0
  324. package/dist/{internal-vsfNQycj.js → internal-B90P-clC.js} +138 -118
  325. package/dist/internal-Cjinca64.cjs +1 -0
  326. package/dist/internal.cjs +1 -1
  327. package/dist/internal.js +15 -10
  328. package/dist/iris/compute.d.ts +7 -5
  329. package/dist/iris/types.d.ts +6 -4
  330. package/dist/{landmarkMask-CbTFzBYG.js → landmarkMask-BFDyBnKM.js} +6 -6
  331. package/dist/landmarks-BlUqf5MZ.cjs +1 -0
  332. package/dist/landmarks-bftdwq6Z.js +76 -0
  333. package/dist/loaders-BGAUACsd.js +363 -0
  334. package/dist/loaders-BJ1_QCHt.cjs +1 -0
  335. package/dist/low-level.cjs +1 -1
  336. package/dist/low-level.js +666 -602
  337. package/dist/main.cjs +1 -1
  338. package/dist/main.js +866 -1182
  339. package/dist/models/Body/index.d.ts +2 -0
  340. package/dist/models/Face/constants.d.ts +8 -0
  341. package/dist/models/Face/index.d.ts +3 -11
  342. package/dist/models/Face/rotation.d.ts +18 -3
  343. package/dist/models/Hand/HandTracking.d.ts +17 -1
  344. package/dist/models/Segmentation/index.d.ts +2 -0
  345. package/dist/models/nodeSource.d.ts +9 -0
  346. package/dist/particles/emission.d.ts +24 -0
  347. package/dist/particles/eyes.d.ts +24 -0
  348. package/dist/particles/glsl.d.ts +14 -0
  349. package/dist/particles/index.d.ts +10 -0
  350. package/dist/particles/motion.d.ts +42 -0
  351. package/dist/particles/presets.d.ts +12 -0
  352. package/dist/particles/ring.d.ts +58 -0
  353. package/dist/particles/selfTest.d.ts +53 -0
  354. package/dist/particles/settings.d.ts +127 -0
  355. package/dist/particles/shapes.d.ts +29 -0
  356. package/dist/particles/spawner.d.ts +60 -0
  357. package/dist/particles/system.d.ts +64 -0
  358. package/dist/particles.cjs +122 -0
  359. package/dist/particles.js +774 -0
  360. package/dist/product.cjs +1 -1
  361. package/dist/product.js +29 -29
  362. package/dist/{providers-C0Dlhh9Z.js → providers-C8rE26Uf.js} +127 -126
  363. package/dist/providers-DHsrhDI2.cjs +62 -0
  364. package/dist/render/renderPasses.d.ts +8 -0
  365. package/dist/render/sceneBeforeRender.d.ts +12 -0
  366. package/dist/{renderGroups-CN1cGFUo.js → renderGroups-B38pUaX2.js} +1 -1
  367. package/dist/{renderGroups-O4KmaMl9.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
  368. package/dist/renderPasses-B6l8IpJv.js +1290 -0
  369. package/dist/renderPasses-dqmkft4P.cjs +158 -0
  370. package/dist/renderState-CJNmj5jz.js +39 -0
  371. package/dist/renderState-apSfg4eR.cjs +1 -0
  372. package/dist/scene-object.cjs +1 -1
  373. package/dist/scene-object.js +2 -2
  374. package/dist/segmentation-Cb3ouK6Z.js +1758 -0
  375. package/dist/segmentation-D9pYO6aR.cjs +1 -0
  376. package/dist/segmentation2d/types.d.ts +6 -0
  377. package/dist/select-Ck5LGz-J.cjs +1 -0
  378. package/dist/select-pYRo_win.js +233 -0
  379. package/dist/selectors-C4X71aoD.cjs +1 -0
  380. package/dist/selectors-DmNaKIwE.js +196 -0
  381. package/dist/session-BrH8G7iJ.cjs +31 -0
  382. package/dist/session-DgA_z6O1.js +418 -0
  383. package/dist/{settings-aQk845NJ.js → settings-BJ7FMBsO.js} +53 -15
  384. package/dist/settings-C63FMBlF.cjs +1 -0
  385. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  386. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  387. package/dist/spring/index.d.ts +2 -0
  388. package/dist/spring/spring.d.ts +69 -0
  389. package/dist/spring/swing.d.ts +54 -0
  390. package/dist/tracking.cjs +10 -1
  391. package/dist/tracking.js +1002 -855
  392. package/dist/trigger-D0Pm9noT.cjs +49 -0
  393. package/dist/trigger-IQeys0oS.js +2128 -0
  394. package/dist/types/face.d.ts +20 -1
  395. package/dist/types/hand-tracking.d.ts +9 -0
  396. package/dist/types/nodes.d.ts +20 -1
  397. package/dist/types/segmentation.d.ts +5 -0
  398. package/dist/updateThrottle-BseecYag.js +4 -0
  399. package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
  400. package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
  401. package/dist/useFaceInfo-J4x7LsqL.js +76 -0
  402. package/dist/useFaceResultReader-BvEo5REG.js +61 -0
  403. package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
  404. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  405. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  406. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  407. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  408. package/dist/{useXRCapabilities-B1R2ghy-.cjs → useXRCapabilities-Cr3RzuAW.cjs} +1 -1
  409. package/dist/{useXRCapabilities-C68v__wB.js → useXRCapabilities-Cxmlmpbd.js} +1 -1
  410. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  411. package/dist/utils/headOccluderFit.d.ts +42 -0
  412. package/dist/utils/integrity.d.ts +17 -0
  413. package/dist/utils/resolveNumFaces.d.ts +13 -0
  414. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  415. package/dist/utils/similarityFit.d.ts +23 -0
  416. package/dist/uv-BMFt19bg.cjs +1 -0
  417. package/dist/{index-CsUdQ-pn.js → uv-DJU_XfmN.js} +15 -249
  418. package/docs/SDK_DOCUMENTATION.md +1 -2
  419. package/docs/api/adaptive-quality.mdx +1 -1
  420. package/docs/api/body-instructions.mdx +285 -0
  421. package/docs/api/body-triggers.mdx +234 -0
  422. package/docs/api/camera-permission.mdx +1 -1
  423. package/docs/api/coordinate-spaces.mdx +7 -4
  424. package/docs/api/cross-camera.mdx +3 -2
  425. package/docs/api/debug-ui-scene-editor.mdx +23 -2
  426. package/docs/api/external-face-mesh.mdx +231 -0
  427. package/docs/api/face-actions.mdx +20 -16
  428. package/docs/api/face-attribute-expression.mdx +1 -1
  429. package/docs/api/face-binding-anchors.mdx +4 -2
  430. package/docs/api/face-character.mdx +157 -0
  431. package/docs/api/face-effects.mdx +3 -0
  432. package/docs/api/face-expression-controller.mdx +153 -0
  433. package/docs/api/face-info.mdx +17 -11
  434. package/docs/api/face-inset.mdx +204 -0
  435. package/docs/api/face-instructions.mdx +183 -0
  436. package/docs/api/face-liquify.mdx +196 -0
  437. package/docs/api/face-mesh.mdx +4 -7
  438. package/docs/api/face-morph.mdx +117 -0
  439. package/docs/api/face-painting.mdx +7 -0
  440. package/docs/api/face-reprojection.mdx +154 -0
  441. package/docs/api/face-retouching.mdx +18 -10
  442. package/docs/api/face-swap.mdx +350 -0
  443. package/docs/api/face-warp-3d.mdx +166 -0
  444. package/docs/api/faceless.mdx +143 -0
  445. package/docs/api/gestures.mdx +68 -32
  446. package/docs/api/hair.mdx +97 -0
  447. package/docs/api/hand-instructions.mdx +222 -0
  448. package/docs/api/hand-rig.mdx +535 -0
  449. package/docs/api/hand-touch.mdx +162 -0
  450. package/docs/api/head-occluder.mdx +563 -0
  451. package/docs/api/holistic-tracker.mdx +6 -1
  452. package/docs/api/instructions.mdx +323 -0
  453. package/docs/api/iris-tracking.mdx +24 -19
  454. package/docs/api/made-up-camera.mdx +131 -0
  455. package/docs/api/makeup-skin-tone.mdx +135 -0
  456. package/docs/api/makeup.mdx +353 -0
  457. package/docs/api/multi-subject.mdx +4 -1
  458. package/docs/api/particles.mdx +155 -0
  459. package/docs/api/person-cutout.mdx +1 -1
  460. package/docs/api/pin-to-face-mesh.mdx +274 -0
  461. package/docs/api/product-ar.mdx +5 -2
  462. package/docs/api/segmentation-overlay.mdx +1 -1
  463. package/docs/docs.json +29 -1
  464. package/docs/examples/lip-shaders.mdx +82 -33
  465. package/docs/guides/face-atlas-template.svg +1 -0
  466. package/docs/guides/face-atlas-textures.mdx +186 -0
  467. package/docs/guides/face-texture-template.svg +1 -0
  468. package/docs/guides/harness-debug-ui.mdx +4 -4
  469. package/docs/guides/lip-effect-textures.mdx +178 -102
  470. package/docs/guides/lip-uv-template.png +0 -0
  471. package/docs/guides/lip-uv-template.svg +1 -1
  472. package/docs/guides/makeup-design-textures.mdx +109 -0
  473. package/docs/introduction.mdx +1 -2
  474. package/package.json +11 -1
  475. package/dist/DebuggerUI-C-ldiozL.js +0 -269
  476. package/dist/DebuggerUI-CWX5EtQv.cjs +0 -1
  477. package/dist/FaceMeshRenderer-BEEXZwS6.cjs +0 -158
  478. package/dist/FaceMeshRenderer-UuH5sTXG.js +0 -1322
  479. package/dist/FaceRetouch-C7h7x9kd.js +0 -683
  480. package/dist/FaceRetouch-DqftT26Y.cjs +0 -134
  481. package/dist/GLTFLoader-C5q63sKO.js +0 -1633
  482. package/dist/GLTFLoader-Cb_CRwmG.cjs +0 -1
  483. package/dist/SegmentationOverlay-DQuW3dsc.js +0 -133
  484. package/dist/SegmentationOverlay-aWVod8Kl.cjs +0 -1
  485. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
  486. package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
  487. package/dist/components/FaceWarp3D/warp.d.ts +0 -13
  488. package/dist/contexts-CO0sd4JQ.cjs +0 -1
  489. package/dist/contexts-FzlnnMYD.js +0 -669
  490. package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
  491. package/dist/getFaceInfo-BkZfaQs-.js +0 -118
  492. package/dist/getFaceInfo-ahPxQFGu.cjs +0 -1
  493. package/dist/index--RgGzZ6X.cjs +0 -47
  494. package/dist/index-CHVbH0hz.js +0 -214
  495. package/dist/index-CeVkgsag.cjs +0 -1
  496. package/dist/index-CnGox6Xr.js +0 -3054
  497. package/dist/index-DKBAh6hV.cjs +0 -1
  498. package/dist/index-DsZwTfG0.cjs +0 -1
  499. package/dist/index-Dw6tj2Mi.js +0 -144
  500. package/dist/index-OCPjOaeP.cjs +0 -1
  501. package/dist/index-s9pF4zkG.js +0 -2053
  502. package/dist/internal-BYza1h8_.cjs +0 -1
  503. package/dist/measures-9dQPdw96.js +0 -154
  504. package/dist/measures-KfJzpvod.cjs +0 -1
  505. package/dist/providers-YNwkmNeK.cjs +0 -62
  506. package/dist/renderPasses-Cg-zqmEz.cjs +0 -21
  507. package/dist/screenTransform-BenfCtZt.js +0 -44
  508. package/dist/screenTransform-BiXdpVf0.cjs +0 -1
  509. package/dist/segmentation-9PhSvc-R.cjs +0 -1
  510. package/dist/segmentation-CeOTKemr.js +0 -5
  511. package/dist/selectors-C5G1PMYL.js +0 -195
  512. package/dist/selectors-Du_PsVnW.cjs +0 -1
  513. package/dist/session-BBr0yN8h.cjs +0 -31
  514. package/dist/session-Cy0m7l7-.js +0 -363
  515. package/dist/settings-DRR7-snV.cjs +0 -1
  516. package/dist/useFaceInfo-Blf7FCu3.js +0 -303
  517. package/dist/useFaceInfo-C5mO8NQY.cjs +0 -1
@@ -0,0 +1,300 @@
1
+ /**
2
+ * Settings for `<FaceSwap>` and `<FaceMirror>` (FACE-2). Every field is a
3
+ * plain value, so a set can live in URL state or a scene store and drive a
4
+ * settings panel directly. Distances are in cm on the face.
5
+ */
6
+ /** Where `<FaceSwap>` takes the face it draws. */
7
+ export declare const FACE_SWAP_SOURCE_KINDS: readonly ["eachOther", "photo", "canonicalTexture", "faceTexture"];
8
+ export type FaceSwapSourceKind = (typeof FACE_SWAP_SOURCE_KINDS)[number];
9
+ export declare const FACE_SWAP_PRESET_KEYS: readonly ["natural", "keepColors", "raw"];
10
+ export type FaceSwapPresetKey = (typeof FACE_SWAP_PRESET_KEYS)[number];
11
+ export type FaceSwapPreset = FaceSwapPresetKey | "custom";
12
+ export type FaceSwapSettings = {
13
+ /**
14
+ * The look the colour and edge fields came from. A named preset always
15
+ * means its values: once a field it sets differs from it, this is `"custom"`.
16
+ */
17
+ preset: FaceSwapPreset;
18
+ /** 0..1: the source takes the target's skin tone, exposure and white balance. */
19
+ matchSkinTone: number;
20
+ /** 0..1: the target's light and shadow fall on the source. */
21
+ matchLighting: number;
22
+ /** 0..1: the band inside the face edge always takes the target's tone and light, so no seam shows. */
23
+ edgeMatch: number;
24
+ /** cm, 0.3..3: width of the fade inside the face edge. */
25
+ edgeSoftness: number;
26
+ /** cm, 0..1.5: pulls the edge inside the tracked outline. */
27
+ edgeInset: number;
28
+ /** The target keeps its own live eyes inside the source's lids. */
29
+ ownEyes: boolean;
30
+ /** The target keeps its own live mouth interior (teeth, tongue). */
31
+ ownMouth: boolean;
32
+ /** cm, 0.1..0.6: soft rim around the kept eyes and mouth. */
33
+ featureSoftness: number;
34
+ /** 0..1: source sharpness; lower softens it to match a soft camera. */
35
+ detail: number;
36
+ /** 0..1: landmark smoothing (shape-preserving One Euro); 0 = raw landmarks. */
37
+ smoothing: number;
38
+ /** 0..1: overall strength. */
39
+ amount: number;
40
+ };
41
+ /** The defaults are the `natural` preset. */
42
+ export declare const DEFAULT_FACE_SWAP_SETTINGS: FaceSwapSettings;
43
+ /**
44
+ * Built-in looks. A preset sets only the fields it lists; smoothing, inset,
45
+ * feature softness and amount are never touched by a preset.
46
+ * - `natural`: photos and two people. The source takes the target's skin tone and light.
47
+ * - `keepColors`: painted or stylised faces. The paint keeps its colours and takes the room's light.
48
+ * - `raw`: as captured, with a short fade: a mask look, or for debugging.
49
+ */
50
+ export declare const FACE_SWAP_PRESETS: {
51
+ readonly natural: {
52
+ readonly matchSkinTone: 1;
53
+ readonly matchLighting: 1;
54
+ readonly edgeMatch: 1;
55
+ readonly edgeSoftness: 1.2;
56
+ readonly ownEyes: true;
57
+ readonly ownMouth: true;
58
+ readonly detail: 1;
59
+ };
60
+ readonly keepColors: {
61
+ readonly matchSkinTone: 0;
62
+ readonly matchLighting: 0.7;
63
+ readonly edgeMatch: 1;
64
+ readonly edgeSoftness: 1;
65
+ };
66
+ readonly raw: {
67
+ readonly matchSkinTone: 0;
68
+ readonly matchLighting: 0;
69
+ readonly edgeMatch: 0;
70
+ readonly edgeSoftness: 0.4;
71
+ };
72
+ };
73
+ export declare const isFaceSwapPresetKey: (value: unknown) => value is FaceSwapPresetKey;
74
+ /** What `defaultFaceSwapPreset` reads of a `<FaceSwap>` source. */
75
+ export type FaceSwapSourceLike = {
76
+ kind: FaceSwapSourceKind;
77
+ face?: {
78
+ kind: string;
79
+ } | null;
80
+ };
81
+ /**
82
+ * The preset a source starts from when none is given: painted faces
83
+ * (`canonicalTexture`, or a `faceTexture` whose face is `"canonical"`) keep
84
+ * their colours; photos and two people use `natural`.
85
+ */
86
+ export declare const defaultFaceSwapPreset: (source?: FaceSwapSourceLike | null) => FaceSwapPresetKey;
87
+ /** A painted face: `canonicalTexture`, or a `faceTexture` whose face is `"canonical"`. */
88
+ export declare const isPaintedFaceSwapSource: (source?: FaceSwapSourceLike | null) => boolean;
89
+ /**
90
+ * `featureSoftness` (cm) of a painted face when none is given: the paint's
91
+ * liner and lip line hold right up to the wearer's own eyes and mouth (at
92
+ * the 0.25 cm default, a stripe of the wearer's own lips shows through a
93
+ * painted mouth).
94
+ */
95
+ export declare const FACE_SWAP_PAINTED_FEATURE_SOFTNESS = 0.1;
96
+ /** Valid ranges of the numeric fields; `resolveFaceSwapSettings` clamps to them. */
97
+ export declare const FACE_SWAP_SETTINGS_RANGES: {
98
+ readonly matchSkinTone: readonly [0, 1];
99
+ readonly matchLighting: readonly [0, 1];
100
+ readonly edgeMatch: readonly [0, 1];
101
+ readonly edgeSoftness: readonly [0.3, 3];
102
+ readonly edgeInset: readonly [0, 1.5];
103
+ readonly featureSoftness: readonly [0.1, 0.6];
104
+ readonly detail: readonly [0, 1];
105
+ readonly smoothing: readonly [0, 1];
106
+ readonly amount: readonly [0, 1];
107
+ };
108
+ /** True when every field the preset sets has the preset's value. */
109
+ export declare const matchesFaceSwapPreset: (settings: FaceSwapSettings, preset: FaceSwapPresetKey) => boolean;
110
+ export type ResolveFaceSwapSettingsOptions = {
111
+ /**
112
+ * The source the settings are for. Without a `preset` in the input, its
113
+ * default is used: `keepColors` for painted faces (`canonicalTexture`, or a
114
+ * `faceTexture` on the canonical face), `natural` for photos and two people
115
+ * (see `defaultFaceSwapPreset`). No source: `natural`. A painted face also
116
+ * defaults `featureSoftness` to `FACE_SWAP_PAINTED_FEATURE_SOFTNESS` (0.1
117
+ * cm) whatever the preset, since no preset sets it.
118
+ */
119
+ source?: FaceSwapSourceLike | null;
120
+ };
121
+ /**
122
+ * Resolve partial settings (e.g. `<FaceSwap>` props) to a complete, clamped
123
+ * set: the defaults, then the preset, then every explicit value. Without a
124
+ * `preset` in the input, the source's default preset applies (pass
125
+ * `{ source }`); `"custom"` applies no preset. When an explicit value moves a
126
+ * field the preset sets away from it, the result is `"custom"`, so a named
127
+ * preset always means its values.
128
+ */
129
+ export declare const resolveFaceSwapSettings: (input?: Partial<FaceSwapSettings>, options?: ResolveFaceSwapSettingsOptions) => FaceSwapSettings;
130
+ /**
131
+ * Apply an edit (a sparse patch, or a panel's whole object). The result
132
+ * keeps the rule of `resolveFaceSwapSettings`: a named preset always means
133
+ * its values.
134
+ * - Choosing a preset applies it. Fields the patch actually changes win
135
+ * over it; if one of them is a field the preset sets, the result is
136
+ * `"custom"`. Choosing a preset that differs from the current values
137
+ * (e.g. the current one while `"custom"` would differ) re-applies it.
138
+ * - Editing a field the current preset sets, away from the preset's value,
139
+ * sets `"custom"`. Fields no preset sets (smoothing, inset, feature
140
+ * softness, amount) keep the preset's name.
141
+ * - A panel emit that changes nothing returns the same values.
142
+ */
143
+ export declare const patchFaceSwapSettings: (current: FaceSwapSettings, patch: Partial<FaceSwapSettings>) => FaceSwapSettings;
144
+ export declare const FACE_SWAP_SETTINGS_FIELDS: [{
145
+ readonly key: "preset";
146
+ readonly label: "Preset";
147
+ readonly type: "select";
148
+ readonly options: [{
149
+ readonly label: "Custom";
150
+ readonly value: "custom";
151
+ }, ...{
152
+ label: string;
153
+ value: "natural" | "keepColors" | "raw";
154
+ }[]];
155
+ }, {
156
+ readonly min: 0;
157
+ readonly max: 1;
158
+ readonly step: 0.01;
159
+ readonly key: "matchSkinTone";
160
+ readonly label: "Match skin tone";
161
+ readonly type: "number";
162
+ }, {
163
+ readonly min: 0;
164
+ readonly max: 1;
165
+ readonly step: 0.01;
166
+ readonly key: "matchLighting";
167
+ readonly label: "Match lighting";
168
+ readonly type: "number";
169
+ }, {
170
+ readonly min: 0;
171
+ readonly max: 1;
172
+ readonly step: 0.01;
173
+ readonly key: "edgeMatch";
174
+ readonly label: "Match at the edge";
175
+ readonly type: "number";
176
+ }, {
177
+ readonly min: 0 | 0.3 | 0.1;
178
+ readonly max: 1 | 3 | 0.6 | 1.5;
179
+ readonly step: number;
180
+ readonly key: "edgeSoftness";
181
+ readonly label: "Edge softness (cm)";
182
+ readonly type: "number";
183
+ }, {
184
+ readonly min: 0 | 0.3 | 0.1;
185
+ readonly max: 1 | 3 | 0.6 | 1.5;
186
+ readonly step: number;
187
+ readonly key: "edgeInset";
188
+ readonly label: "Edge inset (cm)";
189
+ readonly type: "number";
190
+ }, {
191
+ readonly key: "ownEyes";
192
+ readonly label: "Keep own eyes";
193
+ readonly type: "boolean";
194
+ }, {
195
+ readonly key: "ownMouth";
196
+ readonly label: "Keep own mouth";
197
+ readonly type: "boolean";
198
+ }, {
199
+ readonly min: 0 | 0.3 | 0.1;
200
+ readonly max: 1 | 3 | 0.6 | 1.5;
201
+ readonly step: number;
202
+ readonly key: "featureSoftness";
203
+ readonly label: "Eye and mouth rim (cm)";
204
+ readonly type: "number";
205
+ }, {
206
+ readonly min: 0;
207
+ readonly max: 1;
208
+ readonly step: 0.01;
209
+ readonly key: "detail";
210
+ readonly label: "Detail";
211
+ readonly type: "number";
212
+ }, {
213
+ readonly min: 0;
214
+ readonly max: 1;
215
+ readonly step: 0.01;
216
+ readonly key: "smoothing";
217
+ readonly label: "Smoothing";
218
+ readonly type: "number";
219
+ }, {
220
+ readonly min: 0;
221
+ readonly max: 1;
222
+ readonly step: 0.01;
223
+ readonly key: "amount";
224
+ readonly label: "Amount";
225
+ readonly type: "number";
226
+ }];
227
+ /**
228
+ * `<FaceMirror>` variants. Left and right are the person's OWN sides on
229
+ * every feed (mirrored webcam, rear camera, video).
230
+ * - `leftLeft`: both halves are the person's own left half.
231
+ * - `rightRight`: both halves are the person's own right half.
232
+ * - `flip`: left and right swapped; a left wink shows on the right.
233
+ * - `upsideDown`: each eye and the mouth flipped top to bottom in place (the
234
+ * Thatcher effect); the rest of the face is unchanged.
235
+ */
236
+ export declare const FACE_MIRROR_VARIANTS: readonly ["leftLeft", "rightRight", "flip", "upsideDown"];
237
+ export type FaceMirrorVariant = (typeof FACE_MIRROR_VARIANTS)[number];
238
+ /** Short labels for chips. */
239
+ export declare const FACE_MIRROR_VARIANT_LABELS: Record<FaceMirrorVariant, string>;
240
+ export declare const isFaceMirrorVariant: (value: unknown) => value is FaceMirrorVariant;
241
+ export type FaceMirrorSettings = {
242
+ variant: FaceMirrorVariant;
243
+ /** 0..1: the real side light stays where it falls; 0 = raw mirrored pixels. */
244
+ matchLighting: number;
245
+ /** cm, 0.3..3: width of the fade inside the face edge. */
246
+ edgeSoftness: number;
247
+ /** 0..1: landmark smoothing (shape-preserving One Euro); 0 = raw landmarks. */
248
+ smoothing: number;
249
+ /** 0..1: overall strength. */
250
+ amount: number;
251
+ };
252
+ export declare const DEFAULT_FACE_MIRROR_SETTINGS: FaceMirrorSettings;
253
+ /** Resolve partial settings over the defaults, clamped to the same ranges as `<FaceSwap>`. */
254
+ export declare const resolveFaceMirrorSettings: (input?: Partial<FaceMirrorSettings>) => FaceMirrorSettings;
255
+ export declare const patchFaceMirrorSettings: (current: FaceMirrorSettings, patch: Partial<FaceMirrorSettings>) => FaceMirrorSettings;
256
+ export declare const FACE_MIRROR_SETTINGS_FIELDS: [{
257
+ readonly key: "variant";
258
+ readonly label: "Variant";
259
+ readonly type: "select";
260
+ readonly options: {
261
+ label: string;
262
+ value: "flip" | "leftLeft" | "rightRight" | "upsideDown";
263
+ }[];
264
+ }, {
265
+ readonly min: 0;
266
+ readonly max: 1;
267
+ readonly step: 0.01;
268
+ readonly key: "matchLighting";
269
+ readonly label: "Match lighting";
270
+ readonly type: "number";
271
+ }, {
272
+ readonly min: 0 | 0.3 | 0.1;
273
+ readonly max: 1 | 3 | 0.6 | 1.5;
274
+ readonly step: number;
275
+ readonly key: "edgeSoftness";
276
+ readonly label: "Edge softness (cm)";
277
+ readonly type: "number";
278
+ }, {
279
+ readonly min: 0;
280
+ readonly max: 1;
281
+ readonly step: 0.01;
282
+ readonly key: "smoothing";
283
+ readonly label: "Smoothing";
284
+ readonly type: "number";
285
+ }, {
286
+ readonly min: 0;
287
+ readonly max: 1;
288
+ readonly step: 0.01;
289
+ readonly key: "amount";
290
+ readonly label: "Amount";
291
+ readonly type: "number";
292
+ }];
293
+ /**
294
+ * The transfer settings a mirror variant draws with. The face is its own
295
+ * source, so the skin tone always matches; `matchLighting` puts the real
296
+ * side light back everywhere, the edge band included, so 0 shows the raw
297
+ * mirrored pixels. The source's eyes and mouth are always drawn (they are
298
+ * part of every variant: a left wink in `flip` shows on the right).
299
+ */
300
+ export declare const faceMirrorTransferSettings: (mirror: FaceMirrorSettings) => Omit<FaceSwapSettings, "preset">;
@@ -0,0 +1,35 @@
1
+ import { FacePhotoWarning, FaceTextureError } from '../../face-character/facePhoto';
2
+ import { FaceTexture, FaceTextureSource } from '../../face-character/faceTexture';
3
+ import { FaceTextureResolution } from '../../face-character/faceTextureBaker';
4
+ export type UseFaceTextureOptions = {
5
+ /** The map's size (px, square). Default 1024. */
6
+ resolution?: FaceTextureResolution;
7
+ };
8
+ export type FaceTextureStatus = "idle" | "loading" | "ready" | "error";
9
+ export type UseFaceTextureResult = {
10
+ /** The baked face, or null while idle, loading or failed. */
11
+ face: FaceTexture | null;
12
+ status: FaceTextureStatus;
13
+ /** Photo warnings (`turned`, `eyesClosed`, `mouthOpen`, `small`, `severalFaces`); empty otherwise. */
14
+ warnings: readonly FacePhotoWarning[];
15
+ error: FaceTextureError | null;
16
+ /** Faces found in the photo (1 for a painted face, 0 before it is baked). */
17
+ faceCount: number;
18
+ };
19
+ /**
20
+ * A photo or a painted face, baked once into a `FaceTexture`
21
+ * (`createFaceTexture`): pass the same source object shape as `<FaceSwap
22
+ * source>`. It is keyed by the URL or by the identity of the File, image,
23
+ * canvas, bitmap or texture (plus its options), so an inline source object
24
+ * re-made on every render bakes once. A new source aborts the old load;
25
+ * the baked face is disposed when the source changes or on unmount. Photos
26
+ * stay in memory only.
27
+ *
28
+ * Needs the renderer: call it inside `<XRScene>`.
29
+ *
30
+ * ```tsx
31
+ * const photo = useFaceTexture(file ? { kind: "photo", src: file } : null);
32
+ * <FaceTextureLayer face={photo.face} />
33
+ * ```
34
+ */
35
+ export declare const useFaceTexture: (source: FaceTextureSource | null, options?: UseFaceTextureOptions) => UseFaceTextureResult;
@@ -0,0 +1,38 @@
1
+ import { FaceSwapQuality, LiveFaceEntry } from '../../face-character/liveFaceRegistry';
2
+ /**
3
+ * The live-face registry from React (internal to the face swap components):
4
+ * one shared `LiveFaceEntry` per renderer and face, refcounted by every
5
+ * consumer, stepped once per frame at `LIVE_FACE_FRAME_PRIORITY`.
6
+ */
7
+ export type UseLiveFaceOptions = {
8
+ /** The face map (the camera face in the face atlas) is wanted, not only the statistics. Default false. */
9
+ map?: boolean;
10
+ /** Fill the hidden half of a turned face from the other side when the map is made (high and medium tiers). Default false. */
11
+ mirrorFill?: boolean;
12
+ /** `"auto"` (default) follows the session's quality tier. The best any consumer of the face asks for wins. */
13
+ quality?: FaceSwapQuality;
14
+ /** Landmark smoothing, 0..1 (the most any consumer of the face asks for wins). Default: no preference (0.35). */
15
+ smoothing?: number;
16
+ /**
17
+ * Faces to start the face model with when this starts it (no `FaceTracker`
18
+ * or face rig above): at least `faceIndex + 1`. The first component to
19
+ * start the model sets its count.
20
+ */
21
+ numFaces?: number;
22
+ /** `false` lets go of the face (the last consumer frees it). Default true. */
23
+ enabled?: boolean;
24
+ /**
25
+ * `false`: only reads the face model, never starts it (`FaceTextureLayer`
26
+ * holds its start back for one commit). Internal; default true.
27
+ */
28
+ startModel?: boolean;
29
+ };
30
+ /**
31
+ * The shared live face `faceIndex` (null on the first render, while
32
+ * disabled, or outside a canvas). Starts the face model when nothing above
33
+ * does (`useFaceModelAcquisition`), and warns once when the model was
34
+ * started with too few faces to ever report `faceIndex`. Read the entry's
35
+ * per-frame state (`face`, `liveMap`, `quality`, `track`) inside `useFrame`
36
+ * at a priority after `LIVE_FACE_FRAME_PRIORITY`.
37
+ */
38
+ export declare const useLiveFace: (faceIndex: number, options?: UseLiveFaceOptions) => LiveFaceEntry | null;
@@ -0,0 +1,31 @@
1
+ import { FaceTexture } from '../../face-character/faceTexture';
2
+ import { UseLiveFaceOptions } from './useLiveFace';
3
+ export type UseLiveFaceTextureOptions = Omit<UseLiveFaceOptions, "map" | "startModel"> & {
4
+ /** `false` keeps only the skin statistics (`low`, `mean`; `map` stays null). Default true. */
5
+ map?: boolean;
6
+ };
7
+ /**
8
+ * A tracked face as a `FaceTexture`: the camera face unwrapped into the face
9
+ * atlas on every new landmark result (never between results, so it cannot
10
+ * swim) from smoothed landmarks, plus its skin statistics. Shared per
11
+ * renderer and face index and refcounted: every component asking for the
12
+ * same face shares one unwrap and one set of statistics. The returned object
13
+ * is stable and updated in place (`version` increases; `ready` once the map
14
+ * and the statistics hold the face), so pass it straight to
15
+ * `<FaceTextureLayer face>` without re-rendering. `null` until it is made.
16
+ *
17
+ * Needs the renderer (inside `<XRScene>`); starts the face model when no
18
+ * `FaceTracker` above does (`numFaces`, at least `faceIndex + 1`). The
19
+ * first component to start the model sets its face count: a
20
+ * `FaceTextureLayer` below this hook waits a commit so this one starts it,
21
+ * but anything else that may start it first needs `numFaces` too (a
22
+ * console warning names the fix when face `faceIndex` can never be
23
+ * tracked). The face keeps its last frame while it is not tracked; the
24
+ * layer fades out 250 ms after it leaves.
25
+ *
26
+ * ```tsx
27
+ * const other = useLiveFaceTexture(1, { mirrorFill: true });
28
+ * <FaceTextureLayer face={other} faceIndex={0} numFaces={2} />
29
+ * ```
30
+ */
31
+ export declare const useLiveFaceTexture: (faceIndex: number, options?: UseLiveFaceTextureOptions) => FaceTexture | null;
@@ -0,0 +1,50 @@
1
+ import { ReactNode } from 'react';
2
+ import { LiveValue } from '../../face-character/liveValue';
3
+ import { FaceRigProps } from '../FaceCharacter/FaceRig';
4
+ import * as THREE from "three";
5
+ export type FaceWarp3DProps = Omit<FaceRigProps, "children"> & {
6
+ /**
7
+ * The blend shapes: a model in the canonical head frame (cm) whose meshes
8
+ * carry shape keys (glTF morph targets). Sculpted on the canonical face
9
+ * topology they apply exactly; any other mesh is transferred through its
10
+ * base surface; a model without shape keys gives one key, `"shape"` (your
11
+ * face takes its shape). `null`: no deformation (the face mesh only).
12
+ */
13
+ deformation?: THREE.Object3D | null;
14
+ /**
15
+ * Weight per shape key, by name (a key left out is at 1) — or a ref to such
16
+ * a record, read every frame (drive keys from `useFrame` or a
17
+ * `FaceExpressionController` `set` output without re-rendering).
18
+ */
19
+ weights?: LiveValue<Record<string, number>>;
20
+ /** Overall strength, multiplying every key (or a ref). Default 1. */
21
+ weight?: LiveValue<number>;
22
+ /** Expression strength (or a ref): 1 (default) is the face's own, 0 freezes it, > 1 exaggerates. */
23
+ expression?: LiveValue<number>;
24
+ /** Subdivisions of the face mesh (2 ≈ 7 500 vertices: smooth sculpts). Default 2. */
25
+ subdivisions?: number;
26
+ /** Opacity of the warped face. Default 1. */
27
+ opacity?: number;
28
+ /** The shape keys found on `deformation` (for sliders), once bound. At most `FACE_WARP_MAX_KEYS` apply. */
29
+ onKeys?: (names: string[]) => void;
30
+ /** More content in the canonical head frame. A `PinToFaceMesh` here rides the warped face. */
31
+ children?: ReactNode;
32
+ };
33
+ /**
34
+ * The live face, reshaped by blend shapes and wearing the camera image itself
35
+ * (Spark AR's face mesh deformation): bigger eyes, a longer nose, a chubby
36
+ * face — the person's real pixels move, their own expression carries on
37
+ * underneath. Every pixel samples the camera where its undeformed point is on
38
+ * screen, so weight 0 is the camera image untouched and the edge of the face
39
+ * blends into it. The blend shapes are shape keys on a model (`deformation`):
40
+ * sculpted on the canonical face topology, transferred from any other mesh, or
41
+ * a model's own shape (`"shape"`). Mount inside a `FaceTracker` (it runs its
42
+ * own `FaceRig`) or a `FaceRig`.
43
+ *
44
+ * ```tsx
45
+ * <FaceTracker>
46
+ * <FaceWarp3D deformation={gltf.scene} weights={{ bigEyes: 0.8 }} />
47
+ * </FaceTracker>
48
+ * ```
49
+ */
50
+ export declare const FaceWarp3D: ({ faceIndex, smoothing, expressionSmoothing, holdMs, neutral, neutralMs, leadMs, neutralKey, onTrackingChange, ...props }: FaceWarp3DProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,2 @@
1
- export { DEFAULT_FACE_WARP_3D_SETTINGS, FACE_WARP_3D_PRESET, type FaceWarp3DSettings, } from './defaults';
2
- export { applyFaceWarp3D, computeFaceWarp3DMetrics, hasFaceWarp3D, type FaceWarp3DMetrics, } from './warp';
3
- export { FaceWarp3DHead, type FaceWarp3DHeadProps } from './FaceWarp3DHead';
1
+ export { FaceWarp3D } from './FaceWarp3D';
2
+ export type { FaceWarp3DProps } from './FaceWarp3D';
@@ -0,0 +1,51 @@
1
+ import { FacelessStyle } from '../../face-character/faceless';
2
+ import { FaceTexture } from '../../face-character/faceTexture';
3
+ import { FaceSwapQuality } from '../../face-character/liveFaceRegistry';
4
+ import { LiveValue } from '../../face-character/liveValue';
5
+ /**
6
+ * After the live faces update (−0.75), before the face texture layers draw
7
+ * them (−0.5): each faceless texture is made from this frame's live face.
8
+ */
9
+ export declare const FACELESS_FRAME_PRIORITY = -0.6;
10
+ /** Faces it erases at most. */
11
+ export declare const FACELESS_MAX_FACES = 4;
12
+ export type UseFacelessTextureOptions = {
13
+ style?: FacelessStyle;
14
+ /** Grain on the erased skin, 0..1. Default 1 (matched to the skin's own detail). */
15
+ grain?: number;
16
+ /** Faces to start the face model with when this starts it. */
17
+ numFaces?: number;
18
+ /** Landmark smoothing, 0..1 (the live face's). */
19
+ smoothing?: number;
20
+ quality?: FaceSwapQuality;
21
+ /** `false` lets go of the face. Default true. */
22
+ enabled?: boolean;
23
+ };
24
+ /**
25
+ * Face `faceIndex` as a faceless `FaceTexture`: its live face texture with
26
+ * the eyes, brows, nose and mouth erased (`style` `"real"`: the person's own
27
+ * skin around them, with grain) or the whole face evened (`"smooth"`). Stable
28
+ * and updated in place; pass it to `FaceTextureLayer` on the same face with
29
+ * `ownEyes` and `ownMouth` off (`<Faceless>` does). `ready` once made
30
+ * (null before mount and while not `enabled`).
31
+ */
32
+ export declare const useFacelessTexture: (faceIndex: number, { style, grain, numFaces, smoothing, quality, enabled, }?: UseFacelessTextureOptions) => FaceTexture | null;
33
+ export type FacelessProps = UseFacelessTextureOptions & {
34
+ /** 0 the real face … 1 faceless, or a ref read every frame. Default 1. */
35
+ amount?: LiveValue<number>;
36
+ /** Only this face. Default: the enclosing `FaceTracker`'s face, else every tracked face. */
37
+ faceIndex?: number;
38
+ /** Default the face layer (`FACE_SURFACE_RENDER_ORDER`, −2). */
39
+ renderOrder?: number;
40
+ /** False: nothing drawn, no face model. Default true. */
41
+ active?: boolean;
42
+ };
43
+ /**
44
+ * Faceless (experimental): erases the eyes, brows, nose and mouth of every
45
+ * tracked face (or `faceIndex`) with the person's own skin, keeping their
46
+ * light and colour (`style` `"real"`), or evens the whole face (`"smooth"`,
47
+ * a mannequin). It is drawn as the face (render order −2): makeup, designs,
48
+ * glasses and hats draw over it, and a liquify warps it. Blinks and an open
49
+ * mouth never show. Starts the face model itself.
50
+ */
51
+ export declare const Faceless: ({ style, grain, amount, faceIndex, numFaces: numFacesProp, smoothing, quality, renderOrder, active, }: FacelessProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,2 @@
1
+ export { FACELESS_FRAME_PRIORITY, FACELESS_MAX_FACES, Faceless, useFacelessTexture, } from './Faceless';
2
+ export type { FacelessProps, UseFacelessTextureOptions } from './Faceless';
@@ -0,0 +1,39 @@
1
+ import { SpringSettings } from '../../spring/spring';
2
+ import * as THREE from "three";
3
+ /** A lock of hair swings slower and further than jewellery. */
4
+ export declare const HAIR_LOCK_SPRING: Readonly<SpringSettings>;
5
+ /** A lock's shape when its props leave it out. */
6
+ export declare const HAIR_LOCK_DEFAULTS: Readonly<{
7
+ length: 16;
8
+ segments: 8;
9
+ thickness: readonly [number, number];
10
+ color: "#3b2416";
11
+ }>;
12
+ export type HairLockProps = Partial<SpringSettings> & {
13
+ /** The root, in head centimetres (the canonical head frame: +X MediaPipe's left, +Y up, +Z out of the face). */
14
+ position?: [number, number, number];
15
+ /** The way the lock leaves the root (head frame); it curves down from there. Default straight down. */
16
+ direction?: [number, number, number];
17
+ /** Length, cm. Default 16. */
18
+ length?: number;
19
+ /** Joints along it. Default 8. */
20
+ segments?: number;
21
+ /** Radius at the root and at the tip, cm. Default `[1.2, 0.3]`. */
22
+ thickness?: number | readonly [number, number];
23
+ /** Default a dark brown. */
24
+ color?: THREE.ColorRepresentation;
25
+ /** False: it hangs still at rest. Default true. */
26
+ enabled?: boolean;
27
+ /** The tracked face (when it runs its own head fit). Default 0. */
28
+ faceIndex?: number;
29
+ };
30
+ /**
31
+ * Experimental: its props and look may change in a later alpha.
32
+ *
33
+ * A lock of hair on a tracked head (a pigtail, a ponytail, a strand): a
34
+ * chain of springs from its root that swings with head motion and settles,
35
+ * drawn as a tapered tube. It hangs along the head's own down. Put it in a
36
+ * `HeadBinding` (its occluder hides the part behind the head); inside a
37
+ * `CanonicalHeadFrame` it reuses that fit, otherwise it runs its own.
38
+ */
39
+ export declare const HairLock: (props: HairLockProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { HAIR_LOCK_DEFAULTS, HAIR_LOCK_SPRING, HairLock, type HairLockProps } from './HairLock';
2
+ export { createLockGeometry, writeLock } from './lockGeometry';
@@ -0,0 +1,15 @@
1
+ import * as THREE from "three";
2
+ /**
3
+ * A hair lock's mesh (pure): a tube of `rings × sides` vertices plus a tip
4
+ * vertex, rewritten in place every frame along the lock's current points
5
+ * (parallel-transported frames, so it never twists), its radius tapering
6
+ * from root to tip.
7
+ */
8
+ /** A tube geometry with room for `rings` rings of `sides` vertices and a closed tip. */
9
+ export declare const createLockGeometry: (rings: number, sides: number) => THREE.BufferGeometry;
10
+ /**
11
+ * Writes the tube along `points` (one ring each; at least 2) with radii
12
+ * tapering from `rootRadius` to `tipRadius`, into the geometry's positions
13
+ * and normals, and the tip vertex a little past the last point.
14
+ */
15
+ export declare const writeLock: (geometry: THREE.BufferGeometry, points: readonly THREE.Vector3[], sides: number, rootRadius: number, tipRadius: number) => void;
@@ -0,0 +1,35 @@
1
+ import { HandCutoutOptions } from '../../hand/handCutout';
2
+ import * as THREE from "three";
3
+ export type HandCutoutProps = HandCutoutOptions & {
4
+ /** Show the silhouette (translucent magenta) instead of only cutting. Default false. */
5
+ debug?: boolean;
6
+ /**
7
+ * Draw order: before the content it hides. Default -900 (after the camera
8
+ * background). It applies in the scene root's tier, outside the tracker
9
+ * group's, so it holds against content anywhere in the scene.
10
+ */
11
+ renderOrder?: number;
12
+ };
13
+ /**
14
+ * The cut-out's material: depth only, at the near plane. The depth test stays
15
+ * ON with an always-pass function: WebGL writes no depth at all while the
16
+ * depth test is disabled, so `depthTest: false` would draw nothing into the
17
+ * depth buffer and hide nothing.
18
+ */
19
+ export declare const createHandCutoutMaterial: () => THREE.ShaderMaterial;
20
+ /**
21
+ * Hands in front of the face (or of anything 3D): the tracked hands'
22
+ * silhouettes on screen (palm, fingers, forearm) are drawn as depth only at
23
+ * the near plane, so 3D content drawn after them is hidden there and the real
24
+ * hand in the camera image shows through — a hand over a `FaceWarp3D`,
25
+ * `FaceMorph`, character or accessory stays in front. Mount inside a
26
+ * `HandTracker` (it reads the tracker's model; it does not start one), in the
27
+ * same scene as the content. Content must test depth (the default).
28
+ *
29
+ * ```tsx
30
+ * <HandTracker numHands={2}>
31
+ * <HandCutout />
32
+ * </HandTracker>
33
+ * ```
34
+ */
35
+ export declare const HandCutout: ({ inflate, forearm, debug, renderOrder, }: HandCutoutProps) => import("react/jsx-runtime").JSX.Element;