@vincentt-xr/sdk 2.0.0-alpha.7 → 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 (639) hide show
  1. package/GROUNDING.md +5651 -82
  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/cache.d.ts +99 -0
  18. package/dist/assets/estimate.d.ts +11 -0
  19. package/dist/assets/gltfLoader.d.ts +16 -0
  20. package/dist/assets/index.d.ts +7 -0
  21. package/dist/assets/loaders.d.ts +43 -0
  22. package/dist/assets/react.d.ts +33 -0
  23. package/dist/body-pose/index.d.ts +521 -0
  24. package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
  25. package/dist/body-trigger/frame.d.ts +88 -0
  26. package/dist/body-trigger/index.d.ts +6 -0
  27. package/dist/body-trigger/moves.d.ts +235 -0
  28. package/dist/body-trigger/trigger.d.ts +75 -0
  29. package/dist/calibration/calibration.d.ts +75 -0
  30. package/dist/calibration/index.d.ts +6 -0
  31. package/dist/calibration/storage.d.ts +13 -0
  32. package/dist/calibration/types.d.ts +53 -0
  33. package/dist/calibration/useXRCalibration.d.ts +46 -0
  34. package/dist/camera/CameraPermissionGate.d.ts +26 -0
  35. package/dist/camera/devices.d.ts +26 -0
  36. package/dist/camera/index.d.ts +8 -0
  37. package/dist/camera/permission.d.ts +86 -0
  38. package/dist/camera/useCameraPermission.d.ts +35 -0
  39. package/dist/canonicalFace-BHwyCx1c.js +9 -0
  40. package/dist/canonicalFace-C83I225R.cjs +1 -0
  41. package/dist/capabilities/detect.d.ts +45 -0
  42. package/dist/capabilities/index.d.ts +5 -0
  43. package/dist/capabilities/types.d.ts +120 -0
  44. package/dist/capabilities/useXRCapabilities.d.ts +18 -0
  45. package/dist/compat/environment.d.ts +5 -0
  46. package/dist/compat/index.d.ts +4 -0
  47. package/dist/compat/run.d.ts +18 -0
  48. package/dist/compat/scenarios.d.ts +10 -0
  49. package/dist/compat/types.d.ts +101 -0
  50. package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
  51. package/dist/components/BodyInstruction/index.d.ts +69 -0
  52. package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
  53. package/dist/components/BodyTracker/index.d.ts +17 -0
  54. package/dist/components/BodyTrigger/index.d.ts +49 -0
  55. package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
  56. package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
  57. package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
  58. package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
  59. package/dist/components/FaceAtlas/constants.d.ts +8 -0
  60. package/dist/components/FaceAtlas/index.d.ts +7 -0
  61. package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
  62. package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
  63. package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
  64. package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
  65. package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
  66. package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
  67. package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
  68. package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
  69. package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
  70. package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
  71. package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
  72. package/dist/components/FaceCharacter/index.d.ts +18 -0
  73. package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
  74. package/dist/components/FaceInset/FaceInset.d.ts +68 -0
  75. package/dist/components/FaceInset/frame.d.ts +94 -0
  76. package/dist/components/FaceInset/index.d.ts +6 -0
  77. package/dist/components/FaceInset/material.d.ts +40 -0
  78. package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
  79. package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
  80. package/dist/components/FaceInstruction/index.d.ts +56 -0
  81. package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
  82. package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
  83. package/dist/components/FaceLiquify/debug.d.ts +37 -0
  84. package/dist/components/FaceLiquify/frame.d.ts +55 -0
  85. package/dist/components/FaceLiquify/index.d.ts +10 -0
  86. package/dist/components/FaceLiquify/material.d.ts +39 -0
  87. package/dist/components/FaceLiquify/pass.d.ts +49 -0
  88. package/dist/components/FaceLiquify/presence.d.ts +25 -0
  89. package/dist/components/FaceLiquify/presets.d.ts +82 -0
  90. package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
  91. package/dist/components/FaceLiquify/target.d.ts +85 -0
  92. package/dist/components/FaceLiquify/warp.d.ts +72 -0
  93. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +37 -5
  94. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
  95. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +21 -0
  96. package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
  97. package/dist/components/FaceMesh/index.d.ts +2 -2
  98. package/dist/components/FaceRetouch/Background.d.ts +3 -1
  99. package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
  100. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  101. package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
  102. package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
  103. package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
  104. package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
  105. package/dist/components/FaceSwap/index.d.ts +13 -0
  106. package/dist/components/FaceSwap/settings.d.ts +300 -0
  107. package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
  108. package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
  109. package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
  110. package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
  111. package/dist/components/FaceWarp3D/index.d.ts +2 -3
  112. package/dist/components/Faceless/Faceless.d.ts +51 -0
  113. package/dist/components/Faceless/index.d.ts +2 -0
  114. package/dist/components/GestureListener/index.d.ts +11 -0
  115. package/dist/components/HairLock/HairLock.d.ts +39 -0
  116. package/dist/components/HairLock/index.d.ts +2 -0
  117. package/dist/components/HairLock/lockGeometry.d.ts +15 -0
  118. package/dist/components/HandCutout/index.d.ts +35 -0
  119. package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
  120. package/dist/components/HandInstruction/index.d.ts +74 -0
  121. package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
  122. package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
  123. package/dist/components/HandRig/HandAttachment.d.ts +34 -0
  124. package/dist/components/HandRig/HandOccluder.d.ts +55 -0
  125. package/dist/components/HandRig/HandTattoo.d.ts +61 -0
  126. package/dist/components/HandRig/WristAttachment.d.ts +34 -0
  127. package/dist/components/HandRig/index.d.ts +101 -0
  128. package/dist/components/HandRig/useArmMask.d.ts +29 -0
  129. package/dist/components/HandRig/wristSolve.d.ts +69 -0
  130. package/dist/components/HandTouch/HandTouch.d.ts +62 -0
  131. package/dist/components/HandTouch/Touchable.d.ts +36 -0
  132. package/dist/components/HandTouch/index.d.ts +2 -0
  133. package/dist/components/HandTracker/index.d.ts +10 -0
  134. package/dist/components/HeadBinding/index.d.ts +14 -0
  135. package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
  136. package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
  137. package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
  138. package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
  139. package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
  140. package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
  141. package/dist/components/HeadOccluder/index.d.ts +57 -3
  142. package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
  143. package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
  144. package/dist/components/HolisticTracker/index.d.ts +69 -0
  145. package/dist/components/HolisticTracker/settings.d.ts +58 -0
  146. package/dist/components/HolisticTracker/signals.d.ts +49 -0
  147. package/dist/components/Instruction/HintStage.d.ts +29 -0
  148. package/dist/components/Instruction/InstructionCue.d.ts +126 -0
  149. package/dist/components/Instruction/gestureHold.d.ts +20 -0
  150. package/dist/components/Instruction/ghost.d.ts +129 -0
  151. package/dist/components/Instruction/hintBlend.d.ts +19 -0
  152. package/dist/components/Instruction/hintLook.d.ts +81 -0
  153. package/dist/components/Instruction/hintLoop.d.ts +36 -0
  154. package/dist/components/Instruction/index.d.ts +41 -0
  155. package/dist/components/Instruction/useGhostModel.d.ts +33 -0
  156. package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
  157. package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
  158. package/dist/components/IrisEffect/index.d.ts +51 -0
  159. package/dist/components/IrisEffect/settings.d.ts +117 -0
  160. package/dist/components/LipEffect/LipEffect.d.ts +27 -1
  161. package/dist/components/LipEffect/LipEffectMaterial.d.ts +95 -7
  162. package/dist/components/LipEffect/LipEffects.d.ts +12 -0
  163. package/dist/components/LipEffect/defaults.d.ts +46 -4
  164. package/dist/components/LipEffect/index.d.ts +11 -3
  165. package/dist/components/LipEffect/lipShading.d.ts +73 -0
  166. package/dist/components/LipEffect/settings.d.ts +375 -0
  167. package/dist/components/LipEffect/shader.d.ts +39 -0
  168. package/dist/components/LipEffect/types.d.ts +128 -9
  169. package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
  170. package/dist/components/LipEffect/uvGuide.d.ts +74 -0
  171. package/dist/components/Makeup/Blush.d.ts +18 -0
  172. package/dist/components/Makeup/Brows.d.ts +20 -0
  173. package/dist/components/Makeup/Contour.d.ts +17 -0
  174. package/dist/components/Makeup/Eyeliner.d.ts +20 -0
  175. package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
  176. package/dist/components/Makeup/Highlighter.d.ts +18 -0
  177. package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
  178. package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
  179. package/dist/components/Makeup/constants.d.ts +44 -0
  180. package/dist/components/Makeup/design.d.ts +106 -0
  181. package/dist/components/Makeup/designSamples.d.ts +42 -0
  182. package/dist/components/Makeup/eyes.d.ts +114 -0
  183. package/dist/components/Makeup/fields.d.ts +10 -0
  184. package/dist/components/Makeup/geometry.d.ts +106 -0
  185. package/dist/components/Makeup/index.d.ts +26 -0
  186. package/dist/components/Makeup/looks.d.ts +28 -0
  187. package/dist/components/Makeup/material.d.ts +239 -0
  188. package/dist/components/Makeup/settings.d.ts +54 -0
  189. package/dist/components/Makeup/shades.d.ts +143 -0
  190. package/dist/components/Makeup/shapes.d.ts +27 -0
  191. package/dist/components/Makeup/skinTone.d.ts +135 -0
  192. package/dist/components/Makeup/types.d.ts +110 -0
  193. package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
  194. package/dist/components/Necklace/Necklace.d.ts +44 -0
  195. package/dist/components/Necklace/index.d.ts +1 -0
  196. package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
  197. package/dist/components/ParticleEmitter/index.d.ts +1 -0
  198. package/dist/components/PersonCutout/index.d.ts +50 -0
  199. package/dist/components/PersonCutout/personCutout.d.ts +16 -0
  200. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
  201. package/dist/components/ScreenImage/index.d.ts +3 -1
  202. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
  203. package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
  204. package/dist/components/ScreenImage/source.d.ts +6 -0
  205. package/dist/components/ScreenImage/types.d.ts +18 -0
  206. package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
  207. package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
  208. package/dist/components/SegmentationOverlay/index.d.ts +9 -0
  209. package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
  210. package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
  211. package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
  212. package/dist/components/ShoulderOccluder/index.d.ts +43 -0
  213. package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
  214. package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
  215. package/dist/components/SpringSwing/index.d.ts +1 -0
  216. package/dist/components/XRProvider/index.d.ts +16 -2
  217. package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
  218. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
  219. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
  220. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
  221. package/dist/components/index.d.ts +11 -0
  222. package/dist/config/index.d.ts +0 -1
  223. package/dist/constants/index.d.ts +4 -1
  224. package/dist/context-DTxSQvp4.js +13 -0
  225. package/dist/context-hA0Rb2Xa.cjs +1 -0
  226. package/dist/contexts-BH7PdKFS.cjs +1 -0
  227. package/dist/contexts-jak8-tND.js +667 -0
  228. package/dist/coordinates/feed.d.ts +52 -0
  229. package/dist/coordinates/index.d.ts +7 -0
  230. package/dist/coordinates/side.d.ts +40 -0
  231. package/dist/coordinates/spaces.d.ts +49 -0
  232. package/dist/coordinates/viewport.d.ts +22 -0
  233. package/dist/coordinates/world.d.ts +15 -0
  234. package/dist/debug-ui/default-setting.cjs +2 -2
  235. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  236. package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
  237. package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
  238. package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
  239. package/dist/debug-ui/index.d.ts +18 -3
  240. package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
  241. package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
  242. package/dist/debug-ui/media-source/index.d.ts +1 -1
  243. package/dist/debug-ui/media-source/session.d.ts +30 -2
  244. package/dist/debug-ui/media-source.cjs +1 -1
  245. package/dist/debug-ui/media-source.js +1 -1
  246. package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
  247. package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
  248. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
  249. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
  250. package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
  251. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
  252. package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
  253. package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
  254. package/dist/debug-ui/settings-panel/index.d.ts +6 -1
  255. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  256. package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
  257. package/dist/debug-ui.cjs +3 -3
  258. package/dist/debug-ui.js +2695 -2547
  259. package/dist/detector-K8aej4MB.js +59 -0
  260. package/dist/detector-ijypGtse.cjs +1 -0
  261. package/dist/entries/all.d.ts +3 -1
  262. package/dist/entries/core.d.ts +20 -2
  263. package/dist/entries/face-effects.d.ts +123 -9
  264. package/dist/entries/instructions.d.ts +48 -0
  265. package/dist/entries/internal.d.ts +2 -1
  266. package/dist/entries/low-level.d.ts +49 -3
  267. package/dist/entries/particles.d.ts +11 -0
  268. package/dist/entries/product.d.ts +11 -0
  269. package/dist/entries/tracking.d.ts +60 -2
  270. package/dist/face-atlas/attributes.d.ts +30 -0
  271. package/dist/face-atlas/eyes.d.ts +272 -0
  272. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  273. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  274. package/dist/face-atlas/glsl/common.d.ts +55 -0
  275. package/dist/face-atlas/glsl/design.d.ts +49 -0
  276. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  277. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  278. package/dist/face-atlas/glsl/format.d.ts +4 -0
  279. package/dist/face-atlas/glsl/index.d.ts +59 -0
  280. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  281. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  282. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  283. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  284. package/dist/face-atlas/guide.d.ts +51 -0
  285. package/dist/face-atlas/index.d.ts +25 -0
  286. package/dist/face-atlas/lead.d.ts +117 -0
  287. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  288. package/dist/face-atlas/masks.d.ts +53 -0
  289. package/dist/face-atlas/obj.d.ts +69 -0
  290. package/dist/face-atlas/polylines.d.ts +63 -0
  291. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  292. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  293. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  294. package/dist/face-atlas/probe/constants.d.ts +137 -0
  295. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  296. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  297. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  298. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  299. package/dist/face-atlas/probe/stats.d.ts +143 -0
  300. package/dist/face-atlas/probe/targets.d.ts +70 -0
  301. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  302. package/dist/face-atlas/quality.d.ts +28 -0
  303. package/dist/face-atlas/regions.d.ts +31 -0
  304. package/dist/face-atlas/registry.d.ts +252 -0
  305. package/dist/face-atlas/renderState.d.ts +86 -0
  306. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  307. package/dist/face-atlas/shading.d.ts +406 -0
  308. package/dist/face-atlas/shapes.d.ts +86 -0
  309. package/dist/face-atlas/sides.d.ts +41 -0
  310. package/dist/face-atlas/skinMask.d.ts +35 -0
  311. package/dist/face-atlas/surface.d.ts +155 -0
  312. package/dist/face-atlas/topology.d.ts +44 -0
  313. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  314. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  315. package/dist/face-character/bindFaceModel.d.ts +106 -0
  316. package/dist/face-character/canonicalFace.d.ts +17 -0
  317. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  318. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  319. package/dist/face-character/driveFaceModel.d.ts +57 -0
  320. package/dist/face-character/expressionOutputs.d.ts +45 -0
  321. package/dist/face-character/faceExpressions.d.ts +104 -0
  322. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  323. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  324. package/dist/face-character/faceMorph.d.ts +77 -0
  325. package/dist/face-character/faceMorphs.d.ts +46 -0
  326. package/dist/face-character/facePhoto.d.ts +138 -0
  327. package/dist/face-character/facePiercings.d.ts +116 -0
  328. package/dist/face-character/facePin.d.ts +131 -0
  329. package/dist/face-character/faceReprojection.d.ts +273 -0
  330. package/dist/face-character/faceReprojector.d.ts +171 -0
  331. package/dist/face-character/faceRig.d.ts +176 -0
  332. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  333. package/dist/face-character/faceTexture.d.ts +169 -0
  334. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  335. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  336. package/dist/face-character/faceTextureStats.d.ts +298 -0
  337. package/dist/face-character/faceTransfer.d.ts +396 -0
  338. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  339. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  340. package/dist/face-character/faceWarp3D.d.ts +101 -0
  341. package/dist/face-character/faceless.d.ts +79 -0
  342. package/dist/face-character/featureWarp.d.ts +28 -0
  343. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  344. package/dist/face-character/liveValue.d.ts +12 -0
  345. package/dist/face-character/memo.d.ts +15 -0
  346. package/dist/face-effects.cjs +2324 -1
  347. package/dist/face-effects.js +14208 -2268
  348. package/dist/face-expression/index.d.ts +182 -0
  349. package/dist/face-info/landmarks.d.ts +17 -3
  350. package/dist/face-info/types.d.ts +20 -3
  351. package/dist/gestures/definitions.d.ts +98 -0
  352. package/dist/gestures/detector.d.ts +87 -0
  353. package/dist/gestures/index.d.ts +8 -0
  354. package/dist/gestures/measures.d.ts +114 -0
  355. package/dist/gestures/settings.d.ts +49 -0
  356. package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
  357. package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
  358. package/dist/hand/armFit.d.ts +46 -0
  359. package/dist/hand/armMask.d.ts +178 -0
  360. package/dist/hand/handCutout.d.ts +23 -0
  361. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  362. package/dist/hand/handGestures.d.ts +524 -0
  363. package/dist/hand/handPose.d.ts +98 -0
  364. package/dist/hand/handRigSolver.d.ts +159 -0
  365. package/dist/hand/handTattoo.d.ts +81 -0
  366. package/dist/hand/handTouch.d.ts +240 -0
  367. package/dist/hand/wrist.d.ts +44 -0
  368. package/dist/hand/wristFilter.d.ts +44 -0
  369. package/dist/hooks/selectors.d.ts +76 -1
  370. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  371. package/dist/hooks/useFaceInfo.d.ts +13 -1
  372. package/dist/hooks/useFaceInfos.d.ts +1 -1
  373. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  374. package/dist/hooks/useGesture.d.ts +32 -0
  375. package/dist/hooks/useIrisTracking.d.ts +45 -0
  376. package/dist/hooks/useTrackerContext.d.ts +6 -0
  377. package/dist/hooks/useXRDiagnostics.d.ts +81 -0
  378. package/dist/hooks/useXRModel.d.ts +7 -0
  379. package/dist/hooks/useXRSession/facade.d.ts +42 -2
  380. package/dist/hooks/useXRSession/index.d.ts +2 -2
  381. package/dist/hooks/useXRSession/reason.d.ts +3 -1
  382. package/dist/hooks/useXRSession/registry.d.ts +14 -0
  383. package/dist/hooks/useXRSession/store.d.ts +52 -3
  384. package/dist/index-B1_TzJaI.js +1104 -0
  385. package/dist/index-BavF06C6.js +190 -0
  386. package/dist/index-BfFmpddl.cjs +21 -0
  387. package/dist/index-BuBzneeW.cjs +46 -0
  388. package/dist/index-CGsQWodV.cjs +1 -0
  389. package/dist/index-CIe7eCMH.js +3200 -0
  390. package/dist/index-CfSF8LXa.cjs +1 -0
  391. package/dist/index-D5GTzOzD.cjs +1 -0
  392. package/dist/index-DBhQzvVa.js +314 -0
  393. package/dist/index-DE17y0ZI.cjs +1 -0
  394. package/dist/index-JII7huPk.js +442 -0
  395. package/dist/index-tpCr9CLj.cjs +1 -0
  396. package/dist/index-w1S7fI2B.js +1432 -0
  397. package/dist/index-zGaqrz_K.js +188 -0
  398. package/dist/instructions.cjs +30 -0
  399. package/dist/instructions.js +1507 -0
  400. package/dist/{internal-Dmk1cTXq.js → internal-B90P-clC.js} +138 -119
  401. package/dist/internal-Cjinca64.cjs +1 -0
  402. package/dist/internal.cjs +1 -1
  403. package/dist/internal.js +15 -10
  404. package/dist/iris/compute.d.ts +27 -0
  405. package/dist/iris/index.d.ts +4 -0
  406. package/dist/iris/lead.d.ts +19 -0
  407. package/dist/iris/types.d.ts +89 -0
  408. package/dist/landmarkMask-BFDyBnKM.js +224 -0
  409. package/dist/landmarkMask-u7es2k4X.cjs +1 -0
  410. package/dist/landmarks-BlUqf5MZ.cjs +1 -0
  411. package/dist/landmarks-bftdwq6Z.js +76 -0
  412. package/dist/loaders-BGAUACsd.js +363 -0
  413. package/dist/loaders-BJ1_QCHt.cjs +1 -0
  414. package/dist/low-level.cjs +1 -1
  415. package/dist/low-level.js +1190 -675
  416. package/dist/main.cjs +1 -1
  417. package/dist/main.js +1190 -452
  418. package/dist/models/Base/index.d.ts +49 -0
  419. package/dist/models/Body/index.d.ts +3 -1
  420. package/dist/models/Face/constants.d.ts +8 -0
  421. package/dist/models/Face/index.d.ts +4 -12
  422. package/dist/models/Face/rotation.d.ts +18 -3
  423. package/dist/models/Hand/GestureTracking.d.ts +1 -1
  424. package/dist/models/Hand/HandTracking.d.ts +17 -1
  425. package/dist/models/Holistic/index.d.ts +49 -0
  426. package/dist/models/Holistic/result.d.ts +68 -0
  427. package/dist/models/Segmentation/index.d.ts +2 -0
  428. package/dist/models/SemanticSegmentation/index.d.ts +31 -0
  429. package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
  430. package/dist/models/index.d.ts +2 -0
  431. package/dist/models/nodeSource.d.ts +9 -0
  432. package/dist/particles/emission.d.ts +24 -0
  433. package/dist/particles/eyes.d.ts +24 -0
  434. package/dist/particles/glsl.d.ts +14 -0
  435. package/dist/particles/index.d.ts +10 -0
  436. package/dist/particles/motion.d.ts +42 -0
  437. package/dist/particles/presets.d.ts +12 -0
  438. package/dist/particles/ring.d.ts +58 -0
  439. package/dist/particles/selfTest.d.ts +53 -0
  440. package/dist/particles/settings.d.ts +127 -0
  441. package/dist/particles/shapes.d.ts +29 -0
  442. package/dist/particles/spawner.d.ts +60 -0
  443. package/dist/particles/system.d.ts +64 -0
  444. package/dist/particles.cjs +122 -0
  445. package/dist/particles.js +774 -0
  446. package/dist/product/ProductDimensions.d.ts +16 -0
  447. package/dist/product/ProductHotspot.d.ts +16 -0
  448. package/dist/product/ProductViewer.d.ts +9 -0
  449. package/dist/product/details.d.ts +53 -0
  450. package/dist/product/index.d.ts +14 -0
  451. package/dist/product/loadModelViewer.d.ts +4 -0
  452. package/dist/product/types.d.ts +71 -0
  453. package/dist/product/useProductAr.d.ts +37 -0
  454. package/dist/product/useProductDetails.d.ts +60 -0
  455. package/dist/product.cjs +1 -0
  456. package/dist/product.js +414 -0
  457. package/dist/providers-C8rE26Uf.js +366 -0
  458. package/dist/providers-DHsrhDI2.cjs +62 -0
  459. package/dist/quality/XRQualityController.d.ts +25 -0
  460. package/dist/quality/controller.d.ts +33 -0
  461. package/dist/quality/index.d.ts +6 -0
  462. package/dist/quality/types.d.ts +100 -0
  463. package/dist/quality/useXRQuality.d.ts +28 -0
  464. package/dist/render/renderPasses.d.ts +8 -0
  465. package/dist/render/sceneBeforeRender.d.ts +12 -0
  466. package/dist/{renderGroups-KZk6eRiY.js → renderGroups-B38pUaX2.js} +1 -1
  467. package/dist/{renderGroups-80H3DpTl.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
  468. package/dist/renderPasses-B6l8IpJv.js +1290 -0
  469. package/dist/renderPasses-dqmkft4P.cjs +158 -0
  470. package/dist/renderState-CJNmj5jz.js +39 -0
  471. package/dist/renderState-apSfg4eR.cjs +1 -0
  472. package/dist/scene-object.cjs +1 -1
  473. package/dist/scene-object.js +2 -2
  474. package/dist/segmentation-Cb3ouK6Z.js +1758 -0
  475. package/dist/segmentation-D9pYO6aR.cjs +1 -0
  476. package/dist/segmentation2d/faceMemory.d.ts +28 -0
  477. package/dist/segmentation2d/faceRegions.d.ts +24 -0
  478. package/dist/segmentation2d/index.d.ts +9 -0
  479. package/dist/segmentation2d/maskUv.d.ts +23 -0
  480. package/dist/segmentation2d/rasterize.d.ts +14 -0
  481. package/dist/segmentation2d/types.d.ts +52 -0
  482. package/dist/select-Ck5LGz-J.cjs +1 -0
  483. package/dist/select-pYRo_win.js +233 -0
  484. package/dist/selectors-C4X71aoD.cjs +1 -0
  485. package/dist/selectors-DmNaKIwE.js +196 -0
  486. package/dist/session-BrH8G7iJ.cjs +31 -0
  487. package/dist/session-DgA_z6O1.js +418 -0
  488. package/dist/settings-BJ7FMBsO.js +111 -0
  489. package/dist/settings-C63FMBlF.cjs +1 -0
  490. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  491. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  492. package/dist/spring/index.d.ts +2 -0
  493. package/dist/spring/spring.d.ts +69 -0
  494. package/dist/spring/swing.d.ts +54 -0
  495. package/dist/subjects/index.d.ts +2 -0
  496. package/dist/subjects/select.d.ts +62 -0
  497. package/dist/subjects/types.d.ts +55 -0
  498. package/dist/tracking-config/apply.d.ts +57 -0
  499. package/dist/tracking-config/index.d.ts +7 -0
  500. package/dist/tracking-config/resolve.d.ts +25 -0
  501. package/dist/tracking-config/storage.d.ts +8 -0
  502. package/dist/tracking-config/types.d.ts +106 -0
  503. package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
  504. package/dist/tracking.cjs +10 -1
  505. package/dist/tracking.js +1326 -506
  506. package/dist/trigger-D0Pm9noT.cjs +49 -0
  507. package/dist/trigger-IQeys0oS.js +2128 -0
  508. package/dist/types/compositor.d.ts +21 -0
  509. package/dist/types/face.d.ts +20 -1
  510. package/dist/types/hand-tracking.d.ts +9 -0
  511. package/dist/types/holistic.d.ts +121 -0
  512. package/dist/types/index.d.ts +1 -0
  513. package/dist/types/model.d.ts +22 -2
  514. package/dist/types/nodes.d.ts +47 -3
  515. package/dist/types/segmentation.d.ts +24 -0
  516. package/dist/types/session.d.ts +41 -3
  517. package/dist/updateThrottle-BseecYag.js +4 -0
  518. package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
  519. package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
  520. package/dist/useFaceInfo-J4x7LsqL.js +76 -0
  521. package/dist/useFaceResultReader-BvEo5REG.js +61 -0
  522. package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
  523. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  524. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  525. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  526. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  527. package/dist/useXRCapabilities-Cr3RzuAW.cjs +1 -0
  528. package/dist/useXRCapabilities-Cxmlmpbd.js +30 -0
  529. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  530. package/dist/utils/fns.d.ts +6 -3
  531. package/dist/utils/headOccluderFit.d.ts +42 -0
  532. package/dist/utils/integrity.d.ts +21 -1
  533. package/dist/utils/resolveNumFaces.d.ts +13 -0
  534. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  535. package/dist/utils/similarityFit.d.ts +23 -0
  536. package/dist/utils/updateThrottle.d.ts +2 -0
  537. package/dist/utils/useStableUniforms.d.ts +18 -0
  538. package/dist/uv-BMFt19bg.cjs +1 -0
  539. package/dist/{index-ByoNj0QP.js → uv-DJU_XfmN.js} +15 -247
  540. package/docs/SDK_DOCUMENTATION.md +1 -2
  541. package/docs/api/adaptive-quality.mdx +104 -0
  542. package/docs/api/asset-lifecycle.mdx +78 -0
  543. package/docs/api/body-instructions.mdx +285 -0
  544. package/docs/api/body-triggers.mdx +234 -0
  545. package/docs/api/camera-permission.mdx +142 -0
  546. package/docs/api/coordinate-spaces.mdx +168 -0
  547. package/docs/api/cross-camera.mdx +89 -0
  548. package/docs/api/debug-ui-scene-editor.mdx +23 -2
  549. package/docs/api/diagnostics-calibration.mdx +97 -0
  550. package/docs/api/external-face-mesh.mdx +231 -0
  551. package/docs/api/face-actions.mdx +20 -16
  552. package/docs/api/face-attribute-expression.mdx +1 -1
  553. package/docs/api/face-binding-anchors.mdx +4 -2
  554. package/docs/api/face-character.mdx +157 -0
  555. package/docs/api/face-effects.mdx +9 -0
  556. package/docs/api/face-expression-controller.mdx +153 -0
  557. package/docs/api/face-info.mdx +17 -11
  558. package/docs/api/face-inset.mdx +204 -0
  559. package/docs/api/face-instructions.mdx +183 -0
  560. package/docs/api/face-liquify.mdx +196 -0
  561. package/docs/api/face-mesh.mdx +8 -9
  562. package/docs/api/face-morph.mdx +117 -0
  563. package/docs/api/face-painting.mdx +7 -0
  564. package/docs/api/face-reprojection.mdx +154 -0
  565. package/docs/api/face-retouching.mdx +18 -10
  566. package/docs/api/face-swap.mdx +350 -0
  567. package/docs/api/face-warp-3d.mdx +166 -0
  568. package/docs/api/faceless.mdx +143 -0
  569. package/docs/api/gestures.mdx +209 -0
  570. package/docs/api/hair.mdx +97 -0
  571. package/docs/api/hand-instructions.mdx +222 -0
  572. package/docs/api/hand-rig.mdx +535 -0
  573. package/docs/api/hand-touch.mdx +162 -0
  574. package/docs/api/head-occluder.mdx +563 -0
  575. package/docs/api/holistic-tracker.mdx +164 -0
  576. package/docs/api/instructions.mdx +323 -0
  577. package/docs/api/iris-tracking.mdx +247 -0
  578. package/docs/api/made-up-camera.mdx +131 -0
  579. package/docs/api/makeup-skin-tone.mdx +135 -0
  580. package/docs/api/makeup.mdx +353 -0
  581. package/docs/api/multi-subject.mdx +98 -0
  582. package/docs/api/particles.mdx +155 -0
  583. package/docs/api/person-cutout.mdx +136 -0
  584. package/docs/api/pin-to-face-mesh.mdx +274 -0
  585. package/docs/api/product-ar.mdx +114 -0
  586. package/docs/api/product-details.mdx +78 -0
  587. package/docs/api/screen-space-coordinates.mdx +4 -1
  588. package/docs/api/segmentation-overlay.mdx +301 -0
  589. package/docs/api/session-lifecycle.mdx +136 -0
  590. package/docs/api/trackers.mdx +5 -0
  591. package/docs/api/tracking-config.mdx +108 -0
  592. package/docs/docs.json +51 -1
  593. package/docs/examples/lip-shaders.mdx +273 -0
  594. package/docs/guides/face-atlas-template.svg +1 -0
  595. package/docs/guides/face-atlas-textures.mdx +186 -0
  596. package/docs/guides/face-texture-template.svg +1 -0
  597. package/docs/guides/harness-debug-ui.mdx +4 -4
  598. package/docs/guides/lip-effect-textures.mdx +368 -0
  599. package/docs/guides/lip-uv-template.png +0 -0
  600. package/docs/guides/lip-uv-template.svg +1 -0
  601. package/docs/guides/makeup-design-textures.mdx +109 -0
  602. package/docs/introduction.mdx +1 -2
  603. package/package.json +23 -1
  604. package/dist/DebuggerUI-B6bP6P9r.cjs +0 -1
  605. package/dist/DebuggerUI-BjOMr8q_.js +0 -269
  606. package/dist/FaceMeshRenderer-C5l6VLdO.cjs +0 -155
  607. package/dist/FaceMeshRenderer-wjAHrJzP.js +0 -1270
  608. package/dist/FaceRetouch-BkJzoA79.cjs +0 -134
  609. package/dist/FaceRetouch-DwbKQJAN.js +0 -551
  610. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
  611. package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
  612. package/dist/components/FaceWarp3D/warp.d.ts +0 -13
  613. package/dist/contexts-ByhzppYl.js +0 -663
  614. package/dist/contexts-Dr62It_K.cjs +0 -1
  615. package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
  616. package/dist/getFaceInfo-C4QpCQIY.js +0 -118
  617. package/dist/getFaceInfo-fA1bFBub.cjs +0 -1
  618. package/dist/index-9dlAQAhy.js +0 -1462
  619. package/dist/index-BjmTe9eM.cjs +0 -1
  620. package/dist/index-BpEf2BBb.cjs +0 -1
  621. package/dist/index-CyUUurQT.cjs +0 -1
  622. package/dist/index-DCiMbxC3.cjs +0 -1
  623. package/dist/index-DXT3WccE.js +0 -2089
  624. package/dist/index-DpI-qo5X.cjs +0 -17
  625. package/dist/index-DyVF4vEW.js +0 -111
  626. package/dist/index-VJ0SJwmG.js +0 -214
  627. package/dist/internal-Cq-TEQ5Y.cjs +0 -1
  628. package/dist/renderLayers-lDtL0_43.cjs +0 -1
  629. package/dist/renderLayers-zrK2pv5O.js +0 -13
  630. package/dist/renderPasses-BOoBSr8z.cjs +0 -21
  631. package/dist/renderPasses-BcquyVtu.js +0 -1500
  632. package/dist/selectors-B8H97CKA.js +0 -59
  633. package/dist/selectors-CZLKT2Iv.cjs +0 -1
  634. package/dist/session-CpkiK5YA.cjs +0 -31
  635. package/dist/session-DLFN_VII.js +0 -363
  636. package/dist/useFaceInfo-BJ8-_MOs.cjs +0 -1
  637. package/dist/useFaceInfo-Dk426LTu.js +0 -62
  638. package/dist/useFaceResults-CtetsO9M.js +0 -19
  639. package/dist/useFaceResults-wBJF3zyp.cjs +0 -1
@@ -0,0 +1,91 @@
1
+ import { FacePhotoWarning, FaceTextureError } from '../../face-character/facePhoto';
2
+ import { FaceTexture, FaceTextureSource } from '../../face-character/faceTexture';
3
+ import { FaceSwapSourceLike } from './settings';
4
+ import { FaceTextureStatus } from './useFaceTexture';
5
+ /**
6
+ * The pure part of `<FaceSwap>` and `<FaceMirror>`: their source and status
7
+ * types, which tracked faces they draw on, how many faces they start the
8
+ * face model with, and the draw order of overlapping faces.
9
+ */
10
+ /**
11
+ * Where `<FaceSwap>` takes the face it draws:
12
+ * - `eachOther` (default): two tracked people swap faces (faces 0 and 1);
13
+ * - `photo`: a face found in any photo, baked once;
14
+ * - `canonicalTexture`: a face painted in the face atlas (`FACE_ATLAS_UVS`);
15
+ * - `faceTexture`: a `FaceTexture` you made (`useFaceTexture`,
16
+ * `createFaceTexture`, `useLiveFaceTexture`); it stays yours to dispose.
17
+ */
18
+ export type FaceSwapSource = {
19
+ kind: "eachOther";
20
+ } | FaceTextureSource | {
21
+ kind: "faceTexture";
22
+ face: FaceTexture;
23
+ };
24
+ /** Where the swap's source is: `waiting` (no source yet, or fewer than two people for `eachOther`), `loading`, `ready`, `error`. */
25
+ export type FaceSwapSourceStatus = "waiting" | "loading" | "ready" | "error";
26
+ /** What `<FaceSwap onStatus>` reports, on change only. */
27
+ export type FaceSwapStatus = {
28
+ /** Drawn now (fading in, shown or fading out). `eachOther`: after both faces were tracked for 5 inference results. */
29
+ active: boolean;
30
+ /** Faces in the newest face result. */
31
+ faces: number;
32
+ source: FaceSwapSourceStatus;
33
+ /** Photo warnings (`turned`, `eyesClosed`, `mouthOpen`, `small`, `severalFaces`); empty otherwise. */
34
+ warnings: readonly FacePhotoWarning[];
35
+ /** Why a photo or painted face failed to load; null otherwise. */
36
+ error: FaceTextureError | null;
37
+ };
38
+ /** The two-person swap, the default source (one object, shared). */
39
+ export declare const FACE_SWAP_EACH_OTHER: FaceSwapSource;
40
+ /** The `resolveFaceSwapSettings` source of a `<FaceSwap>` source (its default preset). */
41
+ export declare const faceSwapSourceLike: (source: FaceSwapSource) => FaceSwapSourceLike;
42
+ /** The source a baked hook loads (`useFaceTexture`): photos and painted faces only. */
43
+ export declare const faceSwapTextureSource: (source: FaceSwapSource) => FaceTextureSource | null;
44
+ /** A `useFaceTexture` status as the swap's source status. */
45
+ export declare const faceSwapSourceStatus: (status: FaceTextureStatus) => FaceSwapSourceStatus;
46
+ export type FaceEffectTargetsInput = {
47
+ /** `<FaceSwap source={{ kind: "eachOther" }}>`: faces 0 and 1, at least two faces. */
48
+ eachOther?: boolean;
49
+ /** Only this tracked face (ignored for `eachOther`). */
50
+ faceIndex?: number;
51
+ /** Faces to start the face model with (default 2 for `eachOther`, else 1). */
52
+ numFaces?: number;
53
+ /** The running face model's face count (`XRModelNodeFaceTracking.numFaces`), when known. */
54
+ modelFaces?: number;
55
+ };
56
+ export type FaceEffectTargets = {
57
+ /** Faces the component starts the face model with. */
58
+ numFaces: number;
59
+ /** The tracked faces it draws on, in index order. */
60
+ targets: number[];
61
+ /** The highest face it needs: a warning names the fix when the model can never track it. */
62
+ checkFace: number;
63
+ };
64
+ /**
65
+ * Which tracked faces a face swap or mirror draws on, and the face count it
66
+ * starts the model with:
67
+ * - `eachOther`: faces 0 and 1, at least two faces;
68
+ * - `faceIndex`: that face only, at least `faceIndex + 1` faces;
69
+ * - otherwise every face the model tracks: `numFaces` (default 1), or more
70
+ * when the model was started with more (a `<FaceTracker numFaces={2}>`).
71
+ */
72
+ export declare const resolveFaceEffectTargets: ({ eachOther, faceIndex, numFaces, modelFaces, }: FaceEffectTargetsInput) => FaceEffectTargets;
73
+ /**
74
+ * Render-order step between overlapping swapped faces: the larger face draws
75
+ * `rank` steps above `FACE_SURFACE_RENDER_ORDER`, still below the makeup
76
+ * pre-pass (−1.99) for up to nine faces.
77
+ */
78
+ export declare const FACE_SWAP_RANK_RENDER_STEP = 0.001;
79
+ /** The render order of a swapped face of draw rank `rank` (`rankFacesBySize`: 0 draws first). */
80
+ export declare const faceSwapRenderOrder: (rank: number) => number;
81
+ /** Whether two statuses say the same (so `onStatus` fires on change only). */
82
+ export declare const sameFaceSwapStatus: (a: FaceSwapStatus | null, b: FaceSwapStatus) => boolean;
83
+ /**
84
+ * Settings as a component hands them to its `FaceTextureLayer`s: without
85
+ * `amount` (a live value the component passes itself) and `smoothing` (only
86
+ * an explicit smoothing is a preference for the shared live faces).
87
+ */
88
+ export declare const faceLayerSettings: <T extends {
89
+ amount: number;
90
+ smoothing: number;
91
+ }>(settings: T) => Omit<T, "amount" | "smoothing">;
@@ -0,0 +1,13 @@
1
+ export { FaceSwap } from './FaceSwap';
2
+ export type { FaceSwapProps } from './FaceSwap';
3
+ export { FaceMirror } from './FaceMirror';
4
+ export type { FaceMirrorProps } from './FaceMirror';
5
+ export { FACE_SWAP_EACH_OTHER, FACE_SWAP_RANK_RENDER_STEP, faceSwapRenderOrder, resolveFaceEffectTargets, } from './faceSwapPlan';
6
+ export type { FaceEffectTargets, FaceEffectTargetsInput, FaceSwapSource, FaceSwapSourceStatus, FaceSwapStatus, } from './faceSwapPlan';
7
+ export { FaceTextureLayer } from './FaceTextureLayer';
8
+ export type { FaceTextureLayerProps } from './FaceTextureLayer';
9
+ export { useFaceTexture } from './useFaceTexture';
10
+ export type { FaceTextureStatus, UseFaceTextureOptions, UseFaceTextureResult, } from './useFaceTexture';
11
+ export { useLiveFaceTexture } from './useLiveFaceTexture';
12
+ export type { UseLiveFaceTextureOptions } from './useLiveFaceTexture';
13
+ export * from './settings';
@@ -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,11 @@
1
+ import { UseGestureOptions } from '../../hooks/useGesture';
2
+ import { GestureRef } from '../../gestures/definitions';
3
+ export type GestureListenerProps = UseGestureOptions & {
4
+ /** A built-in gesture name (`"pinch"`, `"headNod"`, …) or a `defineGesture` definition. */
5
+ gesture: GestureRef;
6
+ };
7
+ /**
8
+ * Declarative `useGesture`: mount it anywhere inside the scene and act on
9
+ * `onBegin` / `onEnd`. Renders nothing.
10
+ */
11
+ export declare const GestureListener: ({ gesture, ...options }: GestureListenerProps) => null;