@vincentt-xr/sdk 2.0.0-alpha.8 → 2.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GROUNDING.md +4643 -170
- package/README.md +1 -0
- package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
- package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
- package/dist/DebuggerUI-7ngnJsBe.js +275 -0
- package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
- package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
- package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
- package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
- package/dist/FaceSurface-DmP9AEeC.js +27 -0
- package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
- package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
- package/dist/SkeletonUtils-C2r90MtN.js +21 -0
- package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
- package/dist/TextLabel-XE0rQSDn.cjs +2 -0
- package/dist/TextLabel-c9BCucOI.js +961 -0
- package/dist/assets/gltfLoader.d.ts +16 -0
- package/dist/assets/loaders.d.ts +16 -1
- package/dist/body-pose/index.d.ts +521 -0
- package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
- package/dist/body-trigger/frame.d.ts +88 -0
- package/dist/body-trigger/index.d.ts +6 -0
- package/dist/body-trigger/moves.d.ts +235 -0
- package/dist/body-trigger/trigger.d.ts +75 -0
- package/dist/calibration/calibration.d.ts +11 -6
- package/dist/canonicalFace-BHwyCx1c.js +9 -0
- package/dist/canonicalFace-C83I225R.cjs +1 -0
- package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
- package/dist/components/BodyInstruction/index.d.ts +69 -0
- package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
- package/dist/components/BodyTracker/index.d.ts +10 -2
- package/dist/components/BodyTrigger/index.d.ts +49 -0
- package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
- package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
- package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
- package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
- package/dist/components/FaceAtlas/constants.d.ts +8 -0
- package/dist/components/FaceAtlas/index.d.ts +7 -0
- package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
- package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
- package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
- package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
- package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
- package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
- package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
- package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
- package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
- package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
- package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
- package/dist/components/FaceCharacter/index.d.ts +18 -0
- package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
- package/dist/components/FaceInset/FaceInset.d.ts +68 -0
- package/dist/components/FaceInset/frame.d.ts +94 -0
- package/dist/components/FaceInset/index.d.ts +6 -0
- package/dist/components/FaceInset/material.d.ts +40 -0
- package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
- package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
- package/dist/components/FaceInstruction/index.d.ts +56 -0
- package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
- package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
- package/dist/components/FaceLiquify/debug.d.ts +37 -0
- package/dist/components/FaceLiquify/frame.d.ts +55 -0
- package/dist/components/FaceLiquify/index.d.ts +10 -0
- package/dist/components/FaceLiquify/material.d.ts +39 -0
- package/dist/components/FaceLiquify/pass.d.ts +49 -0
- package/dist/components/FaceLiquify/presence.d.ts +25 -0
- package/dist/components/FaceLiquify/presets.d.ts +82 -0
- package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
- package/dist/components/FaceLiquify/target.d.ts +85 -0
- package/dist/components/FaceLiquify/warp.d.ts +72 -0
- package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +5 -3
- package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +9 -0
- package/dist/components/FaceMesh/index.d.ts +1 -1
- package/dist/components/FaceRetouch/Background.d.ts +3 -1
- package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
- package/dist/components/FaceRetouch/renderState.d.ts +19 -0
- package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
- package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
- package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
- package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
- package/dist/components/FaceSwap/index.d.ts +13 -0
- package/dist/components/FaceSwap/settings.d.ts +300 -0
- package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
- package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
- package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
- package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
- package/dist/components/FaceWarp3D/index.d.ts +2 -3
- package/dist/components/Faceless/Faceless.d.ts +51 -0
- package/dist/components/Faceless/index.d.ts +2 -0
- package/dist/components/HairLock/HairLock.d.ts +39 -0
- package/dist/components/HairLock/index.d.ts +2 -0
- package/dist/components/HairLock/lockGeometry.d.ts +15 -0
- package/dist/components/HandCutout/index.d.ts +35 -0
- package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
- package/dist/components/HandInstruction/index.d.ts +74 -0
- package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
- package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
- package/dist/components/HandRig/HandAttachment.d.ts +34 -0
- package/dist/components/HandRig/HandOccluder.d.ts +55 -0
- package/dist/components/HandRig/HandTattoo.d.ts +61 -0
- package/dist/components/HandRig/WristAttachment.d.ts +34 -0
- package/dist/components/HandRig/index.d.ts +101 -0
- package/dist/components/HandRig/useArmMask.d.ts +29 -0
- package/dist/components/HandRig/wristSolve.d.ts +69 -0
- package/dist/components/HandTouch/HandTouch.d.ts +62 -0
- package/dist/components/HandTouch/Touchable.d.ts +36 -0
- package/dist/components/HandTouch/index.d.ts +2 -0
- package/dist/components/HeadBinding/index.d.ts +14 -0
- package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
- package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
- package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
- package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
- package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
- package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
- package/dist/components/HeadOccluder/index.d.ts +57 -3
- package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
- package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
- package/dist/components/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/LipEffect/LipEffect.d.ts +22 -2
- package/dist/components/LipEffect/LipEffectMaterial.d.ts +62 -10
- package/dist/components/LipEffect/LipEffects.d.ts +5 -2
- package/dist/components/LipEffect/defaults.d.ts +21 -2
- package/dist/components/LipEffect/index.d.ts +1 -1
- package/dist/components/LipEffect/lipShading.d.ts +73 -0
- package/dist/components/LipEffect/settings.d.ts +117 -13
- package/dist/components/LipEffect/shader.d.ts +39 -0
- package/dist/components/LipEffect/types.d.ts +82 -10
- package/dist/components/LipEffect/useLipDesignTextures.d.ts +6 -0
- package/dist/components/LipEffect/uvGuide.d.ts +31 -16
- package/dist/components/Makeup/Blush.d.ts +18 -0
- package/dist/components/Makeup/Brows.d.ts +20 -0
- package/dist/components/Makeup/Contour.d.ts +17 -0
- package/dist/components/Makeup/Eyeliner.d.ts +20 -0
- package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
- package/dist/components/Makeup/Highlighter.d.ts +18 -0
- package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
- package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
- package/dist/components/Makeup/constants.d.ts +44 -0
- package/dist/components/Makeup/design.d.ts +106 -0
- package/dist/components/Makeup/designSamples.d.ts +42 -0
- package/dist/components/Makeup/eyes.d.ts +114 -0
- package/dist/components/Makeup/fields.d.ts +10 -0
- package/dist/components/Makeup/geometry.d.ts +106 -0
- package/dist/components/Makeup/index.d.ts +26 -0
- package/dist/components/Makeup/looks.d.ts +28 -0
- package/dist/components/Makeup/material.d.ts +239 -0
- package/dist/components/Makeup/settings.d.ts +54 -0
- package/dist/components/Makeup/shades.d.ts +143 -0
- package/dist/components/Makeup/shapes.d.ts +27 -0
- package/dist/components/Makeup/skinTone.d.ts +135 -0
- package/dist/components/Makeup/types.d.ts +110 -0
- package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
- package/dist/components/Necklace/Necklace.d.ts +44 -0
- package/dist/components/Necklace/index.d.ts +1 -0
- package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
- package/dist/components/ParticleEmitter/index.d.ts +1 -0
- package/dist/components/ShoulderOccluder/index.d.ts +43 -0
- package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
- package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
- package/dist/components/SpringSwing/index.d.ts +1 -0
- package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/config/index.d.ts +0 -1
- package/dist/context-DTxSQvp4.js +13 -0
- package/dist/context-hA0Rb2Xa.cjs +1 -0
- package/dist/contexts-BH7PdKFS.cjs +1 -0
- package/dist/contexts-jak8-tND.js +667 -0
- package/dist/coordinates/index.d.ts +2 -0
- package/dist/coordinates/side.d.ts +40 -0
- package/dist/debug-ui/default-setting.cjs +2 -2
- package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
- package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
- package/dist/debug-ui/index.d.ts +4 -3
- package/dist/debug-ui/media-source/index.d.ts +1 -1
- package/dist/debug-ui/media-source/session.d.ts +30 -2
- package/dist/debug-ui/media-source.cjs +1 -1
- package/dist/debug-ui/media-source.js +1 -1
- package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
- package/dist/debug-ui/product-hotspots/index.d.ts +3 -2
- package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
- package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
- package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
- package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
- package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
- package/dist/debug-ui/settings-panel/index.d.ts +6 -1
- package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
- package/dist/debug-ui/xr-diagnostics/index.d.ts +3 -2
- package/dist/debug-ui.cjs +3 -3
- package/dist/debug-ui.js +2250 -2472
- package/dist/entries/all.d.ts +3 -1
- package/dist/entries/core.d.ts +3 -2
- package/dist/entries/face-effects.d.ts +114 -8
- package/dist/entries/instructions.d.ts +48 -0
- package/dist/entries/internal.d.ts +2 -1
- package/dist/entries/low-level.d.ts +28 -1
- package/dist/entries/particles.d.ts +11 -0
- package/dist/entries/tracking.d.ts +37 -2
- package/dist/face-atlas/attributes.d.ts +30 -0
- package/dist/face-atlas/eyes.d.ts +272 -0
- package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
- package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
- package/dist/face-atlas/glsl/common.d.ts +55 -0
- package/dist/face-atlas/glsl/design.d.ts +49 -0
- package/dist/face-atlas/glsl/eyes.d.ts +73 -0
- package/dist/face-atlas/glsl/finish.d.ts +24 -0
- package/dist/face-atlas/glsl/format.d.ts +4 -0
- package/dist/face-atlas/glsl/index.d.ts +59 -0
- package/dist/face-atlas/glsl/shading.d.ts +15 -0
- package/dist/face-atlas/glsl/shapes.d.ts +66 -0
- package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
- package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
- package/dist/face-atlas/guide.d.ts +51 -0
- package/dist/face-atlas/index.d.ts +25 -0
- package/dist/face-atlas/lead.d.ts +117 -0
- package/dist/face-atlas/madeUpCamera.d.ts +125 -0
- package/dist/face-atlas/masks.d.ts +53 -0
- package/dist/face-atlas/obj.d.ts +69 -0
- package/dist/face-atlas/polylines.d.ts +63 -0
- package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
- package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
- package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
- package/dist/face-atlas/probe/constants.d.ts +137 -0
- package/dist/face-atlas/probe/glsl.d.ts +43 -0
- package/dist/face-atlas/probe/lightFit.d.ts +108 -0
- package/dist/face-atlas/probe/schedule.d.ts +44 -0
- package/dist/face-atlas/probe/selfTest.d.ts +87 -0
- package/dist/face-atlas/probe/stats.d.ts +143 -0
- package/dist/face-atlas/probe/targets.d.ts +70 -0
- package/dist/face-atlas/probe/unwrap.d.ts +76 -0
- package/dist/face-atlas/quality.d.ts +28 -0
- package/dist/face-atlas/regions.d.ts +31 -0
- package/dist/face-atlas/registry.d.ts +252 -0
- package/dist/face-atlas/renderState.d.ts +86 -0
- package/dist/face-atlas/selfOcclusion.d.ts +62 -0
- package/dist/face-atlas/shading.d.ts +406 -0
- package/dist/face-atlas/shapes.d.ts +86 -0
- package/dist/face-atlas/sides.d.ts +41 -0
- package/dist/face-atlas/skinMask.d.ts +35 -0
- package/dist/face-atlas/surface.d.ts +155 -0
- package/dist/face-atlas/topology.d.ts +44 -0
- package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
- package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
- package/dist/face-character/bindFaceModel.d.ts +106 -0
- package/dist/face-character/canonicalFace.d.ts +17 -0
- package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
- package/dist/face-character/canonicalFacePositions.d.ts +7 -0
- package/dist/face-character/driveFaceModel.d.ts +57 -0
- package/dist/face-character/expressionOutputs.d.ts +45 -0
- package/dist/face-character/faceExpressions.d.ts +104 -0
- package/dist/face-character/faceImageLandmarker.d.ts +93 -0
- package/dist/face-character/faceMeshBinding.d.ts +62 -0
- package/dist/face-character/faceMorph.d.ts +77 -0
- package/dist/face-character/faceMorphs.d.ts +46 -0
- package/dist/face-character/facePhoto.d.ts +138 -0
- package/dist/face-character/facePiercings.d.ts +116 -0
- package/dist/face-character/facePin.d.ts +131 -0
- package/dist/face-character/faceReprojection.d.ts +273 -0
- package/dist/face-character/faceReprojector.d.ts +171 -0
- package/dist/face-character/faceRig.d.ts +176 -0
- package/dist/face-character/faceSwapPresence.d.ts +85 -0
- package/dist/face-character/faceTexture.d.ts +169 -0
- package/dist/face-character/faceTextureBaker.d.ts +86 -0
- package/dist/face-character/faceTextureGuide.d.ts +106 -0
- package/dist/face-character/faceTextureStats.d.ts +298 -0
- package/dist/face-character/faceTransfer.d.ts +396 -0
- package/dist/face-character/faceTransferGeometry.d.ts +109 -0
- package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
- package/dist/face-character/faceWarp3D.d.ts +101 -0
- package/dist/face-character/faceless.d.ts +79 -0
- package/dist/face-character/featureWarp.d.ts +28 -0
- package/dist/face-character/liveFaceRegistry.d.ts +370 -0
- package/dist/face-character/liveValue.d.ts +12 -0
- package/dist/face-character/memo.d.ts +15 -0
- package/dist/face-effects.cjs +2252 -83
- package/dist/face-effects.js +14234 -1231
- package/dist/face-expression/index.d.ts +182 -0
- package/dist/face-info/landmarks.d.ts +17 -3
- package/dist/face-info/types.d.ts +20 -3
- package/dist/gestures/definitions.d.ts +15 -2
- package/dist/gestures/index.d.ts +1 -1
- package/dist/gestures/measures.d.ts +21 -8
- package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
- package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
- package/dist/hand/armFit.d.ts +46 -0
- package/dist/hand/armMask.d.ts +178 -0
- package/dist/hand/handCutout.d.ts +23 -0
- package/dist/hand/handCutoutRegistry.d.ts +7 -0
- package/dist/hand/handGestures.d.ts +524 -0
- package/dist/hand/handPose.d.ts +98 -0
- package/dist/hand/handRigSolver.d.ts +159 -0
- package/dist/hand/handTattoo.d.ts +81 -0
- package/dist/hand/handTouch.d.ts +240 -0
- package/dist/hand/wrist.d.ts +44 -0
- package/dist/hand/wristFilter.d.ts +44 -0
- package/dist/hooks/selectors.d.ts +8 -0
- package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
- package/dist/hooks/useTrackerContext.d.ts +6 -0
- package/dist/index-B1_TzJaI.js +1104 -0
- package/dist/index-BavF06C6.js +190 -0
- package/dist/index-BfFmpddl.cjs +21 -0
- package/dist/index-BuBzneeW.cjs +46 -0
- package/dist/index-CGsQWodV.cjs +1 -0
- package/dist/index-CIe7eCMH.js +3200 -0
- package/dist/index-CfSF8LXa.cjs +1 -0
- package/dist/index-D5GTzOzD.cjs +1 -0
- package/dist/index-DBhQzvVa.js +314 -0
- package/dist/index-DE17y0ZI.cjs +1 -0
- package/dist/index-JII7huPk.js +442 -0
- package/dist/index-tpCr9CLj.cjs +1 -0
- package/dist/{renderPasses-NnKZVfBy.js → index-w1S7fI2B.js} +219 -247
- package/dist/index-zGaqrz_K.js +188 -0
- package/dist/instructions.cjs +30 -0
- package/dist/instructions.js +1507 -0
- package/dist/{internal-vsfNQycj.js → internal-B90P-clC.js} +138 -118
- package/dist/internal-Cjinca64.cjs +1 -0
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +15 -10
- package/dist/iris/compute.d.ts +7 -5
- package/dist/iris/types.d.ts +6 -4
- package/dist/{landmarkMask-CbTFzBYG.js → landmarkMask-BFDyBnKM.js} +6 -6
- package/dist/landmarks-BlUqf5MZ.cjs +1 -0
- package/dist/landmarks-bftdwq6Z.js +76 -0
- package/dist/loaders-BGAUACsd.js +363 -0
- package/dist/loaders-BJ1_QCHt.cjs +1 -0
- package/dist/low-level.cjs +1 -1
- package/dist/low-level.js +666 -602
- package/dist/main.cjs +1 -1
- package/dist/main.js +866 -1182
- package/dist/models/Body/index.d.ts +2 -0
- package/dist/models/Face/constants.d.ts +8 -0
- package/dist/models/Face/index.d.ts +3 -11
- package/dist/models/Face/rotation.d.ts +18 -3
- package/dist/models/Hand/HandTracking.d.ts +17 -1
- package/dist/models/Segmentation/index.d.ts +2 -0
- package/dist/models/nodeSource.d.ts +9 -0
- package/dist/particles/emission.d.ts +24 -0
- package/dist/particles/eyes.d.ts +24 -0
- package/dist/particles/glsl.d.ts +14 -0
- package/dist/particles/index.d.ts +10 -0
- package/dist/particles/motion.d.ts +42 -0
- package/dist/particles/presets.d.ts +12 -0
- package/dist/particles/ring.d.ts +58 -0
- package/dist/particles/selfTest.d.ts +53 -0
- package/dist/particles/settings.d.ts +127 -0
- package/dist/particles/shapes.d.ts +29 -0
- package/dist/particles/spawner.d.ts +60 -0
- package/dist/particles/system.d.ts +64 -0
- package/dist/particles.cjs +122 -0
- package/dist/particles.js +774 -0
- package/dist/product.cjs +1 -1
- package/dist/product.js +29 -29
- package/dist/{providers-C0Dlhh9Z.js → providers-C8rE26Uf.js} +127 -126
- package/dist/providers-DHsrhDI2.cjs +62 -0
- package/dist/render/renderPasses.d.ts +8 -0
- package/dist/render/sceneBeforeRender.d.ts +12 -0
- package/dist/{renderGroups-CN1cGFUo.js → renderGroups-B38pUaX2.js} +1 -1
- package/dist/{renderGroups-O4KmaMl9.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
- package/dist/renderPasses-B6l8IpJv.js +1290 -0
- package/dist/renderPasses-dqmkft4P.cjs +158 -0
- package/dist/renderState-CJNmj5jz.js +39 -0
- package/dist/renderState-apSfg4eR.cjs +1 -0
- package/dist/scene-object.cjs +1 -1
- package/dist/scene-object.js +2 -2
- package/dist/segmentation-Cb3ouK6Z.js +1758 -0
- package/dist/segmentation-D9pYO6aR.cjs +1 -0
- package/dist/segmentation2d/types.d.ts +6 -0
- package/dist/select-Ck5LGz-J.cjs +1 -0
- package/dist/select-pYRo_win.js +233 -0
- package/dist/selectors-C4X71aoD.cjs +1 -0
- package/dist/selectors-DmNaKIwE.js +196 -0
- package/dist/session-BrH8G7iJ.cjs +31 -0
- package/dist/session-DgA_z6O1.js +418 -0
- package/dist/{settings-aQk845NJ.js → settings-BJ7FMBsO.js} +53 -15
- 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/tracking.cjs +10 -1
- package/dist/tracking.js +1002 -855
- package/dist/trigger-D0Pm9noT.cjs +49 -0
- package/dist/trigger-IQeys0oS.js +2128 -0
- package/dist/types/face.d.ts +20 -1
- package/dist/types/hand-tracking.d.ts +9 -0
- package/dist/types/nodes.d.ts +20 -1
- package/dist/types/segmentation.d.ts +5 -0
- package/dist/updateThrottle-BseecYag.js +4 -0
- package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
- package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
- package/dist/useFaceInfo-J4x7LsqL.js +76 -0
- package/dist/useFaceResultReader-BvEo5REG.js +61 -0
- package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
- package/dist/useInstructionHold-DOu-RpCM.js +53 -0
- package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
- package/dist/{useXRCapabilities-B1R2ghy-.cjs → useXRCapabilities-Cr3RzuAW.cjs} +1 -1
- package/dist/{useXRCapabilities-C68v__wB.js → useXRCapabilities-Cxmlmpbd.js} +1 -1
- package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
- package/dist/utils/headOccluderFit.d.ts +42 -0
- package/dist/utils/integrity.d.ts +17 -0
- 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/uv-BMFt19bg.cjs +1 -0
- package/dist/{index-CsUdQ-pn.js → uv-DJU_XfmN.js} +15 -249
- package/docs/SDK_DOCUMENTATION.md +1 -2
- package/docs/api/adaptive-quality.mdx +1 -1
- package/docs/api/body-instructions.mdx +285 -0
- package/docs/api/body-triggers.mdx +234 -0
- package/docs/api/camera-permission.mdx +1 -1
- package/docs/api/coordinate-spaces.mdx +7 -4
- package/docs/api/cross-camera.mdx +3 -2
- package/docs/api/debug-ui-scene-editor.mdx +23 -2
- package/docs/api/external-face-mesh.mdx +231 -0
- package/docs/api/face-actions.mdx +20 -16
- package/docs/api/face-attribute-expression.mdx +1 -1
- package/docs/api/face-binding-anchors.mdx +4 -2
- package/docs/api/face-character.mdx +157 -0
- package/docs/api/face-effects.mdx +3 -0
- package/docs/api/face-expression-controller.mdx +153 -0
- package/docs/api/face-info.mdx +17 -11
- package/docs/api/face-inset.mdx +204 -0
- package/docs/api/face-instructions.mdx +183 -0
- package/docs/api/face-liquify.mdx +196 -0
- package/docs/api/face-mesh.mdx +4 -7
- package/docs/api/face-morph.mdx +117 -0
- package/docs/api/face-painting.mdx +7 -0
- package/docs/api/face-reprojection.mdx +154 -0
- package/docs/api/face-retouching.mdx +18 -10
- package/docs/api/face-swap.mdx +350 -0
- package/docs/api/face-warp-3d.mdx +166 -0
- package/docs/api/faceless.mdx +143 -0
- package/docs/api/gestures.mdx +68 -32
- package/docs/api/hair.mdx +97 -0
- package/docs/api/hand-instructions.mdx +222 -0
- package/docs/api/hand-rig.mdx +535 -0
- package/docs/api/hand-touch.mdx +162 -0
- package/docs/api/head-occluder.mdx +563 -0
- package/docs/api/holistic-tracker.mdx +6 -1
- package/docs/api/instructions.mdx +323 -0
- package/docs/api/iris-tracking.mdx +24 -19
- package/docs/api/made-up-camera.mdx +131 -0
- package/docs/api/makeup-skin-tone.mdx +135 -0
- package/docs/api/makeup.mdx +353 -0
- package/docs/api/multi-subject.mdx +4 -1
- package/docs/api/particles.mdx +155 -0
- package/docs/api/person-cutout.mdx +1 -1
- package/docs/api/pin-to-face-mesh.mdx +274 -0
- package/docs/api/product-ar.mdx +5 -2
- package/docs/api/segmentation-overlay.mdx +1 -1
- package/docs/docs.json +29 -1
- package/docs/examples/lip-shaders.mdx +82 -33
- package/docs/guides/face-atlas-template.svg +1 -0
- package/docs/guides/face-atlas-textures.mdx +186 -0
- package/docs/guides/face-texture-template.svg +1 -0
- package/docs/guides/harness-debug-ui.mdx +4 -4
- package/docs/guides/lip-effect-textures.mdx +178 -102
- package/docs/guides/lip-uv-template.png +0 -0
- package/docs/guides/lip-uv-template.svg +1 -1
- package/docs/guides/makeup-design-textures.mdx +109 -0
- package/docs/introduction.mdx +1 -2
- package/package.json +11 -1
- package/dist/DebuggerUI-C-ldiozL.js +0 -269
- package/dist/DebuggerUI-CWX5EtQv.cjs +0 -1
- package/dist/FaceMeshRenderer-BEEXZwS6.cjs +0 -158
- package/dist/FaceMeshRenderer-UuH5sTXG.js +0 -1322
- package/dist/FaceRetouch-C7h7x9kd.js +0 -683
- package/dist/FaceRetouch-DqftT26Y.cjs +0 -134
- package/dist/GLTFLoader-C5q63sKO.js +0 -1633
- package/dist/GLTFLoader-Cb_CRwmG.cjs +0 -1
- package/dist/SegmentationOverlay-DQuW3dsc.js +0 -133
- package/dist/SegmentationOverlay-aWVod8Kl.cjs +0 -1
- package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
- package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
- package/dist/components/FaceWarp3D/warp.d.ts +0 -13
- package/dist/contexts-CO0sd4JQ.cjs +0 -1
- package/dist/contexts-FzlnnMYD.js +0 -669
- package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
- package/dist/getFaceInfo-BkZfaQs-.js +0 -118
- package/dist/getFaceInfo-ahPxQFGu.cjs +0 -1
- package/dist/index--RgGzZ6X.cjs +0 -47
- package/dist/index-CHVbH0hz.js +0 -214
- package/dist/index-CeVkgsag.cjs +0 -1
- package/dist/index-CnGox6Xr.js +0 -3054
- package/dist/index-DKBAh6hV.cjs +0 -1
- package/dist/index-DsZwTfG0.cjs +0 -1
- package/dist/index-Dw6tj2Mi.js +0 -144
- package/dist/index-OCPjOaeP.cjs +0 -1
- package/dist/index-s9pF4zkG.js +0 -2053
- package/dist/internal-BYza1h8_.cjs +0 -1
- package/dist/measures-9dQPdw96.js +0 -154
- package/dist/measures-KfJzpvod.cjs +0 -1
- package/dist/providers-YNwkmNeK.cjs +0 -62
- package/dist/renderPasses-Cg-zqmEz.cjs +0 -21
- package/dist/screenTransform-BenfCtZt.js +0 -44
- package/dist/screenTransform-BiXdpVf0.cjs +0 -1
- package/dist/segmentation-9PhSvc-R.cjs +0 -1
- package/dist/segmentation-CeOTKemr.js +0 -5
- package/dist/selectors-C5G1PMYL.js +0 -195
- package/dist/selectors-Du_PsVnW.cjs +0 -1
- package/dist/session-BBr0yN8h.cjs +0 -31
- package/dist/session-Cy0m7l7-.js +0 -363
- package/dist/settings-DRR7-snV.cjs +0 -1
- package/dist/useFaceInfo-Blf7FCu3.js +0 -303
- package/dist/useFaceInfo-C5mO8NQY.cjs +0 -1
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { jsx as
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import { u as
|
|
8
|
-
import { useFrame as
|
|
1
|
+
var X = Object.defineProperty;
|
|
2
|
+
var V = (t, e, r) => e in t ? X(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
|
|
3
|
+
var i = (t, e, r) => V(t, typeof e != "symbol" ? e + "" : e, r);
|
|
4
|
+
import { jsx as m, jsxs as w } from "react/jsx-runtime";
|
|
5
|
+
import q, { useState as b, useContext as J, createContext as G, Suspense as E, lazy as Q, useRef as p, useEffect as T, useCallback as y } from "react";
|
|
6
|
+
import { d as Y } from "./selectors-DmNaKIwE.js";
|
|
7
|
+
import { u as Z } from "./index-CIe7eCMH.js";
|
|
8
|
+
import { useFrame as ee } from "@react-three/fiber";
|
|
9
9
|
import "./hasFullUnitUVBounds-BGvcFsQM.js";
|
|
10
|
-
|
|
10
|
+
import "./uv-DJU_XfmN.js";
|
|
11
|
+
import "./FaceSurface-DmP9AEeC.js";
|
|
12
|
+
const ve = ({
|
|
11
13
|
children: t,
|
|
12
14
|
defaultCollapsed: e = !0,
|
|
13
15
|
title: r,
|
|
14
|
-
width:
|
|
16
|
+
width: s = 320
|
|
15
17
|
}) => {
|
|
16
|
-
const [
|
|
17
|
-
return
|
|
18
|
+
const [a, o] = b(e);
|
|
19
|
+
return a ? /* @__PURE__ */ m(
|
|
18
20
|
"button",
|
|
19
21
|
{
|
|
20
22
|
type: "button",
|
|
@@ -47,7 +49,7 @@ const he = ({
|
|
|
47
49
|
right: 16,
|
|
48
50
|
bottom: 16,
|
|
49
51
|
zIndex: 40,
|
|
50
|
-
width:
|
|
52
|
+
width: s,
|
|
51
53
|
maxWidth: "calc(100vw - 32px)",
|
|
52
54
|
padding: 14,
|
|
53
55
|
borderRadius: 14,
|
|
@@ -70,8 +72,8 @@ const he = ({
|
|
|
70
72
|
marginBottom: 10
|
|
71
73
|
},
|
|
72
74
|
children: [
|
|
73
|
-
/* @__PURE__ */
|
|
74
|
-
/* @__PURE__ */
|
|
75
|
+
/* @__PURE__ */ m("div", { style: { fontSize: 13, fontWeight: 700 }, children: r }),
|
|
76
|
+
/* @__PURE__ */ m(
|
|
75
77
|
"button",
|
|
76
78
|
{
|
|
77
79
|
type: "button",
|
|
@@ -99,13 +101,13 @@ const he = ({
|
|
|
99
101
|
}
|
|
100
102
|
);
|
|
101
103
|
};
|
|
102
|
-
class
|
|
104
|
+
class te {
|
|
103
105
|
// 500ms as per PRD
|
|
104
106
|
constructor() {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
i(this, "frameTimestamps", []);
|
|
108
|
+
i(this, "lastUpdateTime", 0);
|
|
109
|
+
i(this, "currentFPS", 0);
|
|
110
|
+
i(this, "updateInterval", 500);
|
|
109
111
|
this.lastUpdateTime = performance.now();
|
|
110
112
|
}
|
|
111
113
|
/**
|
|
@@ -116,7 +118,7 @@ class Y {
|
|
|
116
118
|
const e = performance.now();
|
|
117
119
|
this.frameTimestamps.push(e);
|
|
118
120
|
const r = e - this.updateInterval;
|
|
119
|
-
this.frameTimestamps = this.frameTimestamps.filter((
|
|
121
|
+
this.frameTimestamps = this.frameTimestamps.filter((s) => s > r), e - this.lastUpdateTime >= this.updateInterval && (this.currentFPS = this.frameTimestamps.length * 2, this.lastUpdateTime = e);
|
|
120
122
|
}
|
|
121
123
|
/**
|
|
122
124
|
* Get current FPS value
|
|
@@ -131,21 +133,21 @@ class Y {
|
|
|
131
133
|
this.frameTimestamps = [], this.lastUpdateTime = performance.now(), this.currentFPS = 0;
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
|
-
function
|
|
136
|
+
function Te(t, e = 1) {
|
|
135
137
|
return t.toFixed(e);
|
|
136
138
|
}
|
|
137
|
-
function
|
|
139
|
+
function R(t) {
|
|
138
140
|
return t / (1024 * 1024);
|
|
139
141
|
}
|
|
140
|
-
function
|
|
142
|
+
function re(t, e) {
|
|
141
143
|
return e === 0 ? 0 : t / e * 100;
|
|
142
144
|
}
|
|
143
|
-
class
|
|
145
|
+
class se {
|
|
144
146
|
constructor(e = 1e3) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
i(this, "intervalId", null);
|
|
148
|
+
i(this, "memoryUsage", null);
|
|
149
|
+
i(this, "updateInterval");
|
|
150
|
+
i(this, "isSupported", !1);
|
|
149
151
|
this.updateInterval = e, this.checkSupport();
|
|
150
152
|
}
|
|
151
153
|
/**
|
|
@@ -184,11 +186,11 @@ class ee {
|
|
|
184
186
|
if (!this.isSupported) return;
|
|
185
187
|
const e = performance;
|
|
186
188
|
if (!e.memory) return;
|
|
187
|
-
const r = e.memory.usedJSHeapSize,
|
|
189
|
+
const r = e.memory.usedJSHeapSize, s = e.memory.jsHeapSizeLimit;
|
|
188
190
|
this.memoryUsage = {
|
|
189
|
-
used:
|
|
190
|
-
total:
|
|
191
|
-
percentage:
|
|
191
|
+
used: R(r),
|
|
192
|
+
total: R(s),
|
|
193
|
+
percentage: re(r, s)
|
|
192
194
|
};
|
|
193
195
|
}
|
|
194
196
|
/**
|
|
@@ -205,11 +207,11 @@ class ee {
|
|
|
205
207
|
return this.isSupported;
|
|
206
208
|
}
|
|
207
209
|
}
|
|
208
|
-
class
|
|
210
|
+
class ie {
|
|
209
211
|
constructor() {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
212
|
+
i(this, "resolution", "N/A");
|
|
213
|
+
i(this, "videoElement", null);
|
|
214
|
+
i(this, "metadataListener", null);
|
|
213
215
|
}
|
|
214
216
|
/**
|
|
215
217
|
* Start tracking resolution from a video element
|
|
@@ -247,12 +249,12 @@ class te {
|
|
|
247
249
|
return this.videoElement && this.updateResolution(), this.resolution;
|
|
248
250
|
}
|
|
249
251
|
}
|
|
250
|
-
class
|
|
252
|
+
class ne {
|
|
251
253
|
constructor(e = {}) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
+
i(this, "options");
|
|
255
|
+
i(this, "isRunning", !1);
|
|
254
256
|
// Current metrics state
|
|
255
|
-
|
|
257
|
+
i(this, "metrics", {
|
|
256
258
|
cameraFPS: 0,
|
|
257
259
|
detectionTime: 0,
|
|
258
260
|
modelPerformance: [],
|
|
@@ -262,16 +264,16 @@ class re {
|
|
|
262
264
|
resolution: "N/A"
|
|
263
265
|
});
|
|
264
266
|
// Trackers
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
267
|
+
i(this, "cameraFPSTracker");
|
|
268
|
+
i(this, "memoryTracker");
|
|
269
|
+
i(this, "resolutionTracker");
|
|
268
270
|
// For effective FPS calculation
|
|
269
|
-
|
|
270
|
-
|
|
271
|
+
i(this, "frameTimes", []);
|
|
272
|
+
i(this, "lastEffectiveFPSUpdate", 0);
|
|
271
273
|
this.options = {
|
|
272
274
|
enableMemoryTracking: e.enableMemoryTracking ?? !0,
|
|
273
275
|
memoryUpdateInterval: e.memoryUpdateInterval ?? 1e3
|
|
274
|
-
}, this.cameraFPSTracker = new
|
|
276
|
+
}, this.cameraFPSTracker = new te(), this.memoryTracker = new se(this.options.memoryUpdateInterval), this.resolutionTracker = new ie();
|
|
275
277
|
}
|
|
276
278
|
/**
|
|
277
279
|
* Start collecting metrics
|
|
@@ -343,12 +345,12 @@ class re {
|
|
|
343
345
|
this.metrics.detectionTime = 0, this.metrics.modelPerformance = [];
|
|
344
346
|
return;
|
|
345
347
|
}
|
|
346
|
-
const
|
|
347
|
-
this.metrics.modelPerformance =
|
|
348
|
-
name:
|
|
349
|
-
processingTime:
|
|
348
|
+
const s = r.map((n) => n && typeof n.getPerformanceData == "function" ? n.getPerformanceData() : Promise.resolve({ name: "unknown", processingTime: 0 })), a = await Promise.all(s);
|
|
349
|
+
this.metrics.modelPerformance = a.map((n) => ({
|
|
350
|
+
name: n.name,
|
|
351
|
+
processingTime: n.processingTime || 0
|
|
350
352
|
}));
|
|
351
|
-
const o =
|
|
353
|
+
const o = a.reduce((n, h) => n + (h.processingTime || 0), 0);
|
|
352
354
|
this.metrics.detectionTime = o, this.updateEffectiveFPS();
|
|
353
355
|
} catch (r) {
|
|
354
356
|
console.warn("[MetricsCollector] Error updating detection time:", r), this.metrics.detectionTime = 0, this.metrics.modelPerformance = [];
|
|
@@ -362,8 +364,8 @@ class re {
|
|
|
362
364
|
const e = performance.now(), r = this.metrics.detectionTime + this.metrics.renderTime;
|
|
363
365
|
if (this.frameTimes.push(r), e - this.lastEffectiveFPSUpdate >= 1e3) {
|
|
364
366
|
if (this.frameTimes.length > 0) {
|
|
365
|
-
const
|
|
366
|
-
this.metrics.effectiveFPS =
|
|
367
|
+
const s = this.frameTimes.reduce((a, o) => a + o, 0) / this.frameTimes.length;
|
|
368
|
+
this.metrics.effectiveFPS = s > 0 ? 1e3 / s : 0;
|
|
367
369
|
}
|
|
368
370
|
this.frameTimes = [], this.lastEffectiveFPSUpdate = e;
|
|
369
371
|
}
|
|
@@ -375,14 +377,15 @@ class re {
|
|
|
375
377
|
return this.isRunning;
|
|
376
378
|
}
|
|
377
379
|
}
|
|
378
|
-
const
|
|
379
|
-
function
|
|
380
|
+
const I = Q(async () => ({ default: (await import("./DebuggerUI-7ngnJsBe.js")).DebuggerUI })), k = G(null);
|
|
381
|
+
function ye({
|
|
380
382
|
children: t,
|
|
381
383
|
keyboardShortcut: e = "ctrl+shift+d",
|
|
382
384
|
initialEnabled: r = !1,
|
|
383
|
-
position:
|
|
385
|
+
position: s = "top-left",
|
|
386
|
+
docked: a = !1
|
|
384
387
|
}) {
|
|
385
|
-
const [
|
|
388
|
+
const [o, n] = b(r), [h, P] = b(!1), [x, D] = b({
|
|
386
389
|
cameraFPS: 0,
|
|
387
390
|
detectionTime: 0,
|
|
388
391
|
modelPerformance: [],
|
|
@@ -390,20 +393,20 @@ function ge({
|
|
|
390
393
|
effectiveFPS: 0,
|
|
391
394
|
memory: null,
|
|
392
395
|
resolution: "N/A"
|
|
393
|
-
}),
|
|
394
|
-
T(() => (
|
|
395
|
-
|
|
396
|
+
}), d = p(null), l = p(null), g = p(!1), { session: v } = Z(), F = Y();
|
|
397
|
+
T(() => (d.current || (d.current = new ne(), window.__xr_metrics_collector = d.current), () => {
|
|
398
|
+
d.current && d.current.stop(), l.current && clearInterval(l.current), window.__xr_metrics_collector && delete window.__xr_metrics_collector;
|
|
396
399
|
}), []), T(() => {
|
|
397
|
-
const c =
|
|
400
|
+
const c = d.current;
|
|
398
401
|
if (c) {
|
|
399
|
-
if (
|
|
402
|
+
if (o && F) {
|
|
400
403
|
const u = v._getVideoElement();
|
|
401
404
|
c.start(u), l.current = window.setInterval(async () => {
|
|
402
405
|
if (!g.current) {
|
|
403
406
|
g.current = !0;
|
|
404
407
|
try {
|
|
405
|
-
const
|
|
406
|
-
await c.updateDetectionTime(
|
|
408
|
+
const C = Object.fromEntries(v.store.getSnapshot().pipeline);
|
|
409
|
+
await c.updateDetectionTime(C), D(c.getMetrics());
|
|
407
410
|
} finally {
|
|
408
411
|
g.current = !1;
|
|
409
412
|
}
|
|
@@ -415,67 +418,83 @@ function ge({
|
|
|
415
418
|
l.current && (clearInterval(l.current), l.current = null);
|
|
416
419
|
};
|
|
417
420
|
}
|
|
418
|
-
}, [
|
|
421
|
+
}, [o, F, v]), T(() => {
|
|
419
422
|
const c = (u) => {
|
|
420
|
-
const
|
|
421
|
-
|
|
423
|
+
const f = e.toLowerCase().split("+"), N = f.includes("ctrl") || f.includes("control"), H = f.includes("shift"), z = f.includes("alt"), j = f[f.length - 1], $ = N ? u.ctrlKey || u.metaKey : !0, B = H ? u.shiftKey : !0, K = z ? u.altKey : !0, O = u.key.toLowerCase() === j;
|
|
424
|
+
$ && B && K && O && (u.preventDefault(), n((W) => !W));
|
|
422
425
|
};
|
|
423
426
|
return window.addEventListener("keydown", c), () => {
|
|
424
427
|
window.removeEventListener("keydown", c);
|
|
425
428
|
};
|
|
426
429
|
}, [e]);
|
|
427
|
-
const
|
|
428
|
-
|
|
429
|
-
}, []),
|
|
430
|
-
|
|
431
|
-
}, []),
|
|
432
|
-
|
|
433
|
-
}, []),
|
|
430
|
+
const U = y(() => {
|
|
431
|
+
n((c) => !c);
|
|
432
|
+
}, []), L = y(() => {
|
|
433
|
+
n(!0);
|
|
434
|
+
}, []), _ = y(() => {
|
|
435
|
+
n(!1);
|
|
436
|
+
}, []), A = {
|
|
434
437
|
state: {
|
|
435
|
-
enabled:
|
|
436
|
-
collapsed:
|
|
437
|
-
metrics:
|
|
438
|
+
enabled: o,
|
|
439
|
+
collapsed: h,
|
|
440
|
+
metrics: x
|
|
438
441
|
},
|
|
439
|
-
toggle:
|
|
440
|
-
setCollapsed:
|
|
441
|
-
enable:
|
|
442
|
-
disable:
|
|
442
|
+
toggle: U,
|
|
443
|
+
setCollapsed: P,
|
|
444
|
+
enable: L,
|
|
445
|
+
disable: _
|
|
443
446
|
};
|
|
444
|
-
return /* @__PURE__ */ w(
|
|
447
|
+
return /* @__PURE__ */ w(k.Provider, { value: A, children: [
|
|
445
448
|
t,
|
|
446
|
-
|
|
447
|
-
|
|
449
|
+
o && !a && /* @__PURE__ */ m(E, { fallback: null, children: /* @__PURE__ */ m(
|
|
450
|
+
I,
|
|
448
451
|
{
|
|
449
|
-
metrics:
|
|
450
|
-
collapsed:
|
|
451
|
-
onCollapse:
|
|
452
|
-
onClose:
|
|
453
|
-
position:
|
|
452
|
+
metrics: x,
|
|
453
|
+
collapsed: h,
|
|
454
|
+
onCollapse: P,
|
|
455
|
+
onClose: _,
|
|
456
|
+
position: s,
|
|
454
457
|
keyboardShortcut: e
|
|
455
458
|
}
|
|
456
459
|
) })
|
|
457
460
|
] });
|
|
458
461
|
}
|
|
459
|
-
function
|
|
460
|
-
|
|
462
|
+
function we({
|
|
463
|
+
keyboardShortcut: t = "ctrl+shift+d"
|
|
464
|
+
}) {
|
|
465
|
+
const e = J(k);
|
|
466
|
+
return !e || !e.state.enabled ? null : /* @__PURE__ */ m(E, { fallback: null, children: /* @__PURE__ */ m(
|
|
467
|
+
I,
|
|
468
|
+
{
|
|
469
|
+
docked: !0,
|
|
470
|
+
metrics: e.state.metrics,
|
|
471
|
+
collapsed: e.state.collapsed,
|
|
472
|
+
onCollapse: e.setCollapsed,
|
|
473
|
+
onClose: e.disable,
|
|
474
|
+
keyboardShortcut: t
|
|
475
|
+
}
|
|
476
|
+
) });
|
|
477
|
+
}
|
|
478
|
+
function oe() {
|
|
479
|
+
const t = q.useContext(k);
|
|
461
480
|
if (!t)
|
|
462
481
|
throw new Error("useDebuggerContext must be used within a DebuggerProvider");
|
|
463
482
|
return t;
|
|
464
483
|
}
|
|
465
|
-
function
|
|
466
|
-
const e =
|
|
467
|
-
return
|
|
484
|
+
function ae({ onUpdate: t }) {
|
|
485
|
+
const e = p(0), r = p(!0);
|
|
486
|
+
return ee(() => {
|
|
468
487
|
if (r.current)
|
|
469
488
|
r.current = !1;
|
|
470
489
|
else {
|
|
471
|
-
const
|
|
472
|
-
t(
|
|
490
|
+
const a = performance.now() - e.current;
|
|
491
|
+
t(a);
|
|
473
492
|
}
|
|
474
493
|
e.current = performance.now();
|
|
475
494
|
}, -1e3), null;
|
|
476
495
|
}
|
|
477
|
-
function
|
|
478
|
-
const t =
|
|
496
|
+
function ce() {
|
|
497
|
+
const t = oe();
|
|
479
498
|
return {
|
|
480
499
|
metrics: t.state.metrics,
|
|
481
500
|
enabled: t.state.enabled,
|
|
@@ -486,39 +505,40 @@ function oe() {
|
|
|
486
505
|
disable: t.disable
|
|
487
506
|
};
|
|
488
507
|
}
|
|
489
|
-
function
|
|
490
|
-
const { enabled: t } =
|
|
491
|
-
const
|
|
492
|
-
|
|
508
|
+
function Se() {
|
|
509
|
+
const { enabled: t } = ce(), e = (r) => {
|
|
510
|
+
const s = window;
|
|
511
|
+
s.__xr_metrics_collector && s.__xr_metrics_collector.updateRenderTime(r);
|
|
493
512
|
};
|
|
494
|
-
return t ? /* @__PURE__ */
|
|
513
|
+
return t ? /* @__PURE__ */ m(ae, { onUpdate: e }) : null;
|
|
495
514
|
}
|
|
496
515
|
const S = 600;
|
|
497
|
-
function
|
|
516
|
+
function M() {
|
|
498
517
|
if (typeof window > "u")
|
|
499
518
|
return;
|
|
500
519
|
const t = window;
|
|
501
520
|
return t.__xrCalibrationDebugState || (t.__xrCalibrationDebugState = { events: [] }), t.__xrCalibrationDebugState;
|
|
502
521
|
}
|
|
503
|
-
function
|
|
504
|
-
const
|
|
505
|
-
|
|
522
|
+
function ke(t, e, r) {
|
|
523
|
+
const s = M();
|
|
524
|
+
s && (s.events.push({
|
|
506
525
|
source: t,
|
|
507
526
|
label: e,
|
|
508
527
|
payload: r,
|
|
509
528
|
ts: performance.now()
|
|
510
|
-
}),
|
|
529
|
+
}), s.events.length > S && s.events.splice(0, s.events.length - S));
|
|
511
530
|
}
|
|
512
|
-
function
|
|
513
|
-
const e =
|
|
531
|
+
function Pe(t = S) {
|
|
532
|
+
const e = M();
|
|
514
533
|
return e ? e.events.slice(Math.max(0, e.events.length - t)) : [];
|
|
515
534
|
}
|
|
516
535
|
export {
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
Te as
|
|
523
|
-
|
|
536
|
+
we as D,
|
|
537
|
+
ve as X,
|
|
538
|
+
ye as a,
|
|
539
|
+
Se as b,
|
|
540
|
+
ke as c,
|
|
541
|
+
Te as f,
|
|
542
|
+
Pe as r,
|
|
543
|
+
ce as u
|
|
524
544
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var O=Object.defineProperty;var $=(t,e,r)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var n=(t,e,r)=>$(t,typeof e!="symbol"?e+"":e,r);const c=require("react/jsx-runtime"),i=require("react"),B=require("./selectors-C4X71aoD.cjs"),K=require("./index-CfSF8LXa.cjs"),V=require("@react-three/fiber");require("./hasFullUnitUVBounds-p1Dl0ejX.cjs");require("./uv-BMFt19bg.cjs");require("./FaceSurface-CHAMEeG1.cjs");const W=({children:t,defaultCollapsed:e=!0,title:r,width:s=320})=>{const[l,a]=i.useState(e);return l?c.jsx("button",{type:"button",onClick:()=>a(!1),"aria-label":`Open ${r}`,title:`Open ${r}`,style:{position:"absolute",right:16,bottom:16,zIndex:40,width:40,height:40,border:"1px solid rgba(255,255,255,0.12)",borderRadius:999,background:"rgba(15, 23, 42, 0.72)",color:"#e5eefb",boxShadow:"0 12px 30px rgba(0,0,0,0.18)",backdropFilter:"blur(10px)",cursor:"pointer",pointerEvents:"auto"},children:"◫"}):c.jsxs("div",{style:{position:"absolute",right:16,bottom:16,zIndex:40,width:s,maxWidth:"calc(100vw - 32px)",padding:14,borderRadius:14,boxShadow:"0 12px 30px rgba(0,0,0,0.26)",backdropFilter:"blur(10px)",pointerEvents:"auto",background:"rgba(15, 23, 42, 0.78)",border:"1px solid rgba(255,255,255,0.12)",color:"#e5eefb"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,marginBottom:10},children:[c.jsx("div",{style:{fontSize:13,fontWeight:700},children:r}),c.jsx("button",{type:"button",onClick:()=>a(!0),"aria-label":`Close ${r}`,title:`Close ${r}`,style:{width:32,height:32,border:"1px solid rgba(255,255,255,0.12)",borderRadius:999,background:"rgba(255,255,255,0.04)",color:"#e5eefb",cursor:"pointer",flex:"0 0 auto"},children:"×"})]}),t]})};class X{constructor(){n(this,"frameTimestamps",[]);n(this,"lastUpdateTime",0);n(this,"currentFPS",0);n(this,"updateInterval",500);this.lastUpdateTime=performance.now()}trackFrame(){const e=performance.now();this.frameTimestamps.push(e);const r=e-this.updateInterval;this.frameTimestamps=this.frameTimestamps.filter(s=>s>r),e-this.lastUpdateTime>=this.updateInterval&&(this.currentFPS=this.frameTimestamps.length*2,this.lastUpdateTime=e)}getFPS(){return this.currentFPS}reset(){this.frameTimestamps=[],this.lastUpdateTime=performance.now(),this.currentFPS=0}}function J(t,e=1){return t.toFixed(e)}function P(t){return t/(1024*1024)}function G(t,e){return e===0?0:t/e*100}class Q{constructor(e=1e3){n(this,"intervalId",null);n(this,"memoryUsage",null);n(this,"updateInterval");n(this,"isSupported",!1);this.updateInterval=e,this.checkSupport()}checkSupport(){const e=performance;this.isSupported="memory"in e&&e.memory!==void 0,this.isSupported||console.warn("[MemoryTracker] performance.memory not available (Chrome-only API)")}start(){if(this.intervalId!==null){console.warn("[MemoryTracker] Already running");return}if(!this.isSupported){this.memoryUsage=null;return}this.updateMemory(),this.intervalId=window.setInterval(()=>{this.updateMemory()},this.updateInterval)}stop(){this.intervalId!==null&&(clearInterval(this.intervalId),this.intervalId=null)}updateMemory(){if(!this.isSupported)return;const e=performance;if(!e.memory)return;const r=e.memory.usedJSHeapSize,s=e.memory.jsHeapSizeLimit;this.memoryUsage={used:P(r),total:P(s),percentage:G(r,s)}}getMemoryUsage(){return this.memoryUsage}isMemorySupported(){return this.isSupported}}class Y{constructor(){n(this,"resolution","N/A");n(this,"videoElement",null);n(this,"metadataListener",null)}start(e){if(!e){this.resolution="N/A";return}this.videoElement=e,e.videoWidth>0&&e.videoHeight>0&&this.updateResolution(),this.metadataListener=()=>{this.updateResolution()},e.addEventListener("loadedmetadata",this.metadataListener)}stop(){this.videoElement&&this.metadataListener&&(this.videoElement.removeEventListener("loadedmetadata",this.metadataListener),this.metadataListener=null),this.videoElement=null,this.resolution="N/A"}updateResolution(){if(!this.videoElement){this.resolution="N/A";return}const e=this.videoElement.videoWidth,r=this.videoElement.videoHeight;e>0&&r>0?this.resolution=`${e}x${r}`:this.resolution="N/A"}getResolution(){return this.videoElement&&this.updateResolution(),this.resolution}}class Z{constructor(e={}){n(this,"options");n(this,"isRunning",!1);n(this,"metrics",{cameraFPS:0,detectionTime:0,modelPerformance:[],renderTime:0,effectiveFPS:0,memory:null,resolution:"N/A"});n(this,"cameraFPSTracker");n(this,"memoryTracker");n(this,"resolutionTracker");n(this,"frameTimes",[]);n(this,"lastEffectiveFPSUpdate",0);this.options={enableMemoryTracking:e.enableMemoryTracking??!0,memoryUpdateInterval:e.memoryUpdateInterval??1e3},this.cameraFPSTracker=new X,this.memoryTracker=new Q(this.options.memoryUpdateInterval),this.resolutionTracker=new Y}start(e){if(this.isRunning){console.warn("[MetricsCollector] Already running");return}this.isRunning=!0,this.lastEffectiveFPSUpdate=performance.now(),this.options.enableMemoryTracking&&this.memoryTracker.start(),e&&this.resolutionTracker.start(e),this.setupCameraFPSHook(),console.info("[MetricsCollector] Started")}stop(){this.isRunning&&(this.isRunning=!1,this.memoryTracker.stop(),this.resolutionTracker.stop(),this.cameraFPSTracker.reset(),this.cleanupCameraFPSHook(),console.info("[MetricsCollector] Stopped"))}setupCameraFPSHook(){const e=window;e.__xr_debugger_metrics||(e.__xr_debugger_metrics={trackCameraFrame:()=>{this.cameraFPSTracker.trackFrame(),this.metrics.cameraFPS=this.cameraFPSTracker.getFPS()}})}cleanupCameraFPSHook(){const e=window;e.__xr_debugger_metrics&&delete e.__xr_debugger_metrics}getMetrics(){return this.updateMetricsFromTrackers(),{...this.metrics}}updateMetricsFromTrackers(){this.isRunning&&(this.metrics.memory=this.memoryTracker.getMemoryUsage(),this.metrics.resolution=this.resolutionTracker.getResolution(),this.updateEffectiveFPS())}updateRenderTime(e){this.metrics.renderTime=e,this.updateEffectiveFPS()}async updateDetectionTime(e){if(!e||!this.isRunning){this.metrics.detectionTime=0,this.metrics.modelPerformance=[];return}try{const r=Object.values(e).filter(Boolean);if(r.length===0){this.metrics.detectionTime=0,this.metrics.modelPerformance=[];return}const s=r.map(o=>o&&typeof o.getPerformanceData=="function"?o.getPerformanceData():Promise.resolve({name:"unknown",processingTime:0})),l=await Promise.all(s);this.metrics.modelPerformance=l.map(o=>({name:o.name,processingTime:o.processingTime||0}));const a=l.reduce((o,p)=>o+(p.processingTime||0),0);this.metrics.detectionTime=a,this.updateEffectiveFPS()}catch(r){console.warn("[MetricsCollector] Error updating detection time:",r),this.metrics.detectionTime=0,this.metrics.modelPerformance=[]}}updateEffectiveFPS(){const e=performance.now(),r=this.metrics.detectionTime+this.metrics.renderTime;if(this.frameTimes.push(r),e-this.lastEffectiveFPSUpdate>=1e3){if(this.frameTimes.length>0){const s=this.frameTimes.reduce((l,a)=>l+a,0)/this.frameTimes.length;this.metrics.effectiveFPS=s>0?1e3/s:0}this.frameTimes=[],this.lastEffectiveFPSUpdate=e}}isActive(){return this.isRunning}}const C=i.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./DebuggerUI-CoglgKdO.cjs"))).DebuggerUI})),y=i.createContext(null);function ee({children:t,keyboardShortcut:e="ctrl+shift+d",initialEnabled:r=!1,position:s="top-left",docked:l=!1}){const[a,o]=i.useState(r),[p,T]=i.useState(!1),[w,R]=i.useState({cameraFPS:0,detectionTime:0,modelPerformance:[],renderTime:0,effectiveFPS:0,memory:null,resolution:"N/A"}),f=i.useRef(null),m=i.useRef(null),g=i.useRef(!1),{session:b}=K.useXRContext(),S=B.useXRReady();i.useEffect(()=>(f.current||(f.current=new Z,window.__xr_metrics_collector=f.current),()=>{f.current&&f.current.stop(),m.current&&clearInterval(m.current),window.__xr_metrics_collector&&delete window.__xr_metrics_collector}),[]),i.useEffect(()=>{const u=f.current;if(u){if(a&&S){const d=b._getVideoElement();u.start(d),m.current=window.setInterval(async()=>{if(!g.current){g.current=!0;try{const k=Object.fromEntries(b.store.getSnapshot().pipeline);await u.updateDetectionTime(k),R(u.getMetrics())}finally{g.current=!1}}},100)}else u.stop(),m.current&&(clearInterval(m.current),m.current=null),g.current=!1;return()=>{m.current&&(clearInterval(m.current),m.current=null)}}},[a,S,b]),i.useEffect(()=>{const u=d=>{const h=e.toLowerCase().split("+"),M=h.includes("ctrl")||h.includes("control"),U=h.includes("shift"),j=h.includes("alt"),L=h[h.length-1],q=M?d.ctrlKey||d.metaKey:!0,A=U?d.shiftKey:!0,N=j?d.altKey:!0,H=d.key.toLowerCase()===L;q&&A&&N&&H&&(d.preventDefault(),o(z=>!z))};return window.addEventListener("keydown",u),()=>{window.removeEventListener("keydown",u)}},[e]);const E=i.useCallback(()=>{o(u=>!u)},[]),D=i.useCallback(()=>{o(!0)},[]),x=i.useCallback(()=>{o(!1)},[]),I={state:{enabled:a,collapsed:p,metrics:w},toggle:E,setCollapsed:T,enable:D,disable:x};return c.jsxs(y.Provider,{value:I,children:[t,a&&!l&&c.jsx(i.Suspense,{fallback:null,children:c.jsx(C,{metrics:w,collapsed:p,onCollapse:T,onClose:x,position:s,keyboardShortcut:e})})]})}function te({keyboardShortcut:t="ctrl+shift+d"}){const e=i.useContext(y);return!e||!e.state.enabled?null:c.jsx(i.Suspense,{fallback:null,children:c.jsx(C,{docked:!0,metrics:e.state.metrics,collapsed:e.state.collapsed,onCollapse:e.setCollapsed,onClose:e.disable,keyboardShortcut:t})})}function re(){const t=i.useContext(y);if(!t)throw new Error("useDebuggerContext must be used within a DebuggerProvider");return t}function se({onUpdate:t}){const e=i.useRef(0),r=i.useRef(!0);return V.useFrame(()=>{if(r.current)r.current=!1;else{const l=performance.now()-e.current;t(l)}e.current=performance.now()},-1e3),null}function F(){const t=re();return{metrics:t.state.metrics,enabled:t.state.enabled,collapsed:t.state.collapsed,toggle:t.toggle,setCollapsed:t.setCollapsed,enable:t.enable,disable:t.disable}}function ie(){const{enabled:t}=F(),e=r=>{const s=window;s.__xr_metrics_collector&&s.__xr_metrics_collector.updateRenderTime(r)};return t?c.jsx(se,{onUpdate:e}):null}const v=600;function _(){if(typeof window>"u")return;const t=window;return t.__xrCalibrationDebugState||(t.__xrCalibrationDebugState={events:[]}),t.__xrCalibrationDebugState}function ne(t,e,r){const s=_();s&&(s.events.push({source:t,label:e,payload:r,ts:performance.now()}),s.events.length>v&&s.events.splice(0,s.events.length-v))}function oe(t=v){const e=_();return e?e.events.slice(Math.max(0,e.events.length-t)):[]}exports.DebuggerOverlay=ie;exports.DebuggerPanel=te;exports.DebuggerProvider=ee;exports.XRDebugView=W;exports.formatNumber=J;exports.readCalibrationDebugEvents=oe;exports.recordCalibrationDebugEvent=ne;exports.useDebugger=F;
|
package/dist/internal.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal-Cjinca64.cjs"),a=require("./hasFullUnitUVBounds-p1Dl0ejX.cjs"),n=require("./uv-BMFt19bg.cjs"),r=require("./FaceSurface-CHAMEeG1.cjs");exports.DebuggerOverlay=e.DebuggerOverlay;exports.DebuggerPanel=e.DebuggerPanel;exports.DebuggerProvider=e.DebuggerProvider;exports.XRDebugView=e.XRDebugView;exports.readCalibrationDebugEvents=e.readCalibrationDebugEvents;exports.recordCalibrationDebugEvent=e.recordCalibrationDebugEvent;exports.useDebugger=e.useDebugger;exports._resetUVBoundsWarnings=a._resetUVBoundsWarnings;exports.logUVBoundsWarningOnce=a.logUVBoundsWarningOnce;exports.RENDER_LAYERS=n.RENDER_LAYERS;exports.FACE_SURFACE_FRAME_PRIORITY=r.FACE_SURFACE_FRAME_PRIORITY;exports.FaceSurfaceContext=r.FaceSurfaceContext;exports.createFaceSurfaceState=r.createFaceSurfaceState;
|
package/dist/internal.js
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { _ as
|
|
3
|
-
import { R as
|
|
1
|
+
import { b as r, D as s, a as o, X as g, r as t, c as n, u } from "./internal-B90P-clC.js";
|
|
2
|
+
import { _ as c, l as D } from "./hasFullUnitUVBounds-BGvcFsQM.js";
|
|
3
|
+
import { R as i } from "./uv-DJU_XfmN.js";
|
|
4
|
+
import { F as f, a as l, c as F } from "./FaceSurface-DmP9AEeC.js";
|
|
4
5
|
export {
|
|
5
|
-
|
|
6
|
-
s as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
g as
|
|
6
|
+
r as DebuggerOverlay,
|
|
7
|
+
s as DebuggerPanel,
|
|
8
|
+
o as DebuggerProvider,
|
|
9
|
+
f as FACE_SURFACE_FRAME_PRIORITY,
|
|
10
|
+
l as FaceSurfaceContext,
|
|
11
|
+
i as RENDER_LAYERS,
|
|
12
|
+
g as XRDebugView,
|
|
13
|
+
c as _resetUVBoundsWarnings,
|
|
14
|
+
F as createFaceSurfaceState,
|
|
15
|
+
D as logUVBoundsWarningOnce,
|
|
16
|
+
t as readCalibrationDebugEvents,
|
|
12
17
|
n as recordCalibrationDebugEvent,
|
|
13
18
|
u as useDebugger
|
|
14
19
|
};
|
package/dist/iris/compute.d.ts
CHANGED
|
@@ -5,17 +5,19 @@ export declare const createIrisEye: (side: IrisSide) => IrisEye;
|
|
|
5
5
|
export declare const createIrisResult: (faceIndex?: number) => IrisResult;
|
|
6
6
|
/**
|
|
7
7
|
* Derive one eye's iris data from a refined face-mesh landmark set (478
|
|
8
|
-
* points, MediaPipe image space).
|
|
9
|
-
*
|
|
10
|
-
* `eye
|
|
8
|
+
* points, MediaPipe image space). `side` is the person's own eye; `mirrored`
|
|
9
|
+
* says the frame is the mirrored webcam, where that eye is MediaPipe's other
|
|
10
|
+
* side (#298). Returns `false`, and marks the eye undetected, when the
|
|
11
|
+
* landmarks are missing. Allocation-free: writes into `eye`.
|
|
11
12
|
*/
|
|
12
13
|
export declare const computeIrisEye: (landmarks: ReadonlyArray<IrisPoint> | undefined, side: IrisSide, eye: IrisEye, confidenceScale?: number, mirrored?: boolean) => boolean;
|
|
13
14
|
/**
|
|
14
15
|
* Update a full `IrisResult` from one face's landmarks. `faceConfidence` is
|
|
15
16
|
* 1 for a live face and the hold decay while held; it scales both eyes'
|
|
16
17
|
* confidence. `mirrored` says the frame is a mirror of the person (the
|
|
17
|
-
* session's webcam feed) so `
|
|
18
|
-
* `undefined` landmarks for an
|
|
18
|
+
* session's webcam feed) so `left` / `right` stay the person's own eyes and
|
|
19
|
+
* `offset.x` keeps its anatomical sign. Pass `undefined` landmarks for an
|
|
20
|
+
* absent face.
|
|
19
21
|
*/
|
|
20
22
|
export declare const updateIrisResult: (result: IrisResult, landmarks: ReadonlyArray<IrisPoint> | undefined, nowMs: number, options?: {
|
|
21
23
|
faceIndex?: number;
|
package/dist/iris/types.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { TrackerPoint } from '../types/common';
|
|
2
|
-
/** Person's perspective: `left` is the person's left eye
|
|
2
|
+
/** Person's perspective: `left` is the person's own left eye, on every feed. */
|
|
3
3
|
export type IrisSide = "left" | "right";
|
|
4
4
|
/**
|
|
5
|
-
* MediaPipe face-mesh indices used for iris tracking, per side
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* MediaPipe face-mesh indices used for iris tracking, per MediaPipe side
|
|
6
|
+
* (`left` = MediaPipe's left eye, 473–477). That is the person's own left eye
|
|
7
|
+
* on an unmirrored feed and their RIGHT eye on the mirrored webcam;
|
|
8
|
+
* `IrisResult.left` / `.right` already pick the person's own eye for the feed
|
|
9
|
+
* (`IRIS_LANDMARKS[personSide(side, mirrored)]`).
|
|
8
10
|
*/
|
|
9
11
|
export declare const IRIS_LANDMARKS: {
|
|
10
12
|
readonly left: {
|
|
@@ -206,18 +206,18 @@ const S = [
|
|
|
206
206
|
};
|
|
207
207
|
export {
|
|
208
208
|
O as D,
|
|
209
|
-
|
|
209
|
+
d as F,
|
|
210
210
|
F as I,
|
|
211
211
|
I as L,
|
|
212
212
|
A as O,
|
|
213
213
|
N as R,
|
|
214
214
|
g as S,
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
v as a,
|
|
216
|
+
L as b,
|
|
217
|
+
_ as c,
|
|
218
218
|
u as d,
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
Y as e,
|
|
220
|
+
P as f,
|
|
221
221
|
S as g,
|
|
222
222
|
w as p,
|
|
223
223
|
M as r
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const o=require("react"),M=require("./index-CfSF8LXa.cjs");function _(n){return JSON.stringify(n??{})}function d(n,i,E=!0){const{session:e}=M.useXRContext(),c=o.useId(),[r,h]=o.useState(null),l=_(i),f=o.useRef(i);f.current=i,o.useEffect(()=>{let y=!1;return h(null),e.registry.acquire(n,c,f.current).catch(t=>{y||h(t instanceof Error?t:new Error(String(t)))}),()=>{y=!0,e.registry.release(n,c)}},[e,n,c,l]),o.useEffect(()=>{e.registry.setActive(n,c,E)},[e,n,c,E]);const u=e.store,s=o.useSyncExternalStore(y=>u.subscribe(y),()=>u.getSnapshot().pipeline.get(n)??null,()=>null),a=o.useMemo(()=>s?s.getModelNode():null,[s]),x=o.useMemo(()=>r?M.mapModelErrorToReason(r):null,[r]);return{ready:s!==null&&r===null,node:a,error:r,fallback:x}}const S={"face.forehead":10,"face.noseTip":1,"face.chin":152,"face.leftEyeOuter":263,"face.rightEyeOuter":33,"face.leftCheek":425,"face.rightCheek":205,"face.mouthCenter":13,"face.leftEarlobe":454,"face.rightEarlobe":234},R={"face.center":[10,152,234,454],"face.leftEye":[263,362,387,373],"face.rightEye":[33,133,158,145]},I=(n,i=0)=>Number.isFinite(n)?n:i,C=n=>Math.max(-1,Math.min(1,I(n))),O={x:0,y:0,z:0},z=(n,i,E=O,e={x:0,y:0,z:0,visibility:0},c=!1)=>{const r=M.feedSidedName(n,c),h=S[r];if(h!==void 0){const t=i[h];return t?Object.assign(e,t):null}const l=R[r];if(l){e.x=0,e.y=0,e.z=0;for(const t of l){const A=i[t];if(!A)return null;e.x+=A.x,e.y+=A.y,e.z+=A.z}return e.x/=l.length,e.y/=l.length,e.z/=l.length,e.visibility=1,e}if(n!=="face.custom"||i.length===0)return null;let f=1/0,u=1/0,s=-1/0,a=-1/0,x=0;for(const t of i)f=Math.min(f,t.x),u=Math.min(u,t.y),s=Math.max(s,t.x),a=Math.max(a,t.y),x+=t.z;const y=s-f;return e.x=(f+s)*.5-M.personLeftSign(c)*C(E.x)*y*.5,e.y=(u+a)*.5-C(E.y)*(a-u)*.5,e.z=x/i.length-I(E.z)*y,e.visibility=1,e},b={left:S["face.leftEyeOuter"],right:S["face.rightEyeOuter"]};exports.FACE_EYE_DISTANCE_LANDMARKS=b;exports.FACE_LANDMARK_INDICES=S;exports.resolveFaceAnchorPoint=z;exports.useXRModel=d;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { useId as C, useState as I, useRef as O, useEffect as S, useSyncExternalStore as m, useMemo as d } from "react";
|
|
2
|
+
import { u as z, m as b, f as _, p as R } from "./index-CIe7eCMH.js";
|
|
3
|
+
function F(n) {
|
|
4
|
+
return JSON.stringify(n ?? {});
|
|
5
|
+
}
|
|
6
|
+
function L(n, i, a = !0) {
|
|
7
|
+
const { session: e } = z(), r = C(), [o, h] = I(null), c = F(i), l = O(i);
|
|
8
|
+
l.current = i, S(() => {
|
|
9
|
+
let u = !1;
|
|
10
|
+
return h(null), e.registry.acquire(n, r, l.current).catch((t) => {
|
|
11
|
+
u || h(t instanceof Error ? t : new Error(String(t)));
|
|
12
|
+
}), () => {
|
|
13
|
+
u = !0, e.registry.release(n, r);
|
|
14
|
+
};
|
|
15
|
+
}, [e, n, r, c]), S(() => {
|
|
16
|
+
e.registry.setActive(n, r, a);
|
|
17
|
+
}, [e, n, r, a]);
|
|
18
|
+
const f = e.store, s = m(
|
|
19
|
+
(u) => f.subscribe(u),
|
|
20
|
+
() => f.getSnapshot().pipeline.get(n) ?? null,
|
|
21
|
+
() => null
|
|
22
|
+
), y = d(() => s ? s.getModelNode() : null, [s]), E = d(() => o ? b(o) : null, [o]);
|
|
23
|
+
return {
|
|
24
|
+
ready: s !== null && o === null,
|
|
25
|
+
node: y,
|
|
26
|
+
error: o,
|
|
27
|
+
fallback: E
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const M = {
|
|
31
|
+
"face.forehead": 10,
|
|
32
|
+
"face.noseTip": 1,
|
|
33
|
+
"face.chin": 152,
|
|
34
|
+
"face.leftEyeOuter": 263,
|
|
35
|
+
"face.rightEyeOuter": 33,
|
|
36
|
+
"face.leftCheek": 425,
|
|
37
|
+
"face.rightCheek": 205,
|
|
38
|
+
"face.mouthCenter": 13,
|
|
39
|
+
"face.leftEarlobe": 454,
|
|
40
|
+
"face.rightEarlobe": 234
|
|
41
|
+
}, T = {
|
|
42
|
+
"face.center": [10, 152, 234, 454],
|
|
43
|
+
"face.leftEye": [263, 362, 387, 373],
|
|
44
|
+
"face.rightEye": [33, 133, 158, 145]
|
|
45
|
+
}, A = (n, i = 0) => Number.isFinite(n) ? n : i, p = (n) => Math.max(-1, Math.min(1, A(n))), g = { x: 0, y: 0, z: 0 }, v = (n, i, a = g, e = { x: 0, y: 0, z: 0, visibility: 0 }, r = !1) => {
|
|
46
|
+
const o = _(n, r), h = M[o];
|
|
47
|
+
if (h !== void 0) {
|
|
48
|
+
const t = i[h];
|
|
49
|
+
return t ? Object.assign(e, t) : null;
|
|
50
|
+
}
|
|
51
|
+
const c = T[o];
|
|
52
|
+
if (c) {
|
|
53
|
+
e.x = 0, e.y = 0, e.z = 0;
|
|
54
|
+
for (const t of c) {
|
|
55
|
+
const x = i[t];
|
|
56
|
+
if (!x) return null;
|
|
57
|
+
e.x += x.x, e.y += x.y, e.z += x.z;
|
|
58
|
+
}
|
|
59
|
+
return e.x /= c.length, e.y /= c.length, e.z /= c.length, e.visibility = 1, e;
|
|
60
|
+
}
|
|
61
|
+
if (n !== "face.custom" || i.length === 0) return null;
|
|
62
|
+
let l = 1 / 0, f = 1 / 0, s = -1 / 0, y = -1 / 0, E = 0;
|
|
63
|
+
for (const t of i)
|
|
64
|
+
l = Math.min(l, t.x), f = Math.min(f, t.y), s = Math.max(s, t.x), y = Math.max(y, t.y), E += t.z;
|
|
65
|
+
const u = s - l;
|
|
66
|
+
return e.x = (l + s) * 0.5 - R(r) * p(a.x) * u * 0.5, e.y = (f + y) * 0.5 - p(a.y) * (y - f) * 0.5, e.z = E / i.length - A(a.z) * u, e.visibility = 1, e;
|
|
67
|
+
}, K = {
|
|
68
|
+
left: M["face.leftEyeOuter"],
|
|
69
|
+
right: M["face.rightEyeOuter"]
|
|
70
|
+
};
|
|
71
|
+
export {
|
|
72
|
+
K as F,
|
|
73
|
+
M as a,
|
|
74
|
+
v as r,
|
|
75
|
+
L as u
|
|
76
|
+
};
|