@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,164 @@
1
+ ---
2
+ title: "Holistic Tracker"
3
+ description: "One MediaPipe inference for face, hands and pose, with unified results, dropout bridging and the same TrackingAnchor targets as the individual trackers."
4
+ sidebarTitle: "Holistic Tracker"
5
+ icon: "person-rays"
6
+ ---
7
+
8
+ `<HolisticTracker>` runs MediaPipe's Holistic Landmarker: a single graph that
9
+ returns face landmarks and blendshapes, left and right hand landmarks, and the
10
+ 33-point pose for **one person**. It is additive and opt-in; `FaceTracker`,
11
+ `HandTracker` and `BodyTracker` are unchanged.
12
+
13
+ ```tsx
14
+ import { HolisticTracker, TrackingAnchor } from "@vincentt-xr/sdk/tracking";
15
+
16
+ <HolisticTracker holdMs={250}>
17
+ <HolisticTracker.Face>
18
+ <TrackingAnchor target="face.noseTip">{/* … */}</TrackingAnchor>
19
+ </HolisticTracker.Face>
20
+ <HolisticTracker.Hand hand="right">
21
+ <TrackingAnchor target="hand.indexTip">{/* … */}</TrackingAnchor>
22
+ </HolisticTracker.Hand>
23
+ <HolisticTracker.Body>
24
+ <TrackingAnchor target="body.leftShoulder">{/* … */}</TrackingAnchor>
25
+ </HolisticTracker.Body>
26
+ </HolisticTracker>;
27
+ ```
28
+
29
+ ## Composition
30
+
31
+ - `<HolisticTracker>` acquires `XRModel.HOLISTIC_TRACKER` through the shared,
32
+ refcounted registry. Every descendant and every other `<HolisticTracker>`
33
+ in the session shares that one model and one inference per frame.
34
+ - `<HolisticTracker.Face>`, `<HolisticTracker.Hand hand="left" | "right">` and
35
+ `<HolisticTracker.Body>` are the stream groups. Each provides the same
36
+ tracker context as `FaceTracker` / `HandTracker` / `BodyTracker`, so
37
+ `TrackingAnchor` targets (`face.*`, `hand.*`, `body.*`, including
38
+ `body.neck` and `face.custom`) and `smoothing` work unchanged. The group is
39
+ hidden while its stream is absent, and its origin is the nose tip, the
40
+ wrist, or the head.
41
+ - `useHolisticTracking()` returns `{ node, ready, status, error }`. Read
42
+ `node.getResult()` inside `useFrame`; the result object is stable and
43
+ mutated in place.
44
+
45
+ ## The unified result
46
+
47
+ `HolisticResult` carries `version`, `timestampMs` and four streams that are
48
+ `null` when neither detected nor held:
49
+
50
+ | Stream | Coordinates | Extras |
51
+ | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
52
+ | `face` | 478 `NormalizedLandmark`s in MediaPipe image space (0..1, top-left, Y down) — the same space as `FaceTracker`'s `detectionResults` | `blendshapes` name → score, `confidence`, `held` |
53
+ | `leftHand`, `rightHand` | 21 `TrackerPoint`s: center origin, X right, Y up, Z toward the viewer — the same as `HandTracker`'s `coordinates` | `handedness`, `worldLandmarks` (metres, MediaPipe world space), `confidence`, `held` |
54
+ | `pose` | 33 `TrackerPoint`s — the same as `BodyTracker`'s `getLandmarks2D()` | `visibility[]`, `worldLandmarks`, `confidence`, `held` |
55
+
56
+ Mirroring of coordinates follows the individual trackers: no source-dependent
57
+ flip is applied to any stream. Hand **labels** are the person's anatomical
58
+ side on every source: holistic assigns hands from the pose, whose left/right
59
+ follow the image, so the SDK swaps them on the mirrored webcam feed.
60
+ `leftHand` is the person's left hand (on the viewer's left in the selfie view),
61
+ the same hand `<HandTracker hand="left">` selects, and `hands="left"` keeps it.
62
+ The pose's left/right landmark indices are swapped the same way, so `pose`
63
+ wrist 15 and `leftHand` are always the same physical hand. This differs from
64
+ `BodyTracker`'s raw `getLandmarks2D()`, whose indices follow the image (its
65
+ `TrackingAnchor` targets are the person's side). `pose` and `pose.worldLandmarks` are already the
66
+ person's own sides on every feed (index 11 = their left shoulder): never convert them again with
67
+ `personSide` / `feedSidedName` / `bodyLandmarkIndex`, which would flip them back. The `face` stream keeps the
68
+ mesh's indices; sided `TrackingAnchor` targets under `HolisticTracker.Face` are
69
+ the person's own (GROUNDING "Left and right").
70
+
71
+ **Pre-release note:** the default model is MediaPipe's published
72
+ `holistic_landmarker.task` on `storage.googleapis.com` (integrity pinned)
73
+ until the SDK CDN copy is published. Pass `modelUrl` to self-host it. The face has no transformation matrix in the holistic graph, so there is
74
+ no head rotation; use `<FaceTracker>` when children must roll with the head.
75
+
76
+ ### Confidence contract
77
+
78
+ - Face and hands: `1` while detected (the holistic graph does not report
79
+ per-landmark visibility for them).
80
+ - Pose: the mean landmark `visibility`.
81
+ - While a stream is **held** after a dropout, `held` is `true` and
82
+ `confidence` decays linearly from the last live value to `0` at `holdMs`.
83
+
84
+ ### Dropouts
85
+
86
+ Each stream runs through `FaceTrackMemory`, the SDK's one hold/predict bridge:
87
+ a missing stream is replayed for `holdMs` (default 250), extrapolated along its
88
+ last velocity for the first `predictMs` (default 0), then dropped. Set
89
+ `holdMs={0}` for immediate disappearance. Do not add app-side holds.
90
+
91
+ ## Options
92
+
93
+ | Prop | Applies | Notes |
94
+ | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------- |
95
+ | `modelUrl` | model creation | Defaults to MediaPipe's published `holistic_landmarker.task` (13.7 MB), SHA-384 pinned |
96
+ | `minFaceDetectionConfidence`, `minFacePresenceConfidence`, `minPoseDetectionConfidence`, `minPosePresenceConfidence`, `minHandLandmarksConfidence` | model creation | MediaPipe thresholds, default 0.5 |
97
+ | `outputFaceBlendshapes` | model creation | Default `true` |
98
+ | `delegate` | model creation | `"auto"` (default), `"GPU"`, `"CPU"`; see below |
99
+ | `targetFps` | run time | Overrides `perf.targetFps` for this model |
100
+ | `hands` | live | `"both"` (default), `"left"`, `"right"`, `"none"`; holistic tracks at most one of each |
101
+ | `analysisMaxDimension` | live | Longest side of the analysed frame, default 768 |
102
+ | `holdMs`, `predictMs` | live | Dropout bridge |
103
+ | `active` | live | Pause inference without unmounting |
104
+ | `onStatusChange(status, error)` | — | `loading` → `ready` / `error`; a transient inference error recovers on the next frame |
105
+
106
+ Model-creation options come from the first mounted consumer (like `numFaces`
107
+ on `FaceTracker`); changing them re-acquires the model. Live options apply
108
+ through `node.setOptions` and the last writer wins.
109
+
110
+ ## Delegate: GPU with an automatic CPU fallback
111
+
112
+ MediaPipe's holistic face-blendshape stage has no WebGL implementation for
113
+ one of its ops, so with `outputFaceBlendshapes` the GPU graph fails on its
114
+ first frame (`UNIMPLEMENTED … No support of const`). With the default
115
+ `delegate="auto"` the tracker rebuilds the graph on the CPU once: one
116
+ `console.warn`, status dips to `loading` during the rebuild, no refetch, and
117
+ `node.getDelegate()` reports `"CPU"` afterwards. CPU inference is several
118
+ times slower (tens to hundreds of milliseconds per frame on a laptop). When
119
+ blendshapes are not needed, `outputFaceBlendshapes={false}` keeps the whole
120
+ graph on the GPU. `delegate="GPU"` reports the failure as `error` instead of
121
+ retrying; `delegate="CPU"` starts on the CPU.
122
+
123
+ ## Coexistence with the individual trackers
124
+
125
+ - Holistic is a **separate model**. Mounting `<FaceTracker>` next to
126
+ `<HolisticTracker>` runs two inferences; pick one per scene.
127
+ - Inside a holistic scene, use the sub-trackers instead of `FaceTracker` /
128
+ `HandTracker` / `BodyTracker`. `GestureTracker` (named gestures) and
129
+ `Segmentation` are unrelated models and combine freely.
130
+ - `FaceMesh`, face readers (`useFaceInfo`, `useFaceResults`), face effects and
131
+ head binding read `XRModel.FACE_TRACKER`; they do not consume holistic
132
+ results. For those, keep `<FaceTracker>`.
133
+
134
+ ## Combined signals
135
+
136
+ `getHolisticSignals(result)` derives presence, `smile` / `mouthOpen`
137
+ blendshape scores, raised hands (pose wrist above its shoulder), open palms
138
+ (three of four fingers extended) and `greeting`: a raised open hand while
139
+ smiling. `isHandRaised` and `isPalmOpen` are exported on their own.
140
+
141
+ ## Migration and performance
142
+
143
+ - Replace `<FaceTracker>` + `<HandTracker>` + `<BodyTracker>` with one
144
+ `<HolisticTracker>` and three sub-trackers when a scene needs all three; the
145
+ anchors move over unchanged. Keep the individual trackers when only one
146
+ stream is needed: the holistic model is heavier than any single one.
147
+ - Default inference cap follows `perf.targetFps` (the template ships 24).
148
+ Lower `analysisMaxDimension` (512) when only the face and hands matter and
149
+ the subject is close.
150
+ - First load downloads 13.7 MB plus the shared MediaPipe engine.
151
+
152
+ ## Manual validation
153
+
154
+ Run `/holistic-tracking` in the playground:
155
+
156
+ | Case | Source | Expect |
157
+ | ----------------- | ------------------------------------ | ----------------------------------------------------------------------------------------- |
158
+ | All streams | "Person Fullbody" | Face, both hands and pose dots follow; HUD shows every stream present |
159
+ | Hands option | panel `hands: left` | Right hand dots disappear immediately; left keeps tracking |
160
+ | Hold | panel `holdMs: 0` vs 250 | Dots vanish instantly on a dropout vs. hold for a quarter second with decaying confidence |
161
+ | Combined gesture | webcam, raise an open hand and smile | The raised hand turns yellow and the HUD reports the greeting |
162
+ | Status | reload | `loading` → `ready`; a bad `modelUrl` reports `error` with the message |
163
+ | Delegate fallback | blendshapes on, then off | HUD shows `delegate CPU` after one warning; with blendshapes off it stays on `GPU` |
164
+ | Coexistence | mount `<FaceTracker>` too | Two models in the debugger; no crash, no shared state |
@@ -0,0 +1,323 @@
1
+ ---
2
+ title: "Instructions"
3
+ description: "Prompts that ask for a gesture, an expression or a pose with a 3D hint and your copy — ready-made presets, and every layer underneath open for your own vocabulary, detection, look and layout."
4
+ sidebarTitle: "Instructions"
5
+ icon: "person-chalkboard"
6
+ ---
7
+
8
+ An instruction asks the person to do something and waits until they do. It shows a 3D hint, puts
9
+ your copy under it, and completes once the pose has been held for `holdMs`. Everything lives in one door:
10
+
11
+ ```tsx
12
+ import { … } from "@vincentt-xr/sdk/instructions";
13
+ ```
14
+
15
+ There are three ready-made presets:
16
+
17
+ - [Hand Instructions](/api/hand-instructions)
18
+ - [Face Instructions](/api/face-instructions)
19
+ - [Body Instructions](/api/body-instructions)
20
+
21
+ Each preset is built from four open layers, and you can use any layer on its own from outside the SDK.
22
+
23
+ | Layer | What you get |
24
+ | -------------- | --------------------------------------------------------------------------------------------------------------------------- |
25
+ | **Vocabulary** | The built-in gestures, expressions and poses; `defineHandGesture` / `defineFaceExpression` / `defineBodyPose` for your own. |
26
+ | **Detection** | `useHandGesture`, `useFaceExpression`, `useBodyPose`, and `useInstructionHold` for any condition. |
27
+ | **Hint** | `HandGestureHint`, `FaceExpressionHint`, `BodyPoseHint` with `look` and `loop`, and the kit to build a hint on any model. |
28
+ | **Layout** | `<Instruction>`: any detector, any symbol, your text style, motion and proportions. |
29
+
30
+ The rest of this page goes from small changes to a fully custom prompt.
31
+
32
+ ## 1. Restyle a preset
33
+
34
+ Every preset takes the same layout and text options, plus `look` and `loop` for its hint. Each is
35
+ merged over that preset's default, so you only write what you change.
36
+
37
+ ```tsx
38
+ <HandInstruction
39
+ gesture="peace"
40
+ model={hand.scene}
41
+ poses={hand.animations}
42
+ size={0.2} // a fraction of the screen height, or "sm" | "md" | "lg"
43
+ look={{
44
+ ghost: { color: "#7dd3fc", core: 0.35 }, // tint, opacity facing you, at the rim (`rim`), rim whitening
45
+ halo: false, // turn a layer off
46
+ glow: { color: "#38bdf8", full: 1 },
47
+ highlight: { opacity: 1 },
48
+ }}
49
+ loop={{ seconds: 1.6, stagger: 0 }} // timing, hold share, start, easing, finger stagger (hand)
50
+ textStyle={{ fontFamily: "Georgia, serif", strokeColor: "#0c4a6e", strokeWidth: 6 }}
51
+ motion={{ ring: { color: "#38bdf8" }, pop: 0.2, bob: 0 }}
52
+ layout={{ gap: 0.2, textHeight: 0.35 }}
53
+ />
54
+ ```
55
+
56
+ **`look`** (`HintLook`) controls how the hint is drawn:
57
+
58
+ - `ghost` (`GhostOptions`): `color`, `core` (opacity facing you), `rim` (opacity at the silhouette),
59
+ `whiten`.
60
+ - `parts`: overrides per model material name, e.g. `{ iris: { color: "#2a2732" } }`; `null` removes
61
+ a default tint.
62
+ - `halo`: `width` in model units, `color`, `opacity`.
63
+ - `glow`: `color`, `size`, `idle` and `full` opacity.
64
+ - `highlight`: `opacity`, `whiten`, and `idle` (the share shown while relaxed).
65
+ - `matcap`: your own shading texture.
66
+ - `material`: any three.js material, replacing the ghost.
67
+
68
+ Any layer can be `false` to turn it off. The defaults are exported:
69
+
70
+ - `HAND_HINT_LOOK` and `HAND_HINT_LOOP`
71
+ - `FACE_HINT_LOOK` and `FACE_HINT_LOOP`
72
+ - `BODY_HINT_LOOK` and `BODY_HINT_LOOP`
73
+
74
+ `mergeHintLook(base, over)` merges two looks the same way the presets do.
75
+
76
+ **`loop`** (`HintLoop`) controls how the hint animates:
77
+
78
+ - `seconds` per cycle; `0` holds the pose.
79
+ - `hold`: the share of the cycle held at the full pose.
80
+ - `from`: where each cycle starts, 0 = the model's rest.
81
+ - `easing`.
82
+ - The hand also takes `stagger`, how far apart the fingers move; `0` moves them together.
83
+
84
+ **Text and layout** apply to every preset and to `<Instruction>`:
85
+
86
+ - `textStyle` / `nudgeTextStyle`: any `TextLabel` style (font, weight, stroke, shadow, background),
87
+ merged over `INSTRUCTION_TEXT_STYLE`.
88
+ - `color`: a shortcut for the text colour.
89
+ - `motion` (`InstructionMotion`):
90
+ - `fadeIn` and `fadeOut`, in seconds;
91
+ - `rise`, `bob`, `pop`, `popSeconds` and `nudgePulse`;
92
+ - `ring`: `{ color, seconds, opacity, from, to }`, or `false`.
93
+ - `layout` (`InstructionLayout`): `textHeight`, `gap`, `nudgeHeight`, `textWidth` and `edgeMargin`.
94
+ Each is relative to the size, except `edgeMargin`, which is a fraction of the screen height.
95
+ - `renderText(slot)`: draw each line yourself. You get `{ text, role, width, height, renderOrder,
96
+ style }`. Use transparent materials, because the layout fades every mesh under it.
97
+
98
+ ## 2. Your own gesture, expression or pose
99
+
100
+ A definition holds three things:
101
+
102
+ - its default copy (`label`);
103
+ - how it is detected: a `rule`, a `match` function, or both, in which case both must pass;
104
+ - how the hint shows it (`hint`).
105
+
106
+ Pass a definition anywhere a built-in name goes: the presets, the hooks, the hints and the pure
107
+ `match*` functions.
108
+
109
+ ```tsx
110
+ const hangLoose = defineHandGesture({
111
+ label: "Hang loose",
112
+ rule: { digits: { thumb: true, index: false, middle: false, ring: false, pinky: true } },
113
+ match: (shape) => shape.curl.pinky < 0.35, // and the pinky really straight
114
+ hint: { clip: "callMe", roll: 103, highlight: ["thumb", "pinky"] },
115
+ });
116
+
117
+ const yawn = defineFaceExpression({
118
+ label: "Big yawn",
119
+ rule: { atLeast: { jawOpen: 0.7 } },
120
+ hint: { targets: { surprised: 1, smile: 0.3 } }, // a weighted mix of morph targets
121
+ });
122
+
123
+ const flex = defineBodyPose({
124
+ label: "Show your muscles",
125
+ match: (shape) =>
126
+ shape.arms.left.bend > 70 && shape.arms.right.bend > 70 && shape.arms.left.up > 0,
127
+ hint: { clip: "flex", arms: ["left", "right"] }, // a clip in your own figure
128
+ });
129
+
130
+ <HandInstruction gesture={hangLoose} model={hand.scene} poses={hand.animations} />;
131
+ ```
132
+
133
+ The hint can name a clip in your own model:
134
+
135
+ - **Hand:** a `HandHintPose`: an authored `clip`, or a procedural pose (`curl`, `spread`,
136
+ `thumbTuck`, `thumbTo`), plus the view (`yaw`, `roll`, `aimThumb`) and `highlight`.
137
+ - **Face:** `{ target }` or `{ targets }`.
138
+ - **Body:** `{ clip, arms }`.
139
+
140
+ `resolveHandGesture`, `resolveFaceExpression` and `resolveBodyPose` turn a name or definition into
141
+ the full definition.
142
+
143
+ ## 3. Tune detection
144
+
145
+ Every hook takes the same kinds of input:
146
+
147
+ - a built-in name;
148
+ - a rule;
149
+ - a match function:
150
+ - hand: `(shape, side) => boolean`;
151
+ - face: `(blendshapes, face) => boolean`;
152
+ - body: `(shape) => boolean`;
153
+ - a definition.
154
+
155
+ They also take `holdMs`, `graceMs`, `onComplete` and `active`.
156
+
157
+ The hand and body hooks take `limits`: thresholds overridden for that detector only. The defaults,
158
+ `HAND_SHAPE_LIMITS` and `BODY_SHAPE_LIMITS`, are frozen. The pure classifiers take them too:
159
+
160
+ ```tsx
161
+ const thumb = useHandGesture("thumbUp", { limits: { thumbVertical: 0.5 }, holdMs: 800 });
162
+ const shape = analyzeBodyShape(landmarks, { mirrored, limits: { raisedAboveShoulder: 1 } });
163
+ ```
164
+
165
+ Every hook returns an **`InstructionDetector`** plus its own readout (`shapesRef`, `faceRef`,
166
+ `shapeRef`):
167
+
168
+ - `status`: re-renders only when it changes;
169
+ - `holdRef`: `progress` 0..1;
170
+ - `matchedRef`: matched on this frame;
171
+ - `isInView()`;
172
+ - `reset()`.
173
+
174
+ **Any condition.** `useInstructionHold(match, options)` holds any test you write; `match` runs every
175
+ frame. To combine detectors, read their `matchedRef`s, and call those hooks first in the same
176
+ component:
177
+
178
+ ```tsx
179
+ const hand = useHandGesture("palm");
180
+ const face = useFaceExpression("smile");
181
+ const both = useInstructionHold(() => hand.matchedRef.current && face.matchedRef.current, {
182
+ isInView: () => hand.isInView() && face.isInView(),
183
+ holdMs: 600,
184
+ onComplete: start,
185
+ });
186
+ ```
187
+
188
+ A new name, rule or definition value starts a new prompt. A match function is read live and doesn't
189
+ restart the hold. For a new prompt with the same function, call `reset()` or change the component's
190
+ React `key`.
191
+
192
+ ## 4. A fully custom prompt: `<Instruction>`
193
+
194
+ The layout on its own: any detector, any symbol.
195
+
196
+ ```tsx
197
+ <Instruction
198
+ detector={both} // any hook result, or your own { status, isInView }
199
+ text="Wave and smile"
200
+ nudgeText="Show your hand and your face" // default null (no nudge) here
201
+ symbol={(height, renderOrder) => (
202
+ <TextLabel
203
+ text="🖐️😊"
204
+ bgColor="transparent"
205
+ aspect={2}
206
+ scale={[height * 2, height, 1]}
207
+ renderOrder={renderOrder}
208
+ />
209
+ )}
210
+ renderText={({ text, width, height, renderOrder }) => (
211
+ <TextLabel
212
+ text={text}
213
+ bgColor="#fde68a"
214
+ color="#0f172a"
215
+ borderRadius={60}
216
+ bgFit="text"
217
+ aspect={width / height}
218
+ scale={[width, height, 1]}
219
+ renderOrder={renderOrder}
220
+ />
221
+ )}
222
+ />
223
+ ```
224
+
225
+ It takes every option from section 1, plus `symbolAspect` (a taller slot, e.g. 2.1 for a standing
226
+ figure) and `active`. Mount it inside `XRScene`; it draws in its own `ScreenSpaceUI`, above the AR
227
+ content (`INSTRUCTION_RENDER_ORDER`, 2000 and up). The symbol can be:
228
+
229
+ - a preset hint, e.g. `HandGestureHint` with your definition and `look`;
230
+ - an image (`ScreenImage`), a `SpriteAnimation` or an emoji;
231
+ - your own 3D model.
232
+
233
+ ## 5. A hint on your own model
234
+
235
+ The presets' hints are built from a small kit you can use on any model:
236
+
237
+ - **`useGhostModel(model, look, { base, renderOrder })`** makes a ghost copy of the model.
238
+ - It applies a matcap per part, a depth pre-pass, the halo and the glow, all from one `look`.
239
+ - It returns `object` to render, and `meshes` (each with its twins, which need the same morph
240
+ weights).
241
+ - `setHighlight(bone => 0..1)` lights up bones; call `setStrength(amount)` every frame.
242
+ - **`HintStage`** handles the staging. It fits `span` to `height`, mirrors the model, draws the glow
243
+ disc behind it and runs the auto orbit.
244
+ - **`sampleHintLoop(time, loop)`** samples the loop: rest → pose (held) → rest. It returns `{ amount,
245
+ drive, phase, closing }`.
246
+ - **`createClipBlend(root, fromClip, toClip)`** and **`createMorphBlend(meshes, targets)`** pose the
247
+ model; `apply(amount)` each frame.
248
+ - **`orbitSpan(points, middle, amplitude)`** fits the model over the whole orbit.
249
+
250
+ ```tsx
251
+ const MyHint = ({ height, renderOrder }: { height: number; renderOrder: number }) => {
252
+ const ghost = useGhostModel(
253
+ face.scene,
254
+ { ghost: { color: "#fde68a" } },
255
+ { base: FACE_HINT_LOOK, renderOrder },
256
+ );
257
+ const blend = useMemo(
258
+ () =>
259
+ createMorphBlend(
260
+ ghost.meshes.flatMap(({ mesh, twins }) => [mesh, ...twins]),
261
+ { surprised: 1, wink: 1 },
262
+ ),
263
+ [ghost.meshes],
264
+ );
265
+ const frame = useMemo(() => {
266
+ const box = new THREE.Box3().setFromObject(ghost.object);
267
+ const size = box.getSize(new THREE.Vector3());
268
+ return {
269
+ offset: box.getCenter(new THREE.Vector3()).negate(),
270
+ span: Math.max(size.x, size.y) * 1.2,
271
+ };
272
+ }, [ghost.object]);
273
+ useFrame(({ clock }) => {
274
+ const { amount } = sampleHintLoop(clock.elapsedTime, { seconds: 2 });
275
+ blend.apply(amount);
276
+ ghost.setStrength(amount);
277
+ });
278
+ return (
279
+ <HintStage
280
+ height={height}
281
+ span={frame.span}
282
+ orbit={20}
283
+ glow={ghost.glowMaterial}
284
+ renderOrder={renderOrder}
285
+ >
286
+ <group position={frame.offset}>
287
+ <primitive object={ghost.object} />
288
+ </group>
289
+ </HintStage>
290
+ );
291
+ };
292
+ ```
293
+
294
+ The material factories are exported for full control: `createGhostMaterial`, `createHaloMaterial`,
295
+ `createGlowMaterial`, `createDepthPrepassMaterial`, `createHintMatcap`, `addHintTwins` and
296
+ `assignHintMaterials`. Their opacities, colours and widths are uniforms (`userData.ghost`,
297
+ `userData.halo`). The hold timing is pure too: `createGestureHoldState`, `stepGestureHold`,
298
+ `GESTURE_HOLD_DEFAULT_MS` (400) and `GESTURE_HOLD_GRACE_MS` (150).
299
+
300
+ ## Example
301
+
302
+ `/custom-instruction` has three demos, built only from this door:
303
+
304
+ 1. **Hang loose:** a custom gesture on the hand preset, with a restyled look, loop, text style and
305
+ ring.
306
+ 2. **Palm and smile:** an open palm and a smile held together. It uses an emoji symbol and a pill
307
+ text component.
308
+ 3. **Surprised wink:** your own hint, mixing two morph targets, for an expression with a match
309
+ function.
310
+
311
+ ## Manual visual test plan
312
+
313
+ Open `/custom-instruction`.
314
+
315
+ 1. **Restyled preset**: the hang-loose hand is cyan with no halo and a blue glow. The thumb and
316
+ pinky are brighter, the fingers move together, and the text is a serif with a dark stroke. On the
317
+ webcam, do the gesture: a large cyan ring plays, and "Nice!" replaces the copy.
318
+ 2. **Any condition**: the emoji pair stands over a yellow pill. Show an open palm only: it stays
319
+ `detected`. Then smile with the palm up: it holds, then completes.
320
+ 3. **Own hint**: the gold face loops into a surprised wink with a dark-gold halo. A plain wink or a
321
+ plain open mouth doesn't complete it; both together do.
322
+ 4. **Presets unchanged**: `/hand-instructions`, `/face-instructions` and `/body-instructions` look
323
+ and behave as before. The exception is peace, point and the counts, which now show the palm.