@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.
- package/GROUNDING.md +5651 -82
- package/README.md +1 -0
- package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
- package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
- package/dist/DebuggerUI-7ngnJsBe.js +275 -0
- package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
- package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
- package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
- package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
- package/dist/FaceSurface-DmP9AEeC.js +27 -0
- package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
- package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
- package/dist/SkeletonUtils-C2r90MtN.js +21 -0
- package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
- package/dist/TextLabel-XE0rQSDn.cjs +2 -0
- package/dist/TextLabel-c9BCucOI.js +961 -0
- package/dist/assets/cache.d.ts +99 -0
- package/dist/assets/estimate.d.ts +11 -0
- package/dist/assets/gltfLoader.d.ts +16 -0
- package/dist/assets/index.d.ts +7 -0
- package/dist/assets/loaders.d.ts +43 -0
- package/dist/assets/react.d.ts +33 -0
- package/dist/body-pose/index.d.ts +521 -0
- package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
- package/dist/body-trigger/frame.d.ts +88 -0
- package/dist/body-trigger/index.d.ts +6 -0
- package/dist/body-trigger/moves.d.ts +235 -0
- package/dist/body-trigger/trigger.d.ts +75 -0
- package/dist/calibration/calibration.d.ts +75 -0
- package/dist/calibration/index.d.ts +6 -0
- package/dist/calibration/storage.d.ts +13 -0
- package/dist/calibration/types.d.ts +53 -0
- package/dist/calibration/useXRCalibration.d.ts +46 -0
- package/dist/camera/CameraPermissionGate.d.ts +26 -0
- package/dist/camera/devices.d.ts +26 -0
- package/dist/camera/index.d.ts +8 -0
- package/dist/camera/permission.d.ts +86 -0
- package/dist/camera/useCameraPermission.d.ts +35 -0
- package/dist/canonicalFace-BHwyCx1c.js +9 -0
- package/dist/canonicalFace-C83I225R.cjs +1 -0
- package/dist/capabilities/detect.d.ts +45 -0
- package/dist/capabilities/index.d.ts +5 -0
- package/dist/capabilities/types.d.ts +120 -0
- package/dist/capabilities/useXRCapabilities.d.ts +18 -0
- package/dist/compat/environment.d.ts +5 -0
- package/dist/compat/index.d.ts +4 -0
- package/dist/compat/run.d.ts +18 -0
- package/dist/compat/scenarios.d.ts +10 -0
- package/dist/compat/types.d.ts +101 -0
- package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
- package/dist/components/BodyInstruction/index.d.ts +69 -0
- package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
- package/dist/components/BodyTracker/index.d.ts +17 -0
- package/dist/components/BodyTrigger/index.d.ts +49 -0
- package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
- package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
- package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
- package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
- package/dist/components/FaceAtlas/constants.d.ts +8 -0
- package/dist/components/FaceAtlas/index.d.ts +7 -0
- package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
- package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
- package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
- package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
- package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
- package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
- package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
- package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
- package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
- package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
- package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
- package/dist/components/FaceCharacter/index.d.ts +18 -0
- package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
- package/dist/components/FaceInset/FaceInset.d.ts +68 -0
- package/dist/components/FaceInset/frame.d.ts +94 -0
- package/dist/components/FaceInset/index.d.ts +6 -0
- package/dist/components/FaceInset/material.d.ts +40 -0
- package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
- package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
- package/dist/components/FaceInstruction/index.d.ts +56 -0
- package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
- package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
- package/dist/components/FaceLiquify/debug.d.ts +37 -0
- package/dist/components/FaceLiquify/frame.d.ts +55 -0
- package/dist/components/FaceLiquify/index.d.ts +10 -0
- package/dist/components/FaceLiquify/material.d.ts +39 -0
- package/dist/components/FaceLiquify/pass.d.ts +49 -0
- package/dist/components/FaceLiquify/presence.d.ts +25 -0
- package/dist/components/FaceLiquify/presets.d.ts +82 -0
- package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
- package/dist/components/FaceLiquify/target.d.ts +85 -0
- package/dist/components/FaceLiquify/warp.d.ts +72 -0
- package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +37 -5
- package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
- package/dist/components/FaceMesh/index.d.ts +2 -2
- package/dist/components/FaceRetouch/Background.d.ts +3 -1
- package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
- package/dist/components/FaceRetouch/renderState.d.ts +19 -0
- package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
- package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
- package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
- package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
- package/dist/components/FaceSwap/index.d.ts +13 -0
- package/dist/components/FaceSwap/settings.d.ts +300 -0
- package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
- package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
- package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
- package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
- package/dist/components/FaceWarp3D/index.d.ts +2 -3
- package/dist/components/Faceless/Faceless.d.ts +51 -0
- package/dist/components/Faceless/index.d.ts +2 -0
- package/dist/components/GestureListener/index.d.ts +11 -0
- package/dist/components/HairLock/HairLock.d.ts +39 -0
- package/dist/components/HairLock/index.d.ts +2 -0
- package/dist/components/HairLock/lockGeometry.d.ts +15 -0
- package/dist/components/HandCutout/index.d.ts +35 -0
- package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
- package/dist/components/HandInstruction/index.d.ts +74 -0
- package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
- package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
- package/dist/components/HandRig/HandAttachment.d.ts +34 -0
- package/dist/components/HandRig/HandOccluder.d.ts +55 -0
- package/dist/components/HandRig/HandTattoo.d.ts +61 -0
- package/dist/components/HandRig/WristAttachment.d.ts +34 -0
- package/dist/components/HandRig/index.d.ts +101 -0
- package/dist/components/HandRig/useArmMask.d.ts +29 -0
- package/dist/components/HandRig/wristSolve.d.ts +69 -0
- package/dist/components/HandTouch/HandTouch.d.ts +62 -0
- package/dist/components/HandTouch/Touchable.d.ts +36 -0
- package/dist/components/HandTouch/index.d.ts +2 -0
- package/dist/components/HandTracker/index.d.ts +10 -0
- package/dist/components/HeadBinding/index.d.ts +14 -0
- package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
- package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
- package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
- package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
- package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
- package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
- package/dist/components/HeadOccluder/index.d.ts +57 -3
- package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
- package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
- package/dist/components/HolisticTracker/index.d.ts +69 -0
- package/dist/components/HolisticTracker/settings.d.ts +58 -0
- package/dist/components/HolisticTracker/signals.d.ts +49 -0
- package/dist/components/Instruction/HintStage.d.ts +29 -0
- package/dist/components/Instruction/InstructionCue.d.ts +126 -0
- package/dist/components/Instruction/gestureHold.d.ts +20 -0
- package/dist/components/Instruction/ghost.d.ts +129 -0
- package/dist/components/Instruction/hintBlend.d.ts +19 -0
- package/dist/components/Instruction/hintLook.d.ts +81 -0
- package/dist/components/Instruction/hintLoop.d.ts +36 -0
- package/dist/components/Instruction/index.d.ts +41 -0
- package/dist/components/Instruction/useGhostModel.d.ts +33 -0
- package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
- package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
- package/dist/components/IrisEffect/index.d.ts +51 -0
- package/dist/components/IrisEffect/settings.d.ts +117 -0
- package/dist/components/LipEffect/LipEffect.d.ts +27 -1
- package/dist/components/LipEffect/LipEffectMaterial.d.ts +95 -7
- package/dist/components/LipEffect/LipEffects.d.ts +12 -0
- package/dist/components/LipEffect/defaults.d.ts +46 -4
- package/dist/components/LipEffect/index.d.ts +11 -3
- package/dist/components/LipEffect/lipShading.d.ts +73 -0
- package/dist/components/LipEffect/settings.d.ts +375 -0
- package/dist/components/LipEffect/shader.d.ts +39 -0
- package/dist/components/LipEffect/types.d.ts +128 -9
- package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
- package/dist/components/LipEffect/uvGuide.d.ts +74 -0
- package/dist/components/Makeup/Blush.d.ts +18 -0
- package/dist/components/Makeup/Brows.d.ts +20 -0
- package/dist/components/Makeup/Contour.d.ts +17 -0
- package/dist/components/Makeup/Eyeliner.d.ts +20 -0
- package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
- package/dist/components/Makeup/Highlighter.d.ts +18 -0
- package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
- package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
- package/dist/components/Makeup/constants.d.ts +44 -0
- package/dist/components/Makeup/design.d.ts +106 -0
- package/dist/components/Makeup/designSamples.d.ts +42 -0
- package/dist/components/Makeup/eyes.d.ts +114 -0
- package/dist/components/Makeup/fields.d.ts +10 -0
- package/dist/components/Makeup/geometry.d.ts +106 -0
- package/dist/components/Makeup/index.d.ts +26 -0
- package/dist/components/Makeup/looks.d.ts +28 -0
- package/dist/components/Makeup/material.d.ts +239 -0
- package/dist/components/Makeup/settings.d.ts +54 -0
- package/dist/components/Makeup/shades.d.ts +143 -0
- package/dist/components/Makeup/shapes.d.ts +27 -0
- package/dist/components/Makeup/skinTone.d.ts +135 -0
- package/dist/components/Makeup/types.d.ts +110 -0
- package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
- package/dist/components/Necklace/Necklace.d.ts +44 -0
- package/dist/components/Necklace/index.d.ts +1 -0
- package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
- package/dist/components/ParticleEmitter/index.d.ts +1 -0
- package/dist/components/PersonCutout/index.d.ts +50 -0
- package/dist/components/PersonCutout/personCutout.d.ts +16 -0
- package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
- package/dist/components/ScreenImage/index.d.ts +3 -1
- package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
- package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
- package/dist/components/ScreenImage/source.d.ts +6 -0
- package/dist/components/ScreenImage/types.d.ts +18 -0
- package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
- package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
- package/dist/components/SegmentationOverlay/index.d.ts +9 -0
- package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
- package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
- package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
- package/dist/components/ShoulderOccluder/index.d.ts +43 -0
- package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
- package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
- package/dist/components/SpringSwing/index.d.ts +1 -0
- package/dist/components/XRProvider/index.d.ts +16 -2
- package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
- package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
- package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
- package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
- package/dist/components/index.d.ts +11 -0
- package/dist/config/index.d.ts +0 -1
- package/dist/constants/index.d.ts +4 -1
- package/dist/context-DTxSQvp4.js +13 -0
- package/dist/context-hA0Rb2Xa.cjs +1 -0
- package/dist/contexts-BH7PdKFS.cjs +1 -0
- package/dist/contexts-jak8-tND.js +667 -0
- package/dist/coordinates/feed.d.ts +52 -0
- package/dist/coordinates/index.d.ts +7 -0
- package/dist/coordinates/side.d.ts +40 -0
- package/dist/coordinates/spaces.d.ts +49 -0
- package/dist/coordinates/viewport.d.ts +22 -0
- package/dist/coordinates/world.d.ts +15 -0
- package/dist/debug-ui/default-setting.cjs +2 -2
- package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
- package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
- package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
- package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
- package/dist/debug-ui/index.d.ts +18 -3
- package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
- package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
- package/dist/debug-ui/media-source/index.d.ts +1 -1
- package/dist/debug-ui/media-source/session.d.ts +30 -2
- package/dist/debug-ui/media-source.cjs +1 -1
- package/dist/debug-ui/media-source.js +1 -1
- package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
- package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
- package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
- package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
- package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
- package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
- package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
- package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
- package/dist/debug-ui/settings-panel/index.d.ts +6 -1
- package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
- package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
- package/dist/debug-ui.cjs +3 -3
- package/dist/debug-ui.js +2695 -2547
- package/dist/detector-K8aej4MB.js +59 -0
- package/dist/detector-ijypGtse.cjs +1 -0
- package/dist/entries/all.d.ts +3 -1
- package/dist/entries/core.d.ts +20 -2
- package/dist/entries/face-effects.d.ts +123 -9
- package/dist/entries/instructions.d.ts +48 -0
- package/dist/entries/internal.d.ts +2 -1
- package/dist/entries/low-level.d.ts +49 -3
- package/dist/entries/particles.d.ts +11 -0
- package/dist/entries/product.d.ts +11 -0
- package/dist/entries/tracking.d.ts +60 -2
- package/dist/face-atlas/attributes.d.ts +30 -0
- package/dist/face-atlas/eyes.d.ts +272 -0
- package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
- package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
- package/dist/face-atlas/glsl/common.d.ts +55 -0
- package/dist/face-atlas/glsl/design.d.ts +49 -0
- package/dist/face-atlas/glsl/eyes.d.ts +73 -0
- package/dist/face-atlas/glsl/finish.d.ts +24 -0
- package/dist/face-atlas/glsl/format.d.ts +4 -0
- package/dist/face-atlas/glsl/index.d.ts +59 -0
- package/dist/face-atlas/glsl/shading.d.ts +15 -0
- package/dist/face-atlas/glsl/shapes.d.ts +66 -0
- package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
- package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
- package/dist/face-atlas/guide.d.ts +51 -0
- package/dist/face-atlas/index.d.ts +25 -0
- package/dist/face-atlas/lead.d.ts +117 -0
- package/dist/face-atlas/madeUpCamera.d.ts +125 -0
- package/dist/face-atlas/masks.d.ts +53 -0
- package/dist/face-atlas/obj.d.ts +69 -0
- package/dist/face-atlas/polylines.d.ts +63 -0
- package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
- package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
- package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
- package/dist/face-atlas/probe/constants.d.ts +137 -0
- package/dist/face-atlas/probe/glsl.d.ts +43 -0
- package/dist/face-atlas/probe/lightFit.d.ts +108 -0
- package/dist/face-atlas/probe/schedule.d.ts +44 -0
- package/dist/face-atlas/probe/selfTest.d.ts +87 -0
- package/dist/face-atlas/probe/stats.d.ts +143 -0
- package/dist/face-atlas/probe/targets.d.ts +70 -0
- package/dist/face-atlas/probe/unwrap.d.ts +76 -0
- package/dist/face-atlas/quality.d.ts +28 -0
- package/dist/face-atlas/regions.d.ts +31 -0
- package/dist/face-atlas/registry.d.ts +252 -0
- package/dist/face-atlas/renderState.d.ts +86 -0
- package/dist/face-atlas/selfOcclusion.d.ts +62 -0
- package/dist/face-atlas/shading.d.ts +406 -0
- package/dist/face-atlas/shapes.d.ts +86 -0
- package/dist/face-atlas/sides.d.ts +41 -0
- package/dist/face-atlas/skinMask.d.ts +35 -0
- package/dist/face-atlas/surface.d.ts +155 -0
- package/dist/face-atlas/topology.d.ts +44 -0
- package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
- package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
- package/dist/face-character/bindFaceModel.d.ts +106 -0
- package/dist/face-character/canonicalFace.d.ts +17 -0
- package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
- package/dist/face-character/canonicalFacePositions.d.ts +7 -0
- package/dist/face-character/driveFaceModel.d.ts +57 -0
- package/dist/face-character/expressionOutputs.d.ts +45 -0
- package/dist/face-character/faceExpressions.d.ts +104 -0
- package/dist/face-character/faceImageLandmarker.d.ts +93 -0
- package/dist/face-character/faceMeshBinding.d.ts +62 -0
- package/dist/face-character/faceMorph.d.ts +77 -0
- package/dist/face-character/faceMorphs.d.ts +46 -0
- package/dist/face-character/facePhoto.d.ts +138 -0
- package/dist/face-character/facePiercings.d.ts +116 -0
- package/dist/face-character/facePin.d.ts +131 -0
- package/dist/face-character/faceReprojection.d.ts +273 -0
- package/dist/face-character/faceReprojector.d.ts +171 -0
- package/dist/face-character/faceRig.d.ts +176 -0
- package/dist/face-character/faceSwapPresence.d.ts +85 -0
- package/dist/face-character/faceTexture.d.ts +169 -0
- package/dist/face-character/faceTextureBaker.d.ts +86 -0
- package/dist/face-character/faceTextureGuide.d.ts +106 -0
- package/dist/face-character/faceTextureStats.d.ts +298 -0
- package/dist/face-character/faceTransfer.d.ts +396 -0
- package/dist/face-character/faceTransferGeometry.d.ts +109 -0
- package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
- package/dist/face-character/faceWarp3D.d.ts +101 -0
- package/dist/face-character/faceless.d.ts +79 -0
- package/dist/face-character/featureWarp.d.ts +28 -0
- package/dist/face-character/liveFaceRegistry.d.ts +370 -0
- package/dist/face-character/liveValue.d.ts +12 -0
- package/dist/face-character/memo.d.ts +15 -0
- package/dist/face-effects.cjs +2324 -1
- package/dist/face-effects.js +14208 -2268
- package/dist/face-expression/index.d.ts +182 -0
- package/dist/face-info/landmarks.d.ts +17 -3
- package/dist/face-info/types.d.ts +20 -3
- package/dist/gestures/definitions.d.ts +98 -0
- package/dist/gestures/detector.d.ts +87 -0
- package/dist/gestures/index.d.ts +8 -0
- package/dist/gestures/measures.d.ts +114 -0
- package/dist/gestures/settings.d.ts +49 -0
- package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
- package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
- package/dist/hand/armFit.d.ts +46 -0
- package/dist/hand/armMask.d.ts +178 -0
- package/dist/hand/handCutout.d.ts +23 -0
- package/dist/hand/handCutoutRegistry.d.ts +7 -0
- package/dist/hand/handGestures.d.ts +524 -0
- package/dist/hand/handPose.d.ts +98 -0
- package/dist/hand/handRigSolver.d.ts +159 -0
- package/dist/hand/handTattoo.d.ts +81 -0
- package/dist/hand/handTouch.d.ts +240 -0
- package/dist/hand/wrist.d.ts +44 -0
- package/dist/hand/wristFilter.d.ts +44 -0
- package/dist/hooks/selectors.d.ts +76 -1
- package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
- package/dist/hooks/useFaceInfo.d.ts +13 -1
- package/dist/hooks/useFaceInfos.d.ts +1 -1
- package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
- package/dist/hooks/useGesture.d.ts +32 -0
- package/dist/hooks/useIrisTracking.d.ts +45 -0
- package/dist/hooks/useTrackerContext.d.ts +6 -0
- package/dist/hooks/useXRDiagnostics.d.ts +81 -0
- package/dist/hooks/useXRModel.d.ts +7 -0
- package/dist/hooks/useXRSession/facade.d.ts +42 -2
- package/dist/hooks/useXRSession/index.d.ts +2 -2
- package/dist/hooks/useXRSession/reason.d.ts +3 -1
- package/dist/hooks/useXRSession/registry.d.ts +14 -0
- package/dist/hooks/useXRSession/store.d.ts +52 -3
- package/dist/index-B1_TzJaI.js +1104 -0
- package/dist/index-BavF06C6.js +190 -0
- package/dist/index-BfFmpddl.cjs +21 -0
- package/dist/index-BuBzneeW.cjs +46 -0
- package/dist/index-CGsQWodV.cjs +1 -0
- package/dist/index-CIe7eCMH.js +3200 -0
- package/dist/index-CfSF8LXa.cjs +1 -0
- package/dist/index-D5GTzOzD.cjs +1 -0
- package/dist/index-DBhQzvVa.js +314 -0
- package/dist/index-DE17y0ZI.cjs +1 -0
- package/dist/index-JII7huPk.js +442 -0
- package/dist/index-tpCr9CLj.cjs +1 -0
- package/dist/index-w1S7fI2B.js +1432 -0
- package/dist/index-zGaqrz_K.js +188 -0
- package/dist/instructions.cjs +30 -0
- package/dist/instructions.js +1507 -0
- package/dist/{internal-Dmk1cTXq.js → internal-B90P-clC.js} +138 -119
- package/dist/internal-Cjinca64.cjs +1 -0
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +15 -10
- package/dist/iris/compute.d.ts +27 -0
- package/dist/iris/index.d.ts +4 -0
- package/dist/iris/lead.d.ts +19 -0
- package/dist/iris/types.d.ts +89 -0
- package/dist/landmarkMask-BFDyBnKM.js +224 -0
- package/dist/landmarkMask-u7es2k4X.cjs +1 -0
- package/dist/landmarks-BlUqf5MZ.cjs +1 -0
- package/dist/landmarks-bftdwq6Z.js +76 -0
- package/dist/loaders-BGAUACsd.js +363 -0
- package/dist/loaders-BJ1_QCHt.cjs +1 -0
- package/dist/low-level.cjs +1 -1
- package/dist/low-level.js +1190 -675
- package/dist/main.cjs +1 -1
- package/dist/main.js +1190 -452
- package/dist/models/Base/index.d.ts +49 -0
- package/dist/models/Body/index.d.ts +3 -1
- package/dist/models/Face/constants.d.ts +8 -0
- package/dist/models/Face/index.d.ts +4 -12
- package/dist/models/Face/rotation.d.ts +18 -3
- package/dist/models/Hand/GestureTracking.d.ts +1 -1
- package/dist/models/Hand/HandTracking.d.ts +17 -1
- package/dist/models/Holistic/index.d.ts +49 -0
- package/dist/models/Holistic/result.d.ts +68 -0
- package/dist/models/Segmentation/index.d.ts +2 -0
- package/dist/models/SemanticSegmentation/index.d.ts +31 -0
- package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/nodeSource.d.ts +9 -0
- package/dist/particles/emission.d.ts +24 -0
- package/dist/particles/eyes.d.ts +24 -0
- package/dist/particles/glsl.d.ts +14 -0
- package/dist/particles/index.d.ts +10 -0
- package/dist/particles/motion.d.ts +42 -0
- package/dist/particles/presets.d.ts +12 -0
- package/dist/particles/ring.d.ts +58 -0
- package/dist/particles/selfTest.d.ts +53 -0
- package/dist/particles/settings.d.ts +127 -0
- package/dist/particles/shapes.d.ts +29 -0
- package/dist/particles/spawner.d.ts +60 -0
- package/dist/particles/system.d.ts +64 -0
- package/dist/particles.cjs +122 -0
- package/dist/particles.js +774 -0
- package/dist/product/ProductDimensions.d.ts +16 -0
- package/dist/product/ProductHotspot.d.ts +16 -0
- package/dist/product/ProductViewer.d.ts +9 -0
- package/dist/product/details.d.ts +53 -0
- package/dist/product/index.d.ts +14 -0
- package/dist/product/loadModelViewer.d.ts +4 -0
- package/dist/product/types.d.ts +71 -0
- package/dist/product/useProductAr.d.ts +37 -0
- package/dist/product/useProductDetails.d.ts +60 -0
- package/dist/product.cjs +1 -0
- package/dist/product.js +414 -0
- package/dist/providers-C8rE26Uf.js +366 -0
- package/dist/providers-DHsrhDI2.cjs +62 -0
- package/dist/quality/XRQualityController.d.ts +25 -0
- package/dist/quality/controller.d.ts +33 -0
- package/dist/quality/index.d.ts +6 -0
- package/dist/quality/types.d.ts +100 -0
- package/dist/quality/useXRQuality.d.ts +28 -0
- package/dist/render/renderPasses.d.ts +8 -0
- package/dist/render/sceneBeforeRender.d.ts +12 -0
- package/dist/{renderGroups-KZk6eRiY.js → renderGroups-B38pUaX2.js} +1 -1
- package/dist/{renderGroups-80H3DpTl.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
- package/dist/renderPasses-B6l8IpJv.js +1290 -0
- package/dist/renderPasses-dqmkft4P.cjs +158 -0
- package/dist/renderState-CJNmj5jz.js +39 -0
- package/dist/renderState-apSfg4eR.cjs +1 -0
- package/dist/scene-object.cjs +1 -1
- package/dist/scene-object.js +2 -2
- package/dist/segmentation-Cb3ouK6Z.js +1758 -0
- package/dist/segmentation-D9pYO6aR.cjs +1 -0
- package/dist/segmentation2d/faceMemory.d.ts +28 -0
- package/dist/segmentation2d/faceRegions.d.ts +24 -0
- package/dist/segmentation2d/index.d.ts +9 -0
- package/dist/segmentation2d/maskUv.d.ts +23 -0
- package/dist/segmentation2d/rasterize.d.ts +14 -0
- package/dist/segmentation2d/types.d.ts +52 -0
- package/dist/select-Ck5LGz-J.cjs +1 -0
- package/dist/select-pYRo_win.js +233 -0
- package/dist/selectors-C4X71aoD.cjs +1 -0
- package/dist/selectors-DmNaKIwE.js +196 -0
- package/dist/session-BrH8G7iJ.cjs +31 -0
- package/dist/session-DgA_z6O1.js +418 -0
- package/dist/settings-BJ7FMBsO.js +111 -0
- package/dist/settings-C63FMBlF.cjs +1 -0
- package/dist/similarityFit-BFqHND2e.cjs +1 -0
- package/dist/similarityFit-Bbz-R8AY.js +91 -0
- package/dist/spring/index.d.ts +2 -0
- package/dist/spring/spring.d.ts +69 -0
- package/dist/spring/swing.d.ts +54 -0
- package/dist/subjects/index.d.ts +2 -0
- package/dist/subjects/select.d.ts +62 -0
- package/dist/subjects/types.d.ts +55 -0
- package/dist/tracking-config/apply.d.ts +57 -0
- package/dist/tracking-config/index.d.ts +7 -0
- package/dist/tracking-config/resolve.d.ts +25 -0
- package/dist/tracking-config/storage.d.ts +8 -0
- package/dist/tracking-config/types.d.ts +106 -0
- package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
- package/dist/tracking.cjs +10 -1
- package/dist/tracking.js +1326 -506
- package/dist/trigger-D0Pm9noT.cjs +49 -0
- package/dist/trigger-IQeys0oS.js +2128 -0
- package/dist/types/compositor.d.ts +21 -0
- package/dist/types/face.d.ts +20 -1
- package/dist/types/hand-tracking.d.ts +9 -0
- package/dist/types/holistic.d.ts +121 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/model.d.ts +22 -2
- package/dist/types/nodes.d.ts +47 -3
- package/dist/types/segmentation.d.ts +24 -0
- package/dist/types/session.d.ts +41 -3
- package/dist/updateThrottle-BseecYag.js +4 -0
- package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
- package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
- package/dist/useFaceInfo-J4x7LsqL.js +76 -0
- package/dist/useFaceResultReader-BvEo5REG.js +61 -0
- package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
- package/dist/useInstructionHold-DOu-RpCM.js +53 -0
- package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
- package/dist/useXRCapabilities-Cr3RzuAW.cjs +1 -0
- package/dist/useXRCapabilities-Cxmlmpbd.js +30 -0
- package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
- package/dist/utils/fns.d.ts +6 -3
- package/dist/utils/headOccluderFit.d.ts +42 -0
- package/dist/utils/integrity.d.ts +21 -1
- package/dist/utils/resolveNumFaces.d.ts +13 -0
- package/dist/utils/shoulderOccluderFit.d.ts +38 -0
- package/dist/utils/similarityFit.d.ts +23 -0
- package/dist/utils/updateThrottle.d.ts +2 -0
- package/dist/utils/useStableUniforms.d.ts +18 -0
- package/dist/uv-BMFt19bg.cjs +1 -0
- package/dist/{index-ByoNj0QP.js → uv-DJU_XfmN.js} +15 -247
- package/docs/SDK_DOCUMENTATION.md +1 -2
- package/docs/api/adaptive-quality.mdx +104 -0
- package/docs/api/asset-lifecycle.mdx +78 -0
- package/docs/api/body-instructions.mdx +285 -0
- package/docs/api/body-triggers.mdx +234 -0
- package/docs/api/camera-permission.mdx +142 -0
- package/docs/api/coordinate-spaces.mdx +168 -0
- package/docs/api/cross-camera.mdx +89 -0
- package/docs/api/debug-ui-scene-editor.mdx +23 -2
- package/docs/api/diagnostics-calibration.mdx +97 -0
- package/docs/api/external-face-mesh.mdx +231 -0
- package/docs/api/face-actions.mdx +20 -16
- package/docs/api/face-attribute-expression.mdx +1 -1
- package/docs/api/face-binding-anchors.mdx +4 -2
- package/docs/api/face-character.mdx +157 -0
- package/docs/api/face-effects.mdx +9 -0
- package/docs/api/face-expression-controller.mdx +153 -0
- package/docs/api/face-info.mdx +17 -11
- package/docs/api/face-inset.mdx +204 -0
- package/docs/api/face-instructions.mdx +183 -0
- package/docs/api/face-liquify.mdx +196 -0
- package/docs/api/face-mesh.mdx +8 -9
- package/docs/api/face-morph.mdx +117 -0
- package/docs/api/face-painting.mdx +7 -0
- package/docs/api/face-reprojection.mdx +154 -0
- package/docs/api/face-retouching.mdx +18 -10
- package/docs/api/face-swap.mdx +350 -0
- package/docs/api/face-warp-3d.mdx +166 -0
- package/docs/api/faceless.mdx +143 -0
- package/docs/api/gestures.mdx +209 -0
- package/docs/api/hair.mdx +97 -0
- package/docs/api/hand-instructions.mdx +222 -0
- package/docs/api/hand-rig.mdx +535 -0
- package/docs/api/hand-touch.mdx +162 -0
- package/docs/api/head-occluder.mdx +563 -0
- package/docs/api/holistic-tracker.mdx +164 -0
- package/docs/api/instructions.mdx +323 -0
- package/docs/api/iris-tracking.mdx +247 -0
- package/docs/api/made-up-camera.mdx +131 -0
- package/docs/api/makeup-skin-tone.mdx +135 -0
- package/docs/api/makeup.mdx +353 -0
- package/docs/api/multi-subject.mdx +98 -0
- package/docs/api/particles.mdx +155 -0
- package/docs/api/person-cutout.mdx +136 -0
- package/docs/api/pin-to-face-mesh.mdx +274 -0
- package/docs/api/product-ar.mdx +114 -0
- package/docs/api/product-details.mdx +78 -0
- package/docs/api/screen-space-coordinates.mdx +4 -1
- package/docs/api/segmentation-overlay.mdx +301 -0
- package/docs/api/session-lifecycle.mdx +136 -0
- package/docs/api/trackers.mdx +5 -0
- package/docs/api/tracking-config.mdx +108 -0
- package/docs/docs.json +51 -1
- package/docs/examples/lip-shaders.mdx +273 -0
- package/docs/guides/face-atlas-template.svg +1 -0
- package/docs/guides/face-atlas-textures.mdx +186 -0
- package/docs/guides/face-texture-template.svg +1 -0
- package/docs/guides/harness-debug-ui.mdx +4 -4
- package/docs/guides/lip-effect-textures.mdx +368 -0
- package/docs/guides/lip-uv-template.png +0 -0
- package/docs/guides/lip-uv-template.svg +1 -0
- package/docs/guides/makeup-design-textures.mdx +109 -0
- package/docs/introduction.mdx +1 -2
- package/package.json +23 -1
- package/dist/DebuggerUI-B6bP6P9r.cjs +0 -1
- package/dist/DebuggerUI-BjOMr8q_.js +0 -269
- package/dist/FaceMeshRenderer-C5l6VLdO.cjs +0 -155
- package/dist/FaceMeshRenderer-wjAHrJzP.js +0 -1270
- package/dist/FaceRetouch-BkJzoA79.cjs +0 -134
- package/dist/FaceRetouch-DwbKQJAN.js +0 -551
- package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
- package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
- package/dist/components/FaceWarp3D/warp.d.ts +0 -13
- package/dist/contexts-ByhzppYl.js +0 -663
- package/dist/contexts-Dr62It_K.cjs +0 -1
- package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
- package/dist/getFaceInfo-C4QpCQIY.js +0 -118
- package/dist/getFaceInfo-fA1bFBub.cjs +0 -1
- package/dist/index-9dlAQAhy.js +0 -1462
- package/dist/index-BjmTe9eM.cjs +0 -1
- package/dist/index-BpEf2BBb.cjs +0 -1
- package/dist/index-CyUUurQT.cjs +0 -1
- package/dist/index-DCiMbxC3.cjs +0 -1
- package/dist/index-DXT3WccE.js +0 -2089
- package/dist/index-DpI-qo5X.cjs +0 -17
- package/dist/index-DyVF4vEW.js +0 -111
- package/dist/index-VJ0SJwmG.js +0 -214
- package/dist/internal-Cq-TEQ5Y.cjs +0 -1
- package/dist/renderLayers-lDtL0_43.cjs +0 -1
- package/dist/renderLayers-zrK2pv5O.js +0 -13
- package/dist/renderPasses-BOoBSr8z.cjs +0 -21
- package/dist/renderPasses-BcquyVtu.js +0 -1500
- package/dist/selectors-B8H97CKA.js +0 -59
- package/dist/selectors-CZLKT2Iv.cjs +0 -1
- package/dist/session-CpkiK5YA.cjs +0 -31
- package/dist/session-DLFN_VII.js +0 -363
- package/dist/useFaceInfo-BJ8-_MOs.cjs +0 -1
- package/dist/useFaceInfo-Dk426LTu.js +0 -62
- package/dist/useFaceResults-CtetsO9M.js +0 -19
- package/dist/useFaceResults-wBJF3zyp.cjs +0 -1
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { jsx as
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import { u as
|
|
8
|
-
import { useFrame as
|
|
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 "./
|
|
11
|
-
|
|
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:
|
|
16
|
+
width: s = 320
|
|
16
17
|
}) => {
|
|
17
|
-
const [
|
|
18
|
-
return
|
|
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:
|
|
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__ */
|
|
75
|
-
/* @__PURE__ */
|
|
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
|
|
104
|
+
class te {
|
|
104
105
|
// 500ms as per PRD
|
|
105
106
|
constructor() {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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((
|
|
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
|
|
136
|
+
function Te(t, e = 1) {
|
|
136
137
|
return t.toFixed(e);
|
|
137
138
|
}
|
|
138
|
-
function
|
|
139
|
+
function R(t) {
|
|
139
140
|
return t / (1024 * 1024);
|
|
140
141
|
}
|
|
141
|
-
function
|
|
142
|
+
function re(t, e) {
|
|
142
143
|
return e === 0 ? 0 : t / e * 100;
|
|
143
144
|
}
|
|
144
|
-
class
|
|
145
|
+
class se {
|
|
145
146
|
constructor(e = 1e3) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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,
|
|
189
|
+
const r = e.memory.usedJSHeapSize, s = e.memory.jsHeapSizeLimit;
|
|
189
190
|
this.memoryUsage = {
|
|
190
|
-
used:
|
|
191
|
-
total:
|
|
192
|
-
percentage:
|
|
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
|
|
210
|
+
class ie {
|
|
210
211
|
constructor() {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
|
252
|
+
class ne {
|
|
252
253
|
constructor(e = {}) {
|
|
253
|
-
|
|
254
|
-
|
|
254
|
+
i(this, "options");
|
|
255
|
+
i(this, "isRunning", !1);
|
|
255
256
|
// Current metrics state
|
|
256
|
-
|
|
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
|
-
|
|
267
|
-
|
|
268
|
-
|
|
267
|
+
i(this, "cameraFPSTracker");
|
|
268
|
+
i(this, "memoryTracker");
|
|
269
|
+
i(this, "resolutionTracker");
|
|
269
270
|
// For effective FPS calculation
|
|
270
|
-
|
|
271
|
-
|
|
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
|
|
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
|
|
348
|
-
this.metrics.modelPerformance =
|
|
349
|
-
name:
|
|
350
|
-
processingTime:
|
|
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 =
|
|
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
|
|
367
|
-
this.metrics.effectiveFPS =
|
|
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
|
|
380
|
-
function
|
|
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:
|
|
385
|
+
position: s = "top-left",
|
|
386
|
+
docked: a = !1
|
|
385
387
|
}) {
|
|
386
|
-
const [
|
|
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
|
-
}),
|
|
395
|
-
T(() => (
|
|
396
|
-
|
|
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 =
|
|
400
|
+
const c = d.current;
|
|
399
401
|
if (c) {
|
|
400
|
-
if (
|
|
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
|
|
407
|
-
await c.updateDetectionTime(
|
|
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
|
-
}, [
|
|
421
|
+
}, [o, F, v]), T(() => {
|
|
420
422
|
const c = (u) => {
|
|
421
|
-
const
|
|
422
|
-
|
|
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
|
|
429
|
-
|
|
430
|
-
}, []),
|
|
431
|
-
|
|
432
|
-
}, []),
|
|
433
|
-
|
|
434
|
-
}, []),
|
|
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:
|
|
437
|
-
collapsed:
|
|
438
|
-
metrics:
|
|
438
|
+
enabled: o,
|
|
439
|
+
collapsed: h,
|
|
440
|
+
metrics: x
|
|
439
441
|
},
|
|
440
|
-
toggle:
|
|
441
|
-
setCollapsed:
|
|
442
|
-
enable:
|
|
443
|
-
disable:
|
|
442
|
+
toggle: U,
|
|
443
|
+
setCollapsed: P,
|
|
444
|
+
enable: L,
|
|
445
|
+
disable: _
|
|
444
446
|
};
|
|
445
|
-
return /* @__PURE__ */ w(
|
|
447
|
+
return /* @__PURE__ */ w(k.Provider, { value: A, children: [
|
|
446
448
|
t,
|
|
447
|
-
|
|
448
|
-
|
|
449
|
+
o && !a && /* @__PURE__ */ m(E, { fallback: null, children: /* @__PURE__ */ m(
|
|
450
|
+
I,
|
|
449
451
|
{
|
|
450
|
-
metrics:
|
|
451
|
-
collapsed:
|
|
452
|
-
onCollapse:
|
|
453
|
-
onClose:
|
|
454
|
-
position:
|
|
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
|
|
461
|
-
|
|
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
|
|
467
|
-
const e =
|
|
468
|
-
return
|
|
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
|
|
473
|
-
t(
|
|
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
|
|
479
|
-
const t =
|
|
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
|
|
491
|
-
const { enabled: t } =
|
|
492
|
-
const
|
|
493
|
-
|
|
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__ */
|
|
513
|
+
return t ? /* @__PURE__ */ m(ae, { onUpdate: e }) : null;
|
|
496
514
|
}
|
|
497
515
|
const S = 600;
|
|
498
|
-
function
|
|
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
|
|
505
|
-
const
|
|
506
|
-
|
|
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
|
-
}),
|
|
529
|
+
}), s.events.length > S && s.events.splice(0, s.events.length - S));
|
|
512
530
|
}
|
|
513
|
-
function
|
|
514
|
-
const e =
|
|
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
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
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-
|
|
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 {
|
|
2
|
-
import { _ as
|
|
3
|
-
import { R as
|
|
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
|
-
|
|
6
|
-
s as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
g as
|
|
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
|
+
};
|