@vincentt-xr/sdk 2.0.0-alpha.7 → 2.0.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/GROUNDING.md +5651 -82
  2. package/README.md +1 -0
  3. package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
  4. package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
  5. package/dist/DebuggerUI-7ngnJsBe.js +275 -0
  6. package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
  7. package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
  8. package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
  9. package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
  10. package/dist/FaceSurface-DmP9AEeC.js +27 -0
  11. package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
  12. package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
  13. package/dist/SkeletonUtils-C2r90MtN.js +21 -0
  14. package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
  15. package/dist/TextLabel-XE0rQSDn.cjs +2 -0
  16. package/dist/TextLabel-c9BCucOI.js +961 -0
  17. package/dist/assets/cache.d.ts +99 -0
  18. package/dist/assets/estimate.d.ts +11 -0
  19. package/dist/assets/gltfLoader.d.ts +16 -0
  20. package/dist/assets/index.d.ts +7 -0
  21. package/dist/assets/loaders.d.ts +43 -0
  22. package/dist/assets/react.d.ts +33 -0
  23. package/dist/body-pose/index.d.ts +521 -0
  24. package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
  25. package/dist/body-trigger/frame.d.ts +88 -0
  26. package/dist/body-trigger/index.d.ts +6 -0
  27. package/dist/body-trigger/moves.d.ts +235 -0
  28. package/dist/body-trigger/trigger.d.ts +75 -0
  29. package/dist/calibration/calibration.d.ts +75 -0
  30. package/dist/calibration/index.d.ts +6 -0
  31. package/dist/calibration/storage.d.ts +13 -0
  32. package/dist/calibration/types.d.ts +53 -0
  33. package/dist/calibration/useXRCalibration.d.ts +46 -0
  34. package/dist/camera/CameraPermissionGate.d.ts +26 -0
  35. package/dist/camera/devices.d.ts +26 -0
  36. package/dist/camera/index.d.ts +8 -0
  37. package/dist/camera/permission.d.ts +86 -0
  38. package/dist/camera/useCameraPermission.d.ts +35 -0
  39. package/dist/canonicalFace-BHwyCx1c.js +9 -0
  40. package/dist/canonicalFace-C83I225R.cjs +1 -0
  41. package/dist/capabilities/detect.d.ts +45 -0
  42. package/dist/capabilities/index.d.ts +5 -0
  43. package/dist/capabilities/types.d.ts +120 -0
  44. package/dist/capabilities/useXRCapabilities.d.ts +18 -0
  45. package/dist/compat/environment.d.ts +5 -0
  46. package/dist/compat/index.d.ts +4 -0
  47. package/dist/compat/run.d.ts +18 -0
  48. package/dist/compat/scenarios.d.ts +10 -0
  49. package/dist/compat/types.d.ts +101 -0
  50. package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
  51. package/dist/components/BodyInstruction/index.d.ts +69 -0
  52. package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
  53. package/dist/components/BodyTracker/index.d.ts +17 -0
  54. package/dist/components/BodyTrigger/index.d.ts +49 -0
  55. package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
  56. package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
  57. package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
  58. package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
  59. package/dist/components/FaceAtlas/constants.d.ts +8 -0
  60. package/dist/components/FaceAtlas/index.d.ts +7 -0
  61. package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
  62. package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
  63. package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
  64. package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
  65. package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
  66. package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
  67. package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
  68. package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
  69. package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
  70. package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
  71. package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
  72. package/dist/components/FaceCharacter/index.d.ts +18 -0
  73. package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
  74. package/dist/components/FaceInset/FaceInset.d.ts +68 -0
  75. package/dist/components/FaceInset/frame.d.ts +94 -0
  76. package/dist/components/FaceInset/index.d.ts +6 -0
  77. package/dist/components/FaceInset/material.d.ts +40 -0
  78. package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
  79. package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
  80. package/dist/components/FaceInstruction/index.d.ts +56 -0
  81. package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
  82. package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
  83. package/dist/components/FaceLiquify/debug.d.ts +37 -0
  84. package/dist/components/FaceLiquify/frame.d.ts +55 -0
  85. package/dist/components/FaceLiquify/index.d.ts +10 -0
  86. package/dist/components/FaceLiquify/material.d.ts +39 -0
  87. package/dist/components/FaceLiquify/pass.d.ts +49 -0
  88. package/dist/components/FaceLiquify/presence.d.ts +25 -0
  89. package/dist/components/FaceLiquify/presets.d.ts +82 -0
  90. package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
  91. package/dist/components/FaceLiquify/target.d.ts +85 -0
  92. package/dist/components/FaceLiquify/warp.d.ts +72 -0
  93. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +37 -5
  94. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
  95. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +21 -0
  96. package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
  97. package/dist/components/FaceMesh/index.d.ts +2 -2
  98. package/dist/components/FaceRetouch/Background.d.ts +3 -1
  99. package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
  100. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  101. package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
  102. package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
  103. package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
  104. package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
  105. package/dist/components/FaceSwap/index.d.ts +13 -0
  106. package/dist/components/FaceSwap/settings.d.ts +300 -0
  107. package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
  108. package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
  109. package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
  110. package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
  111. package/dist/components/FaceWarp3D/index.d.ts +2 -3
  112. package/dist/components/Faceless/Faceless.d.ts +51 -0
  113. package/dist/components/Faceless/index.d.ts +2 -0
  114. package/dist/components/GestureListener/index.d.ts +11 -0
  115. package/dist/components/HairLock/HairLock.d.ts +39 -0
  116. package/dist/components/HairLock/index.d.ts +2 -0
  117. package/dist/components/HairLock/lockGeometry.d.ts +15 -0
  118. package/dist/components/HandCutout/index.d.ts +35 -0
  119. package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
  120. package/dist/components/HandInstruction/index.d.ts +74 -0
  121. package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
  122. package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
  123. package/dist/components/HandRig/HandAttachment.d.ts +34 -0
  124. package/dist/components/HandRig/HandOccluder.d.ts +55 -0
  125. package/dist/components/HandRig/HandTattoo.d.ts +61 -0
  126. package/dist/components/HandRig/WristAttachment.d.ts +34 -0
  127. package/dist/components/HandRig/index.d.ts +101 -0
  128. package/dist/components/HandRig/useArmMask.d.ts +29 -0
  129. package/dist/components/HandRig/wristSolve.d.ts +69 -0
  130. package/dist/components/HandTouch/HandTouch.d.ts +62 -0
  131. package/dist/components/HandTouch/Touchable.d.ts +36 -0
  132. package/dist/components/HandTouch/index.d.ts +2 -0
  133. package/dist/components/HandTracker/index.d.ts +10 -0
  134. package/dist/components/HeadBinding/index.d.ts +14 -0
  135. package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
  136. package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
  137. package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
  138. package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
  139. package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
  140. package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
  141. package/dist/components/HeadOccluder/index.d.ts +57 -3
  142. package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
  143. package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
  144. package/dist/components/HolisticTracker/index.d.ts +69 -0
  145. package/dist/components/HolisticTracker/settings.d.ts +58 -0
  146. package/dist/components/HolisticTracker/signals.d.ts +49 -0
  147. package/dist/components/Instruction/HintStage.d.ts +29 -0
  148. package/dist/components/Instruction/InstructionCue.d.ts +126 -0
  149. package/dist/components/Instruction/gestureHold.d.ts +20 -0
  150. package/dist/components/Instruction/ghost.d.ts +129 -0
  151. package/dist/components/Instruction/hintBlend.d.ts +19 -0
  152. package/dist/components/Instruction/hintLook.d.ts +81 -0
  153. package/dist/components/Instruction/hintLoop.d.ts +36 -0
  154. package/dist/components/Instruction/index.d.ts +41 -0
  155. package/dist/components/Instruction/useGhostModel.d.ts +33 -0
  156. package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
  157. package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
  158. package/dist/components/IrisEffect/index.d.ts +51 -0
  159. package/dist/components/IrisEffect/settings.d.ts +117 -0
  160. package/dist/components/LipEffect/LipEffect.d.ts +27 -1
  161. package/dist/components/LipEffect/LipEffectMaterial.d.ts +95 -7
  162. package/dist/components/LipEffect/LipEffects.d.ts +12 -0
  163. package/dist/components/LipEffect/defaults.d.ts +46 -4
  164. package/dist/components/LipEffect/index.d.ts +11 -3
  165. package/dist/components/LipEffect/lipShading.d.ts +73 -0
  166. package/dist/components/LipEffect/settings.d.ts +375 -0
  167. package/dist/components/LipEffect/shader.d.ts +39 -0
  168. package/dist/components/LipEffect/types.d.ts +128 -9
  169. package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
  170. package/dist/components/LipEffect/uvGuide.d.ts +74 -0
  171. package/dist/components/Makeup/Blush.d.ts +18 -0
  172. package/dist/components/Makeup/Brows.d.ts +20 -0
  173. package/dist/components/Makeup/Contour.d.ts +17 -0
  174. package/dist/components/Makeup/Eyeliner.d.ts +20 -0
  175. package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
  176. package/dist/components/Makeup/Highlighter.d.ts +18 -0
  177. package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
  178. package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
  179. package/dist/components/Makeup/constants.d.ts +44 -0
  180. package/dist/components/Makeup/design.d.ts +106 -0
  181. package/dist/components/Makeup/designSamples.d.ts +42 -0
  182. package/dist/components/Makeup/eyes.d.ts +114 -0
  183. package/dist/components/Makeup/fields.d.ts +10 -0
  184. package/dist/components/Makeup/geometry.d.ts +106 -0
  185. package/dist/components/Makeup/index.d.ts +26 -0
  186. package/dist/components/Makeup/looks.d.ts +28 -0
  187. package/dist/components/Makeup/material.d.ts +239 -0
  188. package/dist/components/Makeup/settings.d.ts +54 -0
  189. package/dist/components/Makeup/shades.d.ts +143 -0
  190. package/dist/components/Makeup/shapes.d.ts +27 -0
  191. package/dist/components/Makeup/skinTone.d.ts +135 -0
  192. package/dist/components/Makeup/types.d.ts +110 -0
  193. package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
  194. package/dist/components/Necklace/Necklace.d.ts +44 -0
  195. package/dist/components/Necklace/index.d.ts +1 -0
  196. package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
  197. package/dist/components/ParticleEmitter/index.d.ts +1 -0
  198. package/dist/components/PersonCutout/index.d.ts +50 -0
  199. package/dist/components/PersonCutout/personCutout.d.ts +16 -0
  200. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
  201. package/dist/components/ScreenImage/index.d.ts +3 -1
  202. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
  203. package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
  204. package/dist/components/ScreenImage/source.d.ts +6 -0
  205. package/dist/components/ScreenImage/types.d.ts +18 -0
  206. package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
  207. package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
  208. package/dist/components/SegmentationOverlay/index.d.ts +9 -0
  209. package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
  210. package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
  211. package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
  212. package/dist/components/ShoulderOccluder/index.d.ts +43 -0
  213. package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
  214. package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
  215. package/dist/components/SpringSwing/index.d.ts +1 -0
  216. package/dist/components/XRProvider/index.d.ts +16 -2
  217. package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
  218. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
  219. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
  220. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
  221. package/dist/components/index.d.ts +11 -0
  222. package/dist/config/index.d.ts +0 -1
  223. package/dist/constants/index.d.ts +4 -1
  224. package/dist/context-DTxSQvp4.js +13 -0
  225. package/dist/context-hA0Rb2Xa.cjs +1 -0
  226. package/dist/contexts-BH7PdKFS.cjs +1 -0
  227. package/dist/contexts-jak8-tND.js +667 -0
  228. package/dist/coordinates/feed.d.ts +52 -0
  229. package/dist/coordinates/index.d.ts +7 -0
  230. package/dist/coordinates/side.d.ts +40 -0
  231. package/dist/coordinates/spaces.d.ts +49 -0
  232. package/dist/coordinates/viewport.d.ts +22 -0
  233. package/dist/coordinates/world.d.ts +15 -0
  234. package/dist/debug-ui/default-setting.cjs +2 -2
  235. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  236. package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
  237. package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
  238. package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
  239. package/dist/debug-ui/index.d.ts +18 -3
  240. package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
  241. package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
  242. package/dist/debug-ui/media-source/index.d.ts +1 -1
  243. package/dist/debug-ui/media-source/session.d.ts +30 -2
  244. package/dist/debug-ui/media-source.cjs +1 -1
  245. package/dist/debug-ui/media-source.js +1 -1
  246. package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
  247. package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
  248. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
  249. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
  250. package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
  251. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
  252. package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
  253. package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
  254. package/dist/debug-ui/settings-panel/index.d.ts +6 -1
  255. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  256. package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
  257. package/dist/debug-ui.cjs +3 -3
  258. package/dist/debug-ui.js +2695 -2547
  259. package/dist/detector-K8aej4MB.js +59 -0
  260. package/dist/detector-ijypGtse.cjs +1 -0
  261. package/dist/entries/all.d.ts +3 -1
  262. package/dist/entries/core.d.ts +20 -2
  263. package/dist/entries/face-effects.d.ts +123 -9
  264. package/dist/entries/instructions.d.ts +48 -0
  265. package/dist/entries/internal.d.ts +2 -1
  266. package/dist/entries/low-level.d.ts +49 -3
  267. package/dist/entries/particles.d.ts +11 -0
  268. package/dist/entries/product.d.ts +11 -0
  269. package/dist/entries/tracking.d.ts +60 -2
  270. package/dist/face-atlas/attributes.d.ts +30 -0
  271. package/dist/face-atlas/eyes.d.ts +272 -0
  272. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  273. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  274. package/dist/face-atlas/glsl/common.d.ts +55 -0
  275. package/dist/face-atlas/glsl/design.d.ts +49 -0
  276. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  277. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  278. package/dist/face-atlas/glsl/format.d.ts +4 -0
  279. package/dist/face-atlas/glsl/index.d.ts +59 -0
  280. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  281. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  282. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  283. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  284. package/dist/face-atlas/guide.d.ts +51 -0
  285. package/dist/face-atlas/index.d.ts +25 -0
  286. package/dist/face-atlas/lead.d.ts +117 -0
  287. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  288. package/dist/face-atlas/masks.d.ts +53 -0
  289. package/dist/face-atlas/obj.d.ts +69 -0
  290. package/dist/face-atlas/polylines.d.ts +63 -0
  291. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  292. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  293. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  294. package/dist/face-atlas/probe/constants.d.ts +137 -0
  295. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  296. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  297. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  298. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  299. package/dist/face-atlas/probe/stats.d.ts +143 -0
  300. package/dist/face-atlas/probe/targets.d.ts +70 -0
  301. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  302. package/dist/face-atlas/quality.d.ts +28 -0
  303. package/dist/face-atlas/regions.d.ts +31 -0
  304. package/dist/face-atlas/registry.d.ts +252 -0
  305. package/dist/face-atlas/renderState.d.ts +86 -0
  306. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  307. package/dist/face-atlas/shading.d.ts +406 -0
  308. package/dist/face-atlas/shapes.d.ts +86 -0
  309. package/dist/face-atlas/sides.d.ts +41 -0
  310. package/dist/face-atlas/skinMask.d.ts +35 -0
  311. package/dist/face-atlas/surface.d.ts +155 -0
  312. package/dist/face-atlas/topology.d.ts +44 -0
  313. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  314. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  315. package/dist/face-character/bindFaceModel.d.ts +106 -0
  316. package/dist/face-character/canonicalFace.d.ts +17 -0
  317. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  318. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  319. package/dist/face-character/driveFaceModel.d.ts +57 -0
  320. package/dist/face-character/expressionOutputs.d.ts +45 -0
  321. package/dist/face-character/faceExpressions.d.ts +104 -0
  322. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  323. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  324. package/dist/face-character/faceMorph.d.ts +77 -0
  325. package/dist/face-character/faceMorphs.d.ts +46 -0
  326. package/dist/face-character/facePhoto.d.ts +138 -0
  327. package/dist/face-character/facePiercings.d.ts +116 -0
  328. package/dist/face-character/facePin.d.ts +131 -0
  329. package/dist/face-character/faceReprojection.d.ts +273 -0
  330. package/dist/face-character/faceReprojector.d.ts +171 -0
  331. package/dist/face-character/faceRig.d.ts +176 -0
  332. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  333. package/dist/face-character/faceTexture.d.ts +169 -0
  334. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  335. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  336. package/dist/face-character/faceTextureStats.d.ts +298 -0
  337. package/dist/face-character/faceTransfer.d.ts +396 -0
  338. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  339. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  340. package/dist/face-character/faceWarp3D.d.ts +101 -0
  341. package/dist/face-character/faceless.d.ts +79 -0
  342. package/dist/face-character/featureWarp.d.ts +28 -0
  343. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  344. package/dist/face-character/liveValue.d.ts +12 -0
  345. package/dist/face-character/memo.d.ts +15 -0
  346. package/dist/face-effects.cjs +2324 -1
  347. package/dist/face-effects.js +14208 -2268
  348. package/dist/face-expression/index.d.ts +182 -0
  349. package/dist/face-info/landmarks.d.ts +17 -3
  350. package/dist/face-info/types.d.ts +20 -3
  351. package/dist/gestures/definitions.d.ts +98 -0
  352. package/dist/gestures/detector.d.ts +87 -0
  353. package/dist/gestures/index.d.ts +8 -0
  354. package/dist/gestures/measures.d.ts +114 -0
  355. package/dist/gestures/settings.d.ts +49 -0
  356. package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
  357. package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
  358. package/dist/hand/armFit.d.ts +46 -0
  359. package/dist/hand/armMask.d.ts +178 -0
  360. package/dist/hand/handCutout.d.ts +23 -0
  361. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  362. package/dist/hand/handGestures.d.ts +524 -0
  363. package/dist/hand/handPose.d.ts +98 -0
  364. package/dist/hand/handRigSolver.d.ts +159 -0
  365. package/dist/hand/handTattoo.d.ts +81 -0
  366. package/dist/hand/handTouch.d.ts +240 -0
  367. package/dist/hand/wrist.d.ts +44 -0
  368. package/dist/hand/wristFilter.d.ts +44 -0
  369. package/dist/hooks/selectors.d.ts +76 -1
  370. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  371. package/dist/hooks/useFaceInfo.d.ts +13 -1
  372. package/dist/hooks/useFaceInfos.d.ts +1 -1
  373. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  374. package/dist/hooks/useGesture.d.ts +32 -0
  375. package/dist/hooks/useIrisTracking.d.ts +45 -0
  376. package/dist/hooks/useTrackerContext.d.ts +6 -0
  377. package/dist/hooks/useXRDiagnostics.d.ts +81 -0
  378. package/dist/hooks/useXRModel.d.ts +7 -0
  379. package/dist/hooks/useXRSession/facade.d.ts +42 -2
  380. package/dist/hooks/useXRSession/index.d.ts +2 -2
  381. package/dist/hooks/useXRSession/reason.d.ts +3 -1
  382. package/dist/hooks/useXRSession/registry.d.ts +14 -0
  383. package/dist/hooks/useXRSession/store.d.ts +52 -3
  384. package/dist/index-B1_TzJaI.js +1104 -0
  385. package/dist/index-BavF06C6.js +190 -0
  386. package/dist/index-BfFmpddl.cjs +21 -0
  387. package/dist/index-BuBzneeW.cjs +46 -0
  388. package/dist/index-CGsQWodV.cjs +1 -0
  389. package/dist/index-CIe7eCMH.js +3200 -0
  390. package/dist/index-CfSF8LXa.cjs +1 -0
  391. package/dist/index-D5GTzOzD.cjs +1 -0
  392. package/dist/index-DBhQzvVa.js +314 -0
  393. package/dist/index-DE17y0ZI.cjs +1 -0
  394. package/dist/index-JII7huPk.js +442 -0
  395. package/dist/index-tpCr9CLj.cjs +1 -0
  396. package/dist/index-w1S7fI2B.js +1432 -0
  397. package/dist/index-zGaqrz_K.js +188 -0
  398. package/dist/instructions.cjs +30 -0
  399. package/dist/instructions.js +1507 -0
  400. package/dist/{internal-Dmk1cTXq.js → internal-B90P-clC.js} +138 -119
  401. package/dist/internal-Cjinca64.cjs +1 -0
  402. package/dist/internal.cjs +1 -1
  403. package/dist/internal.js +15 -10
  404. package/dist/iris/compute.d.ts +27 -0
  405. package/dist/iris/index.d.ts +4 -0
  406. package/dist/iris/lead.d.ts +19 -0
  407. package/dist/iris/types.d.ts +89 -0
  408. package/dist/landmarkMask-BFDyBnKM.js +224 -0
  409. package/dist/landmarkMask-u7es2k4X.cjs +1 -0
  410. package/dist/landmarks-BlUqf5MZ.cjs +1 -0
  411. package/dist/landmarks-bftdwq6Z.js +76 -0
  412. package/dist/loaders-BGAUACsd.js +363 -0
  413. package/dist/loaders-BJ1_QCHt.cjs +1 -0
  414. package/dist/low-level.cjs +1 -1
  415. package/dist/low-level.js +1190 -675
  416. package/dist/main.cjs +1 -1
  417. package/dist/main.js +1190 -452
  418. package/dist/models/Base/index.d.ts +49 -0
  419. package/dist/models/Body/index.d.ts +3 -1
  420. package/dist/models/Face/constants.d.ts +8 -0
  421. package/dist/models/Face/index.d.ts +4 -12
  422. package/dist/models/Face/rotation.d.ts +18 -3
  423. package/dist/models/Hand/GestureTracking.d.ts +1 -1
  424. package/dist/models/Hand/HandTracking.d.ts +17 -1
  425. package/dist/models/Holistic/index.d.ts +49 -0
  426. package/dist/models/Holistic/result.d.ts +68 -0
  427. package/dist/models/Segmentation/index.d.ts +2 -0
  428. package/dist/models/SemanticSegmentation/index.d.ts +31 -0
  429. package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
  430. package/dist/models/index.d.ts +2 -0
  431. package/dist/models/nodeSource.d.ts +9 -0
  432. package/dist/particles/emission.d.ts +24 -0
  433. package/dist/particles/eyes.d.ts +24 -0
  434. package/dist/particles/glsl.d.ts +14 -0
  435. package/dist/particles/index.d.ts +10 -0
  436. package/dist/particles/motion.d.ts +42 -0
  437. package/dist/particles/presets.d.ts +12 -0
  438. package/dist/particles/ring.d.ts +58 -0
  439. package/dist/particles/selfTest.d.ts +53 -0
  440. package/dist/particles/settings.d.ts +127 -0
  441. package/dist/particles/shapes.d.ts +29 -0
  442. package/dist/particles/spawner.d.ts +60 -0
  443. package/dist/particles/system.d.ts +64 -0
  444. package/dist/particles.cjs +122 -0
  445. package/dist/particles.js +774 -0
  446. package/dist/product/ProductDimensions.d.ts +16 -0
  447. package/dist/product/ProductHotspot.d.ts +16 -0
  448. package/dist/product/ProductViewer.d.ts +9 -0
  449. package/dist/product/details.d.ts +53 -0
  450. package/dist/product/index.d.ts +14 -0
  451. package/dist/product/loadModelViewer.d.ts +4 -0
  452. package/dist/product/types.d.ts +71 -0
  453. package/dist/product/useProductAr.d.ts +37 -0
  454. package/dist/product/useProductDetails.d.ts +60 -0
  455. package/dist/product.cjs +1 -0
  456. package/dist/product.js +414 -0
  457. package/dist/providers-C8rE26Uf.js +366 -0
  458. package/dist/providers-DHsrhDI2.cjs +62 -0
  459. package/dist/quality/XRQualityController.d.ts +25 -0
  460. package/dist/quality/controller.d.ts +33 -0
  461. package/dist/quality/index.d.ts +6 -0
  462. package/dist/quality/types.d.ts +100 -0
  463. package/dist/quality/useXRQuality.d.ts +28 -0
  464. package/dist/render/renderPasses.d.ts +8 -0
  465. package/dist/render/sceneBeforeRender.d.ts +12 -0
  466. package/dist/{renderGroups-KZk6eRiY.js → renderGroups-B38pUaX2.js} +1 -1
  467. package/dist/{renderGroups-80H3DpTl.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
  468. package/dist/renderPasses-B6l8IpJv.js +1290 -0
  469. package/dist/renderPasses-dqmkft4P.cjs +158 -0
  470. package/dist/renderState-CJNmj5jz.js +39 -0
  471. package/dist/renderState-apSfg4eR.cjs +1 -0
  472. package/dist/scene-object.cjs +1 -1
  473. package/dist/scene-object.js +2 -2
  474. package/dist/segmentation-Cb3ouK6Z.js +1758 -0
  475. package/dist/segmentation-D9pYO6aR.cjs +1 -0
  476. package/dist/segmentation2d/faceMemory.d.ts +28 -0
  477. package/dist/segmentation2d/faceRegions.d.ts +24 -0
  478. package/dist/segmentation2d/index.d.ts +9 -0
  479. package/dist/segmentation2d/maskUv.d.ts +23 -0
  480. package/dist/segmentation2d/rasterize.d.ts +14 -0
  481. package/dist/segmentation2d/types.d.ts +52 -0
  482. package/dist/select-Ck5LGz-J.cjs +1 -0
  483. package/dist/select-pYRo_win.js +233 -0
  484. package/dist/selectors-C4X71aoD.cjs +1 -0
  485. package/dist/selectors-DmNaKIwE.js +196 -0
  486. package/dist/session-BrH8G7iJ.cjs +31 -0
  487. package/dist/session-DgA_z6O1.js +418 -0
  488. package/dist/settings-BJ7FMBsO.js +111 -0
  489. package/dist/settings-C63FMBlF.cjs +1 -0
  490. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  491. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  492. package/dist/spring/index.d.ts +2 -0
  493. package/dist/spring/spring.d.ts +69 -0
  494. package/dist/spring/swing.d.ts +54 -0
  495. package/dist/subjects/index.d.ts +2 -0
  496. package/dist/subjects/select.d.ts +62 -0
  497. package/dist/subjects/types.d.ts +55 -0
  498. package/dist/tracking-config/apply.d.ts +57 -0
  499. package/dist/tracking-config/index.d.ts +7 -0
  500. package/dist/tracking-config/resolve.d.ts +25 -0
  501. package/dist/tracking-config/storage.d.ts +8 -0
  502. package/dist/tracking-config/types.d.ts +106 -0
  503. package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
  504. package/dist/tracking.cjs +10 -1
  505. package/dist/tracking.js +1326 -506
  506. package/dist/trigger-D0Pm9noT.cjs +49 -0
  507. package/dist/trigger-IQeys0oS.js +2128 -0
  508. package/dist/types/compositor.d.ts +21 -0
  509. package/dist/types/face.d.ts +20 -1
  510. package/dist/types/hand-tracking.d.ts +9 -0
  511. package/dist/types/holistic.d.ts +121 -0
  512. package/dist/types/index.d.ts +1 -0
  513. package/dist/types/model.d.ts +22 -2
  514. package/dist/types/nodes.d.ts +47 -3
  515. package/dist/types/segmentation.d.ts +24 -0
  516. package/dist/types/session.d.ts +41 -3
  517. package/dist/updateThrottle-BseecYag.js +4 -0
  518. package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
  519. package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
  520. package/dist/useFaceInfo-J4x7LsqL.js +76 -0
  521. package/dist/useFaceResultReader-BvEo5REG.js +61 -0
  522. package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
  523. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  524. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  525. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  526. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  527. package/dist/useXRCapabilities-Cr3RzuAW.cjs +1 -0
  528. package/dist/useXRCapabilities-Cxmlmpbd.js +30 -0
  529. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  530. package/dist/utils/fns.d.ts +6 -3
  531. package/dist/utils/headOccluderFit.d.ts +42 -0
  532. package/dist/utils/integrity.d.ts +21 -1
  533. package/dist/utils/resolveNumFaces.d.ts +13 -0
  534. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  535. package/dist/utils/similarityFit.d.ts +23 -0
  536. package/dist/utils/updateThrottle.d.ts +2 -0
  537. package/dist/utils/useStableUniforms.d.ts +18 -0
  538. package/dist/uv-BMFt19bg.cjs +1 -0
  539. package/dist/{index-ByoNj0QP.js → uv-DJU_XfmN.js} +15 -247
  540. package/docs/SDK_DOCUMENTATION.md +1 -2
  541. package/docs/api/adaptive-quality.mdx +104 -0
  542. package/docs/api/asset-lifecycle.mdx +78 -0
  543. package/docs/api/body-instructions.mdx +285 -0
  544. package/docs/api/body-triggers.mdx +234 -0
  545. package/docs/api/camera-permission.mdx +142 -0
  546. package/docs/api/coordinate-spaces.mdx +168 -0
  547. package/docs/api/cross-camera.mdx +89 -0
  548. package/docs/api/debug-ui-scene-editor.mdx +23 -2
  549. package/docs/api/diagnostics-calibration.mdx +97 -0
  550. package/docs/api/external-face-mesh.mdx +231 -0
  551. package/docs/api/face-actions.mdx +20 -16
  552. package/docs/api/face-attribute-expression.mdx +1 -1
  553. package/docs/api/face-binding-anchors.mdx +4 -2
  554. package/docs/api/face-character.mdx +157 -0
  555. package/docs/api/face-effects.mdx +9 -0
  556. package/docs/api/face-expression-controller.mdx +153 -0
  557. package/docs/api/face-info.mdx +17 -11
  558. package/docs/api/face-inset.mdx +204 -0
  559. package/docs/api/face-instructions.mdx +183 -0
  560. package/docs/api/face-liquify.mdx +196 -0
  561. package/docs/api/face-mesh.mdx +8 -9
  562. package/docs/api/face-morph.mdx +117 -0
  563. package/docs/api/face-painting.mdx +7 -0
  564. package/docs/api/face-reprojection.mdx +154 -0
  565. package/docs/api/face-retouching.mdx +18 -10
  566. package/docs/api/face-swap.mdx +350 -0
  567. package/docs/api/face-warp-3d.mdx +166 -0
  568. package/docs/api/faceless.mdx +143 -0
  569. package/docs/api/gestures.mdx +209 -0
  570. package/docs/api/hair.mdx +97 -0
  571. package/docs/api/hand-instructions.mdx +222 -0
  572. package/docs/api/hand-rig.mdx +535 -0
  573. package/docs/api/hand-touch.mdx +162 -0
  574. package/docs/api/head-occluder.mdx +563 -0
  575. package/docs/api/holistic-tracker.mdx +164 -0
  576. package/docs/api/instructions.mdx +323 -0
  577. package/docs/api/iris-tracking.mdx +247 -0
  578. package/docs/api/made-up-camera.mdx +131 -0
  579. package/docs/api/makeup-skin-tone.mdx +135 -0
  580. package/docs/api/makeup.mdx +353 -0
  581. package/docs/api/multi-subject.mdx +98 -0
  582. package/docs/api/particles.mdx +155 -0
  583. package/docs/api/person-cutout.mdx +136 -0
  584. package/docs/api/pin-to-face-mesh.mdx +274 -0
  585. package/docs/api/product-ar.mdx +114 -0
  586. package/docs/api/product-details.mdx +78 -0
  587. package/docs/api/screen-space-coordinates.mdx +4 -1
  588. package/docs/api/segmentation-overlay.mdx +301 -0
  589. package/docs/api/session-lifecycle.mdx +136 -0
  590. package/docs/api/trackers.mdx +5 -0
  591. package/docs/api/tracking-config.mdx +108 -0
  592. package/docs/docs.json +51 -1
  593. package/docs/examples/lip-shaders.mdx +273 -0
  594. package/docs/guides/face-atlas-template.svg +1 -0
  595. package/docs/guides/face-atlas-textures.mdx +186 -0
  596. package/docs/guides/face-texture-template.svg +1 -0
  597. package/docs/guides/harness-debug-ui.mdx +4 -4
  598. package/docs/guides/lip-effect-textures.mdx +368 -0
  599. package/docs/guides/lip-uv-template.png +0 -0
  600. package/docs/guides/lip-uv-template.svg +1 -0
  601. package/docs/guides/makeup-design-textures.mdx +109 -0
  602. package/docs/introduction.mdx +1 -2
  603. package/package.json +23 -1
  604. package/dist/DebuggerUI-B6bP6P9r.cjs +0 -1
  605. package/dist/DebuggerUI-BjOMr8q_.js +0 -269
  606. package/dist/FaceMeshRenderer-C5l6VLdO.cjs +0 -155
  607. package/dist/FaceMeshRenderer-wjAHrJzP.js +0 -1270
  608. package/dist/FaceRetouch-BkJzoA79.cjs +0 -134
  609. package/dist/FaceRetouch-DwbKQJAN.js +0 -551
  610. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
  611. package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
  612. package/dist/components/FaceWarp3D/warp.d.ts +0 -13
  613. package/dist/contexts-ByhzppYl.js +0 -663
  614. package/dist/contexts-Dr62It_K.cjs +0 -1
  615. package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
  616. package/dist/getFaceInfo-C4QpCQIY.js +0 -118
  617. package/dist/getFaceInfo-fA1bFBub.cjs +0 -1
  618. package/dist/index-9dlAQAhy.js +0 -1462
  619. package/dist/index-BjmTe9eM.cjs +0 -1
  620. package/dist/index-BpEf2BBb.cjs +0 -1
  621. package/dist/index-CyUUurQT.cjs +0 -1
  622. package/dist/index-DCiMbxC3.cjs +0 -1
  623. package/dist/index-DXT3WccE.js +0 -2089
  624. package/dist/index-DpI-qo5X.cjs +0 -17
  625. package/dist/index-DyVF4vEW.js +0 -111
  626. package/dist/index-VJ0SJwmG.js +0 -214
  627. package/dist/internal-Cq-TEQ5Y.cjs +0 -1
  628. package/dist/renderLayers-lDtL0_43.cjs +0 -1
  629. package/dist/renderLayers-zrK2pv5O.js +0 -13
  630. package/dist/renderPasses-BOoBSr8z.cjs +0 -21
  631. package/dist/renderPasses-BcquyVtu.js +0 -1500
  632. package/dist/selectors-B8H97CKA.js +0 -59
  633. package/dist/selectors-CZLKT2Iv.cjs +0 -1
  634. package/dist/session-CpkiK5YA.cjs +0 -31
  635. package/dist/session-DLFN_VII.js +0 -363
  636. package/dist/useFaceInfo-BJ8-_MOs.cjs +0 -1
  637. package/dist/useFaceInfo-Dk426LTu.js +0 -62
  638. package/dist/useFaceResults-CtetsO9M.js +0 -19
  639. package/dist/useFaceResults-wBJF3zyp.cjs +0 -1
@@ -1,21 +1,22 @@
1
- var K = Object.defineProperty;
2
- var O = (t, e, r) => e in t ? K(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
- var s = (t, e, r) => O(t, typeof e != "symbol" ? e + "" : e, r);
4
- import { jsx as f, jsxs as w } from "react/jsx-runtime";
5
- import W, { useState as b, useRef as h, useEffect as T, useCallback as y, createContext as X, Suspense as V, lazy as q } from "react";
6
- import { a as J } from "./selectors-B8H97CKA.js";
7
- import { u as G } from "./index-9dlAQAhy.js";
8
- import { useFrame as Q } from "@react-three/fiber";
1
+ var X = Object.defineProperty;
2
+ var V = (t, e, r) => e in t ? X(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
+ var i = (t, e, r) => V(t, typeof e != "symbol" ? e + "" : e, r);
4
+ import { jsx as m, jsxs as w } from "react/jsx-runtime";
5
+ import q, { useState as b, useContext as J, createContext as G, Suspense as E, lazy as Q, useRef as p, useEffect as T, useCallback as y } from "react";
6
+ import { d as Y } from "./selectors-DmNaKIwE.js";
7
+ import { u as Z } from "./index-CIe7eCMH.js";
8
+ import { useFrame as ee } from "@react-three/fiber";
9
9
  import "./hasFullUnitUVBounds-BGvcFsQM.js";
10
- import "./renderLayers-zrK2pv5O.js";
11
- const pe = ({
10
+ import "./uv-DJU_XfmN.js";
11
+ import "./FaceSurface-DmP9AEeC.js";
12
+ const ve = ({
12
13
  children: t,
13
14
  defaultCollapsed: e = !0,
14
15
  title: r,
15
- width: i = 320
16
+ width: s = 320
16
17
  }) => {
17
- const [n, o] = b(e);
18
- return n ? /* @__PURE__ */ f(
18
+ const [a, o] = b(e);
19
+ return a ? /* @__PURE__ */ m(
19
20
  "button",
20
21
  {
21
22
  type: "button",
@@ -48,7 +49,7 @@ const pe = ({
48
49
  right: 16,
49
50
  bottom: 16,
50
51
  zIndex: 40,
51
- width: i,
52
+ width: s,
52
53
  maxWidth: "calc(100vw - 32px)",
53
54
  padding: 14,
54
55
  borderRadius: 14,
@@ -71,8 +72,8 @@ const pe = ({
71
72
  marginBottom: 10
72
73
  },
73
74
  children: [
74
- /* @__PURE__ */ f("div", { style: { fontSize: 13, fontWeight: 700 }, children: r }),
75
- /* @__PURE__ */ f(
75
+ /* @__PURE__ */ m("div", { style: { fontSize: 13, fontWeight: 700 }, children: r }),
76
+ /* @__PURE__ */ m(
76
77
  "button",
77
78
  {
78
79
  type: "button",
@@ -100,13 +101,13 @@ const pe = ({
100
101
  }
101
102
  );
102
103
  };
103
- class Y {
104
+ class te {
104
105
  // 500ms as per PRD
105
106
  constructor() {
106
- s(this, "frameTimestamps", []);
107
- s(this, "lastUpdateTime", 0);
108
- s(this, "currentFPS", 0);
109
- s(this, "updateInterval", 500);
107
+ i(this, "frameTimestamps", []);
108
+ i(this, "lastUpdateTime", 0);
109
+ i(this, "currentFPS", 0);
110
+ i(this, "updateInterval", 500);
110
111
  this.lastUpdateTime = performance.now();
111
112
  }
112
113
  /**
@@ -117,7 +118,7 @@ class Y {
117
118
  const e = performance.now();
118
119
  this.frameTimestamps.push(e);
119
120
  const r = e - this.updateInterval;
120
- this.frameTimestamps = this.frameTimestamps.filter((i) => i > r), e - this.lastUpdateTime >= this.updateInterval && (this.currentFPS = this.frameTimestamps.length * 2, this.lastUpdateTime = e);
121
+ this.frameTimestamps = this.frameTimestamps.filter((s) => s > r), e - this.lastUpdateTime >= this.updateInterval && (this.currentFPS = this.frameTimestamps.length * 2, this.lastUpdateTime = e);
121
122
  }
122
123
  /**
123
124
  * Get current FPS value
@@ -132,21 +133,21 @@ class Y {
132
133
  this.frameTimestamps = [], this.lastUpdateTime = performance.now(), this.currentFPS = 0;
133
134
  }
134
135
  }
135
- function ge(t, e = 1) {
136
+ function Te(t, e = 1) {
136
137
  return t.toFixed(e);
137
138
  }
138
- function _(t) {
139
+ function R(t) {
139
140
  return t / (1024 * 1024);
140
141
  }
141
- function Z(t, e) {
142
+ function re(t, e) {
142
143
  return e === 0 ? 0 : t / e * 100;
143
144
  }
144
- class ee {
145
+ class se {
145
146
  constructor(e = 1e3) {
146
- s(this, "intervalId", null);
147
- s(this, "memoryUsage", null);
148
- s(this, "updateInterval");
149
- s(this, "isSupported", !1);
147
+ i(this, "intervalId", null);
148
+ i(this, "memoryUsage", null);
149
+ i(this, "updateInterval");
150
+ i(this, "isSupported", !1);
150
151
  this.updateInterval = e, this.checkSupport();
151
152
  }
152
153
  /**
@@ -185,11 +186,11 @@ class ee {
185
186
  if (!this.isSupported) return;
186
187
  const e = performance;
187
188
  if (!e.memory) return;
188
- const r = e.memory.usedJSHeapSize, i = e.memory.jsHeapSizeLimit;
189
+ const r = e.memory.usedJSHeapSize, s = e.memory.jsHeapSizeLimit;
189
190
  this.memoryUsage = {
190
- used: _(r),
191
- total: _(i),
192
- percentage: Z(r, i)
191
+ used: R(r),
192
+ total: R(s),
193
+ percentage: re(r, s)
193
194
  };
194
195
  }
195
196
  /**
@@ -206,11 +207,11 @@ class ee {
206
207
  return this.isSupported;
207
208
  }
208
209
  }
209
- class te {
210
+ class ie {
210
211
  constructor() {
211
- s(this, "resolution", "N/A");
212
- s(this, "videoElement", null);
213
- s(this, "metadataListener", null);
212
+ i(this, "resolution", "N/A");
213
+ i(this, "videoElement", null);
214
+ i(this, "metadataListener", null);
214
215
  }
215
216
  /**
216
217
  * Start tracking resolution from a video element
@@ -248,12 +249,12 @@ class te {
248
249
  return this.videoElement && this.updateResolution(), this.resolution;
249
250
  }
250
251
  }
251
- class re {
252
+ class ne {
252
253
  constructor(e = {}) {
253
- s(this, "options");
254
- s(this, "isRunning", !1);
254
+ i(this, "options");
255
+ i(this, "isRunning", !1);
255
256
  // Current metrics state
256
- s(this, "metrics", {
257
+ i(this, "metrics", {
257
258
  cameraFPS: 0,
258
259
  detectionTime: 0,
259
260
  modelPerformance: [],
@@ -263,16 +264,16 @@ class re {
263
264
  resolution: "N/A"
264
265
  });
265
266
  // Trackers
266
- s(this, "cameraFPSTracker");
267
- s(this, "memoryTracker");
268
- s(this, "resolutionTracker");
267
+ i(this, "cameraFPSTracker");
268
+ i(this, "memoryTracker");
269
+ i(this, "resolutionTracker");
269
270
  // For effective FPS calculation
270
- s(this, "frameTimes", []);
271
- s(this, "lastEffectiveFPSUpdate", 0);
271
+ i(this, "frameTimes", []);
272
+ i(this, "lastEffectiveFPSUpdate", 0);
272
273
  this.options = {
273
274
  enableMemoryTracking: e.enableMemoryTracking ?? !0,
274
275
  memoryUpdateInterval: e.memoryUpdateInterval ?? 1e3
275
- }, this.cameraFPSTracker = new Y(), this.memoryTracker = new ee(this.options.memoryUpdateInterval), this.resolutionTracker = new te();
276
+ }, this.cameraFPSTracker = new te(), this.memoryTracker = new se(this.options.memoryUpdateInterval), this.resolutionTracker = new ie();
276
277
  }
277
278
  /**
278
279
  * Start collecting metrics
@@ -344,12 +345,12 @@ class re {
344
345
  this.metrics.detectionTime = 0, this.metrics.modelPerformance = [];
345
346
  return;
346
347
  }
347
- const i = r.map((a) => a && typeof a.getPerformanceData == "function" ? a.getPerformanceData() : Promise.resolve({ name: "unknown", processingTime: 0 })), n = await Promise.all(i);
348
- this.metrics.modelPerformance = n.map((a) => ({
349
- name: a.name,
350
- processingTime: a.processingTime || 0
348
+ const s = r.map((n) => n && typeof n.getPerformanceData == "function" ? n.getPerformanceData() : Promise.resolve({ name: "unknown", processingTime: 0 })), a = await Promise.all(s);
349
+ this.metrics.modelPerformance = a.map((n) => ({
350
+ name: n.name,
351
+ processingTime: n.processingTime || 0
351
352
  }));
352
- const o = n.reduce((a, p) => a + (p.processingTime || 0), 0);
353
+ const o = a.reduce((n, h) => n + (h.processingTime || 0), 0);
353
354
  this.metrics.detectionTime = o, this.updateEffectiveFPS();
354
355
  } catch (r) {
355
356
  console.warn("[MetricsCollector] Error updating detection time:", r), this.metrics.detectionTime = 0, this.metrics.modelPerformance = [];
@@ -363,8 +364,8 @@ class re {
363
364
  const e = performance.now(), r = this.metrics.detectionTime + this.metrics.renderTime;
364
365
  if (this.frameTimes.push(r), e - this.lastEffectiveFPSUpdate >= 1e3) {
365
366
  if (this.frameTimes.length > 0) {
366
- const i = this.frameTimes.reduce((n, o) => n + o, 0) / this.frameTimes.length;
367
- this.metrics.effectiveFPS = i > 0 ? 1e3 / i : 0;
367
+ const s = this.frameTimes.reduce((a, o) => a + o, 0) / this.frameTimes.length;
368
+ this.metrics.effectiveFPS = s > 0 ? 1e3 / s : 0;
368
369
  }
369
370
  this.frameTimes = [], this.lastEffectiveFPSUpdate = e;
370
371
  }
@@ -376,14 +377,15 @@ class re {
376
377
  return this.isRunning;
377
378
  }
378
379
  }
379
- const ie = q(async () => ({ default: (await import("./DebuggerUI-BjOMr8q_.js")).DebuggerUI })), C = X(null);
380
- function be({
380
+ const I = Q(async () => ({ default: (await import("./DebuggerUI-7ngnJsBe.js")).DebuggerUI })), k = G(null);
381
+ function ye({
381
382
  children: t,
382
383
  keyboardShortcut: e = "ctrl+shift+d",
383
384
  initialEnabled: r = !1,
384
- position: i = "top-left"
385
+ position: s = "top-left",
386
+ docked: a = !1
385
387
  }) {
386
- const [n, o] = b(r), [a, p] = b(!1), [k, E] = b({
388
+ const [o, n] = b(r), [h, P] = b(!1), [x, D] = b({
387
389
  cameraFPS: 0,
388
390
  detectionTime: 0,
389
391
  modelPerformance: [],
@@ -391,20 +393,20 @@ function be({
391
393
  effectiveFPS: 0,
392
394
  memory: null,
393
395
  resolution: "N/A"
394
- }), m = h(null), l = h(null), g = h(!1), { session: v } = G(), P = J();
395
- T(() => (m.current || (m.current = new re(), window.__xr_metrics_collector = m.current), () => {
396
- m.current && m.current.stop(), l.current && clearInterval(l.current), window.__xr_metrics_collector && delete window.__xr_metrics_collector;
396
+ }), d = p(null), l = p(null), g = p(!1), { session: v } = Z(), F = Y();
397
+ T(() => (d.current || (d.current = new ne(), window.__xr_metrics_collector = d.current), () => {
398
+ d.current && d.current.stop(), l.current && clearInterval(l.current), window.__xr_metrics_collector && delete window.__xr_metrics_collector;
397
399
  }), []), T(() => {
398
- const c = m.current;
400
+ const c = d.current;
399
401
  if (c) {
400
- if (n && P) {
402
+ if (o && F) {
401
403
  const u = v._getVideoElement();
402
404
  c.start(u), l.current = window.setInterval(async () => {
403
405
  if (!g.current) {
404
406
  g.current = !0;
405
407
  try {
406
- const F = Object.fromEntries(v.store.getSnapshot().pipeline);
407
- await c.updateDetectionTime(F), E(c.getMetrics());
408
+ const C = Object.fromEntries(v.store.getSnapshot().pipeline);
409
+ await c.updateDetectionTime(C), D(c.getMetrics());
408
410
  } finally {
409
411
  g.current = !1;
410
412
  }
@@ -416,67 +418,83 @@ function be({
416
418
  l.current && (clearInterval(l.current), l.current = null);
417
419
  };
418
420
  }
419
- }, [n, P, v]), T(() => {
421
+ }, [o, F, v]), T(() => {
420
422
  const c = (u) => {
421
- const d = e.toLowerCase().split("+"), U = d.includes("ctrl") || d.includes("control"), L = d.includes("shift"), A = d.includes("alt"), N = d[d.length - 1], H = U ? u.ctrlKey || u.metaKey : !0, z = L ? u.shiftKey : !0, j = A ? u.altKey : !0, $ = u.key.toLowerCase() === N;
422
- H && z && j && $ && (u.preventDefault(), o((B) => !B));
423
+ const f = e.toLowerCase().split("+"), N = f.includes("ctrl") || f.includes("control"), H = f.includes("shift"), z = f.includes("alt"), j = f[f.length - 1], $ = N ? u.ctrlKey || u.metaKey : !0, B = H ? u.shiftKey : !0, K = z ? u.altKey : !0, O = u.key.toLowerCase() === j;
424
+ $ && B && K && O && (u.preventDefault(), n((W) => !W));
423
425
  };
424
426
  return window.addEventListener("keydown", c), () => {
425
427
  window.removeEventListener("keydown", c);
426
428
  };
427
429
  }, [e]);
428
- const I = y(() => {
429
- o((c) => !c);
430
- }, []), M = y(() => {
431
- o(!0);
432
- }, []), x = y(() => {
433
- o(!1);
434
- }, []), D = {
430
+ const U = y(() => {
431
+ n((c) => !c);
432
+ }, []), L = y(() => {
433
+ n(!0);
434
+ }, []), _ = y(() => {
435
+ n(!1);
436
+ }, []), A = {
435
437
  state: {
436
- enabled: n,
437
- collapsed: a,
438
- metrics: k
438
+ enabled: o,
439
+ collapsed: h,
440
+ metrics: x
439
441
  },
440
- toggle: I,
441
- setCollapsed: p,
442
- enable: M,
443
- disable: x
442
+ toggle: U,
443
+ setCollapsed: P,
444
+ enable: L,
445
+ disable: _
444
446
  };
445
- return /* @__PURE__ */ w(C.Provider, { value: D, children: [
447
+ return /* @__PURE__ */ w(k.Provider, { value: A, children: [
446
448
  t,
447
- n && /* @__PURE__ */ f(V, { fallback: null, children: /* @__PURE__ */ f(
448
- ie,
449
+ o && !a && /* @__PURE__ */ m(E, { fallback: null, children: /* @__PURE__ */ m(
450
+ I,
449
451
  {
450
- metrics: k,
451
- collapsed: a,
452
- onCollapse: p,
453
- onClose: x,
454
- position: i,
452
+ metrics: x,
453
+ collapsed: h,
454
+ onCollapse: P,
455
+ onClose: _,
456
+ position: s,
455
457
  keyboardShortcut: e
456
458
  }
457
459
  ) })
458
460
  ] });
459
461
  }
460
- function se() {
461
- const t = W.useContext(C);
462
+ function we({
463
+ keyboardShortcut: t = "ctrl+shift+d"
464
+ }) {
465
+ const e = J(k);
466
+ return !e || !e.state.enabled ? null : /* @__PURE__ */ m(E, { fallback: null, children: /* @__PURE__ */ m(
467
+ I,
468
+ {
469
+ docked: !0,
470
+ metrics: e.state.metrics,
471
+ collapsed: e.state.collapsed,
472
+ onCollapse: e.setCollapsed,
473
+ onClose: e.disable,
474
+ keyboardShortcut: t
475
+ }
476
+ ) });
477
+ }
478
+ function oe() {
479
+ const t = q.useContext(k);
462
480
  if (!t)
463
481
  throw new Error("useDebuggerContext must be used within a DebuggerProvider");
464
482
  return t;
465
483
  }
466
- function ne({ onUpdate: t }) {
467
- const e = h(0), r = h(!0);
468
- return Q(() => {
484
+ function ae({ onUpdate: t }) {
485
+ const e = p(0), r = p(!0);
486
+ return ee(() => {
469
487
  if (r.current)
470
488
  r.current = !1;
471
489
  else {
472
- const n = performance.now() - e.current;
473
- t(n);
490
+ const a = performance.now() - e.current;
491
+ t(a);
474
492
  }
475
493
  e.current = performance.now();
476
494
  }, -1e3), null;
477
495
  }
478
- function oe() {
479
- const t = se();
496
+ function ce() {
497
+ const t = oe();
480
498
  return {
481
499
  metrics: t.state.metrics,
482
500
  enabled: t.state.enabled,
@@ -487,39 +505,40 @@ function oe() {
487
505
  disable: t.disable
488
506
  };
489
507
  }
490
- function ve() {
491
- const { enabled: t } = oe(), e = (r) => {
492
- const i = window;
493
- i.__xr_metrics_collector && i.__xr_metrics_collector.updateRenderTime(r);
508
+ function Se() {
509
+ const { enabled: t } = ce(), e = (r) => {
510
+ const s = window;
511
+ s.__xr_metrics_collector && s.__xr_metrics_collector.updateRenderTime(r);
494
512
  };
495
- return t ? /* @__PURE__ */ f(ne, { onUpdate: e }) : null;
513
+ return t ? /* @__PURE__ */ m(ae, { onUpdate: e }) : null;
496
514
  }
497
515
  const S = 600;
498
- function R() {
516
+ function M() {
499
517
  if (typeof window > "u")
500
518
  return;
501
519
  const t = window;
502
520
  return t.__xrCalibrationDebugState || (t.__xrCalibrationDebugState = { events: [] }), t.__xrCalibrationDebugState;
503
521
  }
504
- function Te(t, e, r) {
505
- const i = R();
506
- i && (i.events.push({
522
+ function ke(t, e, r) {
523
+ const s = M();
524
+ s && (s.events.push({
507
525
  source: t,
508
526
  label: e,
509
527
  payload: r,
510
528
  ts: performance.now()
511
- }), i.events.length > S && i.events.splice(0, i.events.length - S));
529
+ }), s.events.length > S && s.events.splice(0, s.events.length - S));
512
530
  }
513
- function ye(t = S) {
514
- const e = R();
531
+ function Pe(t = S) {
532
+ const e = M();
515
533
  return e ? e.events.slice(Math.max(0, e.events.length - t)) : [];
516
534
  }
517
535
  export {
518
- be as D,
519
- pe as X,
520
- ve as a,
521
- Te as b,
522
- ge as f,
523
- ye as r,
524
- oe as u
536
+ we as D,
537
+ ve as X,
538
+ ye as a,
539
+ Se as b,
540
+ ke as c,
541
+ Te as f,
542
+ Pe as r,
543
+ ce as u
525
544
  };
@@ -0,0 +1 @@
1
+ "use strict";var O=Object.defineProperty;var $=(t,e,r)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var n=(t,e,r)=>$(t,typeof e!="symbol"?e+"":e,r);const c=require("react/jsx-runtime"),i=require("react"),B=require("./selectors-C4X71aoD.cjs"),K=require("./index-CfSF8LXa.cjs"),V=require("@react-three/fiber");require("./hasFullUnitUVBounds-p1Dl0ejX.cjs");require("./uv-BMFt19bg.cjs");require("./FaceSurface-CHAMEeG1.cjs");const W=({children:t,defaultCollapsed:e=!0,title:r,width:s=320})=>{const[l,a]=i.useState(e);return l?c.jsx("button",{type:"button",onClick:()=>a(!1),"aria-label":`Open ${r}`,title:`Open ${r}`,style:{position:"absolute",right:16,bottom:16,zIndex:40,width:40,height:40,border:"1px solid rgba(255,255,255,0.12)",borderRadius:999,background:"rgba(15, 23, 42, 0.72)",color:"#e5eefb",boxShadow:"0 12px 30px rgba(0,0,0,0.18)",backdropFilter:"blur(10px)",cursor:"pointer",pointerEvents:"auto"},children:"◫"}):c.jsxs("div",{style:{position:"absolute",right:16,bottom:16,zIndex:40,width:s,maxWidth:"calc(100vw - 32px)",padding:14,borderRadius:14,boxShadow:"0 12px 30px rgba(0,0,0,0.26)",backdropFilter:"blur(10px)",pointerEvents:"auto",background:"rgba(15, 23, 42, 0.78)",border:"1px solid rgba(255,255,255,0.12)",color:"#e5eefb"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,marginBottom:10},children:[c.jsx("div",{style:{fontSize:13,fontWeight:700},children:r}),c.jsx("button",{type:"button",onClick:()=>a(!0),"aria-label":`Close ${r}`,title:`Close ${r}`,style:{width:32,height:32,border:"1px solid rgba(255,255,255,0.12)",borderRadius:999,background:"rgba(255,255,255,0.04)",color:"#e5eefb",cursor:"pointer",flex:"0 0 auto"},children:"×"})]}),t]})};class X{constructor(){n(this,"frameTimestamps",[]);n(this,"lastUpdateTime",0);n(this,"currentFPS",0);n(this,"updateInterval",500);this.lastUpdateTime=performance.now()}trackFrame(){const e=performance.now();this.frameTimestamps.push(e);const r=e-this.updateInterval;this.frameTimestamps=this.frameTimestamps.filter(s=>s>r),e-this.lastUpdateTime>=this.updateInterval&&(this.currentFPS=this.frameTimestamps.length*2,this.lastUpdateTime=e)}getFPS(){return this.currentFPS}reset(){this.frameTimestamps=[],this.lastUpdateTime=performance.now(),this.currentFPS=0}}function J(t,e=1){return t.toFixed(e)}function P(t){return t/(1024*1024)}function G(t,e){return e===0?0:t/e*100}class Q{constructor(e=1e3){n(this,"intervalId",null);n(this,"memoryUsage",null);n(this,"updateInterval");n(this,"isSupported",!1);this.updateInterval=e,this.checkSupport()}checkSupport(){const e=performance;this.isSupported="memory"in e&&e.memory!==void 0,this.isSupported||console.warn("[MemoryTracker] performance.memory not available (Chrome-only API)")}start(){if(this.intervalId!==null){console.warn("[MemoryTracker] Already running");return}if(!this.isSupported){this.memoryUsage=null;return}this.updateMemory(),this.intervalId=window.setInterval(()=>{this.updateMemory()},this.updateInterval)}stop(){this.intervalId!==null&&(clearInterval(this.intervalId),this.intervalId=null)}updateMemory(){if(!this.isSupported)return;const e=performance;if(!e.memory)return;const r=e.memory.usedJSHeapSize,s=e.memory.jsHeapSizeLimit;this.memoryUsage={used:P(r),total:P(s),percentage:G(r,s)}}getMemoryUsage(){return this.memoryUsage}isMemorySupported(){return this.isSupported}}class Y{constructor(){n(this,"resolution","N/A");n(this,"videoElement",null);n(this,"metadataListener",null)}start(e){if(!e){this.resolution="N/A";return}this.videoElement=e,e.videoWidth>0&&e.videoHeight>0&&this.updateResolution(),this.metadataListener=()=>{this.updateResolution()},e.addEventListener("loadedmetadata",this.metadataListener)}stop(){this.videoElement&&this.metadataListener&&(this.videoElement.removeEventListener("loadedmetadata",this.metadataListener),this.metadataListener=null),this.videoElement=null,this.resolution="N/A"}updateResolution(){if(!this.videoElement){this.resolution="N/A";return}const e=this.videoElement.videoWidth,r=this.videoElement.videoHeight;e>0&&r>0?this.resolution=`${e}x${r}`:this.resolution="N/A"}getResolution(){return this.videoElement&&this.updateResolution(),this.resolution}}class Z{constructor(e={}){n(this,"options");n(this,"isRunning",!1);n(this,"metrics",{cameraFPS:0,detectionTime:0,modelPerformance:[],renderTime:0,effectiveFPS:0,memory:null,resolution:"N/A"});n(this,"cameraFPSTracker");n(this,"memoryTracker");n(this,"resolutionTracker");n(this,"frameTimes",[]);n(this,"lastEffectiveFPSUpdate",0);this.options={enableMemoryTracking:e.enableMemoryTracking??!0,memoryUpdateInterval:e.memoryUpdateInterval??1e3},this.cameraFPSTracker=new X,this.memoryTracker=new Q(this.options.memoryUpdateInterval),this.resolutionTracker=new Y}start(e){if(this.isRunning){console.warn("[MetricsCollector] Already running");return}this.isRunning=!0,this.lastEffectiveFPSUpdate=performance.now(),this.options.enableMemoryTracking&&this.memoryTracker.start(),e&&this.resolutionTracker.start(e),this.setupCameraFPSHook(),console.info("[MetricsCollector] Started")}stop(){this.isRunning&&(this.isRunning=!1,this.memoryTracker.stop(),this.resolutionTracker.stop(),this.cameraFPSTracker.reset(),this.cleanupCameraFPSHook(),console.info("[MetricsCollector] Stopped"))}setupCameraFPSHook(){const e=window;e.__xr_debugger_metrics||(e.__xr_debugger_metrics={trackCameraFrame:()=>{this.cameraFPSTracker.trackFrame(),this.metrics.cameraFPS=this.cameraFPSTracker.getFPS()}})}cleanupCameraFPSHook(){const e=window;e.__xr_debugger_metrics&&delete e.__xr_debugger_metrics}getMetrics(){return this.updateMetricsFromTrackers(),{...this.metrics}}updateMetricsFromTrackers(){this.isRunning&&(this.metrics.memory=this.memoryTracker.getMemoryUsage(),this.metrics.resolution=this.resolutionTracker.getResolution(),this.updateEffectiveFPS())}updateRenderTime(e){this.metrics.renderTime=e,this.updateEffectiveFPS()}async updateDetectionTime(e){if(!e||!this.isRunning){this.metrics.detectionTime=0,this.metrics.modelPerformance=[];return}try{const r=Object.values(e).filter(Boolean);if(r.length===0){this.metrics.detectionTime=0,this.metrics.modelPerformance=[];return}const s=r.map(o=>o&&typeof o.getPerformanceData=="function"?o.getPerformanceData():Promise.resolve({name:"unknown",processingTime:0})),l=await Promise.all(s);this.metrics.modelPerformance=l.map(o=>({name:o.name,processingTime:o.processingTime||0}));const a=l.reduce((o,p)=>o+(p.processingTime||0),0);this.metrics.detectionTime=a,this.updateEffectiveFPS()}catch(r){console.warn("[MetricsCollector] Error updating detection time:",r),this.metrics.detectionTime=0,this.metrics.modelPerformance=[]}}updateEffectiveFPS(){const e=performance.now(),r=this.metrics.detectionTime+this.metrics.renderTime;if(this.frameTimes.push(r),e-this.lastEffectiveFPSUpdate>=1e3){if(this.frameTimes.length>0){const s=this.frameTimes.reduce((l,a)=>l+a,0)/this.frameTimes.length;this.metrics.effectiveFPS=s>0?1e3/s:0}this.frameTimes=[],this.lastEffectiveFPSUpdate=e}}isActive(){return this.isRunning}}const C=i.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./DebuggerUI-CoglgKdO.cjs"))).DebuggerUI})),y=i.createContext(null);function ee({children:t,keyboardShortcut:e="ctrl+shift+d",initialEnabled:r=!1,position:s="top-left",docked:l=!1}){const[a,o]=i.useState(r),[p,T]=i.useState(!1),[w,R]=i.useState({cameraFPS:0,detectionTime:0,modelPerformance:[],renderTime:0,effectiveFPS:0,memory:null,resolution:"N/A"}),f=i.useRef(null),m=i.useRef(null),g=i.useRef(!1),{session:b}=K.useXRContext(),S=B.useXRReady();i.useEffect(()=>(f.current||(f.current=new Z,window.__xr_metrics_collector=f.current),()=>{f.current&&f.current.stop(),m.current&&clearInterval(m.current),window.__xr_metrics_collector&&delete window.__xr_metrics_collector}),[]),i.useEffect(()=>{const u=f.current;if(u){if(a&&S){const d=b._getVideoElement();u.start(d),m.current=window.setInterval(async()=>{if(!g.current){g.current=!0;try{const k=Object.fromEntries(b.store.getSnapshot().pipeline);await u.updateDetectionTime(k),R(u.getMetrics())}finally{g.current=!1}}},100)}else u.stop(),m.current&&(clearInterval(m.current),m.current=null),g.current=!1;return()=>{m.current&&(clearInterval(m.current),m.current=null)}}},[a,S,b]),i.useEffect(()=>{const u=d=>{const h=e.toLowerCase().split("+"),M=h.includes("ctrl")||h.includes("control"),U=h.includes("shift"),j=h.includes("alt"),L=h[h.length-1],q=M?d.ctrlKey||d.metaKey:!0,A=U?d.shiftKey:!0,N=j?d.altKey:!0,H=d.key.toLowerCase()===L;q&&A&&N&&H&&(d.preventDefault(),o(z=>!z))};return window.addEventListener("keydown",u),()=>{window.removeEventListener("keydown",u)}},[e]);const E=i.useCallback(()=>{o(u=>!u)},[]),D=i.useCallback(()=>{o(!0)},[]),x=i.useCallback(()=>{o(!1)},[]),I={state:{enabled:a,collapsed:p,metrics:w},toggle:E,setCollapsed:T,enable:D,disable:x};return c.jsxs(y.Provider,{value:I,children:[t,a&&!l&&c.jsx(i.Suspense,{fallback:null,children:c.jsx(C,{metrics:w,collapsed:p,onCollapse:T,onClose:x,position:s,keyboardShortcut:e})})]})}function te({keyboardShortcut:t="ctrl+shift+d"}){const e=i.useContext(y);return!e||!e.state.enabled?null:c.jsx(i.Suspense,{fallback:null,children:c.jsx(C,{docked:!0,metrics:e.state.metrics,collapsed:e.state.collapsed,onCollapse:e.setCollapsed,onClose:e.disable,keyboardShortcut:t})})}function re(){const t=i.useContext(y);if(!t)throw new Error("useDebuggerContext must be used within a DebuggerProvider");return t}function se({onUpdate:t}){const e=i.useRef(0),r=i.useRef(!0);return V.useFrame(()=>{if(r.current)r.current=!1;else{const l=performance.now()-e.current;t(l)}e.current=performance.now()},-1e3),null}function F(){const t=re();return{metrics:t.state.metrics,enabled:t.state.enabled,collapsed:t.state.collapsed,toggle:t.toggle,setCollapsed:t.setCollapsed,enable:t.enable,disable:t.disable}}function ie(){const{enabled:t}=F(),e=r=>{const s=window;s.__xr_metrics_collector&&s.__xr_metrics_collector.updateRenderTime(r)};return t?c.jsx(se,{onUpdate:e}):null}const v=600;function _(){if(typeof window>"u")return;const t=window;return t.__xrCalibrationDebugState||(t.__xrCalibrationDebugState={events:[]}),t.__xrCalibrationDebugState}function ne(t,e,r){const s=_();s&&(s.events.push({source:t,label:e,payload:r,ts:performance.now()}),s.events.length>v&&s.events.splice(0,s.events.length-v))}function oe(t=v){const e=_();return e?e.events.slice(Math.max(0,e.events.length-t)):[]}exports.DebuggerOverlay=ie;exports.DebuggerPanel=te;exports.DebuggerProvider=ee;exports.XRDebugView=W;exports.formatNumber=J;exports.readCalibrationDebugEvents=oe;exports.recordCalibrationDebugEvent=ne;exports.useDebugger=F;
package/dist/internal.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal-Cq-TEQ5Y.cjs"),r=require("./hasFullUnitUVBounds-p1Dl0ejX.cjs"),n=require("./renderLayers-lDtL0_43.cjs");exports.DebuggerOverlay=e.DebuggerOverlay;exports.DebuggerProvider=e.DebuggerProvider;exports.XRDebugView=e.XRDebugView;exports.readCalibrationDebugEvents=e.readCalibrationDebugEvents;exports.recordCalibrationDebugEvent=e.recordCalibrationDebugEvent;exports.useDebugger=e.useDebugger;exports._resetUVBoundsWarnings=r._resetUVBoundsWarnings;exports.logUVBoundsWarningOnce=r.logUVBoundsWarningOnce;exports.RENDER_LAYERS=n.RENDER_LAYERS;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal-Cjinca64.cjs"),a=require("./hasFullUnitUVBounds-p1Dl0ejX.cjs"),n=require("./uv-BMFt19bg.cjs"),r=require("./FaceSurface-CHAMEeG1.cjs");exports.DebuggerOverlay=e.DebuggerOverlay;exports.DebuggerPanel=e.DebuggerPanel;exports.DebuggerProvider=e.DebuggerProvider;exports.XRDebugView=e.XRDebugView;exports.readCalibrationDebugEvents=e.readCalibrationDebugEvents;exports.recordCalibrationDebugEvent=e.recordCalibrationDebugEvent;exports.useDebugger=e.useDebugger;exports._resetUVBoundsWarnings=a._resetUVBoundsWarnings;exports.logUVBoundsWarningOnce=a.logUVBoundsWarningOnce;exports.RENDER_LAYERS=n.RENDER_LAYERS;exports.FACE_SURFACE_FRAME_PRIORITY=r.FACE_SURFACE_FRAME_PRIORITY;exports.FaceSurfaceContext=r.FaceSurfaceContext;exports.createFaceSurfaceState=r.createFaceSurfaceState;
package/dist/internal.js CHANGED
@@ -1,14 +1,19 @@
1
- import { a, D as s, X as o, r as g, b as n, u } from "./internal-Dmk1cTXq.js";
2
- import { _ as i, l as t } from "./hasFullUnitUVBounds-BGvcFsQM.js";
3
- import { R as d } from "./renderLayers-zrK2pv5O.js";
1
+ import { b as r, D as s, a as o, X as g, r as t, c as n, u } from "./internal-B90P-clC.js";
2
+ import { _ as c, l as D } from "./hasFullUnitUVBounds-BGvcFsQM.js";
3
+ import { R as i } from "./uv-DJU_XfmN.js";
4
+ import { F as f, a as l, c as F } from "./FaceSurface-DmP9AEeC.js";
4
5
  export {
5
- a as DebuggerOverlay,
6
- s as DebuggerProvider,
7
- d as RENDER_LAYERS,
8
- o as XRDebugView,
9
- i as _resetUVBoundsWarnings,
10
- t as logUVBoundsWarningOnce,
11
- g as readCalibrationDebugEvents,
6
+ r as DebuggerOverlay,
7
+ s as DebuggerPanel,
8
+ o as DebuggerProvider,
9
+ f as FACE_SURFACE_FRAME_PRIORITY,
10
+ l as FaceSurfaceContext,
11
+ i as RENDER_LAYERS,
12
+ g as XRDebugView,
13
+ c as _resetUVBoundsWarnings,
14
+ F as createFaceSurfaceState,
15
+ D as logUVBoundsWarningOnce,
16
+ t as readCalibrationDebugEvents,
12
17
  n as recordCalibrationDebugEvent,
13
18
  u as useDebugger
14
19
  };
@@ -0,0 +1,27 @@
1
+ import { IrisEye, IrisPoint, IrisResult, IrisSide } from './types';
2
+ /** Eyelid opening (gap / eye width) at or above which an eye counts as fully open. */
3
+ export declare const IRIS_FULL_OPENNESS = 0.2;
4
+ export declare const createIrisEye: (side: IrisSide) => IrisEye;
5
+ export declare const createIrisResult: (faceIndex?: number) => IrisResult;
6
+ /**
7
+ * Derive one eye's iris data from a refined face-mesh landmark set (478
8
+ * points, MediaPipe image space). `side` is the person's own eye; `mirrored`
9
+ * says the frame is the mirrored webcam, where that eye is MediaPipe's other
10
+ * side (#298). Returns `false`, and marks the eye undetected, when the
11
+ * landmarks are missing. Allocation-free: writes into `eye`.
12
+ */
13
+ export declare const computeIrisEye: (landmarks: ReadonlyArray<IrisPoint> | undefined, side: IrisSide, eye: IrisEye, confidenceScale?: number, mirrored?: boolean) => boolean;
14
+ /**
15
+ * Update a full `IrisResult` from one face's landmarks. `faceConfidence` is
16
+ * 1 for a live face and the hold decay while held; it scales both eyes'
17
+ * confidence. `mirrored` says the frame is a mirror of the person (the
18
+ * session's webcam feed) so `left` / `right` stay the person's own eyes and
19
+ * `offset.x` keeps its anatomical sign. Pass `undefined` landmarks for an
20
+ * absent face.
21
+ */
22
+ export declare const updateIrisResult: (result: IrisResult, landmarks: ReadonlyArray<IrisPoint> | undefined, nowMs: number, options?: {
23
+ faceIndex?: number;
24
+ held?: boolean;
25
+ faceConfidence?: number;
26
+ mirrored?: boolean;
27
+ }) => IrisResult;
@@ -0,0 +1,4 @@
1
+ export { IRIS_FULL_OPENNESS, computeIrisEye, createIrisEye, createIrisResult, updateIrisResult, } from './compute';
2
+ export { IrisLead } from './lead';
3
+ export { IRIS_LANDMARKS, IRIS_LANDMARK_COUNT } from './types';
4
+ export type { IrisEye, IrisPoint, IrisResult, IrisSide } from './types';
@@ -0,0 +1,19 @@
1
+ import { IrisPoint } from './types';
2
+ /**
3
+ * Bridges the gap between throttled inference samples and the render rate.
4
+ * Inference lands at, say, 24 fps while frames render at 60+, so a point
5
+ * that only updates on new samples holds then jumps. `observe` records each
6
+ * new sample and its velocity; `apply` advances the point along that
7
+ * velocity by the time since the sample, capped at `leadMs`, so motion
8
+ * reads continuous between samples. Reset on re-acquire.
9
+ */
10
+ export declare class IrisLead {
11
+ private slots;
12
+ private readonly maxGapMs;
13
+ constructor(maxGapMs?: number);
14
+ reset(): void;
15
+ /** Record a fresh inference sample for `key` (e.g. "left"). */
16
+ observe(key: string, point: IrisPoint, nowMs: number): void;
17
+ /** Write the extrapolated position of `key` into `out`; a no-op before the first sample. */
18
+ apply(key: string, nowMs: number, leadMs: number, out: IrisPoint): IrisPoint;
19
+ }
@@ -0,0 +1,89 @@
1
+ import { TrackerPoint } from '../types/common';
2
+ /** Person's perspective: `left` is the person's own left eye, on every feed. */
3
+ export type IrisSide = "left" | "right";
4
+ /**
5
+ * MediaPipe face-mesh indices used for iris tracking, per MediaPipe side
6
+ * (`left` = MediaPipe's left eye, 473–477). That is the person's own left eye
7
+ * on an unmirrored feed and their RIGHT eye on the mirrored webcam;
8
+ * `IrisResult.left` / `.right` already pick the person's own eye for the feed
9
+ * (`IRIS_LANDMARKS[personSide(side, mirrored)]`).
10
+ */
11
+ export declare const IRIS_LANDMARKS: {
12
+ readonly left: {
13
+ /** Iris center. */
14
+ readonly center: 473;
15
+ /** Iris ring: outer, top, inner, bottom (image order: right, up, left, down for the left eye). */
16
+ readonly ring: readonly [474, 475, 476, 477];
17
+ readonly innerCorner: 362;
18
+ readonly outerCorner: 263;
19
+ readonly upperLid: 386;
20
+ readonly lowerLid: 374;
21
+ };
22
+ readonly right: {
23
+ readonly center: 468;
24
+ readonly ring: readonly [469, 470, 471, 472];
25
+ readonly innerCorner: 133;
26
+ readonly outerCorner: 33;
27
+ readonly upperLid: 159;
28
+ readonly lowerLid: 145;
29
+ };
30
+ };
31
+ /** Minimum landmark count for iris data: the refined face mesh (468 + 10 iris points). */
32
+ export declare const IRIS_LANDMARK_COUNT = 478;
33
+ export type IrisPoint = {
34
+ x: number;
35
+ y: number;
36
+ z: number;
37
+ };
38
+ export type IrisEye = {
39
+ side: IrisSide;
40
+ /** False when the face has no iris landmarks (fewer than 478 points) or the face is absent. */
41
+ detected: boolean;
42
+ /** Iris center in MediaPipe image space: 0..1, top-left origin, Y down; `z` is tracker-relative depth. */
43
+ center: IrisPoint;
44
+ /** The same center in SDK tracker space: center origin, X right, Y up, Z toward the viewer. */
45
+ trackerCenter: TrackerPoint;
46
+ /** The four iris ring landmarks in image space (outer, top, inner, bottom). */
47
+ ring: [IrisPoint, IrisPoint, IrisPoint, IrisPoint];
48
+ /** Iris radius as half the horizontal ring diameter, in image-width units (0..1). */
49
+ radius: number;
50
+ /** Midpoint of the eye corners in image space. */
51
+ eyeCenter: IrisPoint;
52
+ /** Corner-to-corner eye width in image-width units. */
53
+ eyeWidth: number;
54
+ /** Eyelid gap divided by eye width; ~0.25–0.35 open, ~0 closed. */
55
+ openness: number;
56
+ /**
57
+ * Iris center relative to the eye center, each axis divided by half the
58
+ * eye width and clamped to [-1, 1]; +x toward the person's left, +y up,
59
+ * on every source (the sign is corrected on the mirrored webcam feed).
60
+ * This is where the iris sits inside the eyelid opening, NOT a gaze
61
+ * direction: it ignores head pose and eye geometry.
62
+ */
63
+ offset: {
64
+ x: number;
65
+ y: number;
66
+ };
67
+ /**
68
+ * 0..1 from eyelid opening (full at `openness` >= 0.2, zero when closed),
69
+ * scaled by the hold decay while the face is held. MediaPipe emits iris
70
+ * points even for a closed eye, so this is the signal to gate effects on.
71
+ */
72
+ confidence: number;
73
+ };
74
+ export type IrisResult = {
75
+ /** Bumped on every update. 0 until the first face is seen. */
76
+ version: number;
77
+ /** `performance.now()` of the last update. */
78
+ timestampMs: number;
79
+ /** Result-array index of the face read (not a persistent identity). */
80
+ faceIndex: number;
81
+ /** True while a face with iris landmarks is live or held. */
82
+ detected: boolean;
83
+ /** True while the face is replayed from memory after a dropout. */
84
+ held: boolean;
85
+ /** 1 while live, decaying to 0 over `holdMs` while held. */
86
+ confidence: number;
87
+ left: IrisEye;
88
+ right: IrisEye;
89
+ };