@vincentt-xr/sdk 2.0.0-alpha.1 → 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 (883) hide show
  1. package/GROUNDING.md +7984 -120
  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 +67 -3
  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 +70 -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 +2 -2
  130. package/dist/components/FaceRetouch/Background.d.ts +7 -6
  131. package/dist/components/FaceRetouch/FaceRetouch.d.ts +52 -0
  132. package/dist/components/FaceRetouch/index.d.ts +2 -8
  133. package/dist/components/FaceRetouch/landmarkMask.d.ts +0 -5
  134. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  135. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +3 -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 -3
  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 +1 -1
  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 +10 -0
  173. package/dist/components/HandTracking2D/HandVisual.d.ts +1 -1
  174. package/dist/components/HandTracking2D/index.d.ts +1 -1
  175. package/dist/components/HandTracking2DController/index.d.ts +1 -1
  176. package/dist/components/HandTracking3D/index.d.ts +1 -1
  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 -87
  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 -20
  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 -161
  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/renderOutputTarget.d.ts +12 -0
  323. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  324. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  325. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  326. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  327. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  328. package/dist/components/XRViewport/constants.d.ts +24 -0
  329. package/dist/components/XRViewport/contexts.d.ts +6 -0
  330. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  331. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  332. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  333. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  334. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  335. package/dist/components/XRViewport/index.d.ts +3 -118
  336. package/dist/components/XRViewport/layout.d.ts +16 -0
  337. package/dist/components/XRViewport/slots.d.ts +16 -0
  338. package/dist/components/XRViewport/types.d.ts +89 -0
  339. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  340. package/dist/components/index.d.ts +24 -0
  341. package/dist/components/occluder/skinnedOccluder.d.ts +39 -0
  342. package/dist/config/index.d.ts +1 -1
  343. package/dist/constants/index.d.ts +4 -1
  344. package/dist/context-DTxSQvp4.js +13 -0
  345. package/dist/context-hA0Rb2Xa.cjs +1 -0
  346. package/dist/contexts-DQc7zyqT.cjs +1 -0
  347. package/dist/contexts-Y_FhdnIv.js +667 -0
  348. package/dist/coordinates/feed.d.ts +52 -0
  349. package/dist/coordinates/index.d.ts +7 -0
  350. package/dist/coordinates/side.d.ts +40 -0
  351. package/dist/coordinates/spaces.d.ts +49 -0
  352. package/dist/coordinates/viewport.d.ts +22 -0
  353. package/dist/coordinates/world.d.ts +15 -0
  354. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  355. package/dist/debug-ui/default-setting.cjs +2 -2
  356. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  357. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  358. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  359. package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
  360. package/dist/debug-ui/hand-joints-2d/index.d.ts +1 -1
  361. package/dist/debug-ui/hand-tracking-2d/index.d.ts +1 -1
  362. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +1 -1
  363. package/dist/debug-ui/hand-tracking-3d/index.d.ts +1 -1
  364. package/dist/debug-ui/hierarchy-panel/index.d.ts +30 -0
  365. package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
  366. package/dist/debug-ui/index.d.ts +43 -5
  367. package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
  368. package/dist/debug-ui/layer-panel/index.d.ts +3 -2
  369. package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
  370. package/dist/debug-ui/media-source/index.d.ts +4 -2
  371. package/dist/debug-ui/media-source/media-preset.d.ts +12 -0
  372. package/dist/debug-ui/media-source/session.d.ts +40 -0
  373. package/dist/debug-ui/media-source.cjs +1 -1
  374. package/dist/debug-ui/media-source.js +8 -4
  375. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  376. package/dist/debug-ui/object-inspector-panel/index.d.ts +26 -0
  377. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  378. package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
  379. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  380. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +11 -0
  381. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  382. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +9 -0
  383. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  384. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  385. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  386. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  387. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  388. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  389. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  390. package/dist/debug-ui/screen-image-settings/index.d.ts +6 -2
  391. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  392. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  393. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  394. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  395. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  396. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  397. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -122
  398. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  399. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  400. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  401. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  402. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  403. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  404. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  405. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  406. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  407. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  408. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  409. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  410. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  411. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  412. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  413. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  414. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  415. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  416. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  417. package/dist/debug-ui/screen-text-settings/types.d.ts +11 -0
  418. package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
  419. package/dist/debug-ui/settings-panel/index.d.ts +6 -1
  420. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +6 -3
  421. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  422. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  423. package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
  424. package/dist/debug-ui.cjs +3 -13
  425. package/dist/debug-ui.js +8166 -5178
  426. package/dist/detector-K8aej4MB.js +59 -0
  427. package/dist/detector-ijypGtse.cjs +1 -0
  428. package/dist/drawNormalizedCrop-C4KFaRne.cjs +1 -0
  429. package/dist/drawNormalizedCrop-DG3gtJxf.js +135 -0
  430. package/dist/entries/all.d.ts +4 -1
  431. package/dist/entries/core.d.ts +74 -8
  432. package/dist/entries/face-effects.d.ts +130 -12
  433. package/dist/entries/instructions.d.ts +48 -0
  434. package/dist/entries/internal.d.ts +5 -2
  435. package/dist/entries/low-level.d.ts +101 -6
  436. package/dist/entries/particles.d.ts +15 -0
  437. package/dist/entries/product.d.ts +11 -0
  438. package/dist/entries/scene-object.d.ts +10 -0
  439. package/dist/entries/tracking.d.ts +110 -2
  440. package/dist/face-action/index.d.ts +34 -0
  441. package/dist/face-atlas/attributes.d.ts +30 -0
  442. package/dist/face-atlas/eyes.d.ts +272 -0
  443. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  444. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  445. package/dist/face-atlas/glsl/common.d.ts +55 -0
  446. package/dist/face-atlas/glsl/design.d.ts +49 -0
  447. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  448. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  449. package/dist/face-atlas/glsl/format.d.ts +4 -0
  450. package/dist/face-atlas/glsl/index.d.ts +59 -0
  451. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  452. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  453. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  454. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  455. package/dist/face-atlas/guide.d.ts +51 -0
  456. package/dist/face-atlas/index.d.ts +25 -0
  457. package/dist/face-atlas/lead.d.ts +117 -0
  458. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  459. package/dist/face-atlas/masks.d.ts +53 -0
  460. package/dist/face-atlas/obj.d.ts +69 -0
  461. package/dist/face-atlas/polylines.d.ts +63 -0
  462. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  463. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  464. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  465. package/dist/face-atlas/probe/constants.d.ts +137 -0
  466. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  467. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  468. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  469. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  470. package/dist/face-atlas/probe/stats.d.ts +143 -0
  471. package/dist/face-atlas/probe/targets.d.ts +70 -0
  472. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  473. package/dist/face-atlas/quality.d.ts +28 -0
  474. package/dist/face-atlas/regions.d.ts +31 -0
  475. package/dist/face-atlas/registry.d.ts +252 -0
  476. package/dist/face-atlas/renderState.d.ts +86 -0
  477. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  478. package/dist/face-atlas/shading.d.ts +406 -0
  479. package/dist/face-atlas/shapes.d.ts +86 -0
  480. package/dist/face-atlas/sides.d.ts +41 -0
  481. package/dist/face-atlas/skinMask.d.ts +35 -0
  482. package/dist/face-atlas/surface.d.ts +155 -0
  483. package/dist/face-atlas/topology.d.ts +44 -0
  484. package/dist/face-attribute-expression/index.d.ts +10 -0
  485. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  486. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  487. package/dist/face-character/bindFaceModel.d.ts +106 -0
  488. package/dist/face-character/canonicalFace.d.ts +17 -0
  489. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  490. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  491. package/dist/face-character/driveFaceModel.d.ts +57 -0
  492. package/dist/face-character/expressionOutputs.d.ts +45 -0
  493. package/dist/face-character/faceExpressions.d.ts +104 -0
  494. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  495. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  496. package/dist/face-character/faceMorph.d.ts +77 -0
  497. package/dist/face-character/faceMorphs.d.ts +46 -0
  498. package/dist/face-character/facePhoto.d.ts +138 -0
  499. package/dist/face-character/facePiercings.d.ts +116 -0
  500. package/dist/face-character/facePin.d.ts +131 -0
  501. package/dist/face-character/faceReprojection.d.ts +273 -0
  502. package/dist/face-character/faceReprojector.d.ts +171 -0
  503. package/dist/face-character/faceRig.d.ts +176 -0
  504. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  505. package/dist/face-character/faceTexture.d.ts +169 -0
  506. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  507. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  508. package/dist/face-character/faceTextureStats.d.ts +298 -0
  509. package/dist/face-character/faceTransfer.d.ts +396 -0
  510. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  511. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  512. package/dist/face-character/faceWarp3D.d.ts +101 -0
  513. package/dist/face-character/faceless.d.ts +79 -0
  514. package/dist/face-character/featureWarp.d.ts +28 -0
  515. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  516. package/dist/face-character/liveValue.d.ts +12 -0
  517. package/dist/face-character/memo.d.ts +15 -0
  518. package/dist/face-effects.cjs +2271 -289
  519. package/dist/face-effects.js +14240 -3562
  520. package/dist/face-expression/index.d.ts +182 -0
  521. package/dist/face-info/blendshapes.d.ts +3 -0
  522. package/dist/face-info/derive.d.ts +8 -0
  523. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  524. package/dist/face-info/getFaceInfo.d.ts +8 -0
  525. package/dist/face-info/index.d.ts +8 -0
  526. package/dist/face-info/landmarks.d.ts +35 -0
  527. package/dist/face-info/types.d.ts +69 -0
  528. package/dist/gestures/definitions.d.ts +98 -0
  529. package/dist/gestures/detector.d.ts +87 -0
  530. package/dist/gestures/index.d.ts +8 -0
  531. package/dist/gestures/measures.d.ts +114 -0
  532. package/dist/gestures/settings.d.ts +49 -0
  533. package/dist/getFaceInfo-BafgGT27.js +62 -0
  534. package/dist/getFaceInfo-BzlwHMjX.cjs +1 -0
  535. package/dist/hand/armFit.d.ts +46 -0
  536. package/dist/hand/armMask.d.ts +190 -0
  537. package/dist/hand/forearm.d.ts +114 -0
  538. package/dist/hand/handCutout.d.ts +23 -0
  539. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  540. package/dist/hand/handEffect.d.ts +38 -0
  541. package/dist/hand/handGestures.d.ts +524 -0
  542. package/dist/{handJoints2d.d.ts → hand/handJoints2d.d.ts} +1 -1
  543. package/dist/hand/handNail.d.ts +73 -0
  544. package/dist/hand/handPose.d.ts +98 -0
  545. package/dist/hand/handRigSolver.d.ts +159 -0
  546. package/dist/hand/handTattoo.d.ts +81 -0
  547. package/dist/hand/handTouch.d.ts +240 -0
  548. package/dist/{handTracking2d.d.ts → hand/handTracking2d.d.ts} +1 -1
  549. package/dist/{handTracking2dController.d.ts → hand/handTracking2dController.d.ts} +1 -1
  550. package/dist/{handTracking3d.d.ts → hand/handTracking3d.d.ts} +1 -1
  551. package/dist/hand/nailImageMask.d.ts +40 -0
  552. package/dist/hand/nailMaskFingers.d.ts +23 -0
  553. package/dist/hand/nailTipRefine.d.ts +37 -0
  554. package/dist/hand/wrist.d.ts +44 -0
  555. package/dist/hand/wristFilter.d.ts +44 -0
  556. package/dist/hooks/faceResults.d.ts +1 -1
  557. package/dist/hooks/selectors.d.ts +77 -4
  558. package/dist/hooks/useBodies.d.ts +39 -0
  559. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  560. package/dist/hooks/useFaceAction.d.ts +3 -0
  561. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  562. package/dist/hooks/useFaceDetection.d.ts +18 -0
  563. package/dist/hooks/useFaceInfo.d.ts +19 -0
  564. package/dist/hooks/useFaceInfos.d.ts +15 -0
  565. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  566. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  567. package/dist/hooks/useFrameCapture.d.ts +18 -0
  568. package/dist/hooks/useGesture.d.ts +39 -0
  569. package/dist/hooks/useIrisTracking.d.ts +45 -0
  570. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  571. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  572. package/dist/hooks/useTrackerContext.d.ts +14 -2
  573. package/dist/hooks/useXRDiagnostics.d.ts +81 -0
  574. package/dist/hooks/useXRModel.d.ts +12 -0
  575. package/dist/hooks/useXRSession/facade.d.ts +47 -2
  576. package/dist/hooks/useXRSession/index.d.ts +2 -2
  577. package/dist/hooks/useXRSession/reason.d.ts +21 -0
  578. package/dist/hooks/useXRSession/registry.d.ts +23 -0
  579. package/dist/hooks/useXRSession/store.d.ts +64 -7
  580. package/dist/index-BZoBxyLn.js +1103 -0
  581. package/dist/index-By_LCo2V.cjs +1 -0
  582. package/dist/index-C-Mryx_u.cjs +21 -0
  583. package/dist/index-CKRN-xJp.js +3740 -0
  584. package/dist/index-CUldCMRl.js +188 -0
  585. package/dist/index-Cyk_VIZE.js +1432 -0
  586. package/dist/index-D-4w34GO.cjs +1 -0
  587. package/dist/index-DiIoHK_4.js +442 -0
  588. package/dist/index-Dv3WnY9n.cjs +46 -0
  589. package/dist/index-ItufYyHH.cjs +1 -0
  590. package/dist/index-S3gqudT6.cjs +1 -0
  591. package/dist/index-Sho4F4it.cjs +1 -0
  592. package/dist/index-iIQ9jBDb.js +240 -0
  593. package/dist/index-vr2ichWQ.js +190 -0
  594. package/dist/instructions.cjs +30 -0
  595. package/dist/instructions.js +1528 -0
  596. package/dist/internal-Bb9ZXbpr.cjs +1 -0
  597. package/dist/{internal-Cae1ps15.js → internal-Gt1wn6Z3.js} +152 -127
  598. package/dist/internal.cjs +1 -1
  599. package/dist/internal.js +16 -9
  600. package/dist/iris/compute.d.ts +27 -0
  601. package/dist/iris/index.d.ts +4 -0
  602. package/dist/iris/lead.d.ts +19 -0
  603. package/dist/iris/types.d.ts +89 -0
  604. package/dist/landmarkMask-CvN-L5NT.cjs +1 -0
  605. package/dist/landmarkMask-DHivVjJm.js +225 -0
  606. package/dist/landmarks-BEjJXcnE.cjs +1 -0
  607. package/dist/landmarks-DtCAFV_m.js +76 -0
  608. package/dist/low-level.cjs +1 -1
  609. package/dist/low-level.js +1766 -85
  610. package/dist/main.cjs +1 -73
  611. package/dist/main.js +1286 -1704
  612. package/dist/material/MaterialFill.d.ts +20 -0
  613. package/dist/material/MeshMaterial.d.ts +14 -0
  614. package/dist/material/index.d.ts +2 -0
  615. package/dist/models/Base/index.d.ts +49 -0
  616. package/dist/models/Body/index.d.ts +30 -1
  617. package/dist/models/Face/constants.d.ts +8 -0
  618. package/dist/models/Face/index.d.ts +5 -12
  619. package/dist/models/Face/rotation.d.ts +18 -0
  620. package/dist/models/Hand/GestureTracking.d.ts +1 -1
  621. package/dist/models/Hand/HandTracking.d.ts +17 -1
  622. package/dist/models/Holistic/index.d.ts +49 -0
  623. package/dist/models/Holistic/result.d.ts +68 -0
  624. package/dist/models/Segmentation/index.d.ts +6 -3
  625. package/dist/models/SemanticSegmentation/index.d.ts +31 -0
  626. package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
  627. package/dist/models/index.d.ts +2 -0
  628. package/dist/models/nodeSource.d.ts +9 -0
  629. package/dist/particles/emission.d.ts +24 -0
  630. package/dist/particles/eyes.d.ts +24 -0
  631. package/dist/particles/glsl.d.ts +14 -0
  632. package/dist/particles/index.d.ts +10 -0
  633. package/dist/particles/motion.d.ts +42 -0
  634. package/dist/particles/presets.d.ts +12 -0
  635. package/dist/particles/ring.d.ts +58 -0
  636. package/dist/particles/selfTest.d.ts +53 -0
  637. package/dist/particles/settings.d.ts +127 -0
  638. package/dist/particles/shapes.d.ts +29 -0
  639. package/dist/particles/spawner.d.ts +71 -0
  640. package/dist/particles/system.d.ts +66 -0
  641. package/dist/particles.cjs +122 -0
  642. package/dist/particles.js +999 -0
  643. package/dist/product/ProductDimensions.d.ts +16 -0
  644. package/dist/product/ProductHotspot.d.ts +16 -0
  645. package/dist/product/ProductViewer.d.ts +9 -0
  646. package/dist/product/details.d.ts +53 -0
  647. package/dist/product/index.d.ts +14 -0
  648. package/dist/product/loadModelViewer.d.ts +4 -0
  649. package/dist/product/types.d.ts +71 -0
  650. package/dist/product/useProductAr.d.ts +37 -0
  651. package/dist/product/useProductDetails.d.ts +60 -0
  652. package/dist/product.cjs +1 -0
  653. package/dist/product.js +414 -0
  654. package/dist/providers-CEZQgz2s.cjs +62 -0
  655. package/dist/providers-CRuaD8bi.js +424 -0
  656. package/dist/quality/XRQualityController.d.ts +25 -0
  657. package/dist/quality/controller.d.ts +33 -0
  658. package/dist/quality/index.d.ts +6 -0
  659. package/dist/quality/types.d.ts +100 -0
  660. package/dist/quality/useXRQuality.d.ts +28 -0
  661. package/dist/render/renderGroups.d.ts +47 -0
  662. package/dist/render/renderPasses.d.ts +26 -0
  663. package/dist/render/sceneBeforeRender.d.ts +12 -0
  664. package/dist/renderGroups-BADrepA1.cjs +1 -0
  665. package/dist/renderGroups-CNB99dZ2.js +152 -0
  666. package/dist/renderPasses-DgxUKn9b.cjs +158 -0
  667. package/dist/renderPasses-DuapJA6V.js +1290 -0
  668. package/dist/renderState-CJNmj5jz.js +39 -0
  669. package/dist/renderState-apSfg4eR.cjs +1 -0
  670. package/dist/scene-object/index.d.ts +146 -0
  671. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  672. package/dist/scene-object.cjs +1 -0
  673. package/dist/scene-object.js +40 -0
  674. package/dist/{screenImageSettings.d.ts → screen-image/screenImageSettings.d.ts} +9 -2
  675. package/dist/{screenTextSettings.d.ts → screen-text/screenTextSettings.d.ts} +18 -2
  676. package/dist/screen2d/coordinates.d.ts +107 -0
  677. package/dist/screen2d/index.d.ts +3 -0
  678. package/dist/screen2d/screenTransform.d.ts +60 -0
  679. package/dist/screen2d/smoothing.d.ts +5 -0
  680. package/dist/segmentation-BOZJdWFC.js +1911 -0
  681. package/dist/segmentation-J8GoNBvP.cjs +1 -0
  682. package/dist/segmentation2d/faceMemory.d.ts +28 -0
  683. package/dist/segmentation2d/faceRegions.d.ts +24 -0
  684. package/dist/segmentation2d/index.d.ts +9 -0
  685. package/dist/segmentation2d/maskUv.d.ts +23 -0
  686. package/dist/segmentation2d/rasterize.d.ts +14 -0
  687. package/dist/segmentation2d/types.d.ts +52 -0
  688. package/dist/selectors-BvJepq6H.js +196 -0
  689. package/dist/selectors-QB2qsaxy.cjs +1 -0
  690. package/dist/services/MetricsCollector/index.d.ts +7 -1
  691. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  692. package/dist/session-BVX859as.cjs +31 -0
  693. package/dist/session-Cz8aie4K.js +493 -0
  694. package/dist/settings-BJ7FMBsO.js +111 -0
  695. package/dist/settings-C63FMBlF.cjs +1 -0
  696. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  697. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  698. package/dist/spring/index.d.ts +2 -0
  699. package/dist/spring/spring.d.ts +69 -0
  700. package/dist/spring/swing.d.ts +54 -0
  701. package/dist/subjects/index.d.ts +2 -0
  702. package/dist/subjects/select.d.ts +70 -0
  703. package/dist/subjects/types.d.ts +59 -0
  704. package/dist/texture/animatedTexture.d.ts +63 -0
  705. package/dist/texture/animationMath.d.ts +8 -0
  706. package/dist/texture/gifReader.d.ts +17 -0
  707. package/dist/texture/gifTextureSource.d.ts +16 -0
  708. package/dist/texture/sourceResolver.d.ts +30 -0
  709. package/dist/textures-BVwo9Z7z.js +38 -0
  710. package/dist/textures-DAfc61zz.cjs +1 -0
  711. package/dist/tracking/coordinates.d.ts +5 -0
  712. package/dist/tracking-config/apply.d.ts +57 -0
  713. package/dist/tracking-config/index.d.ts +7 -0
  714. package/dist/tracking-config/resolve.d.ts +25 -0
  715. package/dist/tracking-config/storage.d.ts +8 -0
  716. package/dist/tracking-config/types.d.ts +106 -0
  717. package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
  718. package/dist/tracking.cjs +10 -1
  719. package/dist/tracking.js +1529 -317
  720. package/dist/trigger-D9L4GPmQ.js +3726 -0
  721. package/dist/trigger-DZ9vU7jo.cjs +147 -0
  722. package/dist/types/common.d.ts +11 -1
  723. package/dist/types/compositor.d.ts +21 -0
  724. package/dist/types/face.d.ts +21 -14
  725. package/dist/types/gesture-tracking.d.ts +2 -2
  726. package/dist/types/hand-tracking.d.ts +12 -3
  727. package/dist/types/holistic.d.ts +121 -0
  728. package/dist/types/index.d.ts +1 -1
  729. package/dist/types/model.d.ts +22 -2
  730. package/dist/types/nodes.d.ts +81 -6
  731. package/dist/types/segmentation.d.ts +26 -0
  732. package/dist/types/session.d.ts +50 -4
  733. package/dist/types/tracking.d.ts +8 -2
  734. package/dist/types/util-types.d.ts +1 -1
  735. package/dist/useBodies-BYzJpQ4L.js +75 -0
  736. package/dist/useBodies-Cxpmx6Bb.cjs +1 -0
  737. package/dist/useFaceInfo-BzEUj2OI.js +75 -0
  738. package/dist/useFaceInfo-DlLRAVNw.cjs +1 -0
  739. package/dist/useFaceResultReader-Cc4Qrutf.js +61 -0
  740. package/dist/useFaceResultReader-D3jOQNKz.cjs +1 -0
  741. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  742. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  743. package/dist/useIrisTracking-Bz4uLDa7.js +6190 -0
  744. package/dist/useIrisTracking-DRGWgoNy.cjs +35 -0
  745. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  746. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  747. package/dist/useXRCapabilities-B1KLckqw.js +30 -0
  748. package/dist/useXRCapabilities-CZlPUBjF.cjs +1 -0
  749. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  750. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  751. package/dist/utils/fns.d.ts +6 -3
  752. package/dist/utils/headOccluderFit.d.ts +42 -0
  753. package/dist/utils/integrity.d.ts +25 -26
  754. package/dist/utils/landmarkBounds.d.ts +1 -1
  755. package/dist/utils/logger.d.ts +2 -2
  756. package/dist/utils/resolveNumFaces.d.ts +13 -0
  757. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  758. package/dist/utils/similarityFit.d.ts +23 -0
  759. package/dist/utils/updateThrottle.d.ts +2 -0
  760. package/dist/utils/useStableUniforms.d.ts +18 -0
  761. package/dist/utils/visionWasm.d.ts +18 -0
  762. package/dist/uv-BMFt19bg.cjs +1 -0
  763. package/dist/{index-BGNbrc4C.js → uv-DJU_XfmN.js} +15 -156
  764. package/docs/MIGRATION_GUIDE.md +589 -0
  765. package/docs/SDK_DOCUMENTATION.md +1157 -0
  766. package/docs/api/adaptive-quality.mdx +104 -0
  767. package/docs/api/asset-lifecycle.mdx +78 -0
  768. package/docs/api/audio.mdx +36 -0
  769. package/docs/api/behavior-components.mdx +164 -0
  770. package/docs/api/body-instructions.mdx +287 -0
  771. package/docs/api/body-rig.mdx +384 -0
  772. package/docs/api/body-triggers.mdx +235 -0
  773. package/docs/api/camera-permission.mdx +142 -0
  774. package/docs/api/capture-recording.mdx +111 -0
  775. package/docs/api/coordinate-spaces.mdx +168 -0
  776. package/docs/api/cross-camera.mdx +89 -0
  777. package/docs/api/debug-ui-scene-editor.mdx +270 -0
  778. package/docs/api/diagnostics-calibration.mdx +97 -0
  779. package/docs/api/external-face-mesh.mdx +231 -0
  780. package/docs/api/face-actions.mdx +108 -0
  781. package/docs/api/face-attribute-expression.mdx +87 -0
  782. package/docs/api/face-binding-anchors.mdx +55 -0
  783. package/docs/api/face-character.mdx +157 -0
  784. package/docs/api/face-effects.mdx +28 -0
  785. package/docs/api/face-expression-controller.mdx +153 -0
  786. package/docs/api/face-info.mdx +118 -0
  787. package/docs/api/face-inset.mdx +204 -0
  788. package/docs/api/face-instructions.mdx +183 -0
  789. package/docs/api/face-liquify.mdx +196 -0
  790. package/docs/api/face-mesh.mdx +130 -0
  791. package/docs/api/face-morph.mdx +117 -0
  792. package/docs/api/face-painting.mdx +40 -0
  793. package/docs/api/face-reprojection.mdx +154 -0
  794. package/docs/api/face-retouching.mdx +81 -0
  795. package/docs/api/face-swap.mdx +350 -0
  796. package/docs/api/face-warp-3d.mdx +166 -0
  797. package/docs/api/faceless.mdx +143 -0
  798. package/docs/api/gestures.mdx +210 -0
  799. package/docs/api/hair.mdx +97 -0
  800. package/docs/api/hand-instructions.mdx +222 -0
  801. package/docs/api/hand-rig.mdx +661 -0
  802. package/docs/api/hand-touch.mdx +162 -0
  803. package/docs/api/head-occluder.mdx +563 -0
  804. package/docs/api/holistic-tracker.mdx +164 -0
  805. package/docs/api/instructions.mdx +323 -0
  806. package/docs/api/iris-tracking.mdx +247 -0
  807. package/docs/api/made-up-camera.mdx +131 -0
  808. package/docs/api/makeup-skin-tone.mdx +135 -0
  809. package/docs/api/makeup.mdx +353 -0
  810. package/docs/api/material-render-state.mdx +132 -0
  811. package/docs/api/multi-subject.mdx +185 -0
  812. package/docs/api/particles.mdx +183 -0
  813. package/docs/api/person-cutout.mdx +171 -0
  814. package/docs/api/pin-to-face-mesh.mdx +274 -0
  815. package/docs/api/product-ar.mdx +114 -0
  816. package/docs/api/product-details.mdx +78 -0
  817. package/docs/api/runtime-3d.mdx +316 -0
  818. package/docs/api/scene-object-store.mdx +213 -0
  819. package/docs/api/screen-image.mdx +67 -0
  820. package/docs/api/screen-shape.mdx +64 -0
  821. package/docs/api/screen-space-coordinates.mdx +75 -0
  822. package/docs/api/screen-text.mdx +39 -0
  823. package/docs/api/segmentation-overlay.mdx +301 -0
  824. package/docs/api/session-lifecycle.mdx +136 -0
  825. package/docs/api/texture-sources.mdx +74 -0
  826. package/docs/api/trackers.mdx +65 -0
  827. package/docs/api/tracking-config.mdx +108 -0
  828. package/docs/docs.json +121 -0
  829. package/docs/examples/lip-shaders.mdx +273 -0
  830. package/docs/examples/scene-object-recipes.mdx +194 -0
  831. package/docs/guides/face-atlas-template.svg +1 -0
  832. package/docs/guides/face-atlas-textures.mdx +186 -0
  833. package/docs/guides/face-texture-template.svg +1 -0
  834. package/docs/guides/harness-debug-ui.mdx +139 -0
  835. package/docs/guides/lip-effect-textures.mdx +368 -0
  836. package/docs/guides/lip-uv-template.png +0 -0
  837. package/docs/guides/lip-uv-template.svg +1 -0
  838. package/docs/guides/makeup-design-textures.mdx +109 -0
  839. package/docs/inspector/hierarchy-panel.mdx +51 -0
  840. package/docs/inspector/object-inspector-panel.mdx +51 -0
  841. package/docs/introduction.mdx +120 -0
  842. package/docs/scene-objects/overview.mdx +127 -0
  843. package/docs/scene-objects/render-groups.mdx +77 -0
  844. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  845. package/docs/texture-api-consumer.md +84 -0
  846. package/package.json +69 -9
  847. package/settings.json +1998 -0
  848. package/dist/DebuggerUI-CatYc-RG.cjs +0 -1
  849. package/dist/DebuggerUI-gLMKiVwJ.js +0 -269
  850. package/dist/MediaSourceSwitcher-C-xYg0nQ.js +0 -317
  851. package/dist/MediaSourceSwitcher-Cq3g4IKw.cjs +0 -31
  852. package/dist/components/FaceRetouch/defaults.d.ts +0 -13
  853. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  854. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  855. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
  856. package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
  857. package/dist/components/FaceWarp3D/warp.d.ts +0 -13
  858. package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
  859. package/dist/defaults-BLpcN3pG.cjs +0 -1
  860. package/dist/defaults-LtY4M7dg.js +0 -55
  861. package/dist/index-BXyObVHF.cjs +0 -1
  862. package/dist/index-CY3bUAcW.js +0 -12
  863. package/dist/index-C_Duh13c.cjs +0 -1
  864. package/dist/index-D8fpPQkC.cjs +0 -1
  865. package/dist/index-DxshgBu0.cjs +0 -1
  866. package/dist/index-O-2crZ3M.js +0 -1102
  867. package/dist/index-safCs_af.js +0 -1341
  868. package/dist/internal-BjyhBP8i.cjs +0 -1
  869. package/dist/modules/XRClient/index.d.ts +0 -9
  870. package/dist/modules/index.d.ts +0 -1
  871. package/dist/screenImageSettings-6NRg4cx9.js +0 -39
  872. package/dist/screenImageSettings-y_B4_767.cjs +0 -1
  873. package/dist/selectors-BLl2JUWW.cjs +0 -1
  874. package/dist/selectors-CXd_x-6t.js +0 -59
  875. package/dist/services/ApiService.d.ts +0 -12
  876. package/dist/types/client.d.ts +0 -3
  877. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  878. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
  879. package/dist/useXRModel-3DcUa28n.cjs +0 -1
  880. package/dist/useXRModel-BMJE1hrk.js +0 -28
  881. /package/dist/{layerStack.d.ts → render/layerStack.d.ts} +0 -0
  882. /package/dist/{screenImagePresets.d.ts → screen-image/screenImagePresets.d.ts} +0 -0
  883. /package/dist/{screenTextPresets.d.ts → screen-text/screenTextPresets.d.ts} +0 -0
@@ -0,0 +1,247 @@
1
+ ---
2
+ title: "Iris Tracking"
3
+ description: "Stable left/right iris data from the shared face tracker, and an iris effect that draws a shader or image material over each iris."
4
+ sidebarTitle: "Iris Tracking"
5
+ icon: "eye"
6
+ ---
7
+
8
+ Iris tracking reads the ten refined iris landmarks the face tracker already
9
+ produces. It starts no second detector: `useIrisTracking` acquires the same
10
+ shared `XRModel.FACE_TRACKER` as `FaceTracker` and `useFaceInfo`, and
11
+ `<IrisEffect>` renders over it.
12
+
13
+ ```tsx
14
+ import { useIrisTracking } from "@vincentt-xr/sdk/tracking";
15
+ import { IrisEffect } from "@vincentt-xr/sdk/face-effects";
16
+
17
+ // Rendering: built-in procedural iris, or an image, or your own material.
18
+ <IrisEffect mode="shader" color="#4fa3ff" opacity={0.85} smoothing={15} />;
19
+ <IrisEffect mode="image" textureUrl="/iris.png" scale={1.1} />;
20
+
21
+ // Data: read inside useFrame.
22
+ const { result, status } = useIrisTracking({ faceIndex: 0, smoothing: 15 });
23
+ useFrame(() => {
24
+ if (!result.detected) return;
25
+ const { center, radius, offset, confidence } = result.left;
26
+ });
27
+ ```
28
+
29
+ ## Landmarks and sides
30
+
31
+ | MediaPipe side | Center | Ring (outer, top, inner, bottom) | Inner / outer corner | Upper / lower lid |
32
+ | -------------- | ------ | -------------------------------- | -------------------- | ----------------- |
33
+ | `left` | 473 | 474, 475, 476, 477 | 362 / 263 | 386 / 374 |
34
+ | `right` | 468 | 469, 470, 471, 472 | 133 / 33 | 159 / 145 |
35
+
36
+ `result.left` / `result.right` are the person's own eyes on every source
37
+ (GROUNDING "Left and right"). The table lists MediaPipe's sides
38
+ (`IRIS_LANDMARKS`): its left eye sits on the image's right of the analysed
39
+ frame, which is the person's left eye on a straight video, image or rear
40
+ camera, and their RIGHT eye on the mirrored webcam. The SDK reads the mesh
41
+ eye for the feed (`IRIS_LANDMARKS[personSide(side, mirrored)]`), so app code
42
+ never swaps. The data needs the refined mesh (478 points); with fewer
43
+ landmarks each eye reports `detected: false`. The
44
+ allocation-free helpers behind the hook (`createIrisResult`,
45
+ `updateIrisResult`, `computeIrisEye`, `IrisLead`) live on
46
+ `@vincentt-xr/sdk/low-level` for pipelines that already hold their own
47
+ landmarks.
48
+
49
+ ## Coordinate spaces
50
+
51
+ - `center`, `ring`, `eyeCenter`: MediaPipe image space, 0..1 with a top-left
52
+ origin and Y down, the same space as `FaceInfo.landmarks` and
53
+ `detectionResults`. `z` is tracker-relative depth.
54
+ - `trackerCenter`: SDK tracker space (center origin, X right, Y up, Z toward
55
+ the viewer), the same as hand and body points.
56
+ - `radius`, `eyeWidth`: image-width units (half the horizontal ring diameter
57
+ and the corner-to-corner distance). To draw in world space, unproject the
58
+ center and a point `radius` to its right and take their distance, which is
59
+ what `<IrisEffect>` does.
60
+ - `offset`: the iris center relative to the eye center, each axis divided by
61
+ half the eye width and clamped to [-1, 1]; +x toward the person's left, +y
62
+ up, on every source (the horizontal sign is corrected on the mirrored
63
+ webcam feed, so it never flips with the camera). **This is the iris position inside the eyelid opening, not a gaze
64
+ direction**: it ignores head pose and eyeball geometry. Use it for
65
+ pupil-follow and shader inputs, not for "where is the person looking".
66
+ - `openness`: eyelid gap divided by eye width (about 0.25–0.35 open, 0 closed).
67
+
68
+ Mirroring: the session mirrors the webcam feed and no other source, and the
69
+ landmarks are already in that feed space, so positions need no flip. The
70
+ `mirrored` prop on `<IrisEffect>` flips the material horizontally (image
71
+ orientation, shader +x), nothing else.
72
+
73
+ ## Confidence and lifecycle
74
+
75
+ MediaPipe reports no score for iris points and emits them even when the eye
76
+ is closed, so confidence is derived: `eye.confidence` is `openness / 0.2`
77
+ clamped to 0..1, scaled by the hold decay. `result.confidence` is 1 while the
78
+ face is live and decays linearly to 0 over `holdMs` while `held`. Gate
79
+ effects on these; the built-in materials fade with `irisConfidence`.
80
+
81
+ `useIrisTracking` returns `status` (`loading` → `ready` / `error`) for the
82
+ shared face model plus `result.detected` / `held` / `version` /
83
+ `timestampMs` / `faceIndex`. The `result` object is stable and mutated in
84
+ place; read it inside `useFrame`.
85
+
86
+ ## Smoothing, hold and face selection
87
+
88
+ - Dropouts go through `FaceTrackMemory`, the SDK's one bridge: `holdMs` 250
89
+ and `predictMs` 0 by default, like every other face surface. A face that
90
+ stays missing longer than `holdMs` is dropped and `<IrisEffect>` hides at
91
+ once, so no stale eye effect lingers.
92
+ - `smoothing` runs the same One Euro filter as `TrackingAnchor` on the
93
+ centers and radius (default 0 = raw; ~10 tames jitter at rest). It is a
94
+ low-pass whose floor cutoff is `smoothing × 0.1` Hz, so 15 attenuates and
95
+ lags a 2–3 Hz head shake: keep it low when exact following matters. It
96
+ resets on re-acquire, so the iris never slides in from an old position.
97
+ - `targetFps` requests an inference cap for the shared face model (0 keeps
98
+ the session's `perf.targetFps`, 24 in the template). The first mounted face
99
+ consumer's value wins, so pass the same number everywhere the face model
100
+ is acquired, and note that a later change only takes effect once every
101
+ holder has released the model (a lone `<IrisEffect>` re-acquires and
102
+ re-initializes it; a session pipeline entry pins the first value for the
103
+ session). The example makes the effect the only holder so its panel value
104
+ is the real rate. **60 gives the best following, but use it with caution**: it runs
105
+ face inference 2.5× as often as the template default and will heat and
106
+ throttle phones. Ship it only when the eye effect is the point of the
107
+ experience and you have checked the target devices; otherwise keep the
108
+ session default (or 30) and let `leadMs` bridge the gap.
109
+ - `leadMs` (default 80, 0 disables) bridges throttled inference to the render
110
+ rate: between samples the centers advance along their last
111
+ sample-to-sample velocity for at most `leadMs`, so a 24 fps face model
112
+ reads continuous at 60+ fps instead of hold-and-jump. When the lag itself
113
+ is the problem, raise the face model's `targetFps` first (the example
114
+ requests 60).
115
+ - `faceIndex` / `numFaces` select the face exactly like `useFaceInfo`: the
116
+ index is the result-array position, not a persistent identity, and the
117
+ first mounted face consumer decides `numFaces`.
118
+
119
+ ## `<IrisEffect>` props and materials
120
+
121
+ `<IrisEffect>` takes the flat `IrisEffectSettings` (`eye`: both | left |
122
+ right, `mode`: shader | image, `color`, `textureUrl`, `tintImage` (multiply the
123
+ image by `color`; off by default so images show as authored), `scale`, `opacity`,
124
+ `targetFps`, `smoothing`, `leadMs`, `mirrored`, `faceIndex`, `holdMs`) plus `numFaces`, `active`,
125
+ `predictMs`, `texture` (a pre-loaded three texture, beats `textureUrl`),
126
+ `material`, `renderOrder` and `onTracking(handle)`.
127
+
128
+ Each eye is a quad spanning the iris diameter, positioned on the camera's
129
+ z=0 plane. Every material receives the same uniforms (`IrisUniforms`):
130
+
131
+ | Uniform | Type | Meaning |
132
+ | ---------------- | ----------- | ---------------------------------- |
133
+ | `irisCenter` | `vec2` | Image-space center |
134
+ | `irisRadius` | `float` | Image-width radius |
135
+ | `irisOffset` | `vec2` | Position inside the eye, [-1, 1] |
136
+ | `irisConfidence` | `float` | 0..1, fade with it |
137
+ | `irisOpenness` | `float` | Eyelid gap / eye width |
138
+ | `time` | `float` | Seconds since mount |
139
+ | `color` | `vec3` | Tint |
140
+ | `opacity` | `float` | |
141
+ | `mirror` | `float` | 1 when mirrored |
142
+ | `tintImage` | `float` | 1 to multiply the image by `color` |
143
+ | `map` | `sampler2D` | The image in `image` mode |
144
+
145
+ A minimal custom material:
146
+
147
+ ```tsx
148
+ import { IrisEffect, type IrisMaterialContext } from "@vincentt-xr/sdk/face-effects";
149
+
150
+ const ring = ({ uniforms }: IrisMaterialContext) =>
151
+ new THREE.ShaderMaterial({
152
+ uniforms, // the shared, live uniforms
153
+ vertexShader: `varying vec2 vUv; void main(){ vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`,
154
+ fragmentShader: `
155
+ uniform float irisConfidence; uniform vec3 color; uniform float opacity; varying vec2 vUv;
156
+ void main(){
157
+ float r = length(vUv - 0.5) * 2.0;
158
+ float ring = smoothstep(0.6, 0.7, r) * (1.0 - smoothstep(0.9, 1.0, r));
159
+ gl_FragColor = vec4(color, ring * opacity * irisConfidence);
160
+ #include <colorspace_fragment>
161
+ }`,
162
+ transparent: true,
163
+ depthTest: false,
164
+ depthWrite: false,
165
+ });
166
+
167
+ <IrisEffect material={ring} color="#ffcc00" />;
168
+ ```
169
+
170
+ The factory runs once per eye for each `material` identity; the effect
171
+ disposes what a factory created when the factory changes or on unmount,
172
+ while an instance you pass stays yours. Read the live texture from
173
+ `uniforms.map`: `context.texture` is only the texture known when the factory
174
+ ran, often null. The built-in
175
+ image shader shows it as authored, multiplies it by `color` only when
176
+ `tintImage` is on, and fades with confidence.
177
+
178
+ ## When to use what
179
+
180
+ - **Iris tracking**: eye decorations, pupil overlays, iris recolouring,
181
+ shader inputs tied to where the iris sits in the eye.
182
+ - **Blendshapes** (`useFaceInfo` / `useFaceAction`): blinks, winks, squints,
183
+ eye-look-left/right/up/down categories as discrete expressions.
184
+ - **Gaze estimation**: not provided. `offset` is not gaze; a real estimate
185
+ needs head pose and eye geometry.
186
+ - **PinToMesh / FaceMesh materials**: content that must deform with the skin
187
+ around the eye rather than sit on the iris.
188
+
189
+ ## Hiding the iris behind the eyelids
190
+
191
+ The quads are flat and draw over the lids. To clip them to the eye openings
192
+ without a dedicated mask, draw the face mesh over them with the camera feed
193
+ and no eye-opening triangles (the example's "eyelid mask" toggle). The
194
+ material samples the feed through the mesh's live `faceUv` attribute with
195
+ depth testing off, so it always lands on top of the quads:
196
+
197
+ ```tsx
198
+ import { CanonicalFaceMeshRenderer, IrisEffect } from "@vincentt-xr/sdk/face-effects";
199
+ import { useXRCameraTexture } from "@vincentt-xr/sdk/low-level";
200
+
201
+ const feed = new THREE.ShaderMaterial({
202
+ uniforms: { cameraTexture: { value: useXRCameraTexture() } },
203
+ vertexShader: `attribute vec2 faceUv; varying vec2 vUv;
204
+ void main(){ vUv = faceUv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`,
205
+ fragmentShader: `uniform sampler2D cameraTexture; varying vec2 vUv;
206
+ void main(){ gl_FragColor = texture2D(cameraTexture, vUv); #include <colorspace_fragment> }`,
207
+ transparent: true, // the quads are transparent; an opaque mask would draw before them
208
+ depthTest: false,
209
+ depthWrite: false,
210
+ });
211
+
212
+ // IrisEffect renders at order 100; the mask draws after it.
213
+ <IrisEffect />;
214
+ <CanonicalFaceMeshRenderer
215
+ showEyeGeometry={false}
216
+ showEyeMask={false}
217
+ renderOrder={101}
218
+ materialOverride={feed}
219
+ />;
220
+ ```
221
+
222
+ Memoize the material on the camera texture and dispose it on unmount, as
223
+ the example does.
224
+
225
+ ## Known limitations
226
+
227
+ - Single-person per `faceIndex`; multi-face scenes mount one effect per face.
228
+ - Iris points are present even for closed eyes; `confidence` is the gate.
229
+ - The quads sit on the z=0 plane without eyeball curvature or head pose.
230
+ - Hold replays the last position; with `predictMs` > 0 a sharp reversal can
231
+ overshoot for up to that window.
232
+
233
+ ## Manual validation
234
+
235
+ Run `/iris-tracking`:
236
+
237
+ | Case | Steps | Expect |
238
+ | -------------------- | --------------------------------------- | ------------------------------------------------------------- |
239
+ | Shader material | default, change color / scale / opacity | Both irises recoloured live; pupil follows the iris offset |
240
+ | Image material | mode `image`, presets or a URL | Image covers each iris, tinted by color; mirror flips it |
241
+ | Custom material | "custom shader (ring)" | Pulsing ring from the shared uniforms |
242
+ | Tracking loss | cover the face / "Person Shaking Head" | Effect holds ~250 ms then disappears; no stale eyes |
243
+ | Multi-face | "Two People Smiling", face index 0 / 1 | Effect moves to the selected face |
244
+ | Mirrored camera | webcam, `eye` left | Only your real left eye; on screen it is the eye on the left |
245
+ | Straight video | a clip, `eye` left | Only the person's real left eye; on screen it is on the right |
246
+ | Portrait / landscape | resize the pane | Quads stay centred on the irises at the right size |
247
+ | Closed eyes | blink | Effect fades with confidence |
@@ -0,0 +1,131 @@
1
+ ---
2
+ title: "Made-up Camera"
3
+ description: "Give face insets, face textures and face swap the camera image with the makeup on it: one shared, opt-in, feed-size render of camera plus makeup."
4
+ sidebarTitle: "Made-up Camera"
5
+ icon: "wand-magic-sparkles"
6
+ ---
7
+
8
+ Makeup is drawn over the live face in the main render. A component that samples the camera image
9
+ itself (a face inset, a face texture, a face swap's live source) therefore shows the bare face.
10
+ `<MadeUpCamera>` gives the components inside it the camera image with the makeup on it.
11
+
12
+ It is off unless mounted. While mounted it renders one feed-size texture of camera plus makeup per
13
+ frame, shared by every `<MadeUpCamera>`. Import from `@vincentt-xr/sdk/face-effects`.
14
+
15
+ ## Quick start
16
+
17
+ ```tsx
18
+ import { Blush, FaceInset, LipEffect, MadeUpCamera } from "@vincentt-xr/sdk/face-effects";
19
+ import { FaceTracker } from "@vincentt-xr/sdk/tracking";
20
+
21
+ <FaceTracker>
22
+ <Blush />
23
+ <LipEffect preset="lipstick" shade="classicRed" />
24
+ <MadeUpCamera>
25
+ {/* The giant mouth wears the lipstick */}
26
+ <FaceInset part="mouth" magnify={1.8} />
27
+ </MadeUpCamera>
28
+ </FaceTracker>;
29
+ ```
30
+
31
+ ## What follows it
32
+
33
+ Inside a `<MadeUpCamera>`:
34
+
35
+ | Component | What shows the makeup |
36
+ | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
37
+ | `FaceInset`, `useFaceInsetTexture` | The cut-out part |
38
+ | `FaceMorph`, `FaceReprojection` | The camera-face texture they wear |
39
+ | Face swap live faces | The face map. A face's map is shared: one consumer inside a `<MadeUpCamera>` decides for all of that face's consumers |
40
+
41
+ Components outside it keep the plain camera.
42
+
43
+ `FaceWarp3D` always keeps the plain camera. Nest the makeup in the warp instead: it already rides it.
44
+
45
+ The skin probe, the face swap's colour statistics and the makeup's own camera sampling always read the
46
+ plain camera, so makeup never feeds back into itself.
47
+
48
+ ## What it holds
49
+
50
+ - Every face-atlas layer drawn between `MAKEUP_RENDER_ORDER.prepass` and `.restore`, on every face:
51
+ makeup regions, `LipEffect`, `MakeupDesign`, custom `FaceAtlasLayer`s at makeup orders, and the
52
+ self-occlusion passes.
53
+ - `HandCutout`, so hands stay bare.
54
+ - Anything you add with `object.layers.enable(MADE_UP_CAMERA_LAYER)` (layer 30; 31 is the external background layer).
55
+
56
+ Faces riding a `FaceWarp3D` or `FaceMorph` are drawn unwarped, where the camera sees them, with the
57
+ unwarped face's normals.
58
+
59
+ The pass is lit by the lights the main camera sees and writes and blends sRGB colour exactly as the
60
+ canvas does, with the same shader programs, so the makeup's pixels match the screen. It does not hold:
61
+
62
+ - `FaceRetouch`, face swaps or other face effects;
63
+ - face-atlas layers outside the makeup orders;
64
+ - the canvas's multisampling (antialiasing) or any post-processing.
65
+
66
+ ## Double makeup
67
+
68
+ Makeup drawn on the same face again on top shows twice:
69
+
70
+ - makeup nested in a `FaceMorph` that is wrapped in `<MadeUpCamera>`;
71
+ - a wrapped face swap that lands on a face wearing makeup of its own (that makeup draws over the
72
+ swapped face).
73
+
74
+ Wrap only the components that should show the makeup.
75
+
76
+ ## Your own materials
77
+
78
+ `useMadeUpCamera()` holds the shared target and returns a handle, or `null` before mount:
79
+
80
+ ```tsx
81
+ import { useMadeUpCamera } from "@vincentt-xr/sdk/face-effects";
82
+
83
+ const madeUp = useMadeUpCamera();
84
+ <mesh>
85
+ <planeGeometry />
86
+ <meshBasicMaterial map={madeUp?.ready ? madeUp.texture : null} toneMapped={false} />
87
+ </mesh>;
88
+ ```
89
+
90
+ | Handle | Meaning |
91
+ | ----------------- | ---------------------------------------------------------------------------------------------------- |
92
+ | `texture` | Camera plus makeup. Same layout as the camera texture (uv, aspect, image top at v = 1), sRGB |
93
+ | `ready` | The texture holds the current camera image: false before the first pass and while the camera is gone |
94
+ | `frame` | Passes rendered so far |
95
+ | `width`, `height` | The texture's size: the camera image's |
96
+
97
+ - `useMadeUpCameraTexture()` returns the nearest `<MadeUpCamera>`'s texture while it is ready, else
98
+ the session camera texture (null without a camera, never a stale made-up frame). The SDK
99
+ components use it.
100
+ - `feedTextureVersion(texture)` returns a feed texture's content version: the pass count for the
101
+ made-up texture (its `version` never changes), `texture.version` for the camera. Compare it between
102
+ frames to skip work when the image did not change.
103
+
104
+ ## Cost
105
+
106
+ Every frame while any holder is mounted:
107
+
108
+ - the makeup is drawn a second time;
109
+ - two feed-size passes: the camera copied under the makeup, then a copy into the sRGB texture;
110
+ - a second walk of the scene graph.
111
+
112
+ GPU memory: three 4-byte-per-pixel buffers at the camera image's size (colour, depth-stencil, output).
113
+ That is about 4 MB for a 390 × 844 feed and 25 MB at 1080 × 1920.
114
+
115
+ The pass runs at frame priority -0.3, after the face surfaces update. Frame callbacks at the default
116
+ priority read this frame's image. The face swap's live map (priority -0.75) reads the previous
117
+ frame's. Shadow maps are not re-rendered for the pass.
118
+
119
+ ## Manual visual test plan
120
+
121
+ On the webcam, with blush and a red lipstick:
122
+
123
+ 1. **Inset**: a mouth inset inside `<MadeUpCamera>` shows the lipstick, with the same colour and edge
124
+ as on the face. Outside it, the inset shows bare lips.
125
+ 2. **Match**: put a `FaceInset part="face" magnify={1}` inside it. The face looks the same as without
126
+ the inset.
127
+ 3. **Hands**: a hand over the cheek (with `HandCutout`) stays bare in the inset.
128
+ 4. **Turned head**: the far cheek's blush stops at the nose in the inset, as on screen.
129
+ 5. **Face swap**: with makeup on face 0 only, a two-person swap inside it shows that makeup where
130
+ face 1 is.
131
+ 6. **Off**: unmount the `<MadeUpCamera>`. The frame time returns to its earlier value.
@@ -0,0 +1,135 @@
1
+ ---
2
+ title: "Makeup Skin Tone"
3
+ description: "Read the person's skin depth, undertone, lip and brow colours from the skin probe, and get the curated palette shades that suit them, for shade-finder UIs."
4
+ sidebarTitle: "Makeup Skin Tone"
5
+ icon: "swatchbook"
6
+ ---
7
+
8
+ `useMakeupSkinTone` reads the face's skin probe back from the GPU a few times a second and returns
9
+ what a shade finder needs:
10
+
11
+ - **Skin depth**: `fair`, `light`, `medium`, `tan`, `deep` or `rich`.
12
+ - **Undertone**: `cool`, `neutral` or `warm`.
13
+ - **The person's own colours**: settled skin, lips and brow hair, as sRGB hex.
14
+ - **Recommendations**: for every makeup region, the curated palette shades (`MAKEUP_SHADES`) nearest
15
+ what that region would paint on this person, best first.
16
+
17
+ The SDK draws no labels. Makeup does not need this readout: `shade: "auto"` already adapts on the
18
+ GPU. Import from `@vincentt-xr/sdk/face-effects`.
19
+
20
+ ## Quick start
21
+
22
+ ```tsx
23
+ import { Blush, Contour, useMakeupSkinTone } from "@vincentt-xr/sdk/face-effects";
24
+
25
+ const tone = useMakeupSkinTone(); // null until the skin probe has settled
26
+ <Contour shade={tone?.recommendations.contour[0] ?? "medium"} />;
27
+ <Blush shade={tone?.recommendations.blush[0] ?? "rose"} />;
28
+ ```
29
+
30
+ Call it inside the canvas. It works alone: it starts the face model when no `FaceTracker` is above
31
+ it, and starts the face's skin probe when no makeup runs one.
32
+
33
+ ## Options
34
+
35
+ | Option | Default | Meaning |
36
+ | ------------ | --------------- | -------------------------------------------------------------- |
37
+ | `faceIndex` | rig / tracker | Which face: the enclosing `FaceRig` or `FaceTracker`'s, else 0 |
38
+ | `numFaces` | `faceIndex + 1` | Faces to start the face model with, when this hook starts it |
39
+ | `intervalMs` | 500 | Milliseconds between reads, at least 200 |
40
+ | `count` | 3 | Shades recommended per region |
41
+ | `quality` | `"auto"` | The skin probe's quality (`useFaceSkin`) |
42
+ | `enabled` | `true` | `false` stops reading and releases the probe |
43
+
44
+ ## The readout
45
+
46
+ | Field | Meaning |
47
+ | ----------------- | ----------------------------------------------------------------------------------------------------------- |
48
+ | `skin` | The settled skin colour as the camera shows it, sRGB hex |
49
+ | `lab` | Its CIELAB (D65) `[L*, a*, b*]` |
50
+ | `depth`, `ita` | Depth from the Individual Typology Angle, `atan((L* − 50) / b*)` in degrees |
51
+ | `undertone` | From the CIELAB hue angle |
52
+ | `hue`, `chroma` | The skin's CIELAB hue (degrees) and chroma, for your own thresholds |
53
+ | `lips`, `brows` | The person's lip and brow-hair colours, or `null` while under a quarter of them was seen |
54
+ | `recommendations` | Palette shade names per region: `lips`, `contour`, `blush`, `highlighter`, `eyeshadow`, `eyeliner`, `brows` |
55
+
56
+ | Depth | ITA |
57
+ | -------- | ----------- |
58
+ | `fair` | over 55° |
59
+ | `light` | 41° to 55° |
60
+ | `medium` | 28° to 41° |
61
+ | `tan` | 10° to 28° |
62
+ | `deep` | −30° to 10° |
63
+ | `rich` | under −30° |
64
+
65
+ Undertone: hue under 50° is `cool`, over 60° is `warm`, between is `neutral`. Deeper skin has a lower
66
+ hue whatever its undertone, so below `L*` 50 both cuts drop 0.25° per unit: at `L*` 20 they are 42.5°
67
+ and 52.5°. A skin with chroma under 6 (a grey or washed-out image) is always `neutral`. The thresholds
68
+ are `MAKEUP_SKIN_TONE`.
69
+
70
+ ## How shades are chosen
71
+
72
+ Each region gets a target colour: what `shade: "auto"` paints on this person.
73
+
74
+ - **Lips**: their own lips, deepened.
75
+ - **Blush**: their skin moved toward rose.
76
+ - **Contour**: their skin, deepened.
77
+ - **Highlighter**: their skin, lifted.
78
+ - **Brows**: their brow hair.
79
+ - **Eyeshadow**: a transition shade, the skin deepened.
80
+ - **Eyeliner**: the brow hair, darkened.
81
+
82
+ Warm skin leans blush, highlighter and eyeshadow toward peach, gold and bronze; cool skin toward rose,
83
+ pearl and taupe. The recommendations are the palette shades nearest each target (CIELAB ΔE). Unseen
84
+ lips or brows fall back to colours derived from the skin.
85
+
86
+ ## Camera light
87
+
88
+ The readout measures the image, not the person:
89
+
90
+ - **White balance** moves the undertone. A warm room reads warm; a cool screen glow reads cool.
91
+ - **Exposure** moves the depth. A backlit face reads deeper.
92
+
93
+ Present the result as a suggestion the user can change, never as a label. Ask for even, neutral
94
+ light when it matters.
95
+
96
+ ## Cost
97
+
98
+ No per-frame allocation. Each read is one 24 × 1 packing draw and an asynchronous copy to the CPU
99
+ (`FaceSkinProbe.readStatsAsync`), with one read in flight at a time. The hook re-renders only when the
100
+ readout changes.
101
+
102
+ ## Photos
103
+
104
+ `computeMakeupSkinTone(stats)` takes any `FaceSkinStats`:
105
+
106
+ ```ts
107
+ import {
108
+ FaceSkinProbe,
109
+ computeMakeupSkinTone,
110
+ readFaceSkinStats,
111
+ } from "@vincentt-xr/sdk/face-effects";
112
+
113
+ const probe = new FaceSkinProbe({ renderer: gl });
114
+ probe.renderStill(gl, photoTexture, photoLandmarks);
115
+ const data = await probe.readStatsAsync(gl);
116
+ const tone = data ? computeMakeupSkinTone(readFaceSkinStats(data)) : null;
117
+ probe.dispose();
118
+ ```
119
+
120
+ Also exported: `classifyMakeupSkinDepth`, `classifyMakeupUndertone`, `nearestMakeupShades`,
121
+ `MAKEUP_SKIN_DEPTHS`, `MAKEUP_UNDERTONES`.
122
+
123
+ ## Manual visual test plan
124
+
125
+ Show `tone.depth`, `tone.undertone`, `tone.skin` and the first blush, contour and lip shade in a
126
+ debug readout on the webcam.
127
+
128
+ 1. **Settles**: the readout appears within a second of the face showing, and stays steady while you
129
+ hold still.
130
+ 2. **Light**: switch from daylight to a warm lamp. The undertone moves toward warm (the documented
131
+ caveat); the shades follow.
132
+ 3. **Turn away**: past about 35° the readout holds its last value.
133
+ 4. **Lips**: wear a strong lipstick. The lip recommendations move toward it within a few seconds.
134
+ 5. **Two faces**: `faceIndex: 1` reads the second person.
135
+ 6. **Cost**: the frame time does not change with the hook mounted.