@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,71 @@
1
+ import { ReactNode } from 'react';
2
+ import { FaceMorphShapeName } from '../../face-character/faceMorph';
3
+ import { FaceReprojectionRegion, FaceReprojectionShading } from '../../face-character/faceReprojection';
4
+ import { FaceFeatureAlignment } from '../../face-character/featureWarp';
5
+ import { LiveValue } from '../../face-character/liveValue';
6
+ import { FaceRigProps } from './FaceRig';
7
+ import * as THREE from "three";
8
+ export type FaceMorphProps = Omit<FaceRigProps, "children"> & {
9
+ /**
10
+ * What the face morphs into: a built-in `"sphere"` / `"cube"`, or a model
11
+ * (e.g. a GLTF scene) in the canonical head frame (cm, like
12
+ * `ExternalFaceMesh`). A model's mesh with a morph target named `morphKey`
13
+ * morphs into that shape key, its base positions binding it to the face
14
+ * (the Blender workflow: sculpt the key from a face-fitting basis);
15
+ * without one, the mesh is its own base.
16
+ */
17
+ shape: FaceMorphShapeName | THREE.Object3D;
18
+ /** 0 = the person's live face, 1 = the shape (or a ref, read every frame). Default 1. */
19
+ weight?: LiveValue<number>;
20
+ /** How strongly the shape takes the face's expression (Snap's Expression Multiplier; or a ref). Default 1. */
21
+ expression?: LiveValue<number>;
22
+ /** Scale of the shape around the head (Snap's External Scale). Default 1. */
23
+ scale?: number;
24
+ /** The shape key a model morphs into. Default `"morph"`. */
25
+ morphKey?: string;
26
+ /**
27
+ * A stylised model's own eye / mouth / nose / chin positions (its
28
+ * canonical-frame cm): it binds as if those sat on the real face's, so
29
+ * your eyes flow into its eyes as it morphs. See `FaceFeatureAlignment`.
30
+ */
31
+ align?: FaceFeatureAlignment;
32
+ /**
33
+ * How much of the camera face the shape wears, 0..1 — 0 shows the shape's
34
+ * own material (a character's skin), 1 the face. Default 1.
35
+ */
36
+ faceTexture?: number;
37
+ /** Which part of the camera face it wears (see `FaceReprojectionRegion`). Default `"face"`. */
38
+ region?: FaceReprojectionRegion;
39
+ /** `"unlit"` (default): the camera's colours; `"lit"`: shaded by the scene lights. */
40
+ shading?: FaceReprojectionShading;
41
+ /** Base colour of a built-in shape where it shows no face. Default `"#f1c6a8"`. */
42
+ color?: THREE.ColorRepresentation;
43
+ /** Subdivisions of a built-in shape (smoother edges and corners). Default 2. */
44
+ subdivisions?: number;
45
+ /** How far from the face (cm, base pose) a model's vertex still morphs and wears it. Default `[1, 3]`. */
46
+ falloff?: readonly [number, number];
47
+ /** Facing cut-off of the camera face (see `FaceUnwrapFrameOptions`). Default `[0.05, 0.3]`. */
48
+ facing?: readonly [number, number];
49
+ /** Camera face texture size, px. Default 512. */
50
+ unwrapResolution?: number;
51
+ /** Most texture updates per second (`0` = every new camera frame). Default 30. */
52
+ fps?: number;
53
+ /** More content in the canonical head frame. A `PinToFaceMesh` here rides the morphing face. */
54
+ children?: ReactNode;
55
+ };
56
+ /**
57
+ * The person's face morphing into another shape — a sphere, a cube, a
58
+ * character — wearing their live camera face all the way (Snap's Face
59
+ * Morph). `weight` 0 is the live face itself, 1 the shape, which still moves
60
+ * with the expression (`expression`). A model morphs from its base positions
61
+ * (where it sits on a face) into its `morphKey` shape key; `faceTexture`
62
+ * fades between the camera face and the model's own material. Mount inside a
63
+ * `FaceTracker` (it runs its own `FaceRig`) or a `FaceRig`.
64
+ *
65
+ * ```tsx
66
+ * <FaceTracker>
67
+ * <FaceMorph shape="sphere" weight={0.8} />
68
+ * </FaceTracker>
69
+ * ```
70
+ */
71
+ export declare const FaceMorph: ({ faceIndex, smoothing, expressionSmoothing, holdMs, neutral, neutralMs, leadMs, neutralKey, onTrackingChange, ...props }: FaceMorphProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,65 @@
1
+ import { ReactNode, RefObject } from 'react';
2
+ import { FacePinSurface } from '../../face-character/facePin';
3
+ import { FacePiercingKind, FacePiercingName, FacePiercingNudge } from '../../face-character/facePiercings';
4
+ import { FaceRigProps } from './FaceRig';
5
+ import * as THREE from "three";
6
+ /** Rig props a piercing forwards when it runs its own rig. */
7
+ type PiercingRigProps = Omit<FaceRigProps, "children" | "smoothing">;
8
+ export type FacePiercingProps = PiercingRigProps & {
9
+ /**
10
+ * The spot: `"nose.left"`, `"nose.right"`, `"septum"`, `"lip.centre"`,
11
+ * `"lip.left"`, `"lip.right"`, `"brow.left"`, `"brow.right"`
12
+ * (`FACE_PIERCING_NAMES`). Left and right are the person's real sides.
13
+ */
14
+ preset: FacePiercingName;
15
+ /** `"stud"` or `"ring"`. Defaults to the spot's classic kind (`FACE_PIERCINGS[preset].kind`). */
16
+ kind?: FacePiercingKind;
17
+ /**
18
+ * Whether the feed is mirrored. Defaults to the session's (`useXRMirrored`:
19
+ * the front webcam is), which is what keeps `"left"` on the person's left.
20
+ */
21
+ mirrored?: boolean;
22
+ /**
23
+ * Hide what passes behind the skin (a ring's inner half) with a depth-only
24
+ * patch of the live face around the hole. Default `true`; off with `onto`
25
+ * (a worn character's own depth hides it).
26
+ */
27
+ occlude?: boolean;
28
+ /** `"face"` (default): the person's real face; `"model"`: the canonical face (a worn character). */
29
+ surface?: FacePinSurface;
30
+ /** Per-frame EMA on the pin, `1` = none (default). */
31
+ smoothing?: number;
32
+ /** A worn face model to sit on (see `PinToFaceMesh`'s `onto`). */
33
+ onto?: RefObject<THREE.Object3D | null> | THREE.Object3D | null;
34
+ /**
35
+ * A nudge in the piercing frame: `position` (cm), `rotation` (degrees),
36
+ * `scale`. Mirrored with the spot, so one offset fits a left / right pair.
37
+ */
38
+ offset?: FacePiercingNudge;
39
+ /**
40
+ * The jewellery, authored in the piercing frame (cm; origin the hole, +Z out
41
+ * of the skin, +Y up; a ring in the YZ plane hanging toward −Y from the
42
+ * origin). Default: a plain silver stud or ring sized for the spot.
43
+ */
44
+ children?: ReactNode;
45
+ };
46
+ /**
47
+ * Jewellery on a named piercing spot of the live face: nostril, septum, lip
48
+ * (centre / labret, sides) and brow. A preset over `PinToFaceMesh`: it knows
49
+ * where the hole is on the face mesh and how a stud or ring sits there (a stud
50
+ * faces out of the skin, a septum ring hangs below the septum, a lip ring
51
+ * wraps the lip, a brow ring goes through the brow), so no landmark lookup is
52
+ * needed. It rides the face through expressions; left and right are the
53
+ * person's real sides on every feed. Wrap several in one `FaceRig`.
54
+ *
55
+ * ```tsx
56
+ * <FaceTracker>
57
+ * <FaceRig>
58
+ * <FacePiercing preset="nose.left" />
59
+ * <FacePiercing preset="septum" kind="ring"><MyRing /></FacePiercing>
60
+ * </FaceRig>
61
+ * </FaceTracker>
62
+ * ```
63
+ */
64
+ export declare const FacePiercing: ({ preset, kind, mirrored, occlude, surface, smoothing, onto, offset, children, faceIndex, expressionSmoothing, holdMs, neutral, neutralMs, leadMs, neutralKey, onTrackingChange, }: FacePiercingProps) => import("react/jsx-runtime").JSX.Element;
65
+ export {};
@@ -0,0 +1,85 @@
1
+ import { FaceFeatureAlignment } from '../../face-character/featureWarp';
2
+ import { FaceReprojectionRegion, FaceReprojectionShading } from '../../face-character/faceReprojection';
3
+ import type * as THREE from "three";
4
+ export type FaceReprojectionProps = {
5
+ /**
6
+ * Which of the model's meshes wear the camera face, by object name. Default:
7
+ * every `"surface"` part (the skin; not eyeballs or teeth). UVs are not
8
+ * needed to wear it; the atlas texture (`onTexture`) covers the meshes that
9
+ * have them, which must share one atlas.
10
+ */
11
+ meshes?: readonly string[];
12
+ /**
13
+ * A stylised character's own eye / mouth / nose / chin positions (its
14
+ * canonical-frame cm): the camera face is laid on it as if those sat on the
15
+ * real face's — your eyes on its (big, low) eyes. See `FaceFeatureAlignment`.
16
+ */
17
+ align?: FaceFeatureAlignment;
18
+ /** Which part of the camera face to take (see `FaceReprojectionRegion`). Default `"face"`. */
19
+ region?: FaceReprojectionRegion;
20
+ /** How much of the camera face shows, 0..1. Default 1. */
21
+ amount?: number;
22
+ /** `"unlit"` (default): as the camera saw it; `"lit"`: shaded by the scene lights. */
23
+ shading?: FaceReprojectionShading;
24
+ /**
25
+ * A mask in the model's own UV layout (red channel; load it like the
26
+ * model's own map — glTF textures have `flipY = false`).
27
+ */
28
+ mask?: THREE.Texture | null;
29
+ /** A mask in the canonical face UV layout (red channel), e.g. painted over the canonical face texture. */
30
+ canonicalMask?: THREE.Texture | null;
31
+ /** Output texture size, px. Default 1024. */
32
+ resolution?: number;
33
+ /** Unwrapped (canonical layout) texture size, px. Default 512. */
34
+ unwrapResolution?: number;
35
+ /** Edge padding around the model's UV islands, px (0–4). Default 2. */
36
+ padding?: number;
37
+ /** Most updates per second (`0` = every new camera frame). Default 30. */
38
+ fps?: number;
39
+ /** Facing cut-off as cosines `[hidden, full]` (see `FaceUnwrapFrameOptions`). Default `[0.05, 0.3]`. */
40
+ facing?: readonly [number, number];
41
+ /** Distance from the canonical face (cm) over which the model stops taking it. Default `[1, 3]`. */
42
+ falloff?: readonly [number, number];
43
+ /**
44
+ * Skin beyond the face (`region="face"` only; skin parts, not eyes): the
45
+ * neck, ears, scalp and back of the head take the person's skin. Next to
46
+ * the face it continues the real edge skin (push-pull from the face's
47
+ * edge); farther out it settles to the face's average skin colour. It
48
+ * shades like the face (`shading`). Default `false`.
49
+ */
50
+ fill?: boolean;
51
+ /** cm from the face where the fill has faded back to the model's own material. Default 30. */
52
+ fillReach?: number;
53
+ /**
54
+ * Put the camera face on the meshes' materials (a patched clone of each,
55
+ * reading it per vertex — no UVs needed; restored on unmount). `false`:
56
+ * only render the atlas texture — use `onTexture` and your own material.
57
+ * Default `true`.
58
+ */
59
+ apply?: boolean;
60
+ /**
61
+ * The textures once created: `texture` (the face in the meshes' own UV
62
+ * atlas — rendered only when this is given or `apply` is `false`) and
63
+ * `unwrap` (the canonical layout).
64
+ */
65
+ onTexture?: (textures: {
66
+ texture: THREE.Texture;
67
+ unwrap: THREE.Texture;
68
+ }) => void;
69
+ };
70
+ /**
71
+ * The live camera face, worn by a face model (`ExternalFaceMesh`) — any
72
+ * topology, any UV atlas (or none). The camera face is unwrapped into the
73
+ * canonical face UV layout (the eyes and the inside of the mouth included),
74
+ * and each vertex wears it at its closest point on the canonical face (after
75
+ * `align` for a stylised character). The whole face, or only the eyes and /
76
+ * or mouth (`region`). `onTexture` also gets it remapped into the model's own
77
+ * atlas, for a custom material. Mount it as a child of an `ExternalFaceMesh`.
78
+ *
79
+ * ```tsx
80
+ * <ExternalFaceMesh model={gltf.scene}>
81
+ * <FaceReprojection region="eyesAndMouth" />
82
+ * </ExternalFaceMesh>
83
+ * ```
84
+ */
85
+ export declare const FaceReprojection: ({ meshes: names, align, region, amount, shading, mask, canonicalMask, resolution, unwrapResolution, padding, fps, facing, falloff, fill, fillReach, apply, onTexture, }: FaceReprojectionProps) => null;
@@ -0,0 +1,38 @@
1
+ import { MutableRefObject, PropsWithChildren } from 'react';
2
+ import { FaceRigOptions, FaceRigState } from '../../face-character/faceRig';
3
+ export type FaceRigProps = PropsWithChildren<FaceRigOptions & {
4
+ /**
5
+ * Which tracked face drives it. Defaults to the parent `FaceTracker`'s (or
6
+ * `HeadBinding`'s) `faceIndex`.
7
+ */
8
+ faceIndex?: number;
9
+ /** Fires once on face found (`true`) and once on face lost (`false`). */
10
+ onTrackingChange?: (tracked: boolean) => void;
11
+ /**
12
+ * A new value captures the neutral (rest) face again from the next frames
13
+ * — e.g. bump it from a "Recalibrate" button while the person relaxes.
14
+ */
15
+ neutralKey?: unknown;
16
+ }>;
17
+ /** The rig a `FaceRig` publishes to its subtree (read it in `useFrame`). */
18
+ export declare const FaceRigContext: import('react').Context<MutableRefObject<FaceRigState> | null>;
19
+ /**
20
+ * The live face rig of the nearest `FaceRig` above: head pose, the landmarks
21
+ * in the head frame and the per-landmark expression offsets. Read
22
+ * `rig.current` inside `useFrame` (it changes every frame without
23
+ * re-rendering). `null` outside a `FaceRig`.
24
+ */
25
+ export declare const useFaceRig: () => MutableRefObject<FaceRigState> | null;
26
+ /**
27
+ * A group, inside a `FaceTracker`, whose children are authored in canonical
28
+ * centimetres (the same frame as `CanonicalHeadFrame`) and that also tracks the
29
+ * face's EXPRESSION: every frame it re-expresses the 468 landmarks in the head
30
+ * frame and publishes their offsets from the canonical rest (`useFaceRig`).
31
+ * Face-character components inside it (`ExternalFaceMesh`, …) share that one
32
+ * rig. Holds its last pose through dropouts shorter than `holdMs`, hides when
33
+ * lost, snaps on reacquire. `leadMs` (default 0) runs the landmarks through
34
+ * a `LandmarkLead` so its geometry keeps up with the camera image between
35
+ * inferences; makeup nested inside rides this rig with the same lead. The
36
+ * frame step itself is `stepFaceRigFromModel`.
37
+ */
38
+ export declare const FaceRig: ({ children, faceIndex: faceIndexOption, onTrackingChange, neutralKey, ...options }: FaceRigProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,49 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { Object3D } from 'three';
3
+ /**
4
+ * How a face effect moves the face's surface this frame: per landmark, its
5
+ * displacement from the tracked face (canonical cm, flat, 468 × 3). Published
6
+ * by `FaceWarp3D` and `FaceMorph` to their children, before they update, so a
7
+ * `PinToFaceMesh` inside them rides the warped or morphed face.
8
+ */
9
+ export type FaceSurfaceState = {
10
+ offsets: Float32Array;
11
+ /** `false` while nothing is moved (offsets all zero). */
12
+ active: boolean;
13
+ };
14
+ export declare const createFaceSurfaceState: () => FaceSurfaceState;
15
+ export declare const FaceSurfaceContext: import('react').Context<MutableRefObject<FaceSurfaceState> | null>;
16
+ /** The nearest `FaceWarp3D` / `FaceMorph` surface above (read in `useFrame`), or `null`. */
17
+ export declare const useFaceSurface: () => MutableRefObject<FaceSurfaceState> | null;
18
+ /**
19
+ * The frame priority of effects that publish a face surface: after the
20
+ * `FaceRig` (-1), before ordinary children (0) such as pins.
21
+ */
22
+ export declare const FACE_SURFACE_FRAME_PRIORITY = -0.5;
23
+ /**
24
+ * Render order of everything that IS the face (`FaceWarp3D`, `FaceMorph`, an
25
+ * `ExternalFaceMesh` character): before the head occluder
26
+ * (`HEAD_OCCLUDER_RENDER_ORDER`, -1), so the occluder hides accessories behind
27
+ * the head but never the face itself, wherever an effect moves it. The hand
28
+ * cut-out (-900) still comes first, so hands stay in front.
29
+ */
30
+ export declare const FACE_SURFACE_RENDER_ORDER = -2;
31
+ /**
32
+ * Puts a subtree's drawables (meshes, points, lines) in the face layer. Not
33
+ * its groups: three sorts by the nearest group's render order first, so a
34
+ * group set apart would leave the shared tier (and draw before the camera
35
+ * background).
36
+ */
37
+ export declare const markFaceSurface: (root: Object3D) => void;
38
+ /**
39
+ * Blending for a face effect drawn in the opaque pass (where the render order
40
+ * puts it before the occluder) that still fades at its edges: normal alpha
41
+ * blending, set as custom so three applies it to a non-transparent material.
42
+ */
43
+ export declare const faceSurfaceBlending: {
44
+ readonly blending: 5;
45
+ readonly blendSrc: 204;
46
+ readonly blendDst: 205;
47
+ readonly blendSrcAlpha: 201;
48
+ readonly blendDstAlpha: 205;
49
+ };
@@ -0,0 +1,39 @@
1
+ import { FacePinAnchor, FacePinSurface, FaceSurfacePatch } from '../../face-character/facePin';
2
+ import { FaceRigProps } from './FaceRig';
3
+ export type FaceSurfaceOccluderProps = Omit<FaceRigProps, "children" | "smoothing"> & {
4
+ /** The surface to occlude with: the person's real face (`"face"`, default) or the canonical one (`"model"`). */
5
+ surface?: FacePinSurface;
6
+ /**
7
+ * Only the skin around this point (a `PinToFaceMesh` anchor; a named left /
8
+ * right one is the person's own side, as on the pin); the whole face when
9
+ * omitted.
10
+ */
11
+ around?: FacePinAnchor;
12
+ /**
13
+ * Whether the feed is mirrored. Defaults to the session's (`useXRMirrored`:
14
+ * the front webcam is), so a named `around` lands where the same-named
15
+ * `PinToFaceMesh` does.
16
+ */
17
+ mirrored?: boolean;
18
+ /** How far around `around` (cm, default 2.5). */
19
+ radius?: number;
20
+ /** Render order of the occluder mesh. Default `-1` (the head occluder's tier: after the face, before accessories). */
21
+ renderOrder?: number;
22
+ /** Draw it visibly (a translucent wireframe) to check what it covers. Never ship it on. */
23
+ debug?: boolean;
24
+ };
25
+ /**
26
+ * The patch of skin a `FaceSurfaceOccluder` covers on this feed: around the
27
+ * same surface point a `PinToFaceMesh` with the same anchor binds
28
+ * (`facePinAnchorForFeed`), or the whole face without `around`.
29
+ */
30
+ export declare const faceSurfaceOccluderPatch: (around: FacePinAnchor | undefined, radius: number, mirrored: boolean) => FaceSurfacePatch;
31
+ /**
32
+ * A depth-only mesh of the live face surface: the same skin a `PinToFaceMesh`
33
+ * rides (face shape + expression, and a `FaceWarp3D` / `FaceMorph` surface
34
+ * when inside one). Content behind the skin is hidden: the half of a ring that
35
+ * passes through a nostril or a brow, a stud's post. `around` + `radius` keep
36
+ * it to a patch of skin (a piercing mounts its own). Runs on the nearest
37
+ * `FaceRig` (or its own, inside a `FaceTracker`).
38
+ */
39
+ export declare const FaceSurfaceOccluder: ({ surface, around, mirrored, radius, renderOrder, debug, faceIndex, expressionSmoothing, holdMs, neutral, neutralMs, leadMs, neutralKey, onTrackingChange, }: FaceSurfaceOccluderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,68 @@
1
+ import { ReactNode, RefObject } from 'react';
2
+ import { FacePinAnchor, FacePinOrient, FacePinSurface } from '../../face-character/facePin';
3
+ import { FaceRigProps } from './FaceRig';
4
+ import * as THREE from "three";
5
+ /** Rig props a pin forwards when it runs its own rig (the pose smoothing stays the rig default). */
6
+ type PinRigProps = Omit<FaceRigProps, "children" | "smoothing">;
7
+ export type PinToFaceMeshProps = PinRigProps & {
8
+ /**
9
+ * Where on the face: a face target name (`"face.noseTip"`, `"face.leftCheek"`
10
+ * …; left / right = the person's own side on every feed), `{ landmark }`,
11
+ * `{ point }` (canonical cm) or `{ triangle, weights }`. See `FacePinAnchor`.
12
+ */
13
+ anchor: FacePinAnchor;
14
+ /**
15
+ * Whether the feed is mirrored. Defaults to the session's (`useXRMirrored`:
16
+ * the front webcam is), which is what keeps a named `"face.left…"` anchor
17
+ * on the person's own left.
18
+ */
19
+ mirrored?: boolean;
20
+ /** Follow the person's real face (`"face"`, default) or the canonical / character face (`"model"`). */
21
+ surface?: FacePinSurface;
22
+ /** `"surface"` (default): turn with the skin under it; `"head"`: keep the head's orientation. */
23
+ orient?: FacePinOrient;
24
+ /**
25
+ * An offset in the pin's frame (X along the face toward the screen's right
26
+ * on a face looking at the camera, Y up, Z out of the skin): `position` in
27
+ * centimetres, `rotation` in degrees, `scale` a factor.
28
+ */
29
+ offset?: {
30
+ position?: readonly [number, number, number];
31
+ rotation?: readonly [number, number, number];
32
+ scale?: number;
33
+ };
34
+ /**
35
+ * Per-frame EMA on the pin's position and turn, `1` = none (default: the
36
+ * rig's expression smoothing already steadies the surface).
37
+ */
38
+ smoothing?: number;
39
+ /**
40
+ * A face model to sit on (an `ExternalFaceMesh`'s group, in the same rig):
41
+ * once it has loaded, the pin moves along the surface normal onto that
42
+ * model's own skin — a character whose cheek or lip is not exactly the
43
+ * canonical surface — then rides the expression from there.
44
+ */
45
+ onto?: RefObject<THREE.Object3D | null> | THREE.Object3D | null;
46
+ /** The pinned content, authored in centimetres around its origin. */
47
+ children?: ReactNode;
48
+ };
49
+ /**
50
+ * Pins content to a point on the live face surface: it follows the head AND
51
+ * the skin under it through expressions (a cheek sticker rides a smile, a
52
+ * lip stud follows the mouth), turning with the surface. Anchor by face target
53
+ * name, landmark index, canonical point or exact triangle; offset in the pin's
54
+ * own frame. Unlike the generic `PinToMesh`, the surface it follows moves every
55
+ * frame. Inside a `FaceRig` (or an `ExternalFaceMesh`'s children) it shares
56
+ * that rig; otherwise it runs its own (mount it in a `FaceTracker`). Hidden
57
+ * while the face is lost; snaps on reacquire.
58
+ *
59
+ * ```tsx
60
+ * <FaceTracker>
61
+ * <PinToFaceMesh anchor="face.leftCheek" offset={{ position: [0, 0, 0.1] }}>
62
+ * <mesh><circleGeometry args={[1.2, 32]} /></mesh>
63
+ * </PinToFaceMesh>
64
+ * </FaceTracker>
65
+ * ```
66
+ */
67
+ export declare const PinToFaceMesh: ({ faceIndex, expressionSmoothing, holdMs, neutral, neutralMs, leadMs, neutralKey, onTrackingChange, ...props }: PinToFaceMeshProps) => import("react/jsx-runtime").JSX.Element;
68
+ export {};
@@ -0,0 +1,18 @@
1
+ export { FaceRig, FaceRigContext, useFaceRig } from './FaceRig';
2
+ export type { FaceRigProps } from './FaceRig';
3
+ export { ExternalFaceMesh, ExternalFaceMeshContext, FACE_HEAD_WIDTH_RATIO, faceHeadWidth, useExternalFaceMesh, } from './ExternalFaceMesh';
4
+ export type { ExternalFaceMeshBinding, ExternalFaceMeshPart, ExternalFaceMeshProps, } from './ExternalFaceMesh';
5
+ export { FaceExpressionController, useExpressionValues } from './FaceExpressionController';
6
+ export type { FaceExpressionControllerProps, FaceExpressionControllerRule, ExpressionOutputs, UseExpressionValuesResult, } from './FaceExpressionController';
7
+ export { PinToFaceMesh } from './PinToFaceMesh';
8
+ export type { PinToFaceMeshProps } from './PinToFaceMesh';
9
+ export { FacePiercing } from './FacePiercing';
10
+ export type { FacePiercingProps } from './FacePiercing';
11
+ export { FaceSurfaceOccluder } from './FaceSurfaceOccluder';
12
+ export type { FaceSurfaceOccluderProps } from './FaceSurfaceOccluder';
13
+ export { FaceReprojection } from './FaceReprojection';
14
+ export type { FaceReprojectionProps } from './FaceReprojection';
15
+ export { FaceMorph } from './FaceMorph';
16
+ export type { FaceMorphProps } from './FaceMorph';
17
+ export { FACE_SURFACE_FRAME_PRIORITY, FACE_SURFACE_RENDER_ORDER, FaceSurfaceContext, faceSurfaceBlending, createFaceSurfaceState, markFaceSurface, useFaceSurface, } from './FaceSurface';
18
+ export type { FaceSurfaceState } from './FaceSurface';
@@ -0,0 +1,10 @@
1
+ import { FaceReprojector, FaceReprojectorOptions } from '../../face-character/faceReprojector';
2
+ /**
3
+ * A `FaceReprojector` for this component's lifetime (created after mount,
4
+ * disposed on unmount), kept in step with `options` (sizes, padding, facing;
5
+ * `null` until created). Rendered every new camera frame of the nearest
6
+ * `FaceRig`'s face (at most `fps` a second, `0` = every frame) while that
7
+ * face is tracked; through a dropout the textures keep the last face.
8
+ * Inside a `<MadeUpCamera>` it unwraps the made-up camera (the makeup shows).
9
+ */
10
+ export declare const useFaceReprojector: (options: Pick<FaceReprojectorOptions, "resolution" | "unwrapResolution" | "padding" | "facing" | "unwrapMipmaps">, fps: number) => FaceReprojector | null;
@@ -0,0 +1,68 @@
1
+ import { FaceTarget } from '../../types/tracking';
2
+ import { FaceInsetPart } from './frame';
3
+ /**
4
+ * An inset's draw order on the face: after the face itself (`FaceWarp3D`,
5
+ * `FaceMorph`, a character, at `FACE_SURFACE_RENDER_ORDER`), so it shows on
6
+ * top of them, and before the head occluder (-1).
7
+ */
8
+ export declare const FACE_INSET_RENDER_ORDER: number;
9
+ /** Where an inset is shown: over the face, or as a plane in its parent's frame. */
10
+ export declare const FACE_INSET_PLACEMENTS: readonly ["face", "plane"];
11
+ export type FaceInsetPlacement = (typeof FACE_INSET_PLACEMENTS)[number];
12
+ export type FaceInsetProps = {
13
+ /** Which part to cut (see `FACE_INSET_PARTS`). */
14
+ part: FaceInsetPart;
15
+ /**
16
+ * `"face"` (default): over the live face, at the part's own place (or `at`),
17
+ * `magnify` times bigger. `"plane"`: a plane in its parent's frame (on an
18
+ * object, beside the head, anywhere in the scene), `height` units tall.
19
+ */
20
+ placement?: FaceInsetPlacement;
21
+ /**
22
+ * `"face"` only: how much bigger than life, about the part's own middle.
23
+ * 1 = life size, below 1 shrinks it. Default 1.5.
24
+ */
25
+ magnify?: number;
26
+ /**
27
+ * `"plane"` only: the plane's height in local units; its width follows the
28
+ * part's shape (`faceInsetAspect`). Default 1.
29
+ */
30
+ height?: number;
31
+ /**
32
+ * `"face"` only: show it centred on another face point instead of its own
33
+ * place (`"face.forehead"`, `"face.chin"`, …). With `at`, `"eyes"` is one
34
+ * strip, both eyes together.
35
+ */
36
+ at?: Exclude<FaceTarget, "face.custom">;
37
+ /** Soft edge, 0 (hard) .. 1 (fades from the middle). Default 0.4. */
38
+ feather?: number;
39
+ /** How much around the part is cut, a multiple of its box (`FACE_INSET_BOXES`). Default 1. */
40
+ size?: number;
41
+ /** 0..1. Default 1. */
42
+ opacity?: number;
43
+ /** Which tracked face. Default: the enclosing `FaceTracker`'s, else 0. */
44
+ faceIndex?: number;
45
+ /** `"plane"` only: the texture's longer side, px. Default 256. */
46
+ resolution?: number;
47
+ /** Draw order. Default `FACE_INSET_RENDER_ORDER` (-1.5) on the face, 0 as a plane. */
48
+ renderOrder?: number;
49
+ };
50
+ /**
51
+ * Face inset (Lens Studio's Face Inset): a face part cut out of the live
52
+ * camera image with a soft edge, following the face every frame. Over the
53
+ * face it magnifies the part in place (big cartoon eyes, a giant mouth, a big
54
+ * or tiny face) or shows it on another face point (`at`); as a `"plane"` it
55
+ * is a card in the scene (on a product, beside the head). For your own
56
+ * material or a `ScreenImage`, use `useFaceInsetTexture`. Follows the
57
+ * enclosing `FaceTracker`'s face; needs a `FaceTracker` mounted (it starts no
58
+ * tracker). Inside a `<MadeUpCamera>` it cuts the part from the made-up
59
+ * camera, so the makeup shows in it.
60
+ *
61
+ * ```tsx
62
+ * <FaceTracker>
63
+ * <FaceInset part="eyes" magnify={1.8} />
64
+ * <FaceInset part="mouth" at="face.forehead" magnify={0.8} />
65
+ * </FaceTracker>
66
+ * ```
67
+ */
68
+ export declare const FaceInset: ({ part, placement, magnify, height, at, feather, size, opacity, faceIndex, resolution, renderOrder, }: FaceInsetProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,94 @@
1
+ import { FaceImageLandmark } from '../../face-character/faceReprojection';
2
+ /**
3
+ * Face inset geometry (pure): where a face part is cut from the camera image.
4
+ * Each part has a box on the camera image, upright in the face's own frame
5
+ * (it turns with the head's roll), sized from the face (the 3D distance
6
+ * between the eyes, so it holds still while the mouth opens or the head
7
+ * turns), and a soft elliptical mask inside it.
8
+ */
9
+ /** The face parts an inset can cut. */
10
+ export declare const FACE_INSET_PARTS: readonly ["leftEye", "rightEye", "eyes", "mouth", "nose", "face"];
11
+ export type FaceInsetPart = (typeof FACE_INSET_PARTS)[number];
12
+ /**
13
+ * Each part's box, in eye distances (the 3D distance between the eye
14
+ * centres), before `size`. Measured on the canonical face: an eye is 0.4 wide,
15
+ * the mouth 0.76, the face 2.4 wide and 2.7 tall.
16
+ */
17
+ export declare const FACE_INSET_BOXES: Readonly<Record<FaceInsetPart, {
18
+ width: number;
19
+ height: number;
20
+ }>>;
21
+ /** A part's box width over its height (pixels): the inset texture's shape. */
22
+ export declare const faceInsetAspect: (part: FaceInsetPart) => number;
23
+ /**
24
+ * An eye fades out as the head turns away from it (its far side smears over
25
+ * the nose): hidden when it is this narrow next to the other eye, fully shown
26
+ * from this wide.
27
+ */
28
+ export declare const FACE_INSET_FAR_EYE: readonly [number, number];
29
+ /** One mask ellipse in box space (−1..1 across the box, y down the face). */
30
+ export type FaceInsetEllipse = {
31
+ x: number;
32
+ y: number;
33
+ rx: number;
34
+ ry: number;
35
+ alpha: number;
36
+ };
37
+ export type FaceInsetFrame = {
38
+ /** The box's centre on the camera image (0..1, top-left origin, y down). */
39
+ center: {
40
+ x: number;
41
+ y: number;
42
+ };
43
+ /**
44
+ * Half the box along the face's x (to the image right on an upright face)
45
+ * and y (down the face), as offsets on the camera image (0..1 per axis).
46
+ */
47
+ axisX: {
48
+ x: number;
49
+ y: number;
50
+ };
51
+ axisY: {
52
+ x: number;
53
+ y: number;
54
+ };
55
+ /** The face's scale: the 3D distance between the eye centres, in image heights. */
56
+ unit: number;
57
+ /** The mask: one ellipse, or two for `"eyes"` (`count`). `alpha` fades an eye turning away. */
58
+ ellipses: [FaceInsetEllipse, FaceInsetEllipse];
59
+ count: 1 | 2;
60
+ };
61
+ export declare const createFaceInsetFrame: () => FaceInsetFrame;
62
+ /** How much of an eye shows, 0..1, from its width next to the wider eye. */
63
+ export declare const faceInsetEyeVisibility: (width: number, widest: number) => number;
64
+ export type FaceInsetFrameOptions = {
65
+ /** How much around the part is cut: a multiple of its box (`FACE_INSET_BOXES`). Default 1. */
66
+ size?: number;
67
+ /**
68
+ * The feed is mirrored (the front webcam; `useXRMirrored()`, or the face's
69
+ * `mirrored`). `"leftEye"` / `"rightEye"` are the person's own eyes, so they
70
+ * read the other mesh eye on a mirrored feed. Default `false`.
71
+ */
72
+ mirrored?: boolean;
73
+ };
74
+ /**
75
+ * One frame of a part's inset: writes its box on the camera image and its
76
+ * mask into `out`. `landmarks` are the tracker's for one face (≥ 468, the
77
+ * camera image's own space, as `FaceInfo.landmarks`); `aspect` is the camera
78
+ * image's width / height. The box stays upright on the face whichever way the
79
+ * mesh labels its sides (a mirrored webcam included); `"leftEye"` is the
80
+ * person's own left eye when `mirrored` says how the feed is drawn. Returns
81
+ * `false` (and leaves `out`) without a usable face.
82
+ */
83
+ export declare const writeFaceInsetFrame: (landmarks: ArrayLike<FaceImageLandmark> | null | undefined, personPart: FaceInsetPart, aspect: number, { size, mirrored }: FaceInsetFrameOptions, out: FaceInsetFrame) => boolean;
84
+ /**
85
+ * Where a box point lands on the image: `(qx, qy)` in box space (−1..1, y
86
+ * down the face) → camera image (0..1, y down). Mirrors the shader.
87
+ */
88
+ export declare const faceInsetPoint: (frame: FaceInsetFrame, qx: number, qy: number, out?: {
89
+ x: number;
90
+ y: number;
91
+ }) => {
92
+ x: number;
93
+ y: number;
94
+ };
@@ -0,0 +1,6 @@
1
+ export { FACE_INSET_PLACEMENTS, FACE_INSET_RENDER_ORDER, FaceInset } from './FaceInset';
2
+ export type { FaceInsetPlacement, FaceInsetProps } from './FaceInset';
3
+ export { FACE_INSET_HOLD_MS, useFaceInsetTexture } from './useFaceInsetTexture';
4
+ export type { FaceInsetTextureOptions } from './useFaceInsetTexture';
5
+ export { FACE_INSET_BOXES, FACE_INSET_PARTS, createFaceInsetFrame, faceInsetAspect, writeFaceInsetFrame, } from './frame';
6
+ export type { FaceInsetEllipse, FaceInsetFrame, FaceInsetFrameOptions, FaceInsetPart, } from './frame';