@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,424 @@
|
|
|
1
|
+
var Q = Object.defineProperty;
|
|
2
|
+
var Z = (e, s, t) => s in e ? Q(e, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[s] = t;
|
|
3
|
+
var O = (e, s, t) => Z(e, typeof s != "symbol" ? s + "" : s, t);
|
|
4
|
+
import { jsx as z, jsxs as $ } from "react/jsx-runtime";
|
|
5
|
+
import { useThree as ee, useLoader as te, useFrame as _ } from "@react-three/fiber";
|
|
6
|
+
import { useMemo as g, useEffect as B, useRef as y, useState as W } from "react";
|
|
7
|
+
import * as d from "three";
|
|
8
|
+
import { R as se } from "./uv-DJU_XfmN.js";
|
|
9
|
+
import { c as Y, b as L } from "./selectors-BvJepq6H.js";
|
|
10
|
+
import { T as ne, s as H } from "./textures-BVwo9Z7z.js";
|
|
11
|
+
import { z as re, A as ae, C as oe, D as V, F as ie, j as E, G as U, S as ce, I as le } from "./index-CKRN-xJp.js";
|
|
12
|
+
import { p as ue, S as de, r as fe, F as he, L as me, R as ve, a as pe, b as xe, O as ge, I as Te } from "./landmarkMask-DHivVjJm.js";
|
|
13
|
+
import { u as X } from "./landmarks-DtCAFV_m.js";
|
|
14
|
+
const K = (e = 1, s = 1) => {
|
|
15
|
+
const t = new d.DataTexture(
|
|
16
|
+
new Uint8Array(e * s),
|
|
17
|
+
e,
|
|
18
|
+
s,
|
|
19
|
+
d.RedFormat,
|
|
20
|
+
d.UnsignedByteType
|
|
21
|
+
);
|
|
22
|
+
return t.minFilter = d.NearestFilter, t.magFilter = d.NearestFilter, t.generateMipmaps = !1, t.flipY = !1, t.unpackAlignment = 1, t.needsUpdate = !0, t;
|
|
23
|
+
}, Me = (e, s) => {
|
|
24
|
+
const t = e.image;
|
|
25
|
+
if (t.width !== s.width || t.height !== s.height) {
|
|
26
|
+
e.dispose();
|
|
27
|
+
const r = K(s.width, s.height);
|
|
28
|
+
return r.image.data.set(s.indices), r.needsUpdate = !0, r;
|
|
29
|
+
}
|
|
30
|
+
return t.data.set(s.indices), e.needsUpdate = !0, e;
|
|
31
|
+
}, ye = (e) => {
|
|
32
|
+
const s = g(
|
|
33
|
+
() => ({ texture: K(), version: -1, mask: null }),
|
|
34
|
+
[]
|
|
35
|
+
);
|
|
36
|
+
return B(() => () => s.texture.dispose(), [s]), { holder: s, sync: () => (e && (s.mask !== e || s.version !== e.version) && (s.texture = Me(s.texture, e), s.mask = e, s.version = e.version), s.texture) };
|
|
37
|
+
}, Ee = ({
|
|
38
|
+
space: e = "feed",
|
|
39
|
+
mirrored: s = !1,
|
|
40
|
+
maskWidth: t,
|
|
41
|
+
maskHeight: r,
|
|
42
|
+
feedWidth: n,
|
|
43
|
+
feedHeight: a,
|
|
44
|
+
zoom: o = 1
|
|
45
|
+
}, l = new d.Matrix3()) => {
|
|
46
|
+
let i = 1, c = 1;
|
|
47
|
+
if (e === "source") {
|
|
48
|
+
const m = re(
|
|
49
|
+
{ width: t, height: r },
|
|
50
|
+
{ width: n, height: a },
|
|
51
|
+
"cover",
|
|
52
|
+
o
|
|
53
|
+
);
|
|
54
|
+
m && (i = n / m.drawWidth, c = a / m.drawHeight);
|
|
55
|
+
}
|
|
56
|
+
const u = s ? -i : i, f = 0.5 - 0.5 * u, h = -c, v = 0.5 + 0.5 * c;
|
|
57
|
+
return l.set(u, 0, f, 0, h, v, 0, 0, 1);
|
|
58
|
+
}, be = 4, Se = `
|
|
59
|
+
varying vec2 vUv;
|
|
60
|
+
void main() {
|
|
61
|
+
vUv = uv;
|
|
62
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
63
|
+
}`, Re = `
|
|
64
|
+
uniform sampler2D cameraTexture;
|
|
65
|
+
uniform sampler2D maskTexture;
|
|
66
|
+
uniform sampler2D designTexture;
|
|
67
|
+
uniform float useDesign;
|
|
68
|
+
uniform vec4 labels;
|
|
69
|
+
uniform float labelCount;
|
|
70
|
+
uniform float invert;
|
|
71
|
+
uniform vec3 tint;
|
|
72
|
+
uniform float opacity;
|
|
73
|
+
uniform float blendMode;
|
|
74
|
+
uniform float feather;
|
|
75
|
+
uniform vec2 maskTexel;
|
|
76
|
+
uniform mat3 maskTransform;
|
|
77
|
+
varying vec2 vUv;
|
|
78
|
+
|
|
79
|
+
float member(vec2 uv) {
|
|
80
|
+
if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return 0.0;
|
|
81
|
+
float index = floor(texture2D(maskTexture, uv).r * 255.0 + 0.5);
|
|
82
|
+
float m = 0.0;
|
|
83
|
+
if (labelCount > 0.5 && abs(index - labels.x) < 0.5) m = 1.0;
|
|
84
|
+
if (labelCount > 1.5 && abs(index - labels.y) < 0.5) m = 1.0;
|
|
85
|
+
if (labelCount > 2.5 && abs(index - labels.z) < 0.5) m = 1.0;
|
|
86
|
+
if (labelCount > 3.5 && abs(index - labels.w) < 0.5) m = 1.0;
|
|
87
|
+
return invert > 0.5 ? 1.0 - m : m;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
void main() {
|
|
91
|
+
vec2 maskUv = (maskTransform * vec3(vUv, 1.0)).xy;
|
|
92
|
+
float coverage;
|
|
93
|
+
if (feather > 0.0) {
|
|
94
|
+
vec2 step = maskTexel * feather;
|
|
95
|
+
coverage = 0.0;
|
|
96
|
+
for (int y = -1; y <= 1; y++) {
|
|
97
|
+
for (int x = -1; x <= 1; x++) {
|
|
98
|
+
coverage += member(maskUv + vec2(float(x), float(y)) * step);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
coverage /= 9.0;
|
|
102
|
+
} else {
|
|
103
|
+
coverage = member(maskUv);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
vec3 base = texture2D(cameraTexture, vUv).rgb;
|
|
107
|
+
vec4 design = useDesign > 0.5 ? texture2D(designTexture, vUv) : vec4(1.0);
|
|
108
|
+
vec3 paint = tint * design.rgb;
|
|
109
|
+
vec3 blended = blendMode < 0.5
|
|
110
|
+
? paint
|
|
111
|
+
: blendMode < 1.5
|
|
112
|
+
? base * paint
|
|
113
|
+
: blendMode < 2.5
|
|
114
|
+
? 1.0 - (1.0 - base) * (1.0 - paint)
|
|
115
|
+
: mix(2.0 * base * paint, 1.0 - 2.0 * (1.0 - base) * (1.0 - paint), step(0.5, base));
|
|
116
|
+
|
|
117
|
+
gl_FragColor = vec4(blended, coverage * opacity * design.a);
|
|
118
|
+
#include <colorspace_fragment>
|
|
119
|
+
}`;
|
|
120
|
+
let A = null;
|
|
121
|
+
const j = () => (A || (A = new d.DataTexture(new Uint8Array([255, 255, 255, 255]), 1, 1), A.needsUpdate = !0), A), Ae = () => {
|
|
122
|
+
const e = {
|
|
123
|
+
cameraTexture: { value: null },
|
|
124
|
+
maskTexture: { value: null },
|
|
125
|
+
designTexture: { value: j() },
|
|
126
|
+
useDesign: { value: 0 },
|
|
127
|
+
labels: { value: new d.Vector4(-1, -1, -1, -1) },
|
|
128
|
+
labelCount: { value: 0 },
|
|
129
|
+
invert: { value: 0 },
|
|
130
|
+
tint: { value: new d.Color() },
|
|
131
|
+
opacity: { value: 1 },
|
|
132
|
+
blendMode: { value: 0 },
|
|
133
|
+
feather: { value: 0 },
|
|
134
|
+
maskTexel: { value: new d.Vector2(1, 1) },
|
|
135
|
+
maskTransform: { value: new d.Matrix3() }
|
|
136
|
+
};
|
|
137
|
+
return new d.ShaderMaterial({
|
|
138
|
+
uniforms: e,
|
|
139
|
+
vertexShader: Se,
|
|
140
|
+
fragmentShader: Re,
|
|
141
|
+
transparent: !0,
|
|
142
|
+
depthTest: !1,
|
|
143
|
+
depthWrite: !1,
|
|
144
|
+
toneMapped: !1,
|
|
145
|
+
side: d.DoubleSide
|
|
146
|
+
});
|
|
147
|
+
}, _e = (e, s) => ue(s).map((t) => e ? e.labels.indexOf(t) : -1).filter((t) => t >= 0).slice(0, be), q = (e, s) => e && e.version > 0 ? _e(e, s) : [], we = (e, {
|
|
148
|
+
cameraTexture: s,
|
|
149
|
+
maskTexture: t,
|
|
150
|
+
mask: r,
|
|
151
|
+
settings: n,
|
|
152
|
+
designTexture: a = null,
|
|
153
|
+
feedWidth: o = 0,
|
|
154
|
+
feedHeight: l = 0
|
|
155
|
+
}) => {
|
|
156
|
+
const i = e.uniforms, c = q(r, n.label);
|
|
157
|
+
i.cameraTexture.value = s, i.maskTexture.value = t, i.designTexture.value = a ?? j(), i.useDesign.value = a ? 1 : 0, i.labels.value.set(c[0] ?? -1, c[1] ?? -1, c[2] ?? -1, c[3] ?? -1), i.labelCount.value = c.length, i.invert.value = n.invert ? 1 : 0, i.tint.value.set(n.color), i.opacity.value = n.opacity, i.blendMode.value = de.indexOf(n.blendMode), i.feather.value = n.feather;
|
|
158
|
+
const u = (r == null ? void 0 : r.width) ?? 1, f = (r == null ? void 0 : r.height) ?? 1;
|
|
159
|
+
return i.maskTexel.value.set(1 / u, 1 / f), Ee(
|
|
160
|
+
{
|
|
161
|
+
space: (r == null ? void 0 : r.space) ?? "feed",
|
|
162
|
+
mirrored: n.mirrored,
|
|
163
|
+
maskWidth: u,
|
|
164
|
+
maskHeight: f,
|
|
165
|
+
feedWidth: o,
|
|
166
|
+
feedHeight: l
|
|
167
|
+
},
|
|
168
|
+
i.maskTransform.value
|
|
169
|
+
), e;
|
|
170
|
+
}, Ce = (e) => {
|
|
171
|
+
const s = g(Ae, []);
|
|
172
|
+
return B(() => () => s.dispose(), [s]), we(s, e), s;
|
|
173
|
+
}, Qe = ({
|
|
174
|
+
mask: e,
|
|
175
|
+
texture: s,
|
|
176
|
+
material: t,
|
|
177
|
+
renderOrder: r = se.BACKGROUND + 10,
|
|
178
|
+
visible: n = !0,
|
|
179
|
+
...a
|
|
180
|
+
}) => {
|
|
181
|
+
const o = fe(a), { camera: l, size: i } = ee(), c = Y() ?? null, u = te(
|
|
182
|
+
d.TextureLoader,
|
|
183
|
+
typeof s == "string" ? s : ne
|
|
184
|
+
), f = typeof s == "string" ? u : s ?? null;
|
|
185
|
+
f && f.colorSpace !== d.SRGBColorSpace && (f.colorSpace = d.SRGBColorSpace, f.needsUpdate = !0);
|
|
186
|
+
const { holder: h, sync: v } = ye(e), m = c == null ? void 0 : c.image, T = (m == null ? void 0 : m.width) ?? 0, b = (m == null ? void 0 : m.height) ?? 0, M = Ce({
|
|
187
|
+
cameraTexture: c,
|
|
188
|
+
maskTexture: h.texture,
|
|
189
|
+
mask: e,
|
|
190
|
+
settings: o,
|
|
191
|
+
designTexture: f,
|
|
192
|
+
feedWidth: T,
|
|
193
|
+
feedHeight: b
|
|
194
|
+
}), S = y(null), [, R] = W(0);
|
|
195
|
+
_(() => {
|
|
196
|
+
const p = v();
|
|
197
|
+
S.current !== p && (S.current = p, M.uniforms.maskTexture.value = p, R((N) => N + 1));
|
|
198
|
+
});
|
|
199
|
+
const w = g(() => {
|
|
200
|
+
const p = l;
|
|
201
|
+
if (!p.isPerspectiveCamera) return [10, 10];
|
|
202
|
+
const N = (p.position.z || 5) + 1, D = 2 * Math.tan(p.fov * Math.PI / 360) * N;
|
|
203
|
+
return [D * (i.width / i.height), D];
|
|
204
|
+
}, [l, i]);
|
|
205
|
+
if (!c || !n) return null;
|
|
206
|
+
const J = {
|
|
207
|
+
cameraTexture: c,
|
|
208
|
+
maskTexture: h.texture,
|
|
209
|
+
maskTransform: M.uniforms.maskTransform.value,
|
|
210
|
+
// Empty until the mask has data, exactly like the built-in material.
|
|
211
|
+
labelIndices: q(e, o.label),
|
|
212
|
+
mask: e,
|
|
213
|
+
settings: o
|
|
214
|
+
}, C = t ? typeof t == "function" ? t(J) : t : M, I = C instanceof d.Material ? C : void 0;
|
|
215
|
+
return /* @__PURE__ */ z("group", { position: [0, 0, -1], children: /* @__PURE__ */ $(
|
|
216
|
+
"mesh",
|
|
217
|
+
{
|
|
218
|
+
renderOrder: r,
|
|
219
|
+
frustumCulled: !1,
|
|
220
|
+
material: I,
|
|
221
|
+
children: [
|
|
222
|
+
/* @__PURE__ */ z("planeGeometry", { args: w }),
|
|
223
|
+
I ? null : C
|
|
224
|
+
]
|
|
225
|
+
},
|
|
226
|
+
I ? "instance" : "node"
|
|
227
|
+
) });
|
|
228
|
+
}, Ie = {
|
|
229
|
+
left: {
|
|
230
|
+
/** Iris center. */
|
|
231
|
+
center: 473,
|
|
232
|
+
/** Iris ring: outer, top, inner, bottom (image order: right, up, left, down for the left eye). */
|
|
233
|
+
ring: [474, 475, 476, 477],
|
|
234
|
+
innerCorner: 362,
|
|
235
|
+
outerCorner: 263,
|
|
236
|
+
upperLid: 386,
|
|
237
|
+
lowerLid: 374
|
|
238
|
+
},
|
|
239
|
+
right: {
|
|
240
|
+
center: 468,
|
|
241
|
+
ring: [469, 470, 471, 472],
|
|
242
|
+
innerCorner: 133,
|
|
243
|
+
outerCorner: 33,
|
|
244
|
+
upperLid: 159,
|
|
245
|
+
lowerLid: 145
|
|
246
|
+
}
|
|
247
|
+
}, Ne = 478, Oe = 0.2, x = () => ({ x: 0, y: 0, z: 0 }), G = (e) => ({
|
|
248
|
+
side: e,
|
|
249
|
+
detected: !1,
|
|
250
|
+
center: x(),
|
|
251
|
+
trackerCenter: { x: 0, y: 0, z: 0 },
|
|
252
|
+
ring: [x(), x(), x(), x()],
|
|
253
|
+
radius: 0,
|
|
254
|
+
eyeCenter: x(),
|
|
255
|
+
eyeWidth: 0,
|
|
256
|
+
openness: 0,
|
|
257
|
+
offset: { x: 0, y: 0 },
|
|
258
|
+
confidence: 0
|
|
259
|
+
}), Ze = (e = 0) => ({
|
|
260
|
+
version: 0,
|
|
261
|
+
timestampMs: 0,
|
|
262
|
+
faceIndex: e,
|
|
263
|
+
detected: !1,
|
|
264
|
+
held: !1,
|
|
265
|
+
confidence: 1,
|
|
266
|
+
left: G("left"),
|
|
267
|
+
right: G("right")
|
|
268
|
+
}), F = (e, s) => {
|
|
269
|
+
e.x = s.x, e.y = s.y, e.z = s.z;
|
|
270
|
+
}, k = (e) => Math.max(-1, Math.min(1, e)), P = (e, s, t, r = 1, n = !1) => {
|
|
271
|
+
const a = Ie[ae(s, n)];
|
|
272
|
+
if (!e || e.length < Ne)
|
|
273
|
+
return t.detected = !1, t.confidence = 0, !1;
|
|
274
|
+
const o = e[a.center];
|
|
275
|
+
F(t.center, o), oe(o, t.trackerCenter);
|
|
276
|
+
for (let h = 0; h < 4; h += 1) F(t.ring[h], e[a.ring[h]]);
|
|
277
|
+
t.radius = Math.abs(t.ring[0].x - t.ring[2].x) / 2;
|
|
278
|
+
const l = e[a.innerCorner], i = e[a.outerCorner];
|
|
279
|
+
t.eyeCenter.x = (l.x + i.x) / 2, t.eyeCenter.y = (l.y + i.y) / 2, t.eyeCenter.z = (l.z + i.z) / 2, t.eyeWidth = Math.hypot(l.x - i.x, l.y - i.y);
|
|
280
|
+
const c = Math.abs(e[a.lowerLid].y - e[a.upperLid].y);
|
|
281
|
+
t.openness = t.eyeWidth > 0 ? c / t.eyeWidth : 0;
|
|
282
|
+
const u = t.eyeWidth / 2, f = n ? -1 : 1;
|
|
283
|
+
return t.offset.x = u > 0 ? k(f * (o.x - t.eyeCenter.x) / u) : 0, t.offset.y = u > 0 ? k((t.eyeCenter.y - o.y) / u) : 0, t.detected = !0, t.confidence = Math.max(0, Math.min(1, t.openness / Oe)) * r, !0;
|
|
284
|
+
}, $e = (e, s, t, r = {}) => {
|
|
285
|
+
const n = r.held ?? !1, a = r.faceConfidence ?? (n ? 0 : 1), o = r.mirrored ?? !1;
|
|
286
|
+
e.faceIndex = r.faceIndex ?? e.faceIndex;
|
|
287
|
+
const l = P(s, "left", e.left, a, o), i = P(s, "right", e.right, a, o);
|
|
288
|
+
return e.detected = l && i, e.held = e.detected && n, e.confidence = e.detected ? a : 0, e.timestampMs = t, e.version += 1, e;
|
|
289
|
+
}, Le = () => ({ x: 0, y: 0, z: 0, vx: 0, vy: 0, vz: 0, sampleMs: 0, seen: !1 });
|
|
290
|
+
class et {
|
|
291
|
+
constructor(s = 250) {
|
|
292
|
+
O(this, "slots", {});
|
|
293
|
+
O(this, "maxGapMs");
|
|
294
|
+
this.maxGapMs = s;
|
|
295
|
+
}
|
|
296
|
+
reset() {
|
|
297
|
+
this.slots = {};
|
|
298
|
+
}
|
|
299
|
+
/** Record a fresh inference sample for `key` (e.g. "left"). */
|
|
300
|
+
observe(s, t, r) {
|
|
301
|
+
const n = this.slots[s] ?? (this.slots[s] = Le()), a = (r - n.sampleMs) / 1e3;
|
|
302
|
+
n.seen && a > 0 && a * 1e3 <= this.maxGapMs ? (n.vx = 0.5 * n.vx + 0.5 * ((t.x - n.x) / a), n.vy = 0.5 * n.vy + 0.5 * ((t.y - n.y) / a), n.vz = 0.5 * n.vz + 0.5 * ((t.z - n.z) / a)) : (n.vx = 0, n.vy = 0, n.vz = 0), n.x = t.x, n.y = t.y, n.z = t.z, n.sampleMs = r, n.seen = !0;
|
|
303
|
+
}
|
|
304
|
+
/** Write the extrapolated position of `key` into `out`; a no-op before the first sample. */
|
|
305
|
+
apply(s, t, r, n) {
|
|
306
|
+
const a = this.slots[s];
|
|
307
|
+
if (!a || !a.seen || r <= 0) return n;
|
|
308
|
+
const o = Math.max(0, Math.min(t - a.sampleMs, r)) / 1e3;
|
|
309
|
+
return n.x = a.x + a.vx * o, n.y = a.y + a.vy * o, n.z = a.z + a.vz * o, n;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
const Ue = ["bg", "face_skin", "brows", "eyes", "lips", "mouth"], De = [
|
|
313
|
+
{ label: "face_skin", polygons: [he] },
|
|
314
|
+
{ label: "brows", polygons: [me, ve] },
|
|
315
|
+
{ label: "eyes", polygons: [pe, xe] },
|
|
316
|
+
{ label: "lips", polygons: [ge] },
|
|
317
|
+
{ label: "mouth", polygons: [Te] }
|
|
318
|
+
], ze = (e, s, { regions: t, clear: r = !0 } = {}, n = []) => {
|
|
319
|
+
r && V(e), De.forEach(({ label: a, polygons: o }) => {
|
|
320
|
+
if (t && !t.includes(a)) return;
|
|
321
|
+
const l = e.labels.indexOf(a);
|
|
322
|
+
l < 0 || o.forEach(
|
|
323
|
+
(i) => ie(e, s, i, l, n)
|
|
324
|
+
);
|
|
325
|
+
});
|
|
326
|
+
}, Ge = (e) => {
|
|
327
|
+
const s = e == null ? void 0 : e.image, t = (s == null ? void 0 : s.width) ?? 0, r = (s == null ? void 0 : s.height) ?? 0;
|
|
328
|
+
return t > 0 && r > 0 ? { width: t, height: r } : { width: 1, height: 1 };
|
|
329
|
+
}, Fe = (e, s) => {
|
|
330
|
+
const t = s / Math.max(e.width, e.height, 1);
|
|
331
|
+
return {
|
|
332
|
+
width: Math.max(1, Math.round(e.width * t)),
|
|
333
|
+
height: Math.max(1, Math.round(e.height * t))
|
|
334
|
+
};
|
|
335
|
+
}, tt = ({
|
|
336
|
+
faceIndex: e = "all",
|
|
337
|
+
regions: s,
|
|
338
|
+
resolution: t = 256,
|
|
339
|
+
maxUpdateFps: r,
|
|
340
|
+
holdMs: n = 250,
|
|
341
|
+
predictMs: a = 0
|
|
342
|
+
} = {}) => {
|
|
343
|
+
const o = L(E.FACE_TRACKER), l = Y(), i = Ge(l), c = Fe(i, t), u = g(
|
|
344
|
+
() => U(c.width, c.height, Ue),
|
|
345
|
+
[c.width, c.height]
|
|
346
|
+
), f = y([]), h = y(-1 / 0), v = y(null);
|
|
347
|
+
v.current || (v.current = new le({ holdMs: n, predictMs: a }));
|
|
348
|
+
const m = v.current;
|
|
349
|
+
return m.setOptions({ holdMs: n, predictMs: a }), _((T) => {
|
|
350
|
+
var R;
|
|
351
|
+
if (H(T.clock.elapsedTime, h.current, r)) return;
|
|
352
|
+
h.current = T.clock.elapsedTime;
|
|
353
|
+
const b = ((R = o == null ? void 0 : o.detectionResults) == null ? void 0 : R.faceLandmarks) ?? [], M = e === "all" ? b : [b[e] ?? []], S = m.update(M, T.clock.elapsedTime * 1e3);
|
|
354
|
+
V(u), S.forEach(
|
|
355
|
+
(w) => ze(u, w, { regions: s, clear: !1 }, f.current)
|
|
356
|
+
), u.version += 1;
|
|
357
|
+
}), u;
|
|
358
|
+
}, ke = ["bg", "person"], st = ({
|
|
359
|
+
maxUpdateFps: e = 15,
|
|
360
|
+
active: s = !0
|
|
361
|
+
} = {}) => {
|
|
362
|
+
X(E.BACKGROUND_SEGMENTATION, { type: "portrait" }, s);
|
|
363
|
+
const t = L(E.BACKGROUND_SEGMENTATION), r = g(() => U(1, 1, ke), []), n = y(-1 / 0);
|
|
364
|
+
return _((a) => {
|
|
365
|
+
var c;
|
|
366
|
+
if (H(a.clock.elapsedTime, n.current, e)) return;
|
|
367
|
+
const o = (c = t == null ? void 0 : t.getRawSegmentationData) == null ? void 0 : c.call(t);
|
|
368
|
+
if (!(o != null && o.maskData) || o.width <= 0 || o.height <= 0) return;
|
|
369
|
+
n.current = a.clock.elapsedTime, (r.width !== o.width || r.height !== o.height) && (r.width = o.width, r.height = o.height, r.indices = new Uint8Array(o.width * o.height));
|
|
370
|
+
const l = o.maskData, i = r.indices;
|
|
371
|
+
for (let u = 0; u < i.length; u += 1) i[u] = l[u] > 127 ? 0 : 1;
|
|
372
|
+
r.version += 1, r.timestampMs = o.timestampMs;
|
|
373
|
+
}), r;
|
|
374
|
+
}, Pe = ({
|
|
375
|
+
active: e = !0,
|
|
376
|
+
...s
|
|
377
|
+
} = {}) => {
|
|
378
|
+
const { ready: t, error: r } = X(
|
|
379
|
+
E.SEMANTIC_SEGMENTATION,
|
|
380
|
+
s,
|
|
381
|
+
e
|
|
382
|
+
), n = L(E.SEMANTIC_SEGMENTATION), a = s.preset ?? "hair", o = g(
|
|
383
|
+
() => U(1, 1, ce[a].labels),
|
|
384
|
+
[a]
|
|
385
|
+
), [l, i] = W({ status: "loading", error: null });
|
|
386
|
+
_(() => {
|
|
387
|
+
const h = (n == null ? void 0 : n.getStatus()) ?? "loading", v = (n == null ? void 0 : n.getError()) ?? null;
|
|
388
|
+
(h !== l.status || v !== l.error) && i({ status: h, error: v });
|
|
389
|
+
});
|
|
390
|
+
const c = (n == null ? void 0 : n.getMask()) ?? o, u = r ?? l.error, f = u ? "error" : t ? l.status : "loading";
|
|
391
|
+
return { mask: c, status: f, error: u, labels: c.labels };
|
|
392
|
+
}, nt = (e = {}) => Pe({ ...e, preset: "hair" });
|
|
393
|
+
export {
|
|
394
|
+
De as F,
|
|
395
|
+
et as I,
|
|
396
|
+
be as M,
|
|
397
|
+
ke as P,
|
|
398
|
+
Qe as S,
|
|
399
|
+
Ie as a,
|
|
400
|
+
Ne as b,
|
|
401
|
+
Ze as c,
|
|
402
|
+
nt as d,
|
|
403
|
+
st as e,
|
|
404
|
+
Pe as f,
|
|
405
|
+
Oe as g,
|
|
406
|
+
P as h,
|
|
407
|
+
G as i,
|
|
408
|
+
Re as j,
|
|
409
|
+
Se as k,
|
|
410
|
+
Ae as l,
|
|
411
|
+
_e as m,
|
|
412
|
+
we as n,
|
|
413
|
+
Ce as o,
|
|
414
|
+
K as p,
|
|
415
|
+
Me as q,
|
|
416
|
+
q as r,
|
|
417
|
+
ye as s,
|
|
418
|
+
Fe as t,
|
|
419
|
+
$e as u,
|
|
420
|
+
Ee as v,
|
|
421
|
+
ze as w,
|
|
422
|
+
tt as x,
|
|
423
|
+
Ue as y
|
|
424
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { XRQualityConfigInput, XRQualitySignals, XRQualityState } from './types';
|
|
2
|
+
/** Static device signals (memory, cores) read once. */
|
|
3
|
+
export declare const readDeviceSignals: () => Pick<XRQualitySignals, "deviceMemoryGb" | "hardwareConcurrency">;
|
|
4
|
+
export type XRQualityControllerProps = {
|
|
5
|
+
/** Partial config merged over the defaults (`resolveQualityConfig`). */
|
|
6
|
+
config?: XRQualityConfigInput;
|
|
7
|
+
/** Externally supplied thermal state (a native shell can forward the OS value). */
|
|
8
|
+
thermal?: XRQualitySignals["thermal"];
|
|
9
|
+
/**
|
|
10
|
+
* Called whenever a different tier is applied (automatic or manual). The
|
|
11
|
+
* floor-level `signals.thermal === "suspected"` flag changes no tier, so it
|
|
12
|
+
* does not fire this; read `useXRQuality().signals` to react to it.
|
|
13
|
+
*/
|
|
14
|
+
onDecision?: (state: XRQualityState) => void;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Samples main-thread frame time, tracker inference and memory on
|
|
18
|
+
* `budget.sampleMs`, steps the pure controller, publishes the state to the
|
|
19
|
+
* session store and applies the tier: `targetFps` + `analysisScale` through
|
|
20
|
+
* the session perf config, `renderScale` through `<XRScene>` (which reads
|
|
21
|
+
* the state), and `camRes` only when the tier sets `rebindCamera`. Mounted by
|
|
22
|
+
* `<XRProvider>` by default; mount it yourself with `quality={false}` on the
|
|
23
|
+
* provider to place it or configure it differently.
|
|
24
|
+
*/
|
|
25
|
+
export declare const XRQualityController: ({ config, thermal, onDecision }: XRQualityControllerProps) => null;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { XRPerformanceBudget, XRQualityConfig, XRQualityConfigInput, XRQualityReason, XRQualitySignals, XRQualityState, XRQualityTier } from './types';
|
|
2
|
+
export declare const DEFAULT_QUALITY_TIERS: XRQualityTier[];
|
|
3
|
+
export declare const DEFAULT_PERFORMANCE_BUDGET: XRPerformanceBudget;
|
|
4
|
+
export declare const DEFAULT_QUALITY_CONFIG: XRQualityConfig;
|
|
5
|
+
export declare const EMPTY_QUALITY_SIGNALS: XRQualitySignals;
|
|
6
|
+
/** Validate a tier; invalid knobs are dropped, out-of-range ones clamped. */
|
|
7
|
+
export declare const resolveQualityTier: (tier: Partial<XRQualityTier>, index: number) => XRQualityTier;
|
|
8
|
+
export declare const resolvePerformanceBudget: (budget?: Partial<XRPerformanceBudget>) => XRPerformanceBudget;
|
|
9
|
+
/** Validate a partial config into a complete, serializable one. */
|
|
10
|
+
export declare const resolveQualityConfig: (config?: XRQualityConfigInput) => XRQualityConfig;
|
|
11
|
+
/** Starting tier from static device signals: low-memory / few-core devices start one step down. */
|
|
12
|
+
export declare const resolveInitialTierIndex: (config: XRQualityConfig, signals: XRQualitySignals) => number;
|
|
13
|
+
export declare const createQualityState: (config: XRQualityConfig, signals?: XRQualitySignals, now?: number) => XRQualityState;
|
|
14
|
+
/** Why a sample is over budget, most severe first; `null` when within budget. */
|
|
15
|
+
export declare const judgeSample: (signals: XRQualitySignals, budget: XRPerformanceBudget) => Exclude<XRQualityReason, "init" | "recovered" | "manual" | "locked" | "reset"> | null;
|
|
16
|
+
/**
|
|
17
|
+
* One controller step. Pure: returns the next state (same object when
|
|
18
|
+
* nothing changed). Bounded to `[maxTier, minTier]`, hysteretic (streaks),
|
|
19
|
+
* rate-limited (cooldown), reversible (steps back up after `upgradeAfter`
|
|
20
|
+
* good samples), and inert while `locked` or `adaptive: false`.
|
|
21
|
+
*/
|
|
22
|
+
export declare const stepQualityController: (state: XRQualityState, signals: XRQualitySignals, config: XRQualityConfig, now: number) => XRQualityState;
|
|
23
|
+
/** Manual tier selection (does not lock). */
|
|
24
|
+
export declare const setQualityTier: (state: XRQualityState, config: XRQualityConfig, ref: number | string, now: number) => XRQualityState;
|
|
25
|
+
export declare const lockQuality: (state: XRQualityState, config: XRQualityConfig, locked: boolean, now: number) => XRQualityState;
|
|
26
|
+
/**
|
|
27
|
+
* The tier the controller must apply now, or `null` when `lastApplied` is
|
|
28
|
+
* already it. Compares tier identity (the decision may have been written to
|
|
29
|
+
* the store by `useXRQuality().setTier` between two samples, so comparing
|
|
30
|
+
* decisions would miss it).
|
|
31
|
+
*/
|
|
32
|
+
export declare const tierToApply: (state: XRQualityState, lastApplied: XRQualityTier | null) => XRQualityTier | null;
|
|
33
|
+
export declare const resetQuality: (config: XRQualityConfig, signals: XRQualitySignals, now: number) => XRQualityState;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { XRPerformanceBudget, XRQualityConfig, XRQualityConfigInput, XRQualityDecision, XRQualityReason, XRQualitySignals, XRQualityState, XRQualityTier, } from './types';
|
|
2
|
+
export { XRQualityController, readDeviceSignals } from './XRQualityController';
|
|
3
|
+
export type { XRQualityControllerProps } from './XRQualityController';
|
|
4
|
+
export { useXRQuality } from './useXRQuality';
|
|
5
|
+
export type { UseXRQualityResult } from './useXRQuality';
|
|
6
|
+
export { DEFAULT_PERFORMANCE_BUDGET, DEFAULT_QUALITY_CONFIG, DEFAULT_QUALITY_TIERS, EMPTY_QUALITY_SIGNALS, createQualityState, judgeSample, lockQuality, resetQuality, resolveInitialTierIndex, resolvePerformanceBudget, resolveQualityConfig, resolveQualityTier, setQualityTier, stepQualityController, tierToApply, } from './controller';
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One quality level. Every knob is optional; an omitted knob keeps the
|
|
3
|
+
* session's own value. Tiers are plain JSON so they can be persisted.
|
|
4
|
+
*/
|
|
5
|
+
export type XRQualityTier = {
|
|
6
|
+
name: string;
|
|
7
|
+
/** Inference cap applied to every tracker without its own `targetFps`. */
|
|
8
|
+
targetFps?: number;
|
|
9
|
+
/** Multiplier on the renderer's device pixel ratio cap (0.25..1). */
|
|
10
|
+
renderScale?: number;
|
|
11
|
+
/** Multiplier on every model's analysis resolution (0.25..1). */
|
|
12
|
+
analysisScale?: number;
|
|
13
|
+
/** Camera capture width; applied only when `rebindCamera` is true (a rebind re-opens the camera). */
|
|
14
|
+
camRes?: number;
|
|
15
|
+
/** Allow this tier to re-open the webcam to apply `camRes`. Default false. */
|
|
16
|
+
rebindCamera?: boolean;
|
|
17
|
+
};
|
|
18
|
+
/** Thresholds the controller judges samples against. Plain JSON. */
|
|
19
|
+
export type XRPerformanceBudget = {
|
|
20
|
+
/** Frame time above which a sample is "bad" (ms). Default 1000 / 24. */
|
|
21
|
+
maxFrameMs: number;
|
|
22
|
+
/** Total tracker inference per frame above which a sample is "bad" (ms). Default 24. */
|
|
23
|
+
maxInferenceMs: number;
|
|
24
|
+
/** JS heap usage above which a sample is "bad" (MB); `null` ignores memory. Default null. */
|
|
25
|
+
maxMemoryMb: number | null;
|
|
26
|
+
/** Sampling period (ms). Default 1000. */
|
|
27
|
+
sampleMs: number;
|
|
28
|
+
/** Consecutive bad samples before stepping down. Default 2. */
|
|
29
|
+
downgradeAfter: number;
|
|
30
|
+
/** Consecutive good samples (frame time under `maxFrameMs × upgradeHeadroom`) before stepping up. Default 6. */
|
|
31
|
+
upgradeAfter: number;
|
|
32
|
+
/** A "good" sample must leave this much headroom (0..1 of `maxFrameMs`). Default 0.75. */
|
|
33
|
+
upgradeHeadroom: number;
|
|
34
|
+
/** Minimum time between two automatic changes (ms). Default 4000. */
|
|
35
|
+
cooldownMs: number;
|
|
36
|
+
};
|
|
37
|
+
/** What the controller measured in one sample. */
|
|
38
|
+
export type XRQualitySignals = {
|
|
39
|
+
/** Mean main-thread frame time over the sample (ms); `null` before the first sample. */
|
|
40
|
+
frameMs: number | null;
|
|
41
|
+
/** Frames per second over the sample. */
|
|
42
|
+
fps: number | null;
|
|
43
|
+
/** Sum of the last inference of every running model (ms). */
|
|
44
|
+
inferenceMs: number | null;
|
|
45
|
+
/** Feed frames per second the session blitted. */
|
|
46
|
+
feedFps: number | null;
|
|
47
|
+
/** JS heap in use (MB) where `performance.memory` exists. */
|
|
48
|
+
memoryMb: number | null;
|
|
49
|
+
/** `navigator.deviceMemory` (GB) where exposed. */
|
|
50
|
+
deviceMemoryGb: number | null;
|
|
51
|
+
hardwareConcurrency: number | null;
|
|
52
|
+
/**
|
|
53
|
+
* Thermal state. Browsers expose none, so this is `"unknown"` unless the
|
|
54
|
+
* app supplies one (a native shell can); `"suspected"` is set by the
|
|
55
|
+
* controller when frame time keeps degrading at the lowest tier.
|
|
56
|
+
*/
|
|
57
|
+
thermal: "unknown" | "nominal" | "suspected" | "critical";
|
|
58
|
+
};
|
|
59
|
+
export type XRQualityReason = "init" | "frame-time" | "inference" | "memory" | "thermal" | "recovered" | "manual" | "locked" | "reset";
|
|
60
|
+
export type XRQualityDecision = {
|
|
61
|
+
/** Index into `tiers`. */
|
|
62
|
+
index: number;
|
|
63
|
+
tier: XRQualityTier;
|
|
64
|
+
reason: XRQualityReason;
|
|
65
|
+
/** `performance.now()` of the decision. */
|
|
66
|
+
at: number;
|
|
67
|
+
};
|
|
68
|
+
/** Controller state; serializable except for nothing (plain data). */
|
|
69
|
+
export type XRQualityState = {
|
|
70
|
+
index: number;
|
|
71
|
+
/** When true the controller stops adjusting; `setTier` still works. */
|
|
72
|
+
locked: boolean;
|
|
73
|
+
badStreak: number;
|
|
74
|
+
goodStreak: number;
|
|
75
|
+
lastChangeAt: number;
|
|
76
|
+
decision: XRQualityDecision;
|
|
77
|
+
/** Last decisions, newest first (bounded). */
|
|
78
|
+
history: XRQualityDecision[];
|
|
79
|
+
signals: XRQualitySignals;
|
|
80
|
+
};
|
|
81
|
+
export type XRQualityConfig = {
|
|
82
|
+
/** Ordered best → worst. Default `DEFAULT_QUALITY_TIERS`. */
|
|
83
|
+
tiers: XRQualityTier[];
|
|
84
|
+
budget: XRPerformanceBudget;
|
|
85
|
+
/** Start here (index or name); default: picked from device signals. */
|
|
86
|
+
initialTier?: number | string;
|
|
87
|
+
/** The controller may step down to this tier at most (index or name). Default the last. */
|
|
88
|
+
minTier?: number | string;
|
|
89
|
+
/** The controller may step up to this tier at most. Default the first. */
|
|
90
|
+
maxTier?: number | string;
|
|
91
|
+
/** `false` keeps the initial tier and never adjusts (still observable). Default true. */
|
|
92
|
+
adaptive: boolean;
|
|
93
|
+
/** Bound of `history`. Default 20. */
|
|
94
|
+
historySize: number;
|
|
95
|
+
};
|
|
96
|
+
/** What creators pass: everything optional, tiers and budget partial. `resolveQualityConfig` fills it in. */
|
|
97
|
+
export type XRQualityConfigInput = Partial<Omit<XRQualityConfig, "tiers" | "budget">> & {
|
|
98
|
+
tiers?: Array<Partial<XRQualityTier>>;
|
|
99
|
+
budget?: Partial<XRPerformanceBudget>;
|
|
100
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { XRQualityConfigInput, XRQualityDecision, XRQualitySignals, XRQualityState, XRQualityTier } from './types';
|
|
2
|
+
export type UseXRQualityResult = {
|
|
3
|
+
/** Current tier (`null` until the controller publishes). */
|
|
4
|
+
tier: XRQualityTier | null;
|
|
5
|
+
index: number;
|
|
6
|
+
tiers: XRQualityTier[];
|
|
7
|
+
decision: XRQualityDecision | null;
|
|
8
|
+
history: XRQualityDecision[];
|
|
9
|
+
signals: XRQualitySignals | null;
|
|
10
|
+
locked: boolean;
|
|
11
|
+
/** Pick a tier by index or name (does not lock; the controller may move again after the cooldown). */
|
|
12
|
+
setTier: (ref: number | string) => void;
|
|
13
|
+
/** Freeze the current tier (`lock()`), or let the controller adjust again (`unlock()`). */
|
|
14
|
+
lock: () => void;
|
|
15
|
+
unlock: () => void;
|
|
16
|
+
/** Back to the initial tier for this device; clears the lock. */
|
|
17
|
+
reset: () => void;
|
|
18
|
+
state: XRQualityState | null;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Observe and steer adaptive quality. The controller (mounted by
|
|
22
|
+
* `<XRProvider>` by default) publishes its state AND its resolved config to
|
|
23
|
+
* the session store; this hook reads both, so `tiers` and name-based
|
|
24
|
+
* `setTier("medium")` resolve against the provider's tiers without passing
|
|
25
|
+
* the config again. Manual decisions are written back through the store and
|
|
26
|
+
* applied by the controller on its next sample.
|
|
27
|
+
*/
|
|
28
|
+
export declare const useXRQuality: (config?: XRQualityConfigInput) => UseXRQualityResult;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type LayerDomain = "group" | "screen2d" | "scene3d" | "webgl" | "shader" | "custom";
|
|
2
|
+
export type LayerNode = {
|
|
3
|
+
id: string;
|
|
4
|
+
domain: LayerDomain;
|
|
5
|
+
type: string;
|
|
6
|
+
label: string;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
visible: boolean;
|
|
9
|
+
locked?: boolean;
|
|
10
|
+
expanded?: boolean;
|
|
11
|
+
renderOrder: number;
|
|
12
|
+
children?: LayerNode[];
|
|
13
|
+
meta?: Record<string, unknown>;
|
|
14
|
+
};
|
|
15
|
+
export declare const LAYER_STACK_BASE_RENDER_ORDER = 1000;
|
|
16
|
+
export declare function normalizeLayerStack(layers: LayerNode[], baseRenderOrder?: number): {
|
|
17
|
+
renderOrder: number;
|
|
18
|
+
id: string;
|
|
19
|
+
domain: LayerDomain;
|
|
20
|
+
type: string;
|
|
21
|
+
label: string;
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
visible: boolean;
|
|
24
|
+
locked?: boolean;
|
|
25
|
+
expanded?: boolean;
|
|
26
|
+
children?: LayerNode[];
|
|
27
|
+
meta?: Record<string, unknown>;
|
|
28
|
+
}[];
|
|
29
|
+
export declare function moveLayerNode(layers: LayerNode[], activeId: string, overId: string): LayerNode[];
|