@vincentt-xr/sdk 2.0.0-alpha.0 → 2.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GROUNDING.md +8193 -111
- package/README.md +86 -52
- package/dist/CanonicalHeadFrame-D_0OzdB9.cjs +1 -0
- package/dist/CanonicalHeadFrame-DdUqF6Fv.js +1506 -0
- package/dist/DebuggerUI-CVuV-VJ5.cjs +1 -0
- package/dist/DebuggerUI-D-rcPa54.js +275 -0
- package/dist/FaceRetouch-C1AxBNex.js +1071 -0
- package/dist/FaceRetouch-D7kryDE6.cjs +134 -0
- package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
- package/dist/FaceSurface-DmP9AEeC.js +27 -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/assets/sdkModels.d.ts +22 -0
- package/dist/audio/AudioEngine.d.ts +3 -1
- package/dist/audio/AudioPlayer.d.ts +29 -0
- package/dist/audio/AudioPlayerLogic.d.ts +4 -0
- package/dist/audio/index.d.ts +2 -0
- package/dist/body/__fixtures__/syntheticRig.d.ts +21 -0
- package/dist/body/bodyFlipGuard.d.ts +39 -0
- package/dist/body/bodyIdentity.d.ts +72 -0
- package/dist/body/bodyMask.d.ts +79 -0
- package/dist/body/bodyMaskMaterial.d.ts +15 -0
- package/dist/body/bodyPose.d.ts +58 -0
- package/dist/body/bodyRigFit.d.ts +148 -0
- package/dist/body/bodyRigSolver.d.ts +114 -0
- package/dist/body/bodySubject.d.ts +46 -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/bodyMaskMaterial-CBWub5t_.cjs +68 -0
- package/dist/bodyMaskMaterial-Cs2awskk.js +207 -0
- package/dist/cache-2x3CUJuY.js +212 -0
- package/dist/cache-DL1Dbz6k.cjs +1 -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/Axes/index.d.ts +6 -0
- package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
- package/dist/components/BodyInstruction/index.d.ts +76 -0
- package/dist/components/BodyInstruction/useBodyPose.d.ts +30 -0
- package/dist/components/BodyRig/BodyAttachment.d.ts +28 -0
- package/dist/components/BodyRig/BodyOccluder.d.ts +27 -0
- package/dist/components/BodyRig/bodyDepth.d.ts +57 -0
- package/dist/components/BodyRig/index.d.ts +129 -0
- package/dist/components/BodyRig/useBodyDepthTexture.d.ts +40 -0
- package/dist/components/BodyTracker/index.d.ts +26 -1
- package/dist/components/BodyTrigger/index.d.ts +56 -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/FaceMeshRenderer.d.ts +25 -0
- package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +70 -1
- package/dist/components/FaceMesh/canonical/FaceMeshMaterial.d.ts +25 -0
- package/dist/components/FaceMesh/canonical/assets.d.ts +3 -0
- package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +30 -0
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +24 -0
- package/dist/components/FaceMesh/canonical/shaders.d.ts +2 -0
- package/dist/components/FaceMesh/deform.d.ts +3 -0
- package/dist/components/FaceMesh/index.d.ts +6 -1
- package/dist/components/FaceMesh/material/defaults.d.ts +74 -0
- package/dist/components/FaceMesh/material/index.d.ts +1 -0
- package/dist/components/FaceMesh/material/options.d.ts +5 -1
- package/dist/components/FaceMesh/material/support.d.ts +7 -2
- package/dist/components/FaceMesh/material/textures.d.ts +4 -0
- package/dist/components/FaceMesh/material/types.d.ts +4 -2
- package/dist/components/FaceRetouch/Background.d.ts +11 -5
- package/dist/components/FaceRetouch/FaceRetouch.d.ts +52 -0
- package/dist/components/FaceRetouch/index.d.ts +2 -6
- package/dist/components/FaceRetouch/landmarkMask.d.ts +4 -6
- package/dist/components/FaceRetouch/renderState.d.ts +19 -0
- package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +4 -7
- 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/FaceTracker/index.d.ts +5 -3
- package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
- package/dist/components/FaceWarp3D/index.d.ts +2 -0
- 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/HandEffect/index.d.ts +36 -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/HandJoints2D/index.d.ts +6 -0
- package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
- package/dist/components/HandRig/HandAttachment.d.ts +34 -0
- package/dist/components/HandRig/HandNails.d.ts +61 -0
- package/dist/components/HandRig/HandOccluder.d.ts +45 -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 +127 -0
- package/dist/components/HandRig/useArmMask.d.ts +29 -0
- package/dist/components/HandRig/wristSolve.d.ts +96 -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 +12 -2
- package/dist/components/HandTracking2D/HandVisual.d.ts +12 -0
- package/dist/components/HandTracking2D/index.d.ts +5 -0
- package/dist/components/HandTracking2DController/index.d.ts +5 -0
- package/dist/components/HandTracking3D/index.d.ts +6 -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 +67 -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/LightObject/index.d.ts +20 -0
- package/dist/components/LipEffect/LipEffect.d.ts +28 -0
- package/dist/components/LipEffect/LipEffectMaterial.d.ts +98 -0
- package/dist/components/LipEffect/LipEffects.d.ts +12 -0
- package/dist/components/LipEffect/defaults.d.ts +51 -0
- package/dist/components/LipEffect/index.d.ts +12 -0
- 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 +141 -0
- package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
- package/dist/components/LipEffect/uvGuide.d.ts +74 -0
- package/dist/components/LookAt/index.d.ts +23 -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/MeshRenderer/index.d.ts +59 -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 +46 -0
- package/dist/components/PersonCutout/personCutout.d.ts +16 -0
- package/dist/components/PersonCutout/personMask.d.ts +19 -0
- package/dist/components/PersonCutout/useBodyMaskTexture.d.ts +35 -0
- package/dist/components/PerspectiveCamera/index.d.ts +2 -8
- package/dist/components/PinToMesh/index.d.ts +47 -0
- package/dist/components/RenderGroupLayer/index.d.ts +6 -0
- package/dist/components/SceneObjectRenderer/index.d.ts +23 -0
- package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
- package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
- package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
- package/dist/components/Screen2D/index.d.ts +5 -0
- package/dist/components/ScreenGlass/defaults.d.ts +3 -0
- package/dist/components/ScreenGlass/index.d.ts +5 -0
- package/dist/components/ScreenGlass/shaders.d.ts +2 -0
- package/dist/components/ScreenGlass/types.d.ts +10 -0
- package/dist/components/ScreenGradient/defaults.d.ts +5 -0
- package/dist/components/ScreenGradient/index.d.ts +5 -0
- package/dist/components/ScreenGradient/shaders.d.ts +2 -0
- package/dist/components/ScreenGradient/types.d.ts +19 -0
- package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
- package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
- package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
- package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
- package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
- package/dist/components/ScreenImage/fit.d.ts +52 -0
- package/dist/components/ScreenImage/index.d.ts +10 -0
- package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
- package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
- package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
- package/dist/components/ScreenImage/source.d.ts +25 -0
- package/dist/components/ScreenImage/types.d.ts +64 -0
- package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
- package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
- package/dist/components/ScreenShape/geometry.d.ts +5 -0
- package/dist/components/ScreenShape/index.d.ts +5 -0
- package/dist/components/ScreenShape/types.d.ts +54 -0
- package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
- package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
- package/dist/components/ScreenSpaceUI/index.d.ts +3 -0
- package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
- package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
- package/dist/components/ScreenText/constants.d.ts +5 -0
- package/dist/components/ScreenText/index.d.ts +6 -0
- package/dist/components/ScreenText/types.d.ts +31 -0
- package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
- package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -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/SequentialRenderPasses/index.d.ts +6 -0
- package/dist/components/ShoulderOccluder/index.d.ts +46 -0
- package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +27 -0
- package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
- package/dist/components/SpringSwing/index.d.ts +1 -0
- package/dist/components/TextLabel/TextLabel.d.ts +5 -0
- package/dist/components/TextLabel/alignment.d.ts +4 -0
- package/dist/components/TextLabel/bend.d.ts +9 -0
- package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
- package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
- package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
- package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
- package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
- package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
- package/dist/components/TextLabel/constants.d.ts +2 -0
- package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
- package/dist/components/TextLabel/index.d.ts +2 -62
- package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
- package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
- package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
- package/dist/components/TextLabel/types.d.ts +337 -0
- package/dist/components/TrackingAnchor/index.d.ts +18 -2
- package/dist/components/Transform3D/index.d.ts +30 -0
- package/dist/components/XRMediaSurface/index.d.ts +8 -7
- package/dist/components/XRProvider/index.d.ts +16 -2
- package/dist/components/XRScene/index.d.ts +14 -3
- package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
- package/dist/components/XRViewport/XRViewport.d.ts +11 -0
- package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
- package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
- package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
- package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
- package/dist/components/XRViewport/constants.d.ts +24 -0
- package/dist/components/XRViewport/contexts.d.ts +6 -0
- package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
- package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
- package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
- package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
- package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
- package/dist/components/XRViewport/index.d.ts +3 -101
- package/dist/components/XRViewport/layout.d.ts +16 -0
- package/dist/components/XRViewport/slots.d.ts +16 -0
- package/dist/components/XRViewport/types.d.ts +89 -0
- package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
- package/dist/components/index.d.ts +31 -0
- package/dist/components/occluder/skinnedOccluder.d.ts +39 -0
- package/dist/config/index.d.ts +1 -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-DQc7zyqT.cjs +1 -0
- package/dist/contexts-Y_FhdnIv.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/component-editor/index.d.ts +19 -0
- package/dist/debug-ui/default-setting/index.d.ts +37 -0
- package/dist/debug-ui/default-setting.cjs +21 -0
- package/dist/debug-ui/default-setting.js +777 -0
- package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
- package/dist/debug-ui/face-retouch/index.d.ts +11 -0
- 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/hand-joints-2d/index.d.ts +6 -0
- package/dist/debug-ui/hand-tracking-2d/index.d.ts +6 -0
- package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +6 -0
- package/dist/debug-ui/hand-tracking-3d/index.d.ts +6 -0
- package/dist/debug-ui/hierarchy-panel/index.d.ts +30 -0
- package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
- package/dist/debug-ui/index.d.ts +61 -0
- package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
- package/dist/debug-ui/layer-panel/index.d.ts +18 -0
- package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
- package/dist/debug-ui/media-source/MediaSourceSwitcher.d.ts +10 -0
- package/dist/debug-ui/media-source/index.d.ts +6 -0
- package/dist/debug-ui/media-source/media-preset.d.ts +21 -0
- package/dist/debug-ui/media-source/session.d.ts +40 -0
- package/dist/debug-ui/media-source.cjs +1 -0
- package/dist/debug-ui/media-source.js +11 -0
- package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
- package/dist/debug-ui/object-inspector-panel/index.d.ts +26 -0
- package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
- package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
- package/dist/debug-ui/scene-editor/context.d.ts +38 -0
- package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +11 -0
- package/dist/debug-ui/scene-editor/index.d.ts +11 -0
- package/dist/debug-ui/scene-editor/inspector-panel.d.ts +9 -0
- package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
- package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
- package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
- package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
- package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
- package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
- package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
- package/dist/debug-ui/screen-image-settings/index.d.ts +11 -0
- package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
- package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
- package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
- package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
- package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
- package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/index.d.ts +2 -0
- package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
- package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
- package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
- package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
- package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
- package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
- package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
- package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
- package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
- package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
- package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
- package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
- package/dist/debug-ui/screen-text-settings/types.d.ts +11 -0
- package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
- package/dist/debug-ui/settings-panel/index.d.ts +43 -0
- package/dist/debug-ui/shared/MaterialSection.d.ts +13 -0
- package/dist/debug-ui/shared/ScreenTransformSection.d.ts +32 -0
- package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
- package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
- package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
- package/dist/debug-ui.cjs +10 -0
- package/dist/debug-ui.js +9051 -0
- package/dist/detector-K8aej4MB.js +59 -0
- package/dist/detector-ijypGtse.cjs +1 -0
- package/dist/drawNormalizedCrop-C4KFaRne.cjs +1 -0
- package/dist/drawNormalizedCrop-DG3gtJxf.js +135 -0
- package/dist/entries/all.d.ts +4 -1
- package/dist/entries/core.d.ts +76 -6
- package/dist/entries/face-effects.d.ts +130 -10
- package/dist/entries/instructions.d.ts +48 -0
- package/dist/entries/internal.d.ts +5 -2
- package/dist/entries/low-level.d.ts +104 -6
- package/dist/entries/particles.d.ts +15 -0
- package/dist/entries/product.d.ts +11 -0
- package/dist/entries/scene-object.d.ts +10 -0
- package/dist/entries/tracking.d.ts +110 -2
- package/dist/face-action/index.d.ts +34 -0
- 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-attribute-expression/index.d.ts +10 -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 +2267 -195
- package/dist/face-effects.js +14191 -3346
- package/dist/face-expression/index.d.ts +182 -0
- package/dist/face-info/blendshapes.d.ts +3 -0
- package/dist/face-info/derive.d.ts +8 -0
- package/dist/face-info/drawFaceCrop.d.ts +10 -0
- package/dist/face-info/getFaceInfo.d.ts +8 -0
- package/dist/face-info/index.d.ts +8 -0
- package/dist/face-info/landmarks.d.ts +35 -0
- package/dist/face-info/types.d.ts +69 -0
- 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-BafgGT27.js +62 -0
- package/dist/getFaceInfo-BzlwHMjX.cjs +1 -0
- package/dist/hand/armFit.d.ts +46 -0
- package/dist/hand/armMask.d.ts +190 -0
- package/dist/hand/forearm.d.ts +114 -0
- package/dist/hand/handCutout.d.ts +23 -0
- package/dist/hand/handCutoutRegistry.d.ts +7 -0
- package/dist/hand/handEffect.d.ts +38 -0
- package/dist/hand/handGestures.d.ts +524 -0
- package/dist/hand/handJoints2d.d.ts +49 -0
- package/dist/hand/handNail.d.ts +73 -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/handTracking2d.d.ts +33 -0
- package/dist/hand/handTracking2dController.d.ts +65 -0
- package/dist/hand/handTracking3d.d.ts +52 -0
- package/dist/hand/nailImageMask.d.ts +40 -0
- package/dist/hand/nailMaskFingers.d.ts +23 -0
- package/dist/hand/nailTipRefine.d.ts +37 -0
- package/dist/hand/wrist.d.ts +44 -0
- package/dist/hand/wristFilter.d.ts +44 -0
- package/dist/hooks/faceResults.d.ts +1 -1
- package/dist/hooks/selectors.d.ts +77 -4
- package/dist/hooks/useBodies.d.ts +39 -0
- package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
- package/dist/hooks/useFaceAction.d.ts +3 -0
- package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
- package/dist/hooks/useFaceDetection.d.ts +18 -0
- package/dist/hooks/useFaceInfo.d.ts +19 -0
- package/dist/hooks/useFaceInfos.d.ts +15 -0
- package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
- package/dist/hooks/useFaceResultReader.d.ts +10 -0
- package/dist/hooks/useFrameCapture.d.ts +18 -0
- package/dist/hooks/useGesture.d.ts +39 -0
- package/dist/hooks/useIrisTracking.d.ts +45 -0
- package/dist/hooks/useMediaRecorder.d.ts +14 -2
- package/dist/hooks/useOwnedTexture.d.ts +6 -0
- package/dist/hooks/useTrackerContext.d.ts +14 -2
- package/dist/hooks/useXRDiagnostics.d.ts +81 -0
- package/dist/hooks/useXRModel.d.ts +12 -0
- package/dist/hooks/useXRSession/facade.d.ts +47 -2
- package/dist/hooks/useXRSession/index.d.ts +2 -2
- package/dist/hooks/useXRSession/reason.d.ts +21 -0
- package/dist/hooks/useXRSession/registry.d.ts +23 -0
- package/dist/hooks/useXRSession/store.d.ts +64 -7
- package/dist/index-BZoBxyLn.js +1103 -0
- package/dist/index-By_LCo2V.cjs +1 -0
- package/dist/index-C-Mryx_u.cjs +21 -0
- package/dist/index-CKRN-xJp.js +3740 -0
- package/dist/index-CUldCMRl.js +188 -0
- package/dist/index-Cyk_VIZE.js +1432 -0
- package/dist/index-D-4w34GO.cjs +1 -0
- package/dist/index-DiIoHK_4.js +442 -0
- package/dist/index-Dv3WnY9n.cjs +46 -0
- package/dist/index-ItufYyHH.cjs +1 -0
- package/dist/index-S3gqudT6.cjs +1 -0
- package/dist/index-Sho4F4it.cjs +1 -0
- package/dist/index-iIQ9jBDb.js +240 -0
- package/dist/index-vr2ichWQ.js +190 -0
- package/dist/instructions.cjs +30 -0
- package/dist/instructions.js +1528 -0
- package/dist/internal-Bb9ZXbpr.cjs +1 -0
- package/dist/{internal-KOKJDxCG.js → internal-Gt1wn6Z3.js} +152 -127
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +16 -9
- 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-CvN-L5NT.cjs +1 -0
- package/dist/landmarkMask-DHivVjJm.js +225 -0
- package/dist/landmarks-BEjJXcnE.cjs +1 -0
- package/dist/landmarks-DtCAFV_m.js +76 -0
- package/dist/low-level.cjs +1 -1
- package/dist/low-level.js +1494 -629
- package/dist/main.cjs +1 -1
- package/dist/main.js +1306 -475
- package/dist/material/MaterialFill.d.ts +20 -0
- package/dist/material/MeshMaterial.d.ts +14 -0
- package/dist/material/index.d.ts +2 -0
- package/dist/models/Base/index.d.ts +49 -0
- package/dist/models/Body/index.d.ts +30 -1
- package/dist/models/Face/constants.d.ts +8 -0
- package/dist/models/Face/index.d.ts +5 -12
- package/dist/models/Face/rotation.d.ts +18 -0
- package/dist/models/Hand/GestureTracking.d.ts +1 -1
- package/dist/models/Hand/HandTracking.d.ts +19 -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 +6 -3
- 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 +71 -0
- package/dist/particles/system.d.ts +66 -0
- package/dist/particles.cjs +122 -0
- package/dist/particles.js +999 -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-CEZQgz2s.cjs +62 -0
- package/dist/providers-CRuaD8bi.js +424 -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/layerStack.d.ts +29 -0
- package/dist/render/renderGroups.d.ts +47 -0
- package/dist/render/renderPasses.d.ts +26 -0
- package/dist/render/sceneBeforeRender.d.ts +12 -0
- package/dist/renderGroups-BADrepA1.cjs +1 -0
- package/dist/renderGroups-CNB99dZ2.js +152 -0
- package/dist/renderPasses-DgxUKn9b.cjs +158 -0
- package/dist/renderPasses-DuapJA6V.js +1290 -0
- package/dist/renderState-CJNmj5jz.js +39 -0
- package/dist/renderState-apSfg4eR.cjs +1 -0
- package/dist/scene-object/index.d.ts +146 -0
- package/dist/scene-object/runtimeRegistry.d.ts +14 -0
- package/dist/scene-object.cjs +1 -0
- package/dist/scene-object.js +40 -0
- package/dist/screen-image/screenImagePresets.d.ts +13 -0
- package/dist/screen-image/screenImageSettings.d.ts +57 -0
- package/dist/screen-text/screenTextPresets.d.ts +6 -0
- package/dist/screen-text/screenTextSettings.d.ts +147 -0
- package/dist/screen2d/coordinates.d.ts +107 -0
- package/dist/screen2d/index.d.ts +7 -0
- package/dist/screen2d/material-runtime.d.ts +32 -0
- package/dist/screen2d/screenTransform.d.ts +60 -0
- package/dist/screen2d/smoothing.d.ts +5 -0
- package/dist/screen2d/texture.d.ts +10 -0
- package/dist/screen2d/transform.d.ts +25 -0
- package/dist/screen2d/types.d.ts +90 -0
- package/dist/segmentation-BOZJdWFC.js +1911 -0
- package/dist/segmentation-J8GoNBvP.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/selectors-BvJepq6H.js +196 -0
- package/dist/selectors-QB2qsaxy.cjs +1 -0
- package/dist/services/MetricsCollector/index.d.ts +7 -1
- package/dist/services/MetricsCollector/utils.d.ts +1 -1
- package/dist/session-BVX859as.cjs +31 -0
- package/dist/session-Cz8aie4K.js +493 -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 +70 -0
- package/dist/subjects/types.d.ts +59 -0
- package/dist/texture/animatedTexture.d.ts +63 -0
- package/dist/texture/animationMath.d.ts +8 -0
- package/dist/texture/gifReader.d.ts +17 -0
- package/dist/texture/gifTextureSource.d.ts +16 -0
- package/dist/texture/sourceResolver.d.ts +30 -0
- package/dist/textures-BVwo9Z7z.js +38 -0
- package/dist/textures-DAfc61zz.cjs +1 -0
- package/dist/tracking/coordinates.d.ts +5 -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 +1531 -294
- package/dist/trigger-D9L4GPmQ.js +3726 -0
- package/dist/trigger-DZ9vU7jo.cjs +147 -0
- package/dist/types/common.d.ts +11 -1
- package/dist/types/compositor.d.ts +21 -0
- package/dist/types/face.d.ts +21 -14
- package/dist/types/gesture-tracking.d.ts +2 -2
- package/dist/types/hand-tracking.d.ts +19 -2
- package/dist/types/holistic.d.ts +121 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/model.d.ts +22 -2
- package/dist/types/nodes.d.ts +83 -6
- package/dist/types/segmentation.d.ts +26 -0
- package/dist/types/session.d.ts +50 -4
- package/dist/types/tracking.d.ts +8 -2
- package/dist/types/util-types.d.ts +1 -1
- package/dist/useBodies-BYzJpQ4L.js +75 -0
- package/dist/useBodies-Cxpmx6Bb.cjs +1 -0
- package/dist/useFaceInfo-BzEUj2OI.js +75 -0
- package/dist/useFaceInfo-DlLRAVNw.cjs +1 -0
- package/dist/useFaceResultReader-Cc4Qrutf.js +61 -0
- package/dist/useFaceResultReader-D3jOQNKz.cjs +1 -0
- package/dist/useInstructionHold-DOu-RpCM.js +53 -0
- package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
- package/dist/useIrisTracking-Bz4uLDa7.js +6190 -0
- package/dist/useIrisTracking-DRGWgoNy.cjs +35 -0
- package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
- package/dist/useXRCapabilities-B1KLckqw.js +30 -0
- package/dist/useXRCapabilities-CZlPUBjF.cjs +1 -0
- package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
- package/dist/utils/drawNormalizedCrop.d.ts +22 -0
- package/dist/utils/fns.d.ts +6 -3
- package/dist/utils/headOccluderFit.d.ts +42 -0
- package/dist/utils/integrity.d.ts +25 -26
- package/dist/utils/landmarkBounds.d.ts +1 -1
- package/dist/utils/logger.d.ts +2 -2
- 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/utils/visionWasm.d.ts +18 -0
- package/dist/uv-BMFt19bg.cjs +1 -0
- package/dist/{index-BD-JWMjE.js → uv-DJU_XfmN.js} +15 -180
- package/dist/x-Co8jPhP0.js +127 -0
- package/dist/x-KC8E4Gaj.cjs +41 -0
- package/docs/MIGRATION_GUIDE.md +589 -0
- package/docs/SDK_DOCUMENTATION.md +1157 -0
- package/docs/api/adaptive-quality.mdx +104 -0
- package/docs/api/asset-lifecycle.mdx +78 -0
- package/docs/api/audio.mdx +36 -0
- package/docs/api/behavior-components.mdx +164 -0
- package/docs/api/body-instructions.mdx +287 -0
- package/docs/api/body-rig.mdx +384 -0
- package/docs/api/body-triggers.mdx +235 -0
- package/docs/api/camera-permission.mdx +142 -0
- package/docs/api/capture-recording.mdx +111 -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 +270 -0
- package/docs/api/diagnostics-calibration.mdx +97 -0
- package/docs/api/external-face-mesh.mdx +231 -0
- package/docs/api/face-actions.mdx +108 -0
- package/docs/api/face-attribute-expression.mdx +87 -0
- package/docs/api/face-binding-anchors.mdx +55 -0
- package/docs/api/face-character.mdx +157 -0
- package/docs/api/face-effects.mdx +28 -0
- package/docs/api/face-expression-controller.mdx +153 -0
- package/docs/api/face-info.mdx +118 -0
- 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 +130 -0
- package/docs/api/face-morph.mdx +117 -0
- package/docs/api/face-painting.mdx +40 -0
- package/docs/api/face-reprojection.mdx +154 -0
- package/docs/api/face-retouching.mdx +81 -0
- 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 +210 -0
- package/docs/api/hair.mdx +97 -0
- package/docs/api/hand-instructions.mdx +222 -0
- package/docs/api/hand-rig.mdx +661 -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/material-render-state.mdx +132 -0
- package/docs/api/multi-subject.mdx +185 -0
- package/docs/api/particles.mdx +183 -0
- package/docs/api/person-cutout.mdx +171 -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/runtime-3d.mdx +316 -0
- package/docs/api/scene-object-store.mdx +213 -0
- package/docs/api/screen-image.mdx +67 -0
- package/docs/api/screen-shape.mdx +64 -0
- package/docs/api/screen-space-coordinates.mdx +75 -0
- package/docs/api/screen-text.mdx +39 -0
- package/docs/api/segmentation-overlay.mdx +301 -0
- package/docs/api/session-lifecycle.mdx +136 -0
- package/docs/api/texture-sources.mdx +74 -0
- package/docs/api/trackers.mdx +65 -0
- package/docs/api/tracking-config.mdx +108 -0
- package/docs/docs.json +121 -0
- package/docs/examples/lip-shaders.mdx +273 -0
- package/docs/examples/scene-object-recipes.mdx +194 -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 +139 -0
- 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/inspector/hierarchy-panel.mdx +51 -0
- package/docs/inspector/object-inspector-panel.mdx +51 -0
- package/docs/introduction.mdx +120 -0
- package/docs/scene-objects/overview.mdx +127 -0
- package/docs/scene-objects/render-groups.mdx +77 -0
- package/docs/scene-objects/runtime-rendering.mdx +75 -0
- package/docs/texture-api-consumer.md +84 -0
- package/package.json +86 -8
- package/settings.json +1998 -0
- package/dist/DebuggerUI-CEfdddkZ.cjs +0 -1
- package/dist/DebuggerUI-Dgop6Q6o.js +0 -269
- package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
- package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
- package/dist/index-B5J4gzn2.cjs +0 -1
- package/dist/index-BVBVg96G.cjs +0 -1
- package/dist/index-CYMj26Ej.js +0 -1331
- package/dist/index-DtwHElmG.js +0 -157
- package/dist/index-PtFmD6B8.cjs +0 -1
- package/dist/internal-DH5d1Xnq.cjs +0 -1
- package/dist/modules/XRClient/index.d.ts +0 -9
- package/dist/modules/index.d.ts +0 -1
- package/dist/selectors-BHO6TnoC.js +0 -59
- package/dist/selectors-Bub0o3qy.cjs +0 -1
- package/dist/services/ApiService.d.ts +0 -12
- package/dist/types/client.d.ts +0 -3
- package/dist/useFaceResults-cpsSmKKc.js +0 -81
- package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { XRQualityConfigInput } from '../quality/types';
|
|
2
|
+
import { XRCameraRequest } from '../types/compositor';
|
|
3
|
+
import { HolisticDelegate, HolisticHandsOption } from '../types/holistic';
|
|
4
|
+
import { XRLifecycleConfig, XRPerfConfig } from '../types/model';
|
|
5
|
+
import { SegmentationQuality, SemanticSegmentationPreset } from '../types/segmentation';
|
|
6
|
+
/**
|
|
7
|
+
* Persistent, creator-facing tracking configuration: which trackers an
|
|
8
|
+
* experience uses and how they are tuned. Plain JSON only — no streams,
|
|
9
|
+
* textures, model instances, calibration measurements or session state
|
|
10
|
+
* (those are runtime resources with their own owners). `version` gates
|
|
11
|
+
* migration; unknown fields are dropped on parse.
|
|
12
|
+
*/
|
|
13
|
+
export type XRTrackingConfig = {
|
|
14
|
+
version: 1;
|
|
15
|
+
trackers: {
|
|
16
|
+
face: {
|
|
17
|
+
enabled: boolean;
|
|
18
|
+
numFaces: number;
|
|
19
|
+
targetFps: number | null;
|
|
20
|
+
holdMs: number;
|
|
21
|
+
predictMs: number;
|
|
22
|
+
smoothing: number;
|
|
23
|
+
};
|
|
24
|
+
hand: {
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
targetFps: number | null;
|
|
27
|
+
};
|
|
28
|
+
gesture: {
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
targetFps: number | null;
|
|
31
|
+
};
|
|
32
|
+
body: {
|
|
33
|
+
enabled: boolean;
|
|
34
|
+
targetFps: number | null;
|
|
35
|
+
};
|
|
36
|
+
holistic: {
|
|
37
|
+
enabled: boolean;
|
|
38
|
+
targetFps: number | null;
|
|
39
|
+
hands: HolisticHandsOption;
|
|
40
|
+
holdMs: number;
|
|
41
|
+
predictMs: number;
|
|
42
|
+
analysisMaxDimension: number;
|
|
43
|
+
outputFaceBlendshapes: boolean;
|
|
44
|
+
/** Detector / presence / landmark confidences, 0..1. */
|
|
45
|
+
confidence: number;
|
|
46
|
+
delegate: HolisticDelegate;
|
|
47
|
+
};
|
|
48
|
+
segmentation: {
|
|
49
|
+
enabled: boolean;
|
|
50
|
+
quality: SegmentationQuality;
|
|
51
|
+
};
|
|
52
|
+
semanticSegmentation: {
|
|
53
|
+
enabled: boolean;
|
|
54
|
+
preset: SemanticSegmentationPreset;
|
|
55
|
+
quality: SegmentationQuality;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
/** Session perf config (`<XRProvider perf>`). */
|
|
59
|
+
perf: Required<Pick<XRPerfConfig, "targetFps" | "camRes" | "cameraZoom">> & {
|
|
60
|
+
analysisScale: number;
|
|
61
|
+
};
|
|
62
|
+
lifecycle: Required<XRLifecycleConfig>;
|
|
63
|
+
/** Adaptive quality: a partial config, or `false` to run without the controller. */
|
|
64
|
+
quality: XRQualityConfigInput | false;
|
|
65
|
+
/** Which camera to open and how to mirror it. */
|
|
66
|
+
camera: {
|
|
67
|
+
facingMode: NonNullable<XRCameraRequest["facingMode"]>;
|
|
68
|
+
deviceId: string | null;
|
|
69
|
+
mirrored: boolean | "auto";
|
|
70
|
+
};
|
|
71
|
+
fallbacks: {
|
|
72
|
+
/** What the app does when the capability check blocks tracking: refuse, or run without trackers. */
|
|
73
|
+
onUnsupported: "block" | "degrade";
|
|
74
|
+
/** Preferred MediaPipe backend for models that offer the choice. */
|
|
75
|
+
delegate: HolisticDelegate;
|
|
76
|
+
};
|
|
77
|
+
/** Model asset overrides by tracker (URL); `null` keeps the SDK default. */
|
|
78
|
+
assets: {
|
|
79
|
+
holisticModelUrl: string | null;
|
|
80
|
+
semanticSegmentationModelUrl: string | null;
|
|
81
|
+
};
|
|
82
|
+
/** Wall-clock ms of the last change (0 for defaults). */
|
|
83
|
+
updatedAt: number;
|
|
84
|
+
};
|
|
85
|
+
/** Deep partial: every leaf optional. */
|
|
86
|
+
export type XRTrackingConfigInput = {
|
|
87
|
+
version?: number;
|
|
88
|
+
trackers?: {
|
|
89
|
+
[K in keyof XRTrackingConfig["trackers"]]?: Partial<XRTrackingConfig["trackers"][K]>;
|
|
90
|
+
};
|
|
91
|
+
perf?: Partial<XRTrackingConfig["perf"]>;
|
|
92
|
+
lifecycle?: Partial<XRTrackingConfig["lifecycle"]>;
|
|
93
|
+
quality?: XRQualityConfigInput | false;
|
|
94
|
+
camera?: Partial<XRTrackingConfig["camera"]>;
|
|
95
|
+
fallbacks?: Partial<XRTrackingConfig["fallbacks"]>;
|
|
96
|
+
assets?: Partial<XRTrackingConfig["assets"]>;
|
|
97
|
+
updatedAt?: number;
|
|
98
|
+
};
|
|
99
|
+
export type XRTrackerKind = keyof XRTrackingConfig["trackers"];
|
|
100
|
+
export type XRTrackingConfigParseResult = {
|
|
101
|
+
config: XRTrackingConfig;
|
|
102
|
+
/** True when the stored document came from another version (or none) and was migrated / defaulted. */
|
|
103
|
+
migrated: boolean;
|
|
104
|
+
/** Fields that were dropped or clamped. */
|
|
105
|
+
warnings: string[];
|
|
106
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { XRModel } from '../constants';
|
|
2
|
+
import { toCameraRequest, toProviderProps, toTrackerProps } from './apply';
|
|
3
|
+
import { TrackingConfigStorage } from './storage';
|
|
4
|
+
import { XRTrackerKind, XRTrackingConfig, XRTrackingConfigInput } from './types';
|
|
5
|
+
export type UseXRTrackingConfigOptions = {
|
|
6
|
+
storageKey?: string;
|
|
7
|
+
/** `false` keeps the config in memory only. Default `true`. */
|
|
8
|
+
persist?: boolean;
|
|
9
|
+
storage?: TrackingConfigStorage | null;
|
|
10
|
+
/** Defaults for this app, applied under anything persisted. */
|
|
11
|
+
initial?: XRTrackingConfigInput;
|
|
12
|
+
};
|
|
13
|
+
export type UseXRTrackingConfigResult = {
|
|
14
|
+
config: XRTrackingConfig;
|
|
15
|
+
/** True once storage was read (or persistence is off). */
|
|
16
|
+
hydrated: boolean;
|
|
17
|
+
/** Warnings from the last load / update (dropped or clamped fields, migration). */
|
|
18
|
+
warnings: string[];
|
|
19
|
+
update: (patch: XRTrackingConfigInput) => XRTrackingConfig;
|
|
20
|
+
/** Back to `initial` over the defaults; clears storage. */
|
|
21
|
+
reset: () => XRTrackingConfig;
|
|
22
|
+
/** Replace from a JSON string (an import); invalid input keeps the current config and reports warnings. */
|
|
23
|
+
importJson: (json: string) => XRTrackingConfig;
|
|
24
|
+
/** The serialized document. */
|
|
25
|
+
json: string;
|
|
26
|
+
providerProps: ReturnType<typeof toProviderProps>;
|
|
27
|
+
cameraRequest: ReturnType<typeof toCameraRequest>;
|
|
28
|
+
trackerProps: <K extends XRTrackerKind>(kind: K) => ReturnType<typeof toTrackerProps<K>>;
|
|
29
|
+
modelOptions: (model: XRModel) => Record<string, unknown>;
|
|
30
|
+
enabledModels: XRModel[];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Persistent tracking configuration for an app: load (with migration),
|
|
34
|
+
* validate, update, reset, serialize, and project onto `<XRProvider>`,
|
|
35
|
+
* tracker components and model options. Mount it ABOVE `<XRProvider>` so the
|
|
36
|
+
* provider props come from it; it needs no session.
|
|
37
|
+
*/
|
|
38
|
+
export declare const useXRTrackingConfig: (options?: UseXRTrackingConfigOptions) => UseXRTrackingConfigResult;
|
package/dist/tracking.cjs
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";var Lt=Object.create;var qe=Object.defineProperty;var bt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Ft=Object.getPrototypeOf,vt=Object.prototype.hasOwnProperty;var xt=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Ht(r))!vt.call(e,o)&&o!==t&&qe(e,o,{get:()=>r[o],enumerable:!(n=bt(r,o))||n.enumerable});return e};var ze=(e,r,t)=>(t=e!=null?Lt(Ft(e)):{},xt(r||!e||!e.__esModule?qe(t,"default",{value:e,enumerable:!0}):t,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ne=require("./index-S3gqudT6.cjs"),M=require("react/jsx-runtime"),L=require("@react-three/fiber"),a=require("react"),O=require("./index-Sho4F4it.cjs"),Re=require("./uv-BMFt19bg.cjs"),ee=require("./landmarks-BEjJXcnE.cjs"),p=require("./useIrisTracking-DRGWgoNy.cjs"),d=require("./trigger-DZ9vU7jo.cjs"),_e=require("./segmentation-J8GoNBvP.cjs"),Bt=require("three"),Se=require("./index-ItufYyHH.cjs"),K=require("./settings-C63FMBlF.cjs"),Ee=require("./selectors-QB2qsaxy.cjs"),he=require("./useBodies-Cxpmx6Bb.cjs"),rt=require("./drawNormalizedCrop-C4KFaRne.cjs"),fe=require("./index-By_LCo2V.cjs"),X=require("./detector-ijypGtse.cjs"),Z=require("./getFaceInfo-BzlwHMjX.cjs"),kt=require("./useInstructionHold-DwJY1Alr.cjs"),Ie=require("./useFaceInfo-DlLRAVNw.cjs"),se=require("./providers-CEZQgz2s.cjs"),Ue=require("./landmarkMask-CvN-L5NT.cjs");function Pt(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const x=Pt(Bt),nt={"hand.wrist":0,"hand.thumbTip":4,"hand.indexTip":8,"hand.middleTip":12,"hand.ringTip":16,"hand.pinkyTip":20,"hand.indexBase":5,"hand.middleBase":9,"hand.ringBase":13,"hand.pinkyBase":17};function st(e,r,t=0){var o;const n=(o=e==null?void 0:e.hands)!=null&&o.length?e.hands:e!=null&&e.coordinates?[{coordinates:e.coordinates,gesture:e.gesture,handedness:e.handedness}]:[];if(n.length){if(r){const l=n.find(u=>u.handedness===r);if(l)return l}return n[t]??n[0]}}const wt=({children:e,hand:r,handIndex:t=0,targetFps:n,active:o=!0})=>{const l=a.useRef(null),u=a.useMemo(()=>n===void 0?void 0:{targetFps:n},[n]),{ready:s,node:i}=ee.useXRModel(O.XRModel.HAND_TRACKER,u,o),{camera:c}=L.useThree(),T=a.useRef(c);T.current!==c&&(T.current=c);const _=a.useRef(null);L.useFrame(()=>{var f;if(!s||!i||!l.current)return;const g=st(i,r,t);_.current=g??null;const A=(f=g==null?void 0:g.coordinates)==null?void 0:f[0];if(!A){l.current.visible=!1;return}const R=O.trackerToWorld(A,T.current);l.current.visible=!0,l.current.position.copy(R)});const E=a.useCallback(g=>{var f,h;const A=nt[g];if(A===void 0)return null;const R=(h=(f=_.current)==null?void 0:f.coordinates)==null?void 0:h[A];return R?{position:O.trackerToWorld(R,T.current)}:null},[]),S=a.useMemo(()=>({type:"hand",resolveLandmark:E}),[E]);return M.jsx(ne.TrackerContext.Provider,{value:S,children:M.jsx("group",{ref:l,renderOrder:Re.RENDER_LAYERS.TRACKED,children:e})})},Ut={"hand.wrist":0,"hand.thumbTip":4,"hand.indexTip":8,"hand.middleTip":12,"hand.ringTip":16,"hand.pinkyTip":20,"hand.indexBase":5,"hand.middleBase":9,"hand.ringBase":13,"hand.pinkyBase":17},Gt=({children:e,targetFps:r,active:t=!0})=>{const n=a.useRef(null),o=a.useMemo(()=>r===void 0?void 0:{targetFps:r},[r]),{ready:l,node:u}=ee.useXRModel(O.XRModel.GESTURE_TRACKER,o,t),{camera:s}=L.useThree(),i=a.useRef(s);i.current!==s&&(i.current=s);const c=a.useRef(null);L.useFrame(()=>{var g;if(!l||!u||!n.current)return;c.current=u;const E=(g=u==null?void 0:u.coordinates)==null?void 0:g[0];if(!E){n.current.visible=!1;return}const S=O.trackerToWorld(E,i.current);n.current.visible=!0,n.current.position.copy(S)});const T=a.useCallback(E=>{var A,R;const S=Ut[E];if(S===void 0)return null;const g=(R=(A=c.current)==null?void 0:A.coordinates)==null?void 0:R[S];return g?{position:O.trackerToWorld(g,i.current)}:null},[]),_=a.useMemo(()=>({type:"hand",resolveLandmark:T}),[T]);return M.jsx(ne.TrackerContext.Provider,{value:_,children:M.jsx("group",{ref:n,renderOrder:Re.RENDER_LAYERS.TRACKED,children:e})})},ot={hand:"/assets/xr/3d-models/hand-v1.glb",glove:"/assets/xr/3d-models/glove-v1.glb",body:"/assets/xr/3d-models/ybot-v1.glb"},at=e=>new URL(ot[e],O.libConfig.assetStorageEndpoint).toString(),jt=e=>_e.defineGltfAsset(at(e)),Yt=d.SKINNED_OCCLUDER_RENDER_ORDER,Kt=({inflate:e=0,showDebugMaterial:r=!1,opacity:t=.5,onModel:n,children:o,...l})=>{const u=d.useSkinnedOccluder({inflate:e,showDebugMaterial:r,opacity:t},d.BODY_RIG_MODEL_MESH,n);return M.jsx(d.BodyRig,{...l,material:u.material,onModel:u.onModel,children:o})};let Je=!1;const Wt=({resolution:e=.5,inflate:r=0,active:t=!0}={})=>{const n=a.useContext(d.BodyRigContext),o=L.useThree(i=>i.gl),l=L.useThree(i=>i.scene),u=L.useThree(i=>i.camera),s=a.useMemo(()=>{const i=new x.WebGLRenderTarget(1,1,{type:x.HalfFloatType,minFilter:x.NearestFilter,magFilter:x.NearestFilter}),c={bodyDepthMap:{value:i.texture},bodyDepthNear:{value:0},bodyDepthFar:{value:1}};return{target:i,material:d.createBodyDepthMaterial(),size:new x.Vector2,range:{near:0,far:1},shown:!0,result:{texture:i.texture,uniforms:c}}},[]);return a.useEffect(()=>()=>{s.target.dispose(),s.material.dispose()},[s]),a.useEffect(()=>{s.material.userData.inflate.value=r},[s,r]),a.useEffect(()=>{n||Je||(Je=!0,console.warn(`${O.libConfig.loggerPrefix} useBodyDepthTexture must be inside a BodyRig or BodyOccluder`))},[n]),L.useFrame(()=>{if(!n||!t)return;o.getDrawingBufferSize(s.size).multiplyScalar(e).round();const i=Math.max(1,s.size.x),c=Math.max(1,s.size.y);(s.target.width!==i||s.target.height!==c)&&s.target.setSize(i,c);const T=n.root.parent,_=!!(T!=null&&T.visible);!_&&!s.shown||(s.shown=_,(T??n.root).updateWorldMatrix(!0,!0),u.updateMatrixWorld(),d.bodyDepthRange(n,u,s.range),s.result.uniforms.bodyDepthNear.value=s.range.near,s.result.uniforms.bodyDepthFar.value=s.range.far,d.renderBodyDepth(o,l,u,n.root,d.BODY_RIG_MODEL_MESH,s.target,s.material))}),n?s.result:null},Xt=({joint:e,along:r=.5,offset:t,children:n})=>{const o=a.useContext(d.HandRigContext),l=a.useRef(null),u=a.useMemo(()=>({transform:{position:new x.Vector3,quaternion:new x.Quaternion},offsetE:new x.Euler,offsetQ:new x.Quaternion,offsetP:new x.Vector3}),[]);L.useFrame(()=>{var E,S,g,A,R,f;const c=l.current;if(!c||!o)return;const{position:T,quaternion:_}=Se.handAttachmentLocal(o,e,r,u.transform);u.offsetQ.setFromEuler(u.offsetE.set(((E=t==null?void 0:t.rotation)==null?void 0:E[0])??0,((S=t==null?void 0:t.rotation)==null?void 0:S[1])??0,((g=t==null?void 0:t.rotation)==null?void 0:g[2])??0)),u.offsetP.set(((A=t==null?void 0:t.position)==null?void 0:A[0])??0,((R=t==null?void 0:t.position)==null?void 0:R[1])??0,((f=t==null?void 0:t.position)==null?void 0:f[2])??0),c.position.copy(T).add(u.offsetP.applyQuaternion(_)),c.quaternion.copy(_).multiply(u.offsetQ),c.scale.setScalar((t==null?void 0:t.scale)??1)});const s=!o;if(a.useEffect(()=>{s&&console.warn(`${O.libConfig.loggerPrefix} HandAttachment must be inside a HandRig or HandOccluder`)},[s]),!o)return null;const i=o.bones[e];return i?L.createPortal(M.jsx("group",{ref:l,children:n}),i):null},de=10,Q=[0,1,5,9,13,17],Vt=-.5,ke=Q.length+K.HAND_JOINTS_2D_BONES.length*2+21*de+2+de,it=(e,r,{inflate:t=1,forearm:n=1.4},o,l=0)=>{let u=l;const s=(m,I)=>{o[u*2]=m,o[u*2+1]=I,u+=1},i=m=>e[m].x*r,c=m=>e[m].y,T=Math.hypot(i(0)-i(9),c(0)-c(9)),_=.12*T*t;let E=0,S=0;for(const m of Q)E+=i(m),S+=c(m);E/=Q.length,S/=Q.length;for(let m=0;m<Q.length;m+=1){const I=Q[m],C=Q[(m+1)%Q.length];s(E/r,S),s(i(I)/r,c(I)),s(i(C)/r,c(C))}const g=(m,I,C,y,B)=>{const j=C-m,b=y-I,N=Math.hypot(j,b)||1,v=-b/N*B,k=j/N*B;s((m+v)/r,I+k),s((C+v)/r,y+k),s((C-v)/r,y-k),s((m+v)/r,I+k),s((C-v)/r,y-k),s((m-v)/r,I-k)},A=(m,I,C)=>{for(let y=0;y<de;y+=1){const B=y/de*Math.PI*2,j=(y+1)/de*Math.PI*2;s(m/r,I),s((m+Math.cos(B)*C)/r,I+Math.sin(B)*C),s((m+Math.cos(j)*C)/r,I+Math.sin(j)*C)}};for(const[m,I]of K.HAND_JOINTS_2D_BONES){const C=m===0?_*1.4:_;g(i(m),c(m),i(I),c(I),C)}for(let m=0;m<21;m+=1)A(i(m),c(m),m===0?_*1.6:_);const R=i(0)-i(9),f=c(0)-c(9),h=Math.hypot(R,f)||1,H=n*T,D=i(0)+R/h*H,F=c(0)+f/h*H;if(n>0){const m=_*2,I=-f/h*m,C=R/h*m;s((i(0)+I)/r,c(0)+C),s((D+I)/r,F+C),s((D-I)/r,F-C),s((i(0)+I)/r,c(0)+C),s((D-I)/r,F-C),s((i(0)-I)/r,c(0)-C),A(D,F,m)}else for(let m=0;m<(2+de)*3;m+=1)s(i(0)/r,c(0));return u-l},be=2,qt=`
|
|
2
|
+
void main() {
|
|
3
|
+
// On the near plane: in front of everything drawn after it.
|
|
4
|
+
gl_Position = vec4(position.xy, -1.0, 1.0);
|
|
5
|
+
}
|
|
6
|
+
`,zt=`
|
|
7
|
+
void main() {
|
|
8
|
+
gl_FragColor = vec4(1.0, 0.2, 0.8, 0.35);
|
|
9
|
+
}
|
|
10
|
+
`,Jt=()=>new x.ShaderMaterial({name:"HandCutout",vertexShader:qt,fragmentShader:zt,depthTest:!0,depthFunc:x.AlwaysDepth,depthWrite:!0,colorWrite:!1,side:x.DoubleSide}),$t=({inflate:e=1,forearm:r=1.4,debug:t=!1,renderOrder:n=-900})=>{const o=Ee.useXRModelNode(O.XRModel.HAND_TRACKER),l=L.useThree(E=>E.size),u=L.useThree(E=>E.scene),s=a.useMemo(()=>{const E=new x.BufferGeometry,S=new x.BufferAttribute(new Float32Array(be*ke*3*3),3);return S.setUsage(x.DynamicDrawUsage),E.setAttribute("position",S),E.setDrawRange(0,0),E},[]);a.useEffect(()=>()=>s.dispose(),[s]),a.useEffect(()=>p.registerHandCutoutShape(u,s),[u,s]);const i=a.useMemo(Jt,[]);a.useEffect(()=>()=>i.dispose(),[i]),a.useEffect(()=>{i.colorWrite=t,i.transparent=t,i.needsUpdate=!0},[i,t]);const c=a.useMemo(()=>new Float32Array(be*ke*3*2),[]),T=a.useRef(null);a.useEffect(()=>{const E=T.current;if(!(!E||t))return E.layers.enable(p.MADE_UP_CAMERA_LAYER),()=>E.layers.disable(p.MADE_UP_CAMERA_LAYER)},[t]);const _=a.useRef({inflate:e,forearm:r});return _.current={inflate:e,forearm:r},L.useFrame(()=>{const E=(o==null?void 0:o.hands)??[],S=l.width/Math.max(1,l.height);let g=0;for(const f of E.slice(0,be)){const h=f.coordinates;!h||h.length<21||(g+=it(h,S,_.current,c,g))}const A=s.getAttribute("position"),R=A.array;for(let f=0;f<g;f+=1)R[f*3]=c[f*2],R[f*3+1]=c[f*2+1],R[f*3+2]=0;A.needsUpdate=!0,s.setDrawRange(0,g)},Vt),M.jsx("group",{children:M.jsx("mesh",{ref:T,geometry:s,material:i,renderOrder:n,frustumCulled:!1})})},He={hovered:!1,grabbed:!1,hand:null},Qt=1.08,Zt=({shape:e="sphere",size:r=.4,position:t,velocity:n,mass:o,bounce:l,grabbable:u=!0,pushable:s=!0,gravity:i=!0,color:c="#f97316",onGrab:T,onRelease:_,onTap:E,onTouch:S,onHoverChange:g,children:A})=>{const R=a.useContext(d.HandTouchContext),f=a.useRef(null),[h,H]=a.useState(He),[D,F]=a.useState(null),m={onGrab:T,onRelease:_,onTap:E,onTouch:S,onHoverChange:g},I=a.useRef(m);I.current=m;const C=a.useRef(b=>{var v,k,V,q,J,z;const N=I.current;switch(b.type){case"grab":H({hovered:!1,grabbed:!0,hand:b.hand}),(v=N.onGrab)==null||v.call(N,b);break;case"release":H(He),(k=N.onRelease)==null||k.call(N,b);break;case"hoverstart":H(U=>U.grabbed?U:{hovered:!0,grabbed:!1,hand:b.hand}),(V=N.onHoverChange)==null||V.call(N,!0,b.hand);break;case"hoverend":H(U=>U.grabbed?U:He),(q=N.onHoverChange)==null||q.call(N,!1,b.hand);break;case"tap":(J=N.onTap)==null||J.call(N,b);break;case"touch":(z=N.onTouch)==null||z.call(N,b);break}}),y=a.useRef({shape:e,size:r,position:t,velocity:n,mass:o,bounce:l,grabbable:u,pushable:s,gravity:i});a.useEffect(()=>{const b=f.current;if(!R||!b)return;const N=R.world.add(y.current);b.position.copy(N.position);const v=R.register(N,{object:b,onEvent:C});return F(N),()=>{v(),R.world.remove(N),F(null)}},[R]),a.useEffect(()=>{D&&(D.shape=e,D.size=Math.max(1e-4,r),D.radius=D.size/2,D.mass=Math.max(1e-6,o??D.size**3),D.bounce=l,D.grabbable=u,D.pushable=s,D.gravity=i)},[D,e,r,o,l,u,s,i]);const B=!R;a.useEffect(()=>{B&&console.warn(`${O.libConfig.loggerPrefix} Touchable must be inside a HandTouch`)},[B]);const j=A===void 0?M.jsx(er,{shape:e,size:r,color:c,state:h}):typeof A=="function"?A(h):A;return M.jsx("group",{ref:f,children:M.jsx("group",{scale:h.grabbed?Qt:1,children:j})})},er=({shape:e,size:r,color:t,state:n})=>M.jsxs("mesh",{children:[e==="box"?M.jsx("boxGeometry",{args:[r,r,r]}):M.jsx("sphereGeometry",{args:[r/2,32,20]}),M.jsx("meshStandardMaterial",{color:t,emissive:t,emissiveIntensity:n.grabbed?.45:n.hovered?.25:0,roughness:.45,metalness:.05})]}),Oe={leftShoulder:11,rightShoulder:12,leftWrist:15,rightWrist:16},tr=0,rr=[[5,8],[9,12],[13,16],[17,20]],Ne={smile:.3,mouthOpen:.25,minVisibility:.5,fingerExtension:1.25},ct=()=>({facePresent:!1,leftHandPresent:!1,rightHandPresent:!1,posePresent:!1,smile:0,mouthOpen:0,smiling:!1,mouthIsOpen:!1,leftHandRaised:!1,rightHandRaised:!1,leftPalmOpen:!1,rightPalmOpen:!1,greeting:null}),$e=(e,r)=>Math.hypot(e.x-r.x,e.y-r.y),Pe=(e,r=Ne.fingerExtension)=>{if(!e||e.landmarks.length<21)return!1;const t=e.landmarks[tr];let n=0;for(const[o,l]of rr){const u=$e(e.landmarks[o],t),s=$e(e.landmarks[l],t);u>0&&s>=u*r&&(n+=1)}return n>=3},we=(e,r,t=Ne.minVisibility)=>{const{pose:n}=e;if(!n||n.landmarks.length<33)return!1;const o=r==="left"?Oe.leftWrist:Oe.rightWrist,l=r==="left"?Oe.leftShoulder:Oe.rightShoulder;return n.visibility[o]<t||n.visibility[l]<t?!1:n.landmarks[o].y>n.landmarks[l].y},nr=(e,r={},t=ct())=>{const n={...Ne,...r},{face:o,leftHand:l,rightHand:u,pose:s}=e;t.facePresent=o!==null,t.leftHandPresent=l!==null,t.rightHandPresent=u!==null,t.posePresent=s!==null;const i=o==null?void 0:o.blendshapes;return t.smile=i?((i.mouthSmileLeft??0)+(i.mouthSmileRight??0))/2:0,t.mouthOpen=(i==null?void 0:i.jawOpen)??0,t.smiling=o!==null&&t.smile>=n.smile,t.mouthIsOpen=o!==null&&t.mouthOpen>=n.mouthOpen,t.leftHandRaised=we(e,"left",n.minVisibility),t.rightHandRaised=we(e,"right",n.minVisibility),t.leftPalmOpen=Pe(l,n.fingerExtension),t.rightPalmOpen=Pe(u,n.fingerExtension),t.smiling&&t.rightHandRaised&&t.rightPalmOpen?t.greeting="right":t.smiling&&t.leftHandRaised&&t.leftPalmOpen?t.greeting="left":t.greeting=null,t},sr={node:null,ready:!1,status:"loading",error:null},ut=a.createContext(null),lt=()=>a.useContext(ut)??sr,Qe=(e,r)=>r?"error":e?e.getStatus():"loading",or=({children:e,active:r=!0,onStatusChange:t,modelUrl:n,delegate:o,minFaceDetectionConfidence:l,minFacePresenceConfidence:u,minPoseDetectionConfidence:s,minPosePresenceConfidence:i,minHandLandmarksConfidence:c,outputFaceBlendshapes:T,targetFps:_,hands:E,analysisMaxDimension:S,holdMs:g,predictMs:A})=>{const R=a.useMemo(()=>{const y={};return n!==void 0&&(y.modelUrl=n),o!==void 0&&(y.delegate=o),l!==void 0&&(y.minFaceDetectionConfidence=l),u!==void 0&&(y.minFacePresenceConfidence=u),s!==void 0&&(y.minPoseDetectionConfidence=s),i!==void 0&&(y.minPosePresenceConfidence=i),c!==void 0&&(y.minHandLandmarksConfidence=c),T!==void 0&&(y.outputFaceBlendshapes=T),_!==void 0&&(y.targetFps=_),Object.keys(y).length>0?y:void 0},[o,l,u,c,s,i,n,T,_]),{ready:f,node:h,error:H}=ee.useXRModel(O.XRModel.HOLISTIC_TRACKER,R,r);a.useEffect(()=>{h&&h.setOptions(O.resolveHolisticRuntimeOptions({hands:E,analysisMaxDimension:S,holdMs:g,predictMs:A}))},[h,E,S,g,A]);const[D,F]=a.useState(()=>Qe(h,H)),m=a.useRef(D),I=a.useRef(t);I.current=t,L.useFrame(()=>{var B;const y=Qe(h,H);y!==m.current&&(m.current=y,F(y),(B=I.current)==null||B.call(I,y,H??(h==null?void 0:h.getError())??null))});const C=a.useMemo(()=>({node:h,ready:f&&D==="ready",status:D,error:H??(h==null?void 0:h.getError())??null}),[h,f,D,H]);return M.jsx(ut.Provider,{value:C,children:e})},ar=()=>{const{camera:e}=L.useThree(),r=a.useRef(e);return r.current!==e&&(r.current=e),r},Ge=(e,r)=>{const t=a.useRef(null),{node:n,ready:o}=lt(),l=ar();return L.useFrame(()=>{const u=t.current;if(!u)return;const s=o&&n?e(n.getResult()):null;if(!s){u.visible=!1;return}u.visible=!0,u.position.copy(r(s,l.current))}),{groupRef:t,cameraRef:l,node:n}},dt=({children:e})=>{const r=a.useRef({x:0,y:0,z:0,visibility:0}),t=Ee.useXRMirrored(),{groupRef:n,cameraRef:o,node:l}=Ge(i=>{var c;return((c=i.face)==null?void 0:c.landmarks[4])??null},(i,c)=>O.feedToWorld(i,c)),u=a.useCallback((i,c)=>{var E;const T=(E=l==null?void 0:l.getResult().face)==null?void 0:E.landmarks;if(!T||T.length===0)return null;const _=ee.resolveFaceAnchorPoint(i,T,c,r.current,t);return _?{position:O.feedToWorld(_,o.current)}:null},[o,l,t]),s=a.useMemo(()=>({type:"face",resolveLandmark:u}),[u]);return M.jsx(ne.TrackerContext.Provider,{value:s,children:M.jsx("group",{ref:n,renderOrder:Re.RENDER_LAYERS.TRACKED,visible:!1,children:e})})};dt.displayName="HolisticTracker.Face";const ft=({hand:e,children:r})=>{const t=a.useCallback(i=>e==="left"?i.leftHand:i.rightHand,[e]),{groupRef:n,cameraRef:o,node:l}=Ge(i=>{var c;return((c=t(i))==null?void 0:c.landmarks[0])??null},O.trackerToWorld),u=a.useCallback(i=>{var _;const c=nt[i];if(c===void 0||!l)return null;const T=(_=t(l.getResult()))==null?void 0:_.landmarks[c];return T?{position:O.trackerToWorld(T,o.current)}:null},[o,l,t]),s=a.useMemo(()=>({type:"hand",resolveLandmark:u}),[u]);return M.jsx(ne.TrackerContext.Provider,{value:s,children:M.jsx("group",{ref:n,renderOrder:Re.RENDER_LAYERS.TRACKED,visible:!1,children:r})})};ft.displayName="HolisticTracker.Hand";const Tt=({children:e})=>{const{groupRef:r,cameraRef:t,node:n}=Ge(u=>{var s;return((s=u.pose)==null?void 0:s.landmarks[0])??null},O.trackerToWorld),o=a.useCallback(u=>{var T;const s=(T=n==null?void 0:n.getResult().pose)==null?void 0:T.landmarks;if(!s)return null;if(u==="body.neck"){const _=s[11],E=s[12];if(!_||!E)return null;const S={x:(_.x+E.x)/2,y:(_.y+E.y)/2,z:(_.z+E.z)/2};return{position:O.trackerToWorld(S,t.current)}}const i=p.BODY_LANDMARK_INDEX[u];if(i===void 0)return null;const c=s[i];return c?{position:O.trackerToWorld(c,t.current)}:null},[t,n]),l=a.useMemo(()=>({type:"body",resolveLandmark:o}),[o]);return M.jsx(ne.TrackerContext.Provider,{value:l,children:M.jsx("group",{ref:r,renderOrder:Re.RENDER_LAYERS.TRACKED,visible:!1,children:e})})};Tt.displayName="HolisticTracker.Body";const pe=or;pe.Face=dt;pe.Hand=ft;pe.Body=Tt;const ir=({type:e,active:r=!0,children:t})=>(ee.useXRModel(O.XRModel.BACKGROUND_SEGMENTATION,{type:e},r),a.useEffect(()=>{_e.SEGMENTATION_TYPES.includes(e)||console.warn(`[Segmentation] unsupported type "${e}"; valid values: ${_e.SEGMENTATION_TYPES.join(", ")}`)},[e]),M.jsx(M.Fragment,{children:t})),cr=800,ur=200,lr=()=>({armed:!1,armStart:null,holdStart:null,fired:!1}),dr=(e,{isTrigger:r,gesture:t,now:n,mode:o,debounceMs:l,holdMs:u})=>{if(e.fired)return null;if(o==="hold"){if(r&&t){if(e.holdStart===null&&(e.holdStart=n),n-e.holdStart>=u)return e.fired=!0,t}else e.holdStart=null;return null}return e.armed?r&&t?(e.fired=!0,t):null:(r?e.armStart=null:(e.armStart===null&&(e.armStart=n),n-e.armStart>=l&&(e.armed=!0)),null)};function fr({gestures:e,mode:r="arm",debounceMs:t=cr,holdMs:n=ur,onTrigger:o,enabled:l=!0}){const{ready:u,node:s}=ee.useXRModel(O.XRModel.GESTURE_TRACKER),i=a.useRef(o);a.useEffect(()=>{i.current=o},[o]);const c=a.useRef(new Set);a.useEffect(()=>{c.current=new Set(Array.isArray(e)?e:[e])},[e]);const T=a.useRef(lr());L.useFrame(()=>{if(!l||!u||!s)return;const _=s.gesture,E=!!(_&&c.current.has(_)),S=dr(T.current,{isTrigger:E,gesture:_,now:performance.now(),mode:r,debounceMs:t,holdMs:n});S&&i.current(S)})}const Tr=e=>(fr(e),null),_t=({source:e,face:r,canvas:t,outputSize:n,padding:o=.2})=>rt.drawNormalizedCrop({source:e,bounds:r.bounds,canvas:t,outputSize:n,padding:o}),ye=e=>({value:e,confidence:1}),ge=(e,r,t,n)=>({name:e,kind:"face",description:r,defaults:n,measure:o=>o?ye(t(o)):null}),Y=(e,r,t,n)=>({name:e,kind:"hand",description:r,defaults:n,measure:o=>o&&o.length>=21?ye(t(o)):null}),Te=(e,r,t,n)=>({name:e,kind:"body",description:r,defaults:n,measure:(o,l,u,s)=>o&&o.length>=33?ye(t(o,(s==null?void 0:s.mirrored)??!1)):null}),Fe=e=>()=>({tracker:new d.OscillationTracker(e),wasPresent:!1}),ve=(e,r,t)=>r===null?(e.wasPresent=!1,null):(e.wasPresent||e.tracker.reset(),e.wasPresent=!0,ye(e.tracker.push(r,t))),xe={enterThreshold:.99,exitThreshold:.3,cooldownMs:600},je={mouthOpen:ge("mouthOpen","Jaw open (blendshape jawOpen).",e=>p.getFaceActionValue(e,"mouthOpen")),smile:ge("smile","Mean of the two mouthSmile blendshapes.",e=>(Z.getFaceBlendshape(e,"mouthSmileLeft")+Z.getFaceBlendshape(e,"mouthSmileRight"))/2,{enterThreshold:.4}),blink:ge("blink","Both eyes closed (min of the eyeBlink blendshapes).",e=>p.getFaceActionValue(e,"eyeBlink"),{enterThreshold:.55,holdMs:50}),browRaise:ge("browRaise","Eyebrows raised (max of the brow-up blendshapes).",e=>p.getFaceActionValue(e,"browRaise"),{enterThreshold:.45}),headNod:{name:"headNod",kind:"face",description:"Pitch oscillation: three turning points of at least 0.12 rad within 1.5 s.",defaults:xe,createMemory:Fe({minAmplitude:.12,requiredReversals:3,windowMs:1500}),measure:(e,r,t)=>ve(r,e?e.pose.rotation.x:null,t)},headShake:{name:"headShake",kind:"face",description:"Yaw oscillation: three turning points of at least 0.15 rad within 1.5 s.",defaults:xe,createMemory:Fe({minAmplitude:.15,requiredReversals:3,windowMs:1500}),measure:(e,r,t)=>ve(r,e?e.pose.rotation.y:null,t)},pinch:Y("pinch","Thumb and index tips touching, relative to palm size.",d.measurePinch,{enterThreshold:.75,exitThreshold:.5}),grab:Y("grab","Fist: index to pinky curled toward the wrist.",d.measureGrab,{enterThreshold:.7,exitThreshold:.45}),openPalm:Y("openPalm","Index to pinky extended.",d.measureOpenPalm,{enterThreshold:.7,exitThreshold:.45}),handRaised:Y("handRaised","Wrist in the upper part of the frame (0 bottom edge, 1 top edge).",d.measureHandHeight,{enterThreshold:.7,exitThreshold:.6}),oneFinger:Y("oneFinger","Index extended, other fingers curled (pointing).",e=>d.measureFingerPattern(e,{fingers:[!0,!1,!1,!1]}),{enterThreshold:.65,exitThreshold:.45}),peaceSign:Y("peaceSign","Index and middle extended, ring and pinky curled.",e=>d.measureFingerPattern(e,{fingers:[!0,!0,!1,!1]}),{enterThreshold:.65,exitThreshold:.45}),threeFingers:Y("threeFingers","Index, middle and ring extended, pinky curled.",e=>d.measureFingerPattern(e,{fingers:[!0,!0,!0,!1]}),{enterThreshold:.65,exitThreshold:.45}),fourFingers:Y("fourFingers","Index to pinky extended, thumb tucked.",e=>d.measureFingerPattern(e,{fingers:[!0,!0,!0,!0],thumb:!1}),{enterThreshold:.65,exitThreshold:.45}),fist:Y("fist","All four fingers curled and the thumb tucked.",e=>d.measureFingerPattern(e,{fingers:[!1,!1,!1,!1],thumb:!1}),{enterThreshold:.65,exitThreshold:.45}),palm:Y("palm","All four fingers extended and the thumb out.",e=>d.measureFingerPattern(e,{fingers:[!0,!0,!0,!0],thumb:!0}),{enterThreshold:.65,exitThreshold:.45}),thumbUp:Y("thumbUp","Thumb out and pointing up, fingers curled.",e=>d.measureThumb(e,"up"),{enterThreshold:.6,exitThreshold:.4}),thumbDown:Y("thumbDown","Thumb out and pointing down, fingers curled.",e=>d.measureThumb(e,"down"),{enterThreshold:.6,exitThreshold:.4}),wave:{name:"wave",kind:"hand",description:"Wrist swinging side to side: three turning points of at least 0.08 within 1.2 s.",defaults:xe,createMemory:Fe({minAmplitude:.08,requiredReversals:3,windowMs:1200}),measure:(e,r,t)=>ve(r,e&&e.length>=21?e[0].x:null,t)},armRaisedLeft:Te("armRaisedLeft","Person's own left wrist above their left shoulder, in shoulder widths, on every feed.",(e,r)=>d.measureArmRaise(e,"left",r),{enterThreshold:.3,exitThreshold:.15}),armRaisedRight:Te("armRaisedRight","Person's own right wrist above their right shoulder, in shoulder widths, on every feed.",(e,r)=>d.measureArmRaise(e,"right",r),{enterThreshold:.3,exitThreshold:.15}),armRaised:Te("armRaised","Either wrist above its shoulder.",e=>Math.max(d.measureArmRaise(e,"left"),d.measureArmRaise(e,"right")),{enterThreshold:.3,exitThreshold:.15}),bothArmsRaised:Te("bothArmsRaised","Both wrists above their shoulders.",e=>Math.min(d.measureArmRaise(e,"left"),d.measureArmRaise(e,"right")),{enterThreshold:.3,exitThreshold:.15}),tPose:Te("tPose","Both arms level and outstretched.",d.measureTPose,{enterThreshold:.6,exitThreshold:.4,holdMs:150})},_r=Object.keys(je),Et=e=>typeof e=="string"?je[e]:e,Er=e=>e,hr={face:O.XRModel.FACE_TRACKER,hand:O.XRModel.HAND_TRACKER,body:O.XRModel.BODY_TRACKER},Ze=e=>X.snapshotGestureState(X.createGestureDetectorState(e)),ht=(e,r={})=>{var $;const t=a.useMemo(()=>Et(e),[e]),{active:n=!0,faceIndex:o=0,numFaces:l,hand:u,handIndex:s=0,bodyIndex:i=0,bodyId:c,subject:T,numBodies:_,targetFps:E,onBegin:S,onEnd:g,onChange:A,...R}=r,f=hr[t.kind],h=Math.max(l??o+1,o+1),H=a.useMemo(()=>{const P={};return t.kind==="face"&&(P.numFaces=h),E!==void 0&&E>0&&(P.targetFps=E),Object.keys(P).length>0?P:void 0},[t.kind,h,E]),{node:D,ready:F}=ee.useXRModel(f,H,n),m=a.useId(),I=t.kind==="body"?he.bodySubjectCount({bodyId:c,subject:T,numBodies:_}):0;a.useEffect(()=>{var P;if(!(!D||I===0))return(P=D.requestBodies)==null?void 0:P.call(D,m,I)},[D,m,I]);const C=a.useRef(O.EMPTY_SUBJECT_MEMORY),{camera:y}=L.useThree();a.useEffect(()=>{!D||t.kind!=="face"||D.setCamera(y,o)},[y,t.kind,o,D]);const B=a.useMemo(()=>X.resolveGestureDetectorOptions(R,X.resolveGestureDetectorOptions(t.defaults)),[t,R.enterThreshold,R.exitThreshold,R.holdMs,R.cooldownMs,R.minConfidence,R.lostGraceMs]),j=a.useRef(X.createGestureDetectorState(t.name)),b=a.useRef(($=t.createMemory)==null?void 0:$.call(t)),N=a.useRef(Z.createFaceInfoTarget()),[v,k]=a.useState(()=>Ze(t.name)),V=a.useRef(v);a.useEffect(()=>{var w;j.current=X.createGestureDetectorState(t.name),b.current=(w=t.createMemory)==null?void 0:w.call(t);const P=Ze(t.name);V.current=P,k(P)},[t]);const q=a.useRef({onBegin:S,onEnd:g,onChange:A});q.current={onBegin:S,onEnd:g,onChange:A};const J=Ee.useXRMirrored(),z=a.useRef({mirrored:J});z.current.mirrored=J;const U=a.useRef({faceIndex:o,hand:u,handIndex:s,bodyIndex:i,bodyId:c,subject:T,active:n});return U.current={faceIndex:o,hand:u,handIndex:s,bodyIndex:i,bodyId:c,subject:T,active:n},L.useFrame(()=>{var ce,ue;const P=performance.now(),w=U.current;let oe=null;if(w.active&&F&&D){let re;if(t.kind==="face")re=Z.getFaceInfo(D,w.faceIndex,N.current);else if(t.kind==="hand")re=(ce=st(D,w.hand,w.handIndex))==null?void 0:ce.coordinates;else{const Xe=D;let Le=w.bodyIndex;if(w.bodyId!==void 0||w.subject){const Ve=he.resolveBody(Xe,w,C.current);C.current=Ve.memory,Le=((ue=Ve.body)==null?void 0:ue.index)??null}re=Le===null?void 0:Xe.getLandmarks2D(Le)}oe=t.measure(re,b.current,P,z.current)}const ae=X.stepGestureDetector(j.current,oe,P,B);if(X.gestureStatesEqual(V.current,ae))return;const G=X.snapshotGestureState(ae);V.current=G,k(G);const{onBegin:ie,onEnd:W,onChange:te}=q.current;G.justBegan&&(ie==null||ie(G)),G.justEnded&&(W==null||W(G)),te==null||te(G)}),v},Rr=({gesture:e,...r})=>(ht(e,r),null),et=new WeakMap,Sr=(e,r)=>{const{visibility:t,mirrored:n,aspect:o,shapeLimits:l,view:u}=r;if(l||u)return d.createBodyMoveFrame(e,{mirrored:n,visibility:t,aspect:o,limits:l,view:u});const s=et.get(e);if(s&&s.mirrored===n&&s.aspect===o)return s;const i=d.createBodyMoveFrame(e,{mirrored:n,visibility:t,aspect:o});return et.set(e,i),i},Ar=e=>{if(!e)return;const r={};let t=!1;for(const n of Object.keys(e))n in Se.BODY_SHAPE_LIMITS&&e[n]!==void 0&&(r[n]=e[n],t=!0);return t?r:void 0},Rt=e=>{const{pose:r,move:t,bodyIndex:n=0,bodyId:o,subject:l,numBodies:u,active:s=!0,targetFps:i,limits:c,view:T,onBegin:_,onEnd:E,onChange:S,...g}=e,A=t!==void 0?{move:t}:{pose:r},R=t!==void 0?`move:${typeof t=="string"?t:t.name}`:`pose:${kt.specKey(r)}`,f=a.useMemo(()=>i!==void 0&&i>0?{targetFps:i}:void 0,[i]),{node:h,ready:H,index:D}=he.useBodySubject({bodyIndex:n,bodyId:o,subject:l,numBodies:u,active:s,acquireOptions:f}),F=Ee.useXRMirrored(),m=Ee.useXRFeedAspect(),I=JSON.stringify(c??null),C=a.useMemo(()=>Ar(c),[I]),y=JSON.stringify(T??null),B=a.useMemo(()=>T,[y]),j=JSON.stringify(g)+I,b={...g,limits:c},N=a.useRef(null),v=a.useRef("");(N.current===null||v.current!==R)&&(N.current=d.createBodyTrigger(A,b),v.current=R),t!==void 0?N.current.move=d.resolveBodyMove(t):N.current.pose=r;const[k,V]=a.useState(()=>d.snapshotBodyTriggerState(N.current)),q=a.useRef(k);a.useEffect(()=>{const $=d.snapshotBodyTriggerState(N.current);q.current=$,V($)},[R]),a.useEffect(()=>{N.current&&d.setBodyTriggerOptions(N.current,A,b)},[j]);const J=a.useRef({onBegin:_,onEnd:E,onChange:S});J.current={onBegin:_,onEnd:E,onChange:S};const z=a.useRef(null),U=a.useRef(null);return L.useFrame(()=>{var re;const $=N.current;if(!$)return;const P=performance.now();let w=null,oe=!0;const ae=(s&&H&&h?D():null)??-1,G=ae<0||h==null?void 0:h.getLandmarks2D(ae);G&&G.length>=Se.BODY_LANDMARK_COUNT?(oe=G!==z.current||!U.current,w=oe?Sr(G,{visibility:(re=h==null?void 0:h.getVisibility)==null?void 0:re.call(h,ae),mirrored:F,aspect:m,shapeLimits:C,view:B}):U.current,z.current=G,U.current=w):(z.current=null,U.current=null);const ie=d.stepBodyTrigger($,w,P,oe);if(d.bodyTriggerStatesEqual(q.current,ie))return;const W=d.snapshotBodyTriggerState(ie);q.current=W,V(W);const{onBegin:te,onEnd:ce,onChange:ue}=J.current;W.justBegan&&(te==null||te(W)),W.justEnded&&(ce==null||ce(W)),ue==null||ue(W)}),k},mr=e=>(Rt(e),null),Ce=1,Me=Object.freeze({version:Ce,orientation:0,mirrored:"auto",scale:1,offset:Object.freeze({x:0,y:0}),face:null,body:null,updatedAt:0}),St=(e={})=>Ae(Me,e,0),Or=[0,90,180,270],gr=e=>Math.min(4,Math.max(.25,e)),Ae=(e,r,t=Date.now())=>({version:Ce,orientation:r.orientation!==void 0&&Or.includes(r.orientation)?r.orientation:e.orientation,mirrored:r.mirrored===!0||r.mirrored===!1||r.mirrored==="auto"?r.mirrored:e.mirrored,scale:r.scale!==void 0&&Number.isFinite(r.scale)&&r.scale>0?gr(r.scale):e.scale,offset:r.offset&&Number.isFinite(r.offset.x)&&Number.isFinite(r.offset.y)?{x:r.offset.x,y:r.offset.y}:{...e.offset},face:r.face!==void 0?r.face:e.face,body:r.body!==void 0?r.body:e.body,updatedAt:t}),At=(e=Date.now())=>Ae(Me,{},e),Dr=e=>e.orientation===0&&e.mirrored==="auto"&&e.scale===1&&e.offset.x===0&&e.offset.y===0,mt=(e,r)=>e.mirrored==="auto"?!1:e.mirrored!==O.isMirroredSourceKind(r),Ot=(e,r,t,n={x:0,y:0})=>{let{x:o,y:l}=e;switch(r.orientation){case 90:[o,l]=[1-l,o];break;case 180:[o,l]=[1-o,1-l];break;case 270:[o,l]=[l,1-o];break}return mt(r,t)&&(o=1-o),o=.5+(o-.5)*r.scale+r.offset.x,l=.5+(l-.5)*r.scale+r.offset.y,n.x=o,n.y=l,e.z!==void 0&&(n.z=e.z),n},De=(e,r)=>e&&r?Math.hypot(e.x-r.x,e.y-r.y):null,gt=Object.freeze({leftTemple:454,rightTemple:234,leftEyeOuter:263,rightEyeOuter:33}),Ye=(e,r=Date.now())=>{if(!e||e.length<468)return null;const{leftTemple:t,rightTemple:n,leftEyeOuter:o,rightEyeOuter:l}=gt,u=De(e[t],e[n]),s=De(e[o],e[l]);return!u||!s?null:{faceWidth:u,eyeDistance:s,capturedAt:r}},Dt=Object.freeze({leftShoulder:11,rightShoulder:12,leftHip:23,rightHip:24}),Ke=(e,r=Date.now())=>{if(!e||e.length<33)return null;const{leftShoulder:t,rightShoulder:n,leftHip:o,rightHip:l}=Dt,u=De(e[t],e[n]),s=De(e[o],e[l]),i=e[t],c=e[n],T=e[o],_=e[l];if(!u||!s||!i||!c||!T||!_)return null;const E=Math.hypot((i.x+c.x)/2-(T.x+_.x)/2,(i.y+c.y)/2-(T.y+_.y)/2);return{shoulderWidth:u,hipWidth:s,torsoLength:E,capturedAt:r}},It=(e,r)=>{const t=r.face,n=Ye(e,0);return!t||!n?null:t.faceWidth>0&&n.faceWidth>0?n.faceWidth/t.faceWidth:t.eyeDistance>0&&n.eyeDistance>0?n.eyeDistance/t.eyeDistance:null},Nt=(e,r)=>{const t=r.body,n=Ke(e,0);return!t||!n||t.shoulderWidth<=0?null:n.shoulderWidth/t.shoulderWidth},me="vincentt.xr.calibration",We=()=>{try{return typeof localStorage<"u"?localStorage:null}catch{return null}},pt=(e=me,r=We())=>{if(!r)return null;try{const t=r.getItem(e);if(!t)return null;const n=JSON.parse(t);return!n||typeof n!="object"||n.version!==Ce?null:Ae(Me,{orientation:n.orientation,mirrored:n.mirrored,scale:n.scale,offset:n.offset,face:n.face??null,body:n.body??null},typeof n.updatedAt=="number"?n.updatedAt:0)}catch{return null}},yt=(e,r=me,t=We())=>{if(!t)return!1;try{return t.setItem(r,JSON.stringify(e)),!0}catch{return!1}},Ct=(e=me,r=We())=>{if(r)try{r.removeItem(e)}catch{}},Ir=(e={})=>{const{storageKey:r=me,persist:t=!0}=e,n=e.storage===void 0?void 0:e.storage,o=a.useRef(e.initial),{session:l}=O.useXRContext(),u=a.useSyncExternalStore(f=>l.store.subscribe(f),()=>l.store.getSnapshot().sourceKind,()=>{}),[s,i]=a.useState(()=>St(o.current)),[c,T]=a.useState(!t),_=a.useRef(s);_.current=s,a.useEffect(()=>{if(!t){T(!0);return}const f=pt(r,n);f&&(_.current=f,i(f)),T(!0)},[t,r,n]);const E=a.useCallback(f=>(_.current=f,i(f),t&&yt(f,r,n),f),[t,r,n]),S=a.useCallback(f=>E(Ae(_.current,f)),[E]),g=a.useCallback(()=>{const f=At();return _.current=f,i(f),t&&Ct(r,n),f},[t,r,n]),A=a.useCallback(f=>{const h=Ye(f);return h?(S({face:h}),!0):!1},[S]),R=a.useCallback(f=>{const h=Ke(f);return h?(S({body:h}),!0):!1},[S]);return a.useMemo(()=>({calibration:s,hydrated:c,update:S,reset:g,calibrateFace:A,calibrateBody:R,applyToFeedPoint:(f,h)=>Ot(f,s,u,h),faceDistance:f=>It(f,s),bodyScale:f=>Nt(f,s),sourceKind:u}),[s,c,S,g,A,R,u])},Nr=(e,r)=>r&&!e?"begin":!r&&e?"end":r?"stay":"none",pr={face:null,faces:[],faceCount:0,detected:!1,justDetected:!1,justLost:!1,phase:"none"},yr=({faceIndex:e=0,numFaces:r,...t}={})=>{const n=Number.isFinite(e)?Math.max(0,Math.round(e)):0,o=Ie.useFaceInfos({...t,numFaces:Math.max(r??n+1,n+1)}),l=a.useRef([]),u=a.useRef(n),s=a.useRef({detected:!1,faceIndex:n}),[i,c]=a.useState(pr),T=a.useRef(i);return a.useEffect(()=>{l.current=o,u.current=n},[o,n]),L.useFrame(()=>{const _=l.current,E=u.current,S=_[E]??null,g=!!S,A=s.current.faceIndex===E&&s.current.detected,R=Nr(A,g);s.current={detected:g,faceIndex:E};const f={face:S,faces:_,faceCount:_.length,detected:g,justDetected:R==="begin",justLost:R==="end",phase:R},h=T.current;h.face===f.face&&h.faces===f.faces&&h.faceCount===f.faceCount&&h.detected===f.detected&&h.justDetected===f.justDetected&&h.justLost===f.justLost&&h.phase===f.phase||(T.current=f,c(f))}),i},tt=e=>({action:e,active:!1,value:0,justStarted:!1,justEnded:!1,phase:"none"}),Cr=(e,r,t={})=>{const n=a.useRef(p.createFaceActionStepState(r)),o=a.useRef(null),l=a.useRef(r),u=a.useRef({}),[s,i]=a.useState(()=>tt(r)),c=a.useRef(s);return a.useEffect(()=>{o.current=e,u.current=t},[e,t]),a.useEffect(()=>{l.current=r,n.current=p.createFaceActionStepState(r);const T=tt(r);c.current=T,i(T)},[r]),L.useFrame(({clock:T})=>{const _=o.current,E=l.current,S=u.current,g=_?p.getFaceActionValue(_,E,S):0,A=p.stepFaceActionState(n.current,g,T.elapsedTime*1e3,!!_,p.resolveFaceActionOptions(E,S)),R=c.current;if(R.action===A.action&&R.active===A.active&&R.value===A.value&&R.justStarted===A.justStarted&&R.justEnded===A.justEnded&&R.phase===A.phase)return;const f={action:A.action,active:A.active,value:A.value,justStarted:A.justStarted,justEnded:A.justEnded,phase:A.phase};c.current=f,i(f)}),s},Mr=["angry","disgust","fear","happy","neutral","sad","surprise","unknown"],le=["angry","disgust","fear","happy","neutral","sad","surprise"],Lr=(e,r=.55)=>{let t=-1/0;for(let c=0;c<le.length;c+=1)t=Math.max(t,Number(e[c])||0);const n=new Array(le.length);let o=0;for(let c=0;c<le.length;c+=1){const T=Math.exp((Number(e[c])||0)-t);n[c]=T,o+=T}const l=Object.fromEntries(le.map(c=>[c,0]));let u="unknown",s=0;for(let c=0;c<le.length;c+=1){const T=o?n[c]/o:0,_=le[c];l[_]=T,T>s&&(u=_,s=T)}const i=Number.isFinite(r)?Math.min(1,Math.max(0,r)):.55;return{expression:s>=i?u:"unknown",confidence:s,scores:l}},br=e=>{const r=e.width*e.height,t=new Float32Array(r*3);for(let n=0,o=0;n<r;n+=1,o+=4)t[n]=e.data[o]/127.5-1,t[r+n]=e.data[o+1]/127.5-1,t[r*2+n]=e.data[o+2]/127.5-1;return t},Mt="https://huggingface.co/opencv/facial_expression_recognition/resolve/main/facial_expression_recognition_mobilefacenet_2022july_int8.onnx",Hr=e=>`https://cdn.jsdelivr.net/npm/onnxruntime-web@${e.env.versions.web}/dist/`,Be=new Map,Fr=e=>{let r=Be.get(e);return r||(r=Promise.all([import("onnxruntime-web/wasm"),O.fetchAndVerify(e)]).then(([t,n])=>(t.env.wasm.wasmPaths=Hr(t),t.InferenceSession.create(n,{executionProviders:["wasm"]}))).catch(t=>{throw Be.delete(e),t}),Be.set(e,r)),r},vr=(e,{active:r=!0,targetFps:t=5,minConfidence:n=.55,modelUrl:o=Mt}={})=>{const{session:l}=O.useXRContext(),u=a.useRef(null),s=a.useRef(null),i=a.useRef(!1),c=a.useRef(-1/0),T=a.useRef(!0),[_,E]=a.useState({status:"idle",result:null,error:null});return a.useEffect(()=>{const S=document.createElement("canvas");return u.current=S,s.current=S.getContext("2d",{willReadFrequently:!0}),T.current=!0,()=>{T.current=!1,u.current=null,s.current=null}},[]),L.useFrame(({clock:S})=>{if(!r||!e||i.current||_.status==="error")return;const g=Number.isFinite(t)&&t>0?t:5,A=S.elapsedTime*1e3;if(A-c.current<1e3/g)return;const R=l.getInputFrame(),f=u.current,h=s.current;if(!R||!f||!h||!_t({source:R,face:e,canvas:f,outputSize:{width:112,height:112}}))return;c.current=A,i.current=!0,_.status==="idle"&&E({status:"loading",result:null,error:null});const H=br(h.getImageData(0,0,112,112));Promise.all([import("onnxruntime-web/wasm"),Fr(o)]).then(async([D,F])=>{const m=await F.run({[F.inputNames[0]]:new D.Tensor("float32",H,[1,3,112,112])}),I=Lr(m[F.outputNames[0]].data,n);T.current&&E({status:"ready",result:I,error:null})}).catch(D=>{T.current&&E({status:"error",result:null,error:D instanceof Error?D:new Error(String(D))})}).finally(()=>{i.current=!1})}),_};exports.FaceMesh=ne.FaceMesh;exports.FaceTracker=ne.FaceTracker;exports.BODY_JOINT_INDEX=O.BODY_JOINT_INDEX;exports.BODY_JOINT_NAMES=O.BODY_JOINT_NAMES;exports.DEFAULT_HOLISTIC_ANALYSIS_MAX_DIMENSION=O.DEFAULT_HOLISTIC_ANALYSIS_MAX_DIMENSION;exports.DEFAULT_HOLISTIC_HOLD_MS=O.DEFAULT_HOLISTIC_HOLD_MS;exports.DEFAULT_HOLISTIC_MODEL_URL=O.DEFAULT_HOLISTIC_MODEL_URL;exports.DEFAULT_HOLISTIC_PREDICT_MS=O.DEFAULT_HOLISTIC_PREDICT_MS;exports.DEFAULT_SUBJECT_POLICY=O.DEFAULT_SUBJECT_POLICY;exports.EMPTY_SUBJECT_MEMORY=O.EMPTY_SUBJECT_MEMORY;exports.HAND_JOINT_INDEX=O.HAND_JOINT_INDEX;exports.HAND_JOINT_NAMES=O.HAND_JOINT_NAMES;exports.HAND_POSE_DEFAULT_HOLD_MS=O.HAND_POSE_DEFAULT_HOLD_MS;exports.XR_MAX_SUBJECTS=O.XR_MAX_SUBJECTS;exports.associateSubjects=O.associateSubjects;exports.bodyCandidates=O.bodyCandidates;exports.clearSemanticMask=O.clearSemanticMask;exports.createSemanticMask=O.createSemanticMask;exports.faceCandidates=O.faceCandidates;exports.jointCandidates=O.jointCandidates;exports.normalizedTrackerPointToTrackerPoint=O.normalizedTrackerPointToTrackerPoint;exports.selectSubject=O.selectSubject;exports.trackerPointToNormalizedTrackerPoint=O.trackerPointToNormalizedTrackerPoint;exports.FACE_LANDMARK_INDICES=ee.FACE_LANDMARK_INDICES;exports.BODY_LANDMARK_INDEX=p.BODY_LANDMARK_INDEX;exports.BodyTracker=p.BodyTracker;exports.CANONICAL_SHOULDER_DISTANCE=p.CANONICAL_SHOULDER_DISTANCE;exports.CANONICAL_TORSO_FIT_DEFAULT_SMOOTHING=p.CANONICAL_TORSO_FIT_DEFAULT_SMOOTHING;exports.CANONICAL_TORSO_INDICES=p.CANONICAL_TORSO_INDICES;exports.CANONICAL_TORSO_LANDMARKS=p.CANONICAL_TORSO_LANDMARKS;exports.CANONICAL_TORSO_POINTS=p.CANONICAL_TORSO_POINTS;exports.CanonicalTorsoFrame=p.CanonicalTorsoFrame;exports.DEFAULT_FACE_ACTION_OPTIONS=p.DEFAULT_FACE_ACTION_OPTIONS;exports.FACE_ACTION_NAMES=p.FACE_ACTION_NAMES;exports.FACE_BLENDSHAPE_NAMES=p.FACE_BLENDSHAPE_NAMES;exports.SHOULDER_OCCLUDER_DEFAULT_OPACITY=p.SHOULDER_OCCLUDER_DEFAULT_OPACITY;exports.SHOULDER_OCCLUDER_V1_PATH=p.SHOULDER_OCCLUDER_V1_PATH;exports.ShoulderOccluder=p.ShoulderOccluder;exports.bodyLandmarkIndex=p.bodyLandmarkIndex;exports.getFaceActionValue=p.getFaceActionValue;exports.getStrongestFaceAction=p.getStrongestFaceAction;exports.hasFaceAction=p.hasFaceAction;exports.shoulderOccluderUrl=p.shoulderOccluderUrl;exports.solveShoulderPose=p.solveShoulderPose;exports.useCanonicalTorsoFit=p.useCanonicalTorsoFit;exports.useIrisTracking=p.useIrisTracking;exports.BODY_DEPTH_GLSL=d.BODY_DEPTH_GLSL;exports.BODY_MOVES=d.BODY_MOVES;exports.BODY_MOVE_LIMITS=d.BODY_MOVE_LIMITS;exports.BODY_MOVE_NAMES=d.BODY_MOVE_NAMES;exports.BODY_MOVE_VIEW_LIMITS=d.BODY_MOVE_VIEW_LIMITS;exports.BODY_RIG_BONES=d.BODY_RIG_BONES;exports.BODY_RIG_DEFAULT_SMOOTHING=d.BODY_RIG_DEFAULT_SMOOTHING;exports.BODY_RIG_END_MARGIN=d.BODY_RIG_END_MARGIN;exports.BODY_RIG_FRAME_PRIORITY=d.BODY_RIG_FRAME_PRIORITY;exports.BODY_RIG_HIP_MARGIN=d.BODY_RIG_HIP_MARGIN;exports.BODY_RIG_HOLD_MS=d.BODY_RIG_HOLD_MS;exports.BODY_RIG_MIXAMO_NAMES=d.BODY_RIG_MIXAMO_NAMES;exports.BODY_RIG_MODEL_MESH=d.BODY_RIG_MODEL_MESH;exports.BODY_RIG_REQUIRED_BONES=d.BODY_RIG_REQUIRED_BONES;exports.BodyAttachment=d.BodyAttachment;exports.BodyRig=d.BodyRig;exports.BodyRigContext=d.BodyRigContext;exports.FOREARM_OCCLUDER_FLARE=d.FOREARM_OCCLUDER_FLARE;exports.FOREARM_OCCLUDER_LENGTH=d.FOREARM_OCCLUDER_LENGTH;exports.FOREARM_OCCLUDER_OVERLAP=d.FOREARM_OCCLUDER_OVERLAP;exports.ForearmOccluder=d.ForearmOccluder;exports.HAND_NAIL_FINGERS=d.HAND_NAIL_FINGERS;exports.HAND_NAIL_FINISHES=d.HAND_NAIL_FINISHES;exports.HAND_NAIL_RENDER_ORDER=d.HAND_NAIL_RENDER_ORDER;exports.HAND_NAIL_SHADES=d.HAND_NAIL_SHADES;exports.HAND_NAIL_SHAPES=d.HAND_NAIL_SHAPES;exports.HAND_OCCLUDER_RENDER_ORDER=d.HAND_OCCLUDER_RENDER_ORDER;exports.HAND_TATTOO_DEFAULT_SIZE=d.HAND_TATTOO_DEFAULT_SIZE;exports.HAND_TATTOO_RENDER_ORDER=d.HAND_TATTOO_RENDER_ORDER;exports.HAND_TOUCH_DEFAULTS=d.HAND_TOUCH_DEFAULTS;exports.HAND_TOUCH_DEPTH=d.HAND_TOUCH_DEPTH;exports.HAND_TOUCH_POINTER_RADIUS=d.HAND_TOUCH_POINTER_RADIUS;exports.HAND_TOUCH_TIPS=d.HAND_TOUCH_TIPS;exports.HandNails=d.HandNails;exports.HandOccluder=d.HandOccluder;exports.HandRig=d.HandRig;exports.HandRigHandContext=d.HandRigHandContext;exports.HandTattoo=d.HandTattoo;exports.HandTouch=d.HandTouch;exports.TOUCH_WORLD_DEFAULTS=d.TOUCH_WORLD_DEFAULTS;exports.WRIST_DEPTH_OF_WIDTH=d.WRIST_DEPTH_OF_WIDTH;exports.WRIST_WIDTH_OF_PALM=d.WRIST_WIDTH_OF_PALM;exports.WristAttachment=d.WristAttachment;exports.createForearmGeometry=d.createForearmGeometry;exports.defineBodyMove=d.defineBodyMove;exports.resolveBodyMove=d.resolveBodyMove;exports.useFaceResults=d.useFaceResults;exports.useHandTouch=d.useHandTouch;exports.wristSizeOf=d.wristSizeOf;exports.SEGMENTATION_TYPES=_e.SEGMENTATION_TYPES;exports.SEMANTIC_SEGMENTATION_PRESETS=_e.SEMANTIC_SEGMENTATION_PRESETS;exports.HAND_RIG_REQUIRED_JOINTS=Se.HAND_RIG_REQUIRED_JOINTS;exports.handPoseToScene=Se.handPoseToScene;exports.DEFAULT_GESTURE_SETTINGS=K.DEFAULT_GESTURE_SETTINGS;exports.DEFAULT_HOLISTIC_TRACKER_SETTINGS=K.DEFAULT_HOLISTIC_TRACKER_SETTINGS;exports.GESTURE_SETTINGS_FIELDS=K.GESTURE_SETTINGS_FIELDS;exports.HOLISTIC_HANDS_OPTIONS=K.HOLISTIC_HANDS_OPTIONS;exports.HOLISTIC_TRACKER_SETTINGS_FIELDS=K.HOLISTIC_TRACKER_SETTINGS_FIELDS;exports.patchGestureSettings=K.patchGestureSettings;exports.patchHolisticTrackerSettings=K.patchHolisticTrackerSettings;exports.resolveGestureSettings=K.resolveGestureSettings;exports.resolveHolisticTrackerSettings=K.resolveHolisticTrackerSettings;exports.toHolisticTrackerProps=K.toHolisticTrackerProps;exports.useBodyIds=he.useBodyIds;exports.useBodySubject=he.useBodySubject;exports.useBodyMaskTexture=rt.useBodyMaskTexture;exports.BODY_TARGETS=fe.BODY_TARGETS;exports.DEFAULT_TRACKING_ANCHOR=fe.DEFAULT_TRACKING_ANCHOR;exports.FACE_TARGETS=fe.FACE_TARGETS;exports.HAND_TARGETS=fe.HAND_TARGETS;exports.TrackingAnchor=fe.TrackingAnchor;exports.getTargetNamespace=fe.getTargetNamespace;exports.DEFAULT_GESTURE_DETECTOR_OPTIONS=X.DEFAULT_GESTURE_DETECTOR_OPTIONS;exports.resolveGestureDetectorOptions=X.resolveGestureDetectorOptions;exports.DEFAULT_FACE_EXPRESSION_THRESHOLD=Z.DEFAULT_FACE_EXPRESSION_THRESHOLD;exports.getFaceBlendshape=Z.getFaceBlendshape;exports.getFaceEyeDistance=Z.getFaceEyeDistance;exports.hasFaceExpression=Z.hasFaceExpression;exports.DEFAULT_POLICY_NUM_FACES=Ie.DEFAULT_POLICY_NUM_FACES;exports.useFaceInfo=Ie.useFaceInfo;exports.useFaceInfos=Ie.useFaceInfos;exports.IRIS_LANDMARKS=se.IRIS_LANDMARKS;exports.IRIS_LANDMARK_COUNT=se.IRIS_LANDMARK_COUNT;exports.PERSON_MASK_LABELS=se.PERSON_MASK_LABELS;exports.SegmentationOverlay=se.SegmentationOverlay;exports.useHairMask=se.useHairMask;exports.usePersonMask=se.usePersonMask;exports.useSemanticSegmentationMask=se.useSemanticSegmentationMask;exports.DEFAULT_SEGMENTATION_OVERLAY_SETTINGS=Ue.DEFAULT_SEGMENTATION_OVERLAY_SETTINGS;exports.patchSegmentationOverlaySettings=Ue.patchSegmentationOverlaySettings;exports.resolveSegmentationOverlaySettings=Ue.resolveSegmentationOverlaySettings;exports.BODY_CALIBRATION_LANDMARKS=Dt;exports.BODY_OCCLUDER_RENDER_ORDER=Yt;exports.BodyOccluder=Kt;exports.BodyTrigger=mr;exports.CALIBRATION_STORAGE_KEY=me;exports.CALIBRATION_VERSION=Ce;exports.DEFAULT_CALIBRATION=Me;exports.DEFAULT_FACE_ATTRIBUTE_EXPRESSION_MODEL_URL=Mt;exports.DEFAULT_HOLISTIC_SIGNAL_THRESHOLDS=Ne;exports.FACE_ATTRIBUTE_EXPRESSION_NAMES=Mr;exports.FACE_CALIBRATION_LANDMARKS=gt;exports.GESTURES=je;exports.GESTURE_NAMES=_r;exports.GestureListener=Rr;exports.GestureTracker=Gt;exports.GestureTrigger=Tr;exports.HAND_CUTOUT_TRIANGLES=ke;exports.HandAttachment=Xt;exports.HandCutout=$t;exports.HandTracker=wt;exports.HolisticTracker=pe;exports.SDK_MODEL_PATHS=ot;exports.Segmentation=ir;exports.Touchable=Zt;exports.applyCalibrationToFeedPoint=Ot;exports.clearCalibration=Ct;exports.createCalibration=St;exports.createHolisticSignals=ct;exports.defineGesture=Er;exports.drawFaceCrop=_t;exports.estimateBodyScale=Nt;exports.estimateFaceDistance=It;exports.getHolisticSignals=nr;exports.isHandRaised=we;exports.isIdentityCalibration=Dr;exports.isPalmOpen=Pe;exports.loadCalibration=pt;exports.measureBodyCalibration=Ke;exports.measureFaceCalibration=Ye;exports.resetCalibration=At;exports.resolveCalibrationMirror=mt;exports.resolveGestureDefinition=Et;exports.saveCalibration=yt;exports.sdkModelAsset=jt;exports.sdkModelUrl=at;exports.updateCalibration=Ae;exports.useBodyDepthTexture=Wt;exports.useBodyTrigger=Rt;exports.useFaceAction=Cr;exports.useFaceAttributeExpression=vr;exports.useFaceDetection=yr;exports.useGesture=ht;exports.useHolisticTracking=lt;exports.useXRCalibration=Ir;exports.writeHandCutout=it;
|