@vincentt-xr/sdk 2.0.0-alpha.0 → 2.0.0-alpha.10

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 (879) hide show
  1. package/GROUNDING.md +8193 -111
  2. package/README.md +86 -52
  3. package/dist/CanonicalHeadFrame-D_0OzdB9.cjs +1 -0
  4. package/dist/CanonicalHeadFrame-DdUqF6Fv.js +1506 -0
  5. package/dist/DebuggerUI-CVuV-VJ5.cjs +1 -0
  6. package/dist/DebuggerUI-D-rcPa54.js +275 -0
  7. package/dist/FaceRetouch-C1AxBNex.js +1071 -0
  8. package/dist/FaceRetouch-D7kryDE6.cjs +134 -0
  9. package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
  10. package/dist/FaceSurface-DmP9AEeC.js +27 -0
  11. package/dist/SkeletonUtils-C2r90MtN.js +21 -0
  12. package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
  13. package/dist/TextLabel-XE0rQSDn.cjs +2 -0
  14. package/dist/TextLabel-c9BCucOI.js +961 -0
  15. package/dist/assets/cache.d.ts +99 -0
  16. package/dist/assets/estimate.d.ts +11 -0
  17. package/dist/assets/gltfLoader.d.ts +16 -0
  18. package/dist/assets/index.d.ts +7 -0
  19. package/dist/assets/loaders.d.ts +43 -0
  20. package/dist/assets/react.d.ts +33 -0
  21. package/dist/assets/sdkModels.d.ts +22 -0
  22. package/dist/audio/AudioEngine.d.ts +3 -1
  23. package/dist/audio/AudioPlayer.d.ts +29 -0
  24. package/dist/audio/AudioPlayerLogic.d.ts +4 -0
  25. package/dist/audio/index.d.ts +2 -0
  26. package/dist/body/__fixtures__/syntheticRig.d.ts +21 -0
  27. package/dist/body/bodyFlipGuard.d.ts +39 -0
  28. package/dist/body/bodyIdentity.d.ts +72 -0
  29. package/dist/body/bodyMask.d.ts +79 -0
  30. package/dist/body/bodyMaskMaterial.d.ts +15 -0
  31. package/dist/body/bodyPose.d.ts +58 -0
  32. package/dist/body/bodyRigFit.d.ts +148 -0
  33. package/dist/body/bodyRigSolver.d.ts +114 -0
  34. package/dist/body/bodySubject.d.ts +46 -0
  35. package/dist/body-pose/index.d.ts +521 -0
  36. package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
  37. package/dist/body-trigger/frame.d.ts +88 -0
  38. package/dist/body-trigger/index.d.ts +6 -0
  39. package/dist/body-trigger/moves.d.ts +235 -0
  40. package/dist/body-trigger/trigger.d.ts +75 -0
  41. package/dist/bodyMaskMaterial-CBWub5t_.cjs +68 -0
  42. package/dist/bodyMaskMaterial-Cs2awskk.js +207 -0
  43. package/dist/cache-2x3CUJuY.js +212 -0
  44. package/dist/cache-DL1Dbz6k.cjs +1 -0
  45. package/dist/calibration/calibration.d.ts +75 -0
  46. package/dist/calibration/index.d.ts +6 -0
  47. package/dist/calibration/storage.d.ts +13 -0
  48. package/dist/calibration/types.d.ts +53 -0
  49. package/dist/calibration/useXRCalibration.d.ts +46 -0
  50. package/dist/camera/CameraPermissionGate.d.ts +26 -0
  51. package/dist/camera/devices.d.ts +26 -0
  52. package/dist/camera/index.d.ts +8 -0
  53. package/dist/camera/permission.d.ts +86 -0
  54. package/dist/camera/useCameraPermission.d.ts +35 -0
  55. package/dist/canonicalFace-BHwyCx1c.js +9 -0
  56. package/dist/canonicalFace-C83I225R.cjs +1 -0
  57. package/dist/capabilities/detect.d.ts +45 -0
  58. package/dist/capabilities/index.d.ts +5 -0
  59. package/dist/capabilities/types.d.ts +120 -0
  60. package/dist/capabilities/useXRCapabilities.d.ts +18 -0
  61. package/dist/compat/environment.d.ts +5 -0
  62. package/dist/compat/index.d.ts +4 -0
  63. package/dist/compat/run.d.ts +18 -0
  64. package/dist/compat/scenarios.d.ts +10 -0
  65. package/dist/compat/types.d.ts +101 -0
  66. package/dist/components/Axes/index.d.ts +6 -0
  67. package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
  68. package/dist/components/BodyInstruction/index.d.ts +76 -0
  69. package/dist/components/BodyInstruction/useBodyPose.d.ts +30 -0
  70. package/dist/components/BodyRig/BodyAttachment.d.ts +28 -0
  71. package/dist/components/BodyRig/BodyOccluder.d.ts +27 -0
  72. package/dist/components/BodyRig/bodyDepth.d.ts +57 -0
  73. package/dist/components/BodyRig/index.d.ts +129 -0
  74. package/dist/components/BodyRig/useBodyDepthTexture.d.ts +40 -0
  75. package/dist/components/BodyTracker/index.d.ts +26 -1
  76. package/dist/components/BodyTrigger/index.d.ts +56 -0
  77. package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
  78. package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
  79. package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
  80. package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
  81. package/dist/components/FaceAtlas/constants.d.ts +8 -0
  82. package/dist/components/FaceAtlas/index.d.ts +7 -0
  83. package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
  84. package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
  85. package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
  86. package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
  87. package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
  88. package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
  89. package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
  90. package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
  91. package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
  92. package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
  93. package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
  94. package/dist/components/FaceCharacter/index.d.ts +18 -0
  95. package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
  96. package/dist/components/FaceInset/FaceInset.d.ts +68 -0
  97. package/dist/components/FaceInset/frame.d.ts +94 -0
  98. package/dist/components/FaceInset/index.d.ts +6 -0
  99. package/dist/components/FaceInset/material.d.ts +40 -0
  100. package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
  101. package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
  102. package/dist/components/FaceInstruction/index.d.ts +56 -0
  103. package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
  104. package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
  105. package/dist/components/FaceLiquify/debug.d.ts +37 -0
  106. package/dist/components/FaceLiquify/frame.d.ts +55 -0
  107. package/dist/components/FaceLiquify/index.d.ts +10 -0
  108. package/dist/components/FaceLiquify/material.d.ts +39 -0
  109. package/dist/components/FaceLiquify/pass.d.ts +49 -0
  110. package/dist/components/FaceLiquify/presence.d.ts +25 -0
  111. package/dist/components/FaceLiquify/presets.d.ts +82 -0
  112. package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
  113. package/dist/components/FaceLiquify/target.d.ts +85 -0
  114. package/dist/components/FaceLiquify/warp.d.ts +72 -0
  115. package/dist/components/FaceMesh/FaceMeshRenderer.d.ts +25 -0
  116. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +70 -1
  117. package/dist/components/FaceMesh/canonical/FaceMeshMaterial.d.ts +25 -0
  118. package/dist/components/FaceMesh/canonical/assets.d.ts +3 -0
  119. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +30 -0
  120. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +24 -0
  121. package/dist/components/FaceMesh/canonical/shaders.d.ts +2 -0
  122. package/dist/components/FaceMesh/deform.d.ts +3 -0
  123. package/dist/components/FaceMesh/index.d.ts +6 -1
  124. package/dist/components/FaceMesh/material/defaults.d.ts +74 -0
  125. package/dist/components/FaceMesh/material/index.d.ts +1 -0
  126. package/dist/components/FaceMesh/material/options.d.ts +5 -1
  127. package/dist/components/FaceMesh/material/support.d.ts +7 -2
  128. package/dist/components/FaceMesh/material/textures.d.ts +4 -0
  129. package/dist/components/FaceMesh/material/types.d.ts +4 -2
  130. package/dist/components/FaceRetouch/Background.d.ts +11 -5
  131. package/dist/components/FaceRetouch/FaceRetouch.d.ts +52 -0
  132. package/dist/components/FaceRetouch/index.d.ts +2 -6
  133. package/dist/components/FaceRetouch/landmarkMask.d.ts +4 -6
  134. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  135. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +4 -7
  136. package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
  137. package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
  138. package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
  139. package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
  140. package/dist/components/FaceSwap/index.d.ts +13 -0
  141. package/dist/components/FaceSwap/settings.d.ts +300 -0
  142. package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
  143. package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
  144. package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
  145. package/dist/components/FaceTracker/index.d.ts +5 -3
  146. package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
  147. package/dist/components/FaceWarp3D/index.d.ts +2 -0
  148. package/dist/components/Faceless/Faceless.d.ts +51 -0
  149. package/dist/components/Faceless/index.d.ts +2 -0
  150. package/dist/components/GestureListener/index.d.ts +11 -0
  151. package/dist/components/HairLock/HairLock.d.ts +39 -0
  152. package/dist/components/HairLock/index.d.ts +2 -0
  153. package/dist/components/HairLock/lockGeometry.d.ts +15 -0
  154. package/dist/components/HandCutout/index.d.ts +35 -0
  155. package/dist/components/HandEffect/index.d.ts +36 -0
  156. package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
  157. package/dist/components/HandInstruction/index.d.ts +74 -0
  158. package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
  159. package/dist/components/HandJoints2D/index.d.ts +6 -0
  160. package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
  161. package/dist/components/HandRig/HandAttachment.d.ts +34 -0
  162. package/dist/components/HandRig/HandNails.d.ts +61 -0
  163. package/dist/components/HandRig/HandOccluder.d.ts +45 -0
  164. package/dist/components/HandRig/HandTattoo.d.ts +61 -0
  165. package/dist/components/HandRig/WristAttachment.d.ts +34 -0
  166. package/dist/components/HandRig/index.d.ts +127 -0
  167. package/dist/components/HandRig/useArmMask.d.ts +29 -0
  168. package/dist/components/HandRig/wristSolve.d.ts +96 -0
  169. package/dist/components/HandTouch/HandTouch.d.ts +62 -0
  170. package/dist/components/HandTouch/Touchable.d.ts +36 -0
  171. package/dist/components/HandTouch/index.d.ts +2 -0
  172. package/dist/components/HandTracker/index.d.ts +12 -2
  173. package/dist/components/HandTracking2D/HandVisual.d.ts +12 -0
  174. package/dist/components/HandTracking2D/index.d.ts +5 -0
  175. package/dist/components/HandTracking2DController/index.d.ts +5 -0
  176. package/dist/components/HandTracking3D/index.d.ts +6 -0
  177. package/dist/components/HeadBinding/index.d.ts +14 -0
  178. package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
  179. package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
  180. package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
  181. package/dist/components/HeadOccluder/NeckOccluder.d.ts +67 -0
  182. package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
  183. package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
  184. package/dist/components/HeadOccluder/index.d.ts +57 -3
  185. package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
  186. package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
  187. package/dist/components/HolisticTracker/index.d.ts +69 -0
  188. package/dist/components/HolisticTracker/settings.d.ts +58 -0
  189. package/dist/components/HolisticTracker/signals.d.ts +49 -0
  190. package/dist/components/Instruction/HintStage.d.ts +29 -0
  191. package/dist/components/Instruction/InstructionCue.d.ts +126 -0
  192. package/dist/components/Instruction/gestureHold.d.ts +20 -0
  193. package/dist/components/Instruction/ghost.d.ts +129 -0
  194. package/dist/components/Instruction/hintBlend.d.ts +19 -0
  195. package/dist/components/Instruction/hintLook.d.ts +81 -0
  196. package/dist/components/Instruction/hintLoop.d.ts +36 -0
  197. package/dist/components/Instruction/index.d.ts +41 -0
  198. package/dist/components/Instruction/useGhostModel.d.ts +33 -0
  199. package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
  200. package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
  201. package/dist/components/IrisEffect/index.d.ts +51 -0
  202. package/dist/components/IrisEffect/settings.d.ts +117 -0
  203. package/dist/components/LightObject/index.d.ts +20 -0
  204. package/dist/components/LipEffect/LipEffect.d.ts +28 -0
  205. package/dist/components/LipEffect/LipEffectMaterial.d.ts +98 -0
  206. package/dist/components/LipEffect/LipEffects.d.ts +12 -0
  207. package/dist/components/LipEffect/defaults.d.ts +51 -0
  208. package/dist/components/LipEffect/index.d.ts +12 -0
  209. package/dist/components/LipEffect/lipShading.d.ts +73 -0
  210. package/dist/components/LipEffect/settings.d.ts +375 -0
  211. package/dist/components/LipEffect/shader.d.ts +39 -0
  212. package/dist/components/LipEffect/types.d.ts +141 -0
  213. package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
  214. package/dist/components/LipEffect/uvGuide.d.ts +74 -0
  215. package/dist/components/LookAt/index.d.ts +23 -0
  216. package/dist/components/Makeup/Blush.d.ts +18 -0
  217. package/dist/components/Makeup/Brows.d.ts +20 -0
  218. package/dist/components/Makeup/Contour.d.ts +17 -0
  219. package/dist/components/Makeup/Eyeliner.d.ts +20 -0
  220. package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
  221. package/dist/components/Makeup/Highlighter.d.ts +18 -0
  222. package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
  223. package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
  224. package/dist/components/Makeup/constants.d.ts +44 -0
  225. package/dist/components/Makeup/design.d.ts +106 -0
  226. package/dist/components/Makeup/designSamples.d.ts +42 -0
  227. package/dist/components/Makeup/eyes.d.ts +114 -0
  228. package/dist/components/Makeup/fields.d.ts +10 -0
  229. package/dist/components/Makeup/geometry.d.ts +106 -0
  230. package/dist/components/Makeup/index.d.ts +26 -0
  231. package/dist/components/Makeup/looks.d.ts +28 -0
  232. package/dist/components/Makeup/material.d.ts +239 -0
  233. package/dist/components/Makeup/settings.d.ts +54 -0
  234. package/dist/components/Makeup/shades.d.ts +143 -0
  235. package/dist/components/Makeup/shapes.d.ts +27 -0
  236. package/dist/components/Makeup/skinTone.d.ts +135 -0
  237. package/dist/components/Makeup/types.d.ts +110 -0
  238. package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
  239. package/dist/components/MeshRenderer/index.d.ts +59 -0
  240. package/dist/components/Necklace/Necklace.d.ts +44 -0
  241. package/dist/components/Necklace/index.d.ts +1 -0
  242. package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
  243. package/dist/components/ParticleEmitter/index.d.ts +1 -0
  244. package/dist/components/PersonCutout/index.d.ts +46 -0
  245. package/dist/components/PersonCutout/personCutout.d.ts +16 -0
  246. package/dist/components/PersonCutout/personMask.d.ts +19 -0
  247. package/dist/components/PersonCutout/useBodyMaskTexture.d.ts +35 -0
  248. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  249. package/dist/components/PinToMesh/index.d.ts +47 -0
  250. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  251. package/dist/components/SceneObjectRenderer/index.d.ts +23 -0
  252. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  253. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  254. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  255. package/dist/components/Screen2D/index.d.ts +5 -0
  256. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  257. package/dist/components/ScreenGlass/index.d.ts +5 -0
  258. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  259. package/dist/components/ScreenGlass/types.d.ts +10 -0
  260. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  261. package/dist/components/ScreenGradient/index.d.ts +5 -0
  262. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  263. package/dist/components/ScreenGradient/types.d.ts +19 -0
  264. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  265. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  266. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  267. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  268. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  269. package/dist/components/ScreenImage/fit.d.ts +52 -0
  270. package/dist/components/ScreenImage/index.d.ts +10 -0
  271. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  272. package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
  273. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  274. package/dist/components/ScreenImage/source.d.ts +25 -0
  275. package/dist/components/ScreenImage/types.d.ts +64 -0
  276. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  277. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  278. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  279. package/dist/components/ScreenShape/index.d.ts +5 -0
  280. package/dist/components/ScreenShape/types.d.ts +54 -0
  281. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  282. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  283. package/dist/components/ScreenSpaceUI/index.d.ts +3 -0
  284. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  285. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  286. package/dist/components/ScreenText/constants.d.ts +5 -0
  287. package/dist/components/ScreenText/index.d.ts +6 -0
  288. package/dist/components/ScreenText/types.d.ts +31 -0
  289. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  290. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  291. package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
  292. package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
  293. package/dist/components/SegmentationOverlay/index.d.ts +9 -0
  294. package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
  295. package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
  296. package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
  297. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  298. package/dist/components/ShoulderOccluder/index.d.ts +46 -0
  299. package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +27 -0
  300. package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
  301. package/dist/components/SpringSwing/index.d.ts +1 -0
  302. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  303. package/dist/components/TextLabel/alignment.d.ts +4 -0
  304. package/dist/components/TextLabel/bend.d.ts +9 -0
  305. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  306. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  307. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  308. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  309. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  310. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  311. package/dist/components/TextLabel/constants.d.ts +2 -0
  312. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  313. package/dist/components/TextLabel/index.d.ts +2 -62
  314. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  315. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  316. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  317. package/dist/components/TextLabel/types.d.ts +337 -0
  318. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  319. package/dist/components/Transform3D/index.d.ts +30 -0
  320. package/dist/components/XRMediaSurface/index.d.ts +8 -7
  321. package/dist/components/XRProvider/index.d.ts +16 -2
  322. package/dist/components/XRScene/index.d.ts +14 -3
  323. package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
  324. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  325. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  326. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  327. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  328. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  329. package/dist/components/XRViewport/constants.d.ts +24 -0
  330. package/dist/components/XRViewport/contexts.d.ts +6 -0
  331. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  332. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  333. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  334. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  335. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  336. package/dist/components/XRViewport/index.d.ts +3 -101
  337. package/dist/components/XRViewport/layout.d.ts +16 -0
  338. package/dist/components/XRViewport/slots.d.ts +16 -0
  339. package/dist/components/XRViewport/types.d.ts +89 -0
  340. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  341. package/dist/components/index.d.ts +31 -0
  342. package/dist/components/occluder/skinnedOccluder.d.ts +39 -0
  343. package/dist/config/index.d.ts +1 -1
  344. package/dist/constants/index.d.ts +4 -1
  345. package/dist/context-DTxSQvp4.js +13 -0
  346. package/dist/context-hA0Rb2Xa.cjs +1 -0
  347. package/dist/contexts-DQc7zyqT.cjs +1 -0
  348. package/dist/contexts-Y_FhdnIv.js +667 -0
  349. package/dist/coordinates/feed.d.ts +52 -0
  350. package/dist/coordinates/index.d.ts +7 -0
  351. package/dist/coordinates/side.d.ts +40 -0
  352. package/dist/coordinates/spaces.d.ts +49 -0
  353. package/dist/coordinates/viewport.d.ts +22 -0
  354. package/dist/coordinates/world.d.ts +15 -0
  355. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  356. package/dist/debug-ui/default-setting/index.d.ts +37 -0
  357. package/dist/debug-ui/default-setting.cjs +21 -0
  358. package/dist/debug-ui/default-setting.js +777 -0
  359. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  360. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  361. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  362. package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
  363. package/dist/debug-ui/hand-joints-2d/index.d.ts +6 -0
  364. package/dist/debug-ui/hand-tracking-2d/index.d.ts +6 -0
  365. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +6 -0
  366. package/dist/debug-ui/hand-tracking-3d/index.d.ts +6 -0
  367. package/dist/debug-ui/hierarchy-panel/index.d.ts +30 -0
  368. package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
  369. package/dist/debug-ui/index.d.ts +61 -0
  370. package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
  371. package/dist/debug-ui/layer-panel/index.d.ts +18 -0
  372. package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
  373. package/dist/debug-ui/media-source/MediaSourceSwitcher.d.ts +10 -0
  374. package/dist/debug-ui/media-source/index.d.ts +6 -0
  375. package/dist/debug-ui/media-source/media-preset.d.ts +21 -0
  376. package/dist/debug-ui/media-source/session.d.ts +40 -0
  377. package/dist/debug-ui/media-source.cjs +1 -0
  378. package/dist/debug-ui/media-source.js +11 -0
  379. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  380. package/dist/debug-ui/object-inspector-panel/index.d.ts +26 -0
  381. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  382. package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
  383. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  384. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +11 -0
  385. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  386. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +9 -0
  387. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  388. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  389. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  390. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  391. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  392. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  393. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  394. package/dist/debug-ui/screen-image-settings/index.d.ts +11 -0
  395. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  396. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  397. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  398. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  399. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  400. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  401. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -0
  402. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  403. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  404. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  405. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  406. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  407. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  408. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  409. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  410. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  411. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  412. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  413. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  414. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  415. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  416. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  417. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  418. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  419. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  420. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  421. package/dist/debug-ui/screen-text-settings/types.d.ts +11 -0
  422. package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
  423. package/dist/debug-ui/settings-panel/index.d.ts +43 -0
  424. package/dist/debug-ui/shared/MaterialSection.d.ts +13 -0
  425. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +32 -0
  426. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  427. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  428. package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
  429. package/dist/debug-ui.cjs +10 -0
  430. package/dist/debug-ui.js +9051 -0
  431. package/dist/detector-K8aej4MB.js +59 -0
  432. package/dist/detector-ijypGtse.cjs +1 -0
  433. package/dist/drawNormalizedCrop-C4KFaRne.cjs +1 -0
  434. package/dist/drawNormalizedCrop-DG3gtJxf.js +135 -0
  435. package/dist/entries/all.d.ts +4 -1
  436. package/dist/entries/core.d.ts +76 -6
  437. package/dist/entries/face-effects.d.ts +130 -10
  438. package/dist/entries/instructions.d.ts +48 -0
  439. package/dist/entries/internal.d.ts +5 -2
  440. package/dist/entries/low-level.d.ts +104 -6
  441. package/dist/entries/particles.d.ts +15 -0
  442. package/dist/entries/product.d.ts +11 -0
  443. package/dist/entries/scene-object.d.ts +10 -0
  444. package/dist/entries/tracking.d.ts +110 -2
  445. package/dist/face-action/index.d.ts +34 -0
  446. package/dist/face-atlas/attributes.d.ts +30 -0
  447. package/dist/face-atlas/eyes.d.ts +272 -0
  448. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  449. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  450. package/dist/face-atlas/glsl/common.d.ts +55 -0
  451. package/dist/face-atlas/glsl/design.d.ts +49 -0
  452. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  453. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  454. package/dist/face-atlas/glsl/format.d.ts +4 -0
  455. package/dist/face-atlas/glsl/index.d.ts +59 -0
  456. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  457. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  458. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  459. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  460. package/dist/face-atlas/guide.d.ts +51 -0
  461. package/dist/face-atlas/index.d.ts +25 -0
  462. package/dist/face-atlas/lead.d.ts +117 -0
  463. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  464. package/dist/face-atlas/masks.d.ts +53 -0
  465. package/dist/face-atlas/obj.d.ts +69 -0
  466. package/dist/face-atlas/polylines.d.ts +63 -0
  467. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  468. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  469. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  470. package/dist/face-atlas/probe/constants.d.ts +137 -0
  471. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  472. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  473. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  474. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  475. package/dist/face-atlas/probe/stats.d.ts +143 -0
  476. package/dist/face-atlas/probe/targets.d.ts +70 -0
  477. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  478. package/dist/face-atlas/quality.d.ts +28 -0
  479. package/dist/face-atlas/regions.d.ts +31 -0
  480. package/dist/face-atlas/registry.d.ts +252 -0
  481. package/dist/face-atlas/renderState.d.ts +86 -0
  482. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  483. package/dist/face-atlas/shading.d.ts +406 -0
  484. package/dist/face-atlas/shapes.d.ts +86 -0
  485. package/dist/face-atlas/sides.d.ts +41 -0
  486. package/dist/face-atlas/skinMask.d.ts +35 -0
  487. package/dist/face-atlas/surface.d.ts +155 -0
  488. package/dist/face-atlas/topology.d.ts +44 -0
  489. package/dist/face-attribute-expression/index.d.ts +10 -0
  490. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  491. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  492. package/dist/face-character/bindFaceModel.d.ts +106 -0
  493. package/dist/face-character/canonicalFace.d.ts +17 -0
  494. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  495. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  496. package/dist/face-character/driveFaceModel.d.ts +57 -0
  497. package/dist/face-character/expressionOutputs.d.ts +45 -0
  498. package/dist/face-character/faceExpressions.d.ts +104 -0
  499. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  500. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  501. package/dist/face-character/faceMorph.d.ts +77 -0
  502. package/dist/face-character/faceMorphs.d.ts +46 -0
  503. package/dist/face-character/facePhoto.d.ts +138 -0
  504. package/dist/face-character/facePiercings.d.ts +116 -0
  505. package/dist/face-character/facePin.d.ts +131 -0
  506. package/dist/face-character/faceReprojection.d.ts +273 -0
  507. package/dist/face-character/faceReprojector.d.ts +171 -0
  508. package/dist/face-character/faceRig.d.ts +176 -0
  509. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  510. package/dist/face-character/faceTexture.d.ts +169 -0
  511. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  512. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  513. package/dist/face-character/faceTextureStats.d.ts +298 -0
  514. package/dist/face-character/faceTransfer.d.ts +396 -0
  515. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  516. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  517. package/dist/face-character/faceWarp3D.d.ts +101 -0
  518. package/dist/face-character/faceless.d.ts +79 -0
  519. package/dist/face-character/featureWarp.d.ts +28 -0
  520. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  521. package/dist/face-character/liveValue.d.ts +12 -0
  522. package/dist/face-character/memo.d.ts +15 -0
  523. package/dist/face-effects.cjs +2267 -195
  524. package/dist/face-effects.js +14191 -3346
  525. package/dist/face-expression/index.d.ts +182 -0
  526. package/dist/face-info/blendshapes.d.ts +3 -0
  527. package/dist/face-info/derive.d.ts +8 -0
  528. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  529. package/dist/face-info/getFaceInfo.d.ts +8 -0
  530. package/dist/face-info/index.d.ts +8 -0
  531. package/dist/face-info/landmarks.d.ts +35 -0
  532. package/dist/face-info/types.d.ts +69 -0
  533. package/dist/gestures/definitions.d.ts +98 -0
  534. package/dist/gestures/detector.d.ts +87 -0
  535. package/dist/gestures/index.d.ts +8 -0
  536. package/dist/gestures/measures.d.ts +114 -0
  537. package/dist/gestures/settings.d.ts +49 -0
  538. package/dist/getFaceInfo-BafgGT27.js +62 -0
  539. package/dist/getFaceInfo-BzlwHMjX.cjs +1 -0
  540. package/dist/hand/armFit.d.ts +46 -0
  541. package/dist/hand/armMask.d.ts +190 -0
  542. package/dist/hand/forearm.d.ts +114 -0
  543. package/dist/hand/handCutout.d.ts +23 -0
  544. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  545. package/dist/hand/handEffect.d.ts +38 -0
  546. package/dist/hand/handGestures.d.ts +524 -0
  547. package/dist/hand/handJoints2d.d.ts +49 -0
  548. package/dist/hand/handNail.d.ts +73 -0
  549. package/dist/hand/handPose.d.ts +98 -0
  550. package/dist/hand/handRigSolver.d.ts +159 -0
  551. package/dist/hand/handTattoo.d.ts +81 -0
  552. package/dist/hand/handTouch.d.ts +240 -0
  553. package/dist/hand/handTracking2d.d.ts +33 -0
  554. package/dist/hand/handTracking2dController.d.ts +65 -0
  555. package/dist/hand/handTracking3d.d.ts +52 -0
  556. package/dist/hand/nailImageMask.d.ts +40 -0
  557. package/dist/hand/nailMaskFingers.d.ts +23 -0
  558. package/dist/hand/nailTipRefine.d.ts +37 -0
  559. package/dist/hand/wrist.d.ts +44 -0
  560. package/dist/hand/wristFilter.d.ts +44 -0
  561. package/dist/hooks/faceResults.d.ts +1 -1
  562. package/dist/hooks/selectors.d.ts +77 -4
  563. package/dist/hooks/useBodies.d.ts +39 -0
  564. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  565. package/dist/hooks/useFaceAction.d.ts +3 -0
  566. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  567. package/dist/hooks/useFaceDetection.d.ts +18 -0
  568. package/dist/hooks/useFaceInfo.d.ts +19 -0
  569. package/dist/hooks/useFaceInfos.d.ts +15 -0
  570. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  571. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  572. package/dist/hooks/useFrameCapture.d.ts +18 -0
  573. package/dist/hooks/useGesture.d.ts +39 -0
  574. package/dist/hooks/useIrisTracking.d.ts +45 -0
  575. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  576. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  577. package/dist/hooks/useTrackerContext.d.ts +14 -2
  578. package/dist/hooks/useXRDiagnostics.d.ts +81 -0
  579. package/dist/hooks/useXRModel.d.ts +12 -0
  580. package/dist/hooks/useXRSession/facade.d.ts +47 -2
  581. package/dist/hooks/useXRSession/index.d.ts +2 -2
  582. package/dist/hooks/useXRSession/reason.d.ts +21 -0
  583. package/dist/hooks/useXRSession/registry.d.ts +23 -0
  584. package/dist/hooks/useXRSession/store.d.ts +64 -7
  585. package/dist/index-BZoBxyLn.js +1103 -0
  586. package/dist/index-By_LCo2V.cjs +1 -0
  587. package/dist/index-C-Mryx_u.cjs +21 -0
  588. package/dist/index-CKRN-xJp.js +3740 -0
  589. package/dist/index-CUldCMRl.js +188 -0
  590. package/dist/index-Cyk_VIZE.js +1432 -0
  591. package/dist/index-D-4w34GO.cjs +1 -0
  592. package/dist/index-DiIoHK_4.js +442 -0
  593. package/dist/index-Dv3WnY9n.cjs +46 -0
  594. package/dist/index-ItufYyHH.cjs +1 -0
  595. package/dist/index-S3gqudT6.cjs +1 -0
  596. package/dist/index-Sho4F4it.cjs +1 -0
  597. package/dist/index-iIQ9jBDb.js +240 -0
  598. package/dist/index-vr2ichWQ.js +190 -0
  599. package/dist/instructions.cjs +30 -0
  600. package/dist/instructions.js +1528 -0
  601. package/dist/internal-Bb9ZXbpr.cjs +1 -0
  602. package/dist/{internal-KOKJDxCG.js → internal-Gt1wn6Z3.js} +152 -127
  603. package/dist/internal.cjs +1 -1
  604. package/dist/internal.js +16 -9
  605. package/dist/iris/compute.d.ts +27 -0
  606. package/dist/iris/index.d.ts +4 -0
  607. package/dist/iris/lead.d.ts +19 -0
  608. package/dist/iris/types.d.ts +89 -0
  609. package/dist/landmarkMask-CvN-L5NT.cjs +1 -0
  610. package/dist/landmarkMask-DHivVjJm.js +225 -0
  611. package/dist/landmarks-BEjJXcnE.cjs +1 -0
  612. package/dist/landmarks-DtCAFV_m.js +76 -0
  613. package/dist/low-level.cjs +1 -1
  614. package/dist/low-level.js +1494 -629
  615. package/dist/main.cjs +1 -1
  616. package/dist/main.js +1306 -475
  617. package/dist/material/MaterialFill.d.ts +20 -0
  618. package/dist/material/MeshMaterial.d.ts +14 -0
  619. package/dist/material/index.d.ts +2 -0
  620. package/dist/models/Base/index.d.ts +49 -0
  621. package/dist/models/Body/index.d.ts +30 -1
  622. package/dist/models/Face/constants.d.ts +8 -0
  623. package/dist/models/Face/index.d.ts +5 -12
  624. package/dist/models/Face/rotation.d.ts +18 -0
  625. package/dist/models/Hand/GestureTracking.d.ts +1 -1
  626. package/dist/models/Hand/HandTracking.d.ts +19 -1
  627. package/dist/models/Holistic/index.d.ts +49 -0
  628. package/dist/models/Holistic/result.d.ts +68 -0
  629. package/dist/models/Segmentation/index.d.ts +6 -3
  630. package/dist/models/SemanticSegmentation/index.d.ts +31 -0
  631. package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
  632. package/dist/models/index.d.ts +2 -0
  633. package/dist/models/nodeSource.d.ts +9 -0
  634. package/dist/particles/emission.d.ts +24 -0
  635. package/dist/particles/eyes.d.ts +24 -0
  636. package/dist/particles/glsl.d.ts +14 -0
  637. package/dist/particles/index.d.ts +10 -0
  638. package/dist/particles/motion.d.ts +42 -0
  639. package/dist/particles/presets.d.ts +12 -0
  640. package/dist/particles/ring.d.ts +58 -0
  641. package/dist/particles/selfTest.d.ts +53 -0
  642. package/dist/particles/settings.d.ts +127 -0
  643. package/dist/particles/shapes.d.ts +29 -0
  644. package/dist/particles/spawner.d.ts +71 -0
  645. package/dist/particles/system.d.ts +66 -0
  646. package/dist/particles.cjs +122 -0
  647. package/dist/particles.js +999 -0
  648. package/dist/product/ProductDimensions.d.ts +16 -0
  649. package/dist/product/ProductHotspot.d.ts +16 -0
  650. package/dist/product/ProductViewer.d.ts +9 -0
  651. package/dist/product/details.d.ts +53 -0
  652. package/dist/product/index.d.ts +14 -0
  653. package/dist/product/loadModelViewer.d.ts +4 -0
  654. package/dist/product/types.d.ts +71 -0
  655. package/dist/product/useProductAr.d.ts +37 -0
  656. package/dist/product/useProductDetails.d.ts +60 -0
  657. package/dist/product.cjs +1 -0
  658. package/dist/product.js +414 -0
  659. package/dist/providers-CEZQgz2s.cjs +62 -0
  660. package/dist/providers-CRuaD8bi.js +424 -0
  661. package/dist/quality/XRQualityController.d.ts +25 -0
  662. package/dist/quality/controller.d.ts +33 -0
  663. package/dist/quality/index.d.ts +6 -0
  664. package/dist/quality/types.d.ts +100 -0
  665. package/dist/quality/useXRQuality.d.ts +28 -0
  666. package/dist/render/layerStack.d.ts +29 -0
  667. package/dist/render/renderGroups.d.ts +47 -0
  668. package/dist/render/renderPasses.d.ts +26 -0
  669. package/dist/render/sceneBeforeRender.d.ts +12 -0
  670. package/dist/renderGroups-BADrepA1.cjs +1 -0
  671. package/dist/renderGroups-CNB99dZ2.js +152 -0
  672. package/dist/renderPasses-DgxUKn9b.cjs +158 -0
  673. package/dist/renderPasses-DuapJA6V.js +1290 -0
  674. package/dist/renderState-CJNmj5jz.js +39 -0
  675. package/dist/renderState-apSfg4eR.cjs +1 -0
  676. package/dist/scene-object/index.d.ts +146 -0
  677. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  678. package/dist/scene-object.cjs +1 -0
  679. package/dist/scene-object.js +40 -0
  680. package/dist/screen-image/screenImagePresets.d.ts +13 -0
  681. package/dist/screen-image/screenImageSettings.d.ts +57 -0
  682. package/dist/screen-text/screenTextPresets.d.ts +6 -0
  683. package/dist/screen-text/screenTextSettings.d.ts +147 -0
  684. package/dist/screen2d/coordinates.d.ts +107 -0
  685. package/dist/screen2d/index.d.ts +7 -0
  686. package/dist/screen2d/material-runtime.d.ts +32 -0
  687. package/dist/screen2d/screenTransform.d.ts +60 -0
  688. package/dist/screen2d/smoothing.d.ts +5 -0
  689. package/dist/screen2d/texture.d.ts +10 -0
  690. package/dist/screen2d/transform.d.ts +25 -0
  691. package/dist/screen2d/types.d.ts +90 -0
  692. package/dist/segmentation-BOZJdWFC.js +1911 -0
  693. package/dist/segmentation-J8GoNBvP.cjs +1 -0
  694. package/dist/segmentation2d/faceMemory.d.ts +28 -0
  695. package/dist/segmentation2d/faceRegions.d.ts +24 -0
  696. package/dist/segmentation2d/index.d.ts +9 -0
  697. package/dist/segmentation2d/maskUv.d.ts +23 -0
  698. package/dist/segmentation2d/rasterize.d.ts +14 -0
  699. package/dist/segmentation2d/types.d.ts +52 -0
  700. package/dist/selectors-BvJepq6H.js +196 -0
  701. package/dist/selectors-QB2qsaxy.cjs +1 -0
  702. package/dist/services/MetricsCollector/index.d.ts +7 -1
  703. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  704. package/dist/session-BVX859as.cjs +31 -0
  705. package/dist/session-Cz8aie4K.js +493 -0
  706. package/dist/settings-BJ7FMBsO.js +111 -0
  707. package/dist/settings-C63FMBlF.cjs +1 -0
  708. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  709. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  710. package/dist/spring/index.d.ts +2 -0
  711. package/dist/spring/spring.d.ts +69 -0
  712. package/dist/spring/swing.d.ts +54 -0
  713. package/dist/subjects/index.d.ts +2 -0
  714. package/dist/subjects/select.d.ts +70 -0
  715. package/dist/subjects/types.d.ts +59 -0
  716. package/dist/texture/animatedTexture.d.ts +63 -0
  717. package/dist/texture/animationMath.d.ts +8 -0
  718. package/dist/texture/gifReader.d.ts +17 -0
  719. package/dist/texture/gifTextureSource.d.ts +16 -0
  720. package/dist/texture/sourceResolver.d.ts +30 -0
  721. package/dist/textures-BVwo9Z7z.js +38 -0
  722. package/dist/textures-DAfc61zz.cjs +1 -0
  723. package/dist/tracking/coordinates.d.ts +5 -0
  724. package/dist/tracking-config/apply.d.ts +57 -0
  725. package/dist/tracking-config/index.d.ts +7 -0
  726. package/dist/tracking-config/resolve.d.ts +25 -0
  727. package/dist/tracking-config/storage.d.ts +8 -0
  728. package/dist/tracking-config/types.d.ts +106 -0
  729. package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
  730. package/dist/tracking.cjs +10 -1
  731. package/dist/tracking.js +1531 -294
  732. package/dist/trigger-D9L4GPmQ.js +3726 -0
  733. package/dist/trigger-DZ9vU7jo.cjs +147 -0
  734. package/dist/types/common.d.ts +11 -1
  735. package/dist/types/compositor.d.ts +21 -0
  736. package/dist/types/face.d.ts +21 -14
  737. package/dist/types/gesture-tracking.d.ts +2 -2
  738. package/dist/types/hand-tracking.d.ts +19 -2
  739. package/dist/types/holistic.d.ts +121 -0
  740. package/dist/types/index.d.ts +1 -1
  741. package/dist/types/model.d.ts +22 -2
  742. package/dist/types/nodes.d.ts +83 -6
  743. package/dist/types/segmentation.d.ts +26 -0
  744. package/dist/types/session.d.ts +50 -4
  745. package/dist/types/tracking.d.ts +8 -2
  746. package/dist/types/util-types.d.ts +1 -1
  747. package/dist/useBodies-BYzJpQ4L.js +75 -0
  748. package/dist/useBodies-Cxpmx6Bb.cjs +1 -0
  749. package/dist/useFaceInfo-BzEUj2OI.js +75 -0
  750. package/dist/useFaceInfo-DlLRAVNw.cjs +1 -0
  751. package/dist/useFaceResultReader-Cc4Qrutf.js +61 -0
  752. package/dist/useFaceResultReader-D3jOQNKz.cjs +1 -0
  753. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  754. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  755. package/dist/useIrisTracking-Bz4uLDa7.js +6190 -0
  756. package/dist/useIrisTracking-DRGWgoNy.cjs +35 -0
  757. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  758. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  759. package/dist/useXRCapabilities-B1KLckqw.js +30 -0
  760. package/dist/useXRCapabilities-CZlPUBjF.cjs +1 -0
  761. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  762. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  763. package/dist/utils/fns.d.ts +6 -3
  764. package/dist/utils/headOccluderFit.d.ts +42 -0
  765. package/dist/utils/integrity.d.ts +25 -26
  766. package/dist/utils/landmarkBounds.d.ts +1 -1
  767. package/dist/utils/logger.d.ts +2 -2
  768. package/dist/utils/resolveNumFaces.d.ts +13 -0
  769. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  770. package/dist/utils/similarityFit.d.ts +23 -0
  771. package/dist/utils/updateThrottle.d.ts +2 -0
  772. package/dist/utils/useStableUniforms.d.ts +18 -0
  773. package/dist/utils/visionWasm.d.ts +18 -0
  774. package/dist/uv-BMFt19bg.cjs +1 -0
  775. package/dist/{index-BD-JWMjE.js → uv-DJU_XfmN.js} +15 -180
  776. package/dist/x-Co8jPhP0.js +127 -0
  777. package/dist/x-KC8E4Gaj.cjs +41 -0
  778. package/docs/MIGRATION_GUIDE.md +589 -0
  779. package/docs/SDK_DOCUMENTATION.md +1157 -0
  780. package/docs/api/adaptive-quality.mdx +104 -0
  781. package/docs/api/asset-lifecycle.mdx +78 -0
  782. package/docs/api/audio.mdx +36 -0
  783. package/docs/api/behavior-components.mdx +164 -0
  784. package/docs/api/body-instructions.mdx +287 -0
  785. package/docs/api/body-rig.mdx +384 -0
  786. package/docs/api/body-triggers.mdx +235 -0
  787. package/docs/api/camera-permission.mdx +142 -0
  788. package/docs/api/capture-recording.mdx +111 -0
  789. package/docs/api/coordinate-spaces.mdx +168 -0
  790. package/docs/api/cross-camera.mdx +89 -0
  791. package/docs/api/debug-ui-scene-editor.mdx +270 -0
  792. package/docs/api/diagnostics-calibration.mdx +97 -0
  793. package/docs/api/external-face-mesh.mdx +231 -0
  794. package/docs/api/face-actions.mdx +108 -0
  795. package/docs/api/face-attribute-expression.mdx +87 -0
  796. package/docs/api/face-binding-anchors.mdx +55 -0
  797. package/docs/api/face-character.mdx +157 -0
  798. package/docs/api/face-effects.mdx +28 -0
  799. package/docs/api/face-expression-controller.mdx +153 -0
  800. package/docs/api/face-info.mdx +118 -0
  801. package/docs/api/face-inset.mdx +204 -0
  802. package/docs/api/face-instructions.mdx +183 -0
  803. package/docs/api/face-liquify.mdx +196 -0
  804. package/docs/api/face-mesh.mdx +130 -0
  805. package/docs/api/face-morph.mdx +117 -0
  806. package/docs/api/face-painting.mdx +40 -0
  807. package/docs/api/face-reprojection.mdx +154 -0
  808. package/docs/api/face-retouching.mdx +81 -0
  809. package/docs/api/face-swap.mdx +350 -0
  810. package/docs/api/face-warp-3d.mdx +166 -0
  811. package/docs/api/faceless.mdx +143 -0
  812. package/docs/api/gestures.mdx +210 -0
  813. package/docs/api/hair.mdx +97 -0
  814. package/docs/api/hand-instructions.mdx +222 -0
  815. package/docs/api/hand-rig.mdx +661 -0
  816. package/docs/api/hand-touch.mdx +162 -0
  817. package/docs/api/head-occluder.mdx +563 -0
  818. package/docs/api/holistic-tracker.mdx +164 -0
  819. package/docs/api/instructions.mdx +323 -0
  820. package/docs/api/iris-tracking.mdx +247 -0
  821. package/docs/api/made-up-camera.mdx +131 -0
  822. package/docs/api/makeup-skin-tone.mdx +135 -0
  823. package/docs/api/makeup.mdx +353 -0
  824. package/docs/api/material-render-state.mdx +132 -0
  825. package/docs/api/multi-subject.mdx +185 -0
  826. package/docs/api/particles.mdx +183 -0
  827. package/docs/api/person-cutout.mdx +171 -0
  828. package/docs/api/pin-to-face-mesh.mdx +274 -0
  829. package/docs/api/product-ar.mdx +114 -0
  830. package/docs/api/product-details.mdx +78 -0
  831. package/docs/api/runtime-3d.mdx +316 -0
  832. package/docs/api/scene-object-store.mdx +213 -0
  833. package/docs/api/screen-image.mdx +67 -0
  834. package/docs/api/screen-shape.mdx +64 -0
  835. package/docs/api/screen-space-coordinates.mdx +75 -0
  836. package/docs/api/screen-text.mdx +39 -0
  837. package/docs/api/segmentation-overlay.mdx +301 -0
  838. package/docs/api/session-lifecycle.mdx +136 -0
  839. package/docs/api/texture-sources.mdx +74 -0
  840. package/docs/api/trackers.mdx +65 -0
  841. package/docs/api/tracking-config.mdx +108 -0
  842. package/docs/docs.json +121 -0
  843. package/docs/examples/lip-shaders.mdx +273 -0
  844. package/docs/examples/scene-object-recipes.mdx +194 -0
  845. package/docs/guides/face-atlas-template.svg +1 -0
  846. package/docs/guides/face-atlas-textures.mdx +186 -0
  847. package/docs/guides/face-texture-template.svg +1 -0
  848. package/docs/guides/harness-debug-ui.mdx +139 -0
  849. package/docs/guides/lip-effect-textures.mdx +368 -0
  850. package/docs/guides/lip-uv-template.png +0 -0
  851. package/docs/guides/lip-uv-template.svg +1 -0
  852. package/docs/guides/makeup-design-textures.mdx +109 -0
  853. package/docs/inspector/hierarchy-panel.mdx +51 -0
  854. package/docs/inspector/object-inspector-panel.mdx +51 -0
  855. package/docs/introduction.mdx +120 -0
  856. package/docs/scene-objects/overview.mdx +127 -0
  857. package/docs/scene-objects/render-groups.mdx +77 -0
  858. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  859. package/docs/texture-api-consumer.md +84 -0
  860. package/package.json +86 -8
  861. package/settings.json +1998 -0
  862. package/dist/DebuggerUI-CEfdddkZ.cjs +0 -1
  863. package/dist/DebuggerUI-Dgop6Q6o.js +0 -269
  864. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  865. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  866. package/dist/index-B5J4gzn2.cjs +0 -1
  867. package/dist/index-BVBVg96G.cjs +0 -1
  868. package/dist/index-CYMj26Ej.js +0 -1331
  869. package/dist/index-DtwHElmG.js +0 -157
  870. package/dist/index-PtFmD6B8.cjs +0 -1
  871. package/dist/internal-DH5d1Xnq.cjs +0 -1
  872. package/dist/modules/XRClient/index.d.ts +0 -9
  873. package/dist/modules/index.d.ts +0 -1
  874. package/dist/selectors-BHO6TnoC.js +0 -59
  875. package/dist/selectors-Bub0o3qy.cjs +0 -1
  876. package/dist/services/ApiService.d.ts +0 -12
  877. package/dist/types/client.d.ts +0 -3
  878. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  879. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
@@ -0,0 +1,31 @@
1
+ import { CanonicalOffset } from './useLandmarkPoseFit';
2
+ import * as THREE from "three";
3
+ /** The person's own ear, as `leftEarLobe` / `rightEarLobe` name it (#298). */
4
+ export type EarringSide = "left" | "right";
5
+ /** Draw order of an earring's opaque meshes: after the head occluder (-1) and the face effects. */
6
+ export declare const EARRING_RENDER_ORDER = 5;
7
+ /** Transparent earring parts draw after the opaque ones. */
8
+ export declare const EARRING_TRANSPARENT_RENDER_ORDER = 6;
9
+ export type EarringPlacement = {
10
+ position: [number, number, number];
11
+ rotation: [number, number, number];
12
+ scale: [number, number, number];
13
+ };
14
+ /**
15
+ * Where the earring for the person's own `side` ear sits in the canonical head
16
+ * frame on this feed (`mirrored`: the front webcam; default unmirrored): on
17
+ * that ear's lobe, with the authored `offset` on top. Earrings are authored
18
+ * in the ear frame (+X away from the head, the ear at canonical +X); the one on
19
+ * the screen's left (canonical −X) is that mirrored across the head's
20
+ * mid-plane (x → −x): the position's x and the rotation's y / z flip, and the
21
+ * scale's x is negative, so an earring turned out and forward on one ear is
22
+ * turned out and forward on the other too.
23
+ */
24
+ export declare const earringPlacement: (side: EarringSide, offset?: CanonicalOffset, mirrored?: boolean) => EarringPlacement;
25
+ /**
26
+ * One ear's copy of an earring model: a deep clone that shares geometry and
27
+ * materials, never frustum-culled (the fitted head moves every frame), its
28
+ * meshes drawn after the occluder (`EARRING_RENDER_ORDER`, transparent parts
29
+ * one later) unless they already carry a render order.
30
+ */
31
+ export declare const cloneEarringModel: (model: THREE.Object3D) => THREE.Object3D;
@@ -0,0 +1,69 @@
1
+ import { CanonicalOffset } from './useLandmarkPoseFit';
2
+ import * as THREE from "three";
3
+ /**
4
+ * Named places on the head to attach an accessory to. Each is a fixed point in
5
+ * the canonical head frame (`CanonicalHeadFrame`): centimetres, +X toward the
6
+ * screen's right on a face looking at the camera, +Y up, +Z out of the face
7
+ * toward the camera.
8
+ *
9
+ * `leftEar` / `rightEar` (and the lobes) are the person's OWN ears on every
10
+ * feed (#298). The canonical +X ear is MediaPipe's left (landmark 454's side):
11
+ * the person's left ear on an unmirrored feed (rear camera, image, video) and
12
+ * their right ear on the mirrored front webcam, so the table below is given as
13
+ * on an unmirrored feed and `resolveHeadAttachmentPoint` swaps the sided points
14
+ * on a mirrored one.
15
+ */
16
+ export type HeadAttachmentPoint = "headCenter" | "crown" | "forehead" | "noseBridge" | "noseTip" | "chin" | "leftEar" | "rightEar" | "leftEarLobe" | "rightEarLobe";
17
+ /**
18
+ * Canonical centimetres for each `HeadAttachmentPoint`. Face points are the
19
+ * canonical MediaPipe landmarks (the first 468 vertices of the v3 head
20
+ * occluder): `forehead` = 151, `noseBridge` = 6 (the nose ridge where a
21
+ * glasses bridge rests, between the eyes), `noseTip` = 1, `chin` = 152. The
22
+ * skull points are measured on the v3 occluder (`assets-src/head-occluder/
23
+ * head-occluder-v3.blend`): `headCenter` is the skull's centre, `crown` its
24
+ * top, and the ears are the centres of its ear volumes. The ear lobes are the
25
+ * piercing: on the outside of each ear volume, 0.8 cm above its lowest point and
26
+ * a quarter centimetre ahead of its centre, 2 mm clear of its surface, so an
27
+ * earring authored outward from it (+X, away from the head) is never cut by the
28
+ * occluder (`assets-src/accessories/build_earrings.py` checks it).
29
+ *
30
+ * Sided points are given as on an UNMIRRORED feed: the person's left ear at
31
+ * canonical +X (MediaPipe's left). Use `resolveHeadAttachmentPoint(point,
32
+ * mirrored)` for the person's own ear on a given feed.
33
+ */
34
+ export declare const HEAD_ATTACHMENT_POINTS: Readonly<Record<HeadAttachmentPoint, readonly [number, number, number]>>;
35
+ export declare const HEAD_ATTACHMENT_POINT_NAMES: readonly HeadAttachmentPoint[];
36
+ /** A point resolved for one feed (see `resolveHeadAttachmentPoint`). */
37
+ export type ResolvedHeadAttachmentPoint = {
38
+ /** Canonical centimetres of the person's own point on this feed. */
39
+ position: readonly [number, number, number];
40
+ /**
41
+ * `true` for an ear point on the screen's left (canonical −X): its children
42
+ * are mirrored (x → −x) so that +X still points away from the head.
43
+ */
44
+ mirror: boolean;
45
+ };
46
+ /**
47
+ * Where `point` is for the person on this feed. `mirrored` is the feed's
48
+ * mirror state (`useXRMirrored()`; the front webcam is mirrored): there the
49
+ * person's left ear is at canonical −X, on an unmirrored feed at +X.
50
+ * Centre points do not depend on the feed.
51
+ */
52
+ export declare const resolveHeadAttachmentPoint: (point: HeadAttachmentPoint, mirrored?: boolean) => ResolvedHeadAttachmentPoint;
53
+ /**
54
+ * Writes the canonical position (centimetres) of the person's own `point` on
55
+ * this feed into `out` (`mirrored`: see `resolveHeadAttachmentPoint`; default
56
+ * an unmirrored feed, i.e. the table as given).
57
+ */
58
+ export declare const getHeadAttachmentPoint: (point: HeadAttachmentPoint, out?: THREE.Vector3, mirrored?: boolean) => THREE.Vector3;
59
+ /**
60
+ * The fit offset that puts a fitted frame's origin on the person's own
61
+ * `point` for this feed, moved by the authored `offset.position` (canonical
62
+ * centimetres, in the head's axes; for an ear point in the ear frame, +X away
63
+ * from the head) and turned by `offset.rotation` about the point. On a
64
+ * mirrored ear (`mirror`) the offset is mirrored with it: x and the Y / Z
65
+ * rotations negate. `offset.scale` is left out: the fit scales its offset
66
+ * position too, so a scale here would slide the point — `HeadAttachment`
67
+ * applies it (and the ear mirror) on an inner group instead.
68
+ */
69
+ export declare const resolveHeadAttachmentOffset: (point: HeadAttachmentPoint, offset?: CanonicalOffset, mirrored?: boolean) => CanonicalOffset;
@@ -1,13 +1,67 @@
1
- type HeadOccluderProps = {
1
+ import { CanonicalHeadFitOptions, CanonicalHeadOffset } from './useCanonicalHeadFit';
2
+ import { NeckOccluderOptions, NeckOccluderType } from './NeckOccluder';
3
+ export { CanonicalHeadFrame } from './CanonicalHeadFrame';
4
+ export { HeadAttachment } from './HeadAttachment';
5
+ export type { HeadAttachmentProps } from './HeadAttachment';
6
+ export { Earrings } from './Earrings';
7
+ export { NECK_BUST_TORSO_POSITION, NECK_OCCLUDER_BUST_PATH, NECK_OCCLUDER_FOLLOWS, NECK_OCCLUDER_SHOULDER_TURN, NECK_OCCLUDER_TYPES, NeckOccluder, neckBoneTwist, neckOccluderUrl, } from './NeckOccluder';
8
+ export type { NeckOccluderFollow, NeckOccluderOptions, NeckOccluderProps, NeckOccluderType, } from './NeckOccluder';
9
+ export type { EarringsProps } from './Earrings';
10
+ export type { EarringSide } from './earringPlacement';
11
+ export { HEAD_ATTACHMENT_POINTS, HEAD_ATTACHMENT_POINT_NAMES, getHeadAttachmentPoint, resolveHeadAttachmentPoint, } from './headAttachmentPoints';
12
+ export type { HeadAttachmentPoint, ResolvedHeadAttachmentPoint } from './headAttachmentPoints';
13
+ export type { CanonicalHeadFrameProps } from './CanonicalHeadFrame';
14
+ export { CANONICAL_HEAD_FIT_DEFAULT_SMOOTHING, useCanonicalHeadFit } from './useCanonicalHeadFit';
15
+ export { useLandmarkPoseFit, stepLandmarkPoseSmoothing, LANDMARK_POSE_FIT_DEFAULT_SMOOTHING, LANDMARK_POSE_FIT_SNAP_CM, } from './useLandmarkPoseFit';
16
+ export type { CanonicalOffset, LandmarkPoseFit, LandmarkPoseFitOptions, LandmarkPoseSmoothingState, } from './useLandmarkPoseFit';
17
+ export type { CanonicalHeadFitOptions, CanonicalHeadOffset } from './useCanonicalHeadFit';
18
+ /**
19
+ * How the occluder is placed inside its `FaceTracker` group.
20
+ *
21
+ * - `"canonical"` (default): the v3 head, authored in the canonical face frame,
22
+ * is fitted every frame to 31 rigid live landmarks — see
23
+ * `solveCanonicalHeadPose`. Exact for scale, rotation and position; `offset`
24
+ * adjusts on top of the fit in canonical centimetres.
25
+ * - `"manual"`: the legacy path. `position` / `rotation` / `scale` are applied
26
+ * verbatim inside the group, as `HeadBinding` did before v3.
27
+ */
28
+ export type HeadOccluderFit = "canonical" | "manual";
29
+ export type HeadOccluderOffset = CanonicalHeadOffset;
30
+ export type HeadOccluderProps = {
31
+ fit?: HeadOccluderFit;
32
+ /** Which tracked face feeds the canonical fit. Defaults to the parent `FaceTracker`'s `faceIndex`. */
33
+ faceIndex?: number;
34
+ /** Canonical-fit adjustments. Ignored in `"manual"`. */
35
+ offset?: HeadOccluderOffset;
36
+ /** Manual-fit transform. Ignored in `"canonical"`. */
2
37
  position?: [number, number, number];
3
38
  rotation?: [number, number, number];
4
39
  scale?: [number, number, number];
40
+ /** Override the mesh. The canonical fit expects a v3-frame mesh. */
5
41
  url?: string;
42
+ /** Draw the mesh visibly (calibration). Production keeps it depth-only. */
6
43
  showDebugMaterial?: boolean;
7
44
  opacity?: number;
45
+ /** Per-frame EMA factor for the fitted pose, `1` = no smoothing. */
46
+ smoothing?: number;
47
+ /** Per-frame `HeadPoseFit` callback (canonical fit only); no React state at frame rate. */
48
+ onFit?: CanonicalHeadFitOptions["onFit"];
49
+ /**
50
+ * Add a neck and shoulders occluder: `true` or `"bust"` for the bust moved
51
+ * by the head fit (no body tracking), or `NeckOccluderOptions` (`follow:
52
+ * "torso"` moves it with body tracking instead). Default none.
53
+ */
54
+ neck?: boolean | NeckOccluderType | NeckOccluderOptions;
8
55
  };
9
56
  export declare const HEAD_OCCLUDER_DEFAULT_POSITION: [number, number, number];
10
57
  export declare const HEAD_OCCLUDER_DEFAULT_SCALE: [number, number, number];
11
58
  export declare const HEAD_OCCLUDER_DEFAULT_OPACITY = 1;
12
- export declare const HeadOccluder: ({ position: modelPosition, rotation: modelRotation, scale: modelScale, url, showDebugMaterial, opacity, }: HeadOccluderProps) => import("react/jsx-runtime").JSX.Element | null;
13
- export {};
59
+ export declare const HEAD_OCCLUDER_DEFAULT_SMOOTHING = 0.5;
60
+ /** The legacy sculpted shell (`"manual"` fit). */
61
+ export declare const HEAD_OCCLUDER_V2_PATH = "/assets/xr/3d-models/head-occluder-v2.glb";
62
+ /** The canonical-frame head (`"canonical"` fit). */
63
+ export declare const HEAD_OCCLUDER_V3_PATH = "/assets/xr/3d-models/head-occluder-v3.glb";
64
+ /** Drawn before everything in the tracked layer so its depth is in place for the accessories. */
65
+ export declare const HEAD_OCCLUDER_RENDER_ORDER = -1;
66
+ export declare const headOccluderUrl: (fit?: HeadOccluderFit) => string;
67
+ export declare const HeadOccluder: ({ fit, faceIndex, offset, position: modelPosition, rotation: modelRotation, scale: modelScale, url, showDebugMaterial, opacity, smoothing, onFit, neck, }: HeadOccluderProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,36 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { CanonicalOffset, LandmarkPoseFit } from './useLandmarkPoseFit';
3
+ import * as THREE from "three";
4
+ export type CanonicalHeadOffset = CanonicalOffset;
5
+ export type CanonicalHeadFitOptions = {
6
+ /**
7
+ * Which tracked face feeds the fit. Defaults to the parent `FaceTracker`'s
8
+ * (or `HeadBinding`'s) `faceIndex`, so it only needs setting to read a
9
+ * different face than the group it sits in.
10
+ */
11
+ faceIndex?: number;
12
+ offset?: CanonicalHeadOffset;
13
+ /** Per-frame EMA factor for the fitted pose, `1` = no smoothing. */
14
+ smoothing?: number;
15
+ /** `false` leaves the object untouched (and releases the face model). */
16
+ enabled?: boolean;
17
+ /**
18
+ * Called every fitted frame with the raw solver result (world units) — for
19
+ * calibration readouts and tests. Do not set React state in it at frame rate.
20
+ */
21
+ onFit?: (fit: LandmarkPoseFit) => void;
22
+ /** Fires once on face found (`true`) and once on face lost (`false`). */
23
+ onTrackingChange?: (tracked: boolean) => void;
24
+ };
25
+ export declare const CANONICAL_HEAD_FIT_DEFAULT_SMOOTHING = 0.5;
26
+ /**
27
+ * Drives `target` (a child of a `FaceTracker` group) with the canonical head
28
+ * pose every frame: the similarity that maps the canonical rigid landmarks
29
+ * onto the live ones in world space. Anything authored in canonical
30
+ * centimetres under `target` then lands on the head — the v3 occluder, or a
31
+ * creator's accessory. The pose is written as a LOCAL transform (world pose
32
+ * re-expressed in the parent group's frame), so it does not depend on where
33
+ * the group's own heuristic put its origin or how it scaled. Hides the object
34
+ * while the face is not tracked and snaps (no smoothing) on reacquire.
35
+ */
36
+ export declare const useCanonicalHeadFit: (target: MutableRefObject<THREE.Object3D | null>, { faceIndex: faceIndexOption, offset, smoothing, enabled, onFit, onTrackingChange, }?: CanonicalHeadFitOptions) => void;
@@ -0,0 +1,80 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { SimilarityFit } from '../../utils/similarityFit';
3
+ import * as THREE from "three";
4
+ export type CanonicalOffset = {
5
+ /** Canonical centimetres, in the fitted frame (rotates with it). */
6
+ position?: [number, number, number];
7
+ /** Radians, applied after the fitted rotation. */
8
+ rotation?: [number, number, number];
9
+ /** Multiplier on the fitted scale (`1` = exact). */
10
+ scale?: number;
11
+ };
12
+ export type LandmarkPoseFit = SimilarityFit & {
13
+ /** World units per canonical centimetre (the fit's scale). */
14
+ worldUnitsPerCm: number;
15
+ /** Number of landmarks used. */
16
+ count: number;
17
+ };
18
+ export type LandmarkPoseFitOptions = {
19
+ /** Canonical positions, flat `[x, y, z, …]` centimetres. */
20
+ canonical: ArrayLike<number>;
21
+ /**
22
+ * Fills `out` (flat world coordinates, same order as `canonical`) from the
23
+ * live tracker and returns `true`, or returns `false` when there is nothing
24
+ * to fit this frame (the object is then hidden).
25
+ */
26
+ readLive: (out: Float64Array) => boolean;
27
+ offset?: CanonicalOffset;
28
+ /** Per-frame EMA factor for the pose, `1` = no smoothing. */
29
+ smoothing?: number;
30
+ enabled?: boolean;
31
+ onFit?: (fit: LandmarkPoseFit) => void;
32
+ /**
33
+ * Called once when the subject is found and once when it is lost (not per
34
+ * frame). While lost the object is hidden; on reacquire it snaps to the new
35
+ * pose instead of easing in from where it was lost.
36
+ */
37
+ onTrackingChange?: (tracked: boolean) => void;
38
+ /**
39
+ * The solver. Defaults to the Umeyama similarity over `canonical` vs the
40
+ * live points (≥ 3 points). A caller with fewer points supplies its own
41
+ * (the shoulder fit uses two).
42
+ */
43
+ solve?: (live: Float64Array, out: LandmarkPoseFit) => LandmarkPoseFit;
44
+ };
45
+ export declare const LANDMARK_POSE_FIT_DEFAULT_SMOOTHING = 0.5;
46
+ /**
47
+ * A fitted origin that moves farther than this in one frame (canonical
48
+ * centimetres) snaps instead of easing: a different person took the tracked
49
+ * index, or the subject re-entered elsewhere. Head motion between two frames
50
+ * is a few centimetres; easing across a face swap would slide the accessory
51
+ * over the screen.
52
+ */
53
+ export declare const LANDMARK_POSE_FIT_SNAP_CM = 20;
54
+ export type LandmarkPoseSmoothingState = {
55
+ tracked: boolean;
56
+ quaternion: THREE.Quaternion;
57
+ position: THREE.Vector3;
58
+ scale: number;
59
+ };
60
+ /**
61
+ * One frame of the fit's smoothing: snap on (re)acquire or on a jump larger
62
+ * than `snapDistance`, EMA otherwise. `fit` is `null` when nothing is tracked
63
+ * this frame. Returns whether tracking changed this frame (found or lost) so
64
+ * callers can fire edge events.
65
+ *
66
+ * `snapDistance` is in the fit's SOURCE units (the canonical points it maps
67
+ * from): the jump is measured as world distance / `fit.scale`. The default,
68
+ * `LANDMARK_POSE_FIT_SNAP_CM`, suits the centimetre canonical head and torso
69
+ * fits; a fit from a model in other units passes its own (`HandRig` uses
70
+ * `handRigSnapDistance`, a multiple of the model's palm length).
71
+ */
72
+ export declare const stepLandmarkPoseSmoothing: (state: LandmarkPoseSmoothingState, fit: Pick<SimilarityFit, "quaternion" | "translation" | "scale"> | null, smoothing: number, snapDistance?: number) => boolean;
73
+ /**
74
+ * The shared per-frame machinery behind the canonical head and torso fits:
75
+ * read the live points, solve the similarity that maps the canonical set onto
76
+ * them, smooth, apply the authored offset, and write the WORLD pose as a local
77
+ * transform re-expressed in the parent's frame — so the fitted object does not
78
+ * depend on where its tracker group put its origin or how it scaled.
79
+ */
80
+ export declare const useLandmarkPoseFit: (target: MutableRefObject<THREE.Object3D | null>, { canonical, readLive, offset, smoothing, enabled, onFit, onTrackingChange, solve, }: LandmarkPoseFitOptions) => void;
@@ -0,0 +1,69 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { HolisticHandSide, HolisticModelOptions, HolisticTrackingStatus } from '../../types/holistic';
3
+ import { XRModelNodeHolisticTracking } from '../../types/nodes';
4
+ /** What `useHolisticTracking()` returns: the shared node plus its lifecycle. */
5
+ export type HolisticTrackingContextValue = {
6
+ node: XRModelNodeHolisticTracking | null;
7
+ /** True once the model is registered and initialized without error. */
8
+ ready: boolean;
9
+ status: HolisticTrackingStatus;
10
+ error: Error | null;
11
+ };
12
+ /**
13
+ * Read the nearest `<HolisticTracker>`'s shared node. Call `node.getResult()`
14
+ * inside `useFrame`; the result object is stable and mutated in place.
15
+ * Outside a provider this returns an inactive context (never throws).
16
+ */
17
+ export declare const useHolisticTracking: () => HolisticTrackingContextValue;
18
+ export type HolisticTrackerProps = PropsWithChildren & HolisticModelOptions & {
19
+ /**
20
+ * Whether this tracker should run. `false` pauses the shared model's
21
+ * per-frame inference while keeping it initialized, so flipping back to
22
+ * `true` resumes instantly. When several consumers share the model, it
23
+ * runs while any is active. Defaults to `true`.
24
+ */
25
+ active?: boolean;
26
+ /** Called whenever the lifecycle status changes (`loading` → `ready` / `error`). */
27
+ onStatusChange?: (status: HolisticTrackingStatus, error: Error | null) => void;
28
+ };
29
+ /**
30
+ * One MediaPipe Holistic inference shared by every descendant. Compose the
31
+ * streams with `<HolisticTracker.Face>`, `<HolisticTracker.Hand hand="left">`
32
+ * and `<HolisticTracker.Body>`, which accept the same `TrackingAnchor`
33
+ * targets as the individual trackers, or read the unified result through
34
+ * `useHolisticTracking()`.
35
+ */
36
+ declare const HolisticTrackerComponent: ({ children, active, onStatusChange, modelUrl, delegate, minFaceDetectionConfidence, minFacePresenceConfidence, minPoseDetectionConfidence, minPosePresenceConfidence, minHandLandmarksConfidence, outputFaceBlendshapes, targetFps, hands, analysisMaxDimension, holdMs, predictMs, }: HolisticTrackerProps) => import("react/jsx-runtime").JSX.Element;
37
+ /**
38
+ * The face stream: `face.*` anchors. The group origin is face landmark 4, the
39
+ * same landmark `FaceTracker` uses for its position. No head rotation
40
+ * (holistic has no transform matrix).
41
+ */
42
+ declare const HolisticFace: {
43
+ ({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
44
+ displayName: string;
45
+ };
46
+ export type HolisticHandProps = PropsWithChildren & {
47
+ /** Which hand this group follows. Holistic tracks at most one of each. */
48
+ hand: HolisticHandSide;
49
+ };
50
+ /** One hand stream: `hand.*` anchors, group origin at the wrist. */
51
+ declare const HolisticHand: {
52
+ ({ hand, children }: HolisticHandProps): import("react/jsx-runtime").JSX.Element;
53
+ displayName: string;
54
+ };
55
+ /** The pose stream: `body.*` anchors (incl. the synthesized `body.neck`), group origin at the head. */
56
+ declare const HolisticBody: {
57
+ ({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
58
+ displayName: string;
59
+ };
60
+ export declare const HolisticTracker: typeof HolisticTrackerComponent & {
61
+ Face: typeof HolisticFace;
62
+ Hand: typeof HolisticHand;
63
+ Body: typeof HolisticBody;
64
+ };
65
+ export { DEFAULT_HOLISTIC_SIGNAL_THRESHOLDS, createHolisticSignals, getHolisticSignals, isHandRaised, isPalmOpen, } from './signals';
66
+ export type { HolisticSignalThresholds, HolisticSignals } from './signals';
67
+ export { DEFAULT_HOLISTIC_TRACKER_SETTINGS, HOLISTIC_HANDS_OPTIONS, HOLISTIC_TRACKER_SETTINGS_FIELDS, patchHolisticTrackerSettings, resolveHolisticTrackerSettings, toHolisticTrackerProps, } from './settings';
68
+ export type { HolisticTrackerSettings } from './settings';
69
+ export { DEFAULT_HOLISTIC_ANALYSIS_MAX_DIMENSION, DEFAULT_HOLISTIC_HOLD_MS, DEFAULT_HOLISTIC_MODEL_URL, DEFAULT_HOLISTIC_PREDICT_MS, } from '../../models/Holistic/result';
@@ -0,0 +1,58 @@
1
+ import { HolisticHandsOption, HolisticModelOptions } from '../../types/holistic';
2
+ /** Flat, panel-friendly settings for `<HolisticTracker>`. */
3
+ export type HolisticTrackerSettings = {
4
+ hands: HolisticHandsOption;
5
+ /** Inference cap (fps); `0` = uncapped. */
6
+ targetFps: number;
7
+ analysisMaxDimension: number;
8
+ holdMs: number;
9
+ predictMs: number;
10
+ outputFaceBlendshapes: boolean;
11
+ };
12
+ export declare const HOLISTIC_HANDS_OPTIONS: readonly ["both", "left", "right", "none"];
13
+ export declare const DEFAULT_HOLISTIC_TRACKER_SETTINGS: HolisticTrackerSettings;
14
+ export declare const HOLISTIC_TRACKER_SETTINGS_FIELDS: [{
15
+ readonly key: "hands";
16
+ readonly label: "Hands";
17
+ readonly type: "select";
18
+ readonly options: {
19
+ label: "none" | "left" | "right" | "both";
20
+ value: "none" | "left" | "right" | "both";
21
+ }[];
22
+ }, {
23
+ readonly key: "targetFps";
24
+ readonly label: "Target FPS (0 = uncapped)";
25
+ readonly type: "number";
26
+ readonly min: 0;
27
+ readonly max: 60;
28
+ readonly step: 1;
29
+ }, {
30
+ readonly key: "analysisMaxDimension";
31
+ readonly label: "Analysis max px";
32
+ readonly type: "number";
33
+ readonly min: 256;
34
+ readonly max: 1280;
35
+ readonly step: 64;
36
+ }, {
37
+ readonly key: "holdMs";
38
+ readonly label: "Hold (ms)";
39
+ readonly type: "number";
40
+ readonly min: 0;
41
+ readonly max: 1000;
42
+ readonly step: 10;
43
+ }, {
44
+ readonly key: "predictMs";
45
+ readonly label: "Predict (ms)";
46
+ readonly type: "number";
47
+ readonly min: 0;
48
+ readonly max: 300;
49
+ readonly step: 10;
50
+ }, {
51
+ readonly key: "outputFaceBlendshapes";
52
+ readonly label: "Face blendshapes (re-inits)";
53
+ readonly type: "boolean";
54
+ }];
55
+ export declare const resolveHolisticTrackerSettings: (value?: Partial<HolisticTrackerSettings>) => HolisticTrackerSettings;
56
+ export declare const patchHolisticTrackerSettings: (current: HolisticTrackerSettings, patch: Partial<HolisticTrackerSettings>) => HolisticTrackerSettings;
57
+ /** Map panel settings onto `<HolisticTracker>` props (`targetFps: 0` → uncapped). */
58
+ export declare const toHolisticTrackerProps: (settings: HolisticTrackerSettings) => HolisticModelOptions;
@@ -0,0 +1,49 @@
1
+ import { HolisticHandResult, HolisticHandSide, HolisticResult } from '../../types/holistic';
2
+ export type HolisticSignalThresholds = {
3
+ /** Mean of `mouthSmileLeft` / `mouthSmileRight` at or above which `smiling` is true. Default 0.3. */
4
+ smile: number;
5
+ /** `jawOpen` at or above which `mouthOpen` is true. Default 0.25. */
6
+ mouthOpen: number;
7
+ /** Pose landmarks below this visibility are ignored. Default 0.5. */
8
+ minVisibility: number;
9
+ /** A finger is extended when its tip is this many times farther from the wrist than its base. Default 1.25. */
10
+ fingerExtension: number;
11
+ };
12
+ export declare const DEFAULT_HOLISTIC_SIGNAL_THRESHOLDS: HolisticSignalThresholds;
13
+ /**
14
+ * Derived, per-frame booleans that combine the holistic streams. Plain data
15
+ * so it can be read in `useFrame`, logged, or driven into UI state.
16
+ */
17
+ export type HolisticSignals = {
18
+ facePresent: boolean;
19
+ leftHandPresent: boolean;
20
+ rightHandPresent: boolean;
21
+ posePresent: boolean;
22
+ /** Mean smile blendshape score, 0..1 (0 without a face). */
23
+ smile: number;
24
+ /** `jawOpen` blendshape score, 0..1 (0 without a face). */
25
+ mouthOpen: number;
26
+ smiling: boolean;
27
+ mouthIsOpen: boolean;
28
+ /** Pose wrist above the same-side shoulder (tracker space, Y up). */
29
+ leftHandRaised: boolean;
30
+ rightHandRaised: boolean;
31
+ /** At least three of index..pinky extended on the holistic hand. */
32
+ leftPalmOpen: boolean;
33
+ rightPalmOpen: boolean;
34
+ /**
35
+ * The combined gesture: a raised, open hand while smiling. The right hand
36
+ * wins when both qualify; `null` otherwise.
37
+ */
38
+ greeting: HolisticHandSide | null;
39
+ };
40
+ export declare const createHolisticSignals: () => HolisticSignals;
41
+ /** True when at least three of index..pinky are extended away from the wrist. */
42
+ export declare const isPalmOpen: (hand: HolisticHandResult | null, fingerExtension?: number) => boolean;
43
+ /** True when the pose wrist on `side` is above its shoulder and both are visible enough. */
44
+ export declare const isHandRaised: (result: HolisticResult, side: HolisticHandSide, minVisibility?: number) => boolean;
45
+ /**
46
+ * Compute the combined signals for a result. Pass `out` to reuse an object
47
+ * across frames; thresholds default to `DEFAULT_HOLISTIC_SIGNAL_THRESHOLDS`.
48
+ */
49
+ export declare const getHolisticSignals: (result: HolisticResult, thresholds?: Partial<HolisticSignalThresholds>, out?: HolisticSignals) => HolisticSignals;
@@ -0,0 +1,29 @@
1
+ import { ReactNode } from 'react';
2
+ import type * as THREE from "three";
3
+ export type HintStageProps = {
4
+ /** Height of the hint's slot in the parent's units. */
5
+ height: number;
6
+ /** The hint's own span (model units) that fits `height`: see `orbitSpan`. */
7
+ span: number;
8
+ /** Draw it as a mirror image (a selfie feed). Default `false`. */
9
+ mirrored?: boolean;
10
+ /** Auto orbit: degrees to each side about the vertical (ping-pong). `0` = still. Default 0. */
11
+ orbit?: number;
12
+ /** Seconds per orbit swing. Default 6. */
13
+ orbitSeconds?: number;
14
+ /** The back-glow disc's material (`useGhostModel`'s `glowMaterial`); `null` = none. */
15
+ glow?: THREE.Material | null;
16
+ /** The glow disc's diameter × `span`. Default 1.75. */
17
+ glowSize?: number;
18
+ /** The hint's render order (the glow draws just before its band). */
19
+ renderOrder?: number;
20
+ /** The posed model, centred on the origin, facing +Z. It orbits; the glow does not. */
21
+ children: ReactNode;
22
+ };
23
+ /**
24
+ * The stage every instruction hint stands on: scales a centred model so
25
+ * `span` fits `height`, mirrors it if asked, puts the back-glow disc behind
26
+ * it and swings it in a slow auto orbit. Use it with `useGhostModel` for a
27
+ * hint on your own model.
28
+ */
29
+ export declare const HintStage: ({ height, span, mirrored, orbit, orbitSeconds, glow, glowSize, renderOrder, children, }: HintStageProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,126 @@
1
+ import { ReactNode } from 'react';
2
+ import { TextLabelProps } from '../TextLabel/types';
3
+ import { InstructionDetector } from './useInstructionHold';
4
+ import * as THREE from "three";
5
+ /** The instructions draw in this renderOrder band, over the AR scene. */
6
+ export declare const INSTRUCTION_RENDER_ORDER = 2000;
7
+ /**
8
+ * Where a prompt stands: nothing usable in view (no hand / face), in view but
9
+ * not doing it, doing it (holding), or completed.
10
+ */
11
+ export type InstructionStatus = "waiting" | "detected" | "holding" | "done";
12
+ export type InstructionSize = "sm" | "md" | "lg";
13
+ export type InstructionPlacement = "top" | "center" | "bottom";
14
+ /** `TextLabel` styling for the instruction's lines (everything but its text and placement). */
15
+ export type InstructionTextStyle = Partial<Omit<TextLabelProps, "text" | "lines" | "aspect" | "scale" | "position" | "rotation" | "renderOrder" | "visible" | "name">>;
16
+ /** What `renderText` gets for each line it draws. */
17
+ export type InstructionTextSlot = {
18
+ /** The copy (the main text, the done text, or the nudge). */
19
+ text: string;
20
+ role: "text" | "nudge";
21
+ /** The line's box, in screen-space world units, centred on the origin. */
22
+ width: number;
23
+ height: number;
24
+ /** Draw it at this render order (above the symbol). */
25
+ renderOrder: number;
26
+ /** The resolved default style (what the built-in `TextLabel` would use). */
27
+ style: InstructionTextStyle;
28
+ };
29
+ /** Timings and feedback of the layout. Every field is optional; `0` / `false` turns a part off. */
30
+ export type InstructionMotion = {
31
+ /** Fade-in time, seconds. Default 0.35. */
32
+ fadeIn?: number;
33
+ /** Fade-out time after completing (with `hideOnComplete`), seconds. Default 0.5. */
34
+ fadeOut?: number;
35
+ /** How far it rises while fading in, × the symbol height. Default 0.15. */
36
+ rise?: number;
37
+ /** Idle bob of the symbol, × its height. Default 0.02. */
38
+ bob?: number;
39
+ /** The completion pop: extra scale at its peak. Default 0.1. */
40
+ pop?: number;
41
+ /** The pop's duration, seconds. Default 0.3. */
42
+ popSeconds?: number;
43
+ /** The symbol's breathing pulse while nudging (extra scale). Default 0.06. */
44
+ nudgePulse?: number;
45
+ /** The success ring that expands from the symbol on completion. `false` = none. */
46
+ ring?: false | {
47
+ /** Default white. */
48
+ color?: THREE.ColorRepresentation;
49
+ /** Seconds. Default 0.6. */
50
+ seconds?: number;
51
+ /** Peak opacity. Default 0.7. */
52
+ opacity?: number;
53
+ /** Start and end size, × the symbol height. Default 0.45 → 0.95. */
54
+ from?: number;
55
+ to?: number;
56
+ };
57
+ };
58
+ /** Proportions of the layout, relative to the size preset's height. */
59
+ export type InstructionLayout = {
60
+ /** Text line height. Default 0.3. */
61
+ textHeight?: number;
62
+ /** Gap between the symbol and the text. Default 0.1. */
63
+ gap?: number;
64
+ /** Nudge line height. Default 0.2. */
65
+ nudgeHeight?: number;
66
+ /** Maximum text width. Default 6 (and at most 90 % of the screen). */
67
+ textWidth?: number;
68
+ /** Distance from the screen edge for top / bottom placement, × the screen height. Default 0.06. */
69
+ edgeMargin?: number;
70
+ };
71
+ /** The layout and copy options every instruction shares (all optional). */
72
+ export type InstructionOptions = {
73
+ /** Copy shown once completed, while it fades out. Default: keep `text`. */
74
+ doneText?: string;
75
+ /** Second line after `nudgeAfterMs` with nothing in view; `null` = no nudge. */
76
+ nudgeText?: string | null;
77
+ /** How long with nothing in view before the nudge (ms). Default 3000. */
78
+ nudgeAfterMs?: number;
79
+ /**
80
+ * `"sm"`, `"md"` (default) or `"lg"`: the symbol is 10 / 14 / 19 % of the
81
+ * screen height; or your own fraction of the screen height (e.g. `0.22`).
82
+ */
83
+ size?: InstructionSize | number;
84
+ /** Where it stands: `"top"`, `"center"` (default) or `"bottom"`. */
85
+ placement?: InstructionPlacement;
86
+ /** Shift from the placement, in half-screens (`[0.5, 0]` = a quarter screen right). */
87
+ offset?: [number, number];
88
+ /** Text colour. Default white, with a soft dark shadow so it reads on any camera feed. */
89
+ color?: string;
90
+ /** `TextLabel` styling for the text, merged over the default (font, weight, shadow, stroke …). */
91
+ textStyle?: InstructionTextStyle;
92
+ /** Styling for the nudge line, merged over `textStyle` (default: normal weight). */
93
+ nudgeTextStyle?: InstructionTextStyle;
94
+ /**
95
+ * Draw the text yourself: return any R3F node for a line (use transparent
96
+ * materials — the layout fades every mesh under it). Default: a `TextLabel`.
97
+ */
98
+ renderText?: (slot: InstructionTextSlot) => ReactNode;
99
+ /** Timings and feedback (fade, rise, bob, pop, nudge pulse, success ring). */
100
+ motion?: InstructionMotion;
101
+ /** Proportions (text height, gap, widths, edge margin). */
102
+ layout?: InstructionLayout;
103
+ /** Fade out once completed. Default `true`. */
104
+ hideOnComplete?: boolean;
105
+ /** Called once with the first status, then on every change (app logic, announcements). */
106
+ onStatusChange?: (status: InstructionStatus) => void;
107
+ };
108
+ export type InstructionCueProps = InstructionOptions & {
109
+ /** Instruction copy. */
110
+ text: string;
111
+ /** The detector driving it: its hold status and whether something usable is in view. */
112
+ detector: Pick<InstructionDetector, "status" | "isInView">;
113
+ /** The symbol (hand, face, an image …), drawn `height` tall in the given renderOrder band. */
114
+ symbol: (height: number, renderOrder: number) => ReactNode;
115
+ /** The symbol's slot height relative to the size preset (a standing figure is taller). Default 1. */
116
+ symbolAspect?: number;
117
+ };
118
+ /** The default text style: bold, centred, shrink-to-fit, with a soft dark shadow. */
119
+ export declare const INSTRUCTION_TEXT_STYLE: InstructionTextStyle;
120
+ /**
121
+ * The minimal instruction layout: the symbol stacked over the copy, a nudge
122
+ * line when nothing is in view, a status report, and on completion a small
123
+ * pop, a ring and (optionally) a fade-out. Mount inside a `ScreenSpaceUI`
124
+ * (`<Instruction>` does).
125
+ */
126
+ export declare const InstructionCue: ({ text, doneText, nudgeText, nudgeAfterMs, size, placement, offset, color, textStyle, nudgeTextStyle, renderText, motion, layout, hideOnComplete, onStatusChange, detector, symbol, symbolAspect, }: InstructionCueProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Hold-to-complete timing for a gesture prompt: the gesture must be held for
3
+ * `holdMs` to count, a dropout shorter than `graceMs` (a missed frame, a
4
+ * blink of the tracker) does not restart it, and once done it stays done
5
+ * until reset. Pure — feed it one `matched` sample per frame.
6
+ */
7
+ export type GestureHoldStatus = "waiting" | "holding" | "done";
8
+ export type GestureHoldState = {
9
+ status: GestureHoldStatus;
10
+ /** When the current hold began (ms), or `null`. */
11
+ since: number | null;
12
+ /** Last time the gesture matched (ms), or `null`. */
13
+ lastMatch: number | null;
14
+ /** 0..1 of `holdMs`; 1 once done. */
15
+ progress: number;
16
+ };
17
+ export declare const GESTURE_HOLD_DEFAULT_MS = 400;
18
+ export declare const GESTURE_HOLD_GRACE_MS = 150;
19
+ export declare const createGestureHoldState: () => GestureHoldState;
20
+ export declare const stepGestureHold: (state: GestureHoldState, matched: boolean, nowMs: number, holdMs?: number, graceMs?: number) => GestureHoldState;