@vincentt-xr/sdk 2.0.0-alpha.1 → 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 +7984 -120
- 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 +67 -3
- 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 +70 -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 +2 -2
- package/dist/components/FaceRetouch/Background.d.ts +7 -6
- package/dist/components/FaceRetouch/FaceRetouch.d.ts +52 -0
- package/dist/components/FaceRetouch/index.d.ts +2 -8
- package/dist/components/FaceRetouch/landmarkMask.d.ts +0 -5
- package/dist/components/FaceRetouch/renderState.d.ts +19 -0
- package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +3 -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 -3
- package/dist/components/Faceless/Faceless.d.ts +51 -0
- package/dist/components/Faceless/index.d.ts +2 -0
- package/dist/components/GestureListener/index.d.ts +11 -0
- package/dist/components/HairLock/HairLock.d.ts +39 -0
- package/dist/components/HairLock/index.d.ts +2 -0
- package/dist/components/HairLock/lockGeometry.d.ts +15 -0
- package/dist/components/HandCutout/index.d.ts +35 -0
- package/dist/components/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 +1 -1
- 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 +10 -0
- package/dist/components/HandTracking2D/HandVisual.d.ts +1 -1
- package/dist/components/HandTracking2D/index.d.ts +1 -1
- package/dist/components/HandTracking2DController/index.d.ts +1 -1
- package/dist/components/HandTracking3D/index.d.ts +1 -1
- 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 -87
- 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 -20
- 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 -161
- 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/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 -118
- 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 +24 -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.cjs +2 -2
- 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 +1 -1
- package/dist/debug-ui/hand-tracking-2d/index.d.ts +1 -1
- package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +1 -1
- package/dist/debug-ui/hand-tracking-3d/index.d.ts +1 -1
- 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 +43 -5
- package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
- package/dist/debug-ui/layer-panel/index.d.ts +3 -2
- package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
- package/dist/debug-ui/media-source/index.d.ts +4 -2
- package/dist/debug-ui/media-source/media-preset.d.ts +12 -0
- package/dist/debug-ui/media-source/session.d.ts +40 -0
- package/dist/debug-ui/media-source.cjs +1 -1
- package/dist/debug-ui/media-source.js +8 -4
- 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 +6 -2
- 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 -122
- 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 +6 -1
- package/dist/debug-ui/shared/ScreenTransformSection.d.ts +6 -3
- 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 +3 -13
- package/dist/debug-ui.js +8166 -5178
- 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 +74 -8
- package/dist/entries/face-effects.d.ts +130 -12
- package/dist/entries/instructions.d.ts +48 -0
- package/dist/entries/internal.d.ts +5 -2
- package/dist/entries/low-level.d.ts +101 -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 +2271 -289
- package/dist/face-effects.js +14240 -3562
- 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/{handJoints2d.d.ts → hand/handJoints2d.d.ts} +1 -1
- 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/{handTracking2d.d.ts → hand/handTracking2d.d.ts} +1 -1
- package/dist/{handTracking2dController.d.ts → hand/handTracking2dController.d.ts} +1 -1
- package/dist/{handTracking3d.d.ts → hand/handTracking3d.d.ts} +1 -1
- 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-Cae1ps15.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 +1766 -85
- package/dist/main.cjs +1 -73
- package/dist/main.js +1286 -1704
- 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 +17 -1
- package/dist/models/Holistic/index.d.ts +49 -0
- package/dist/models/Holistic/result.d.ts +68 -0
- package/dist/models/Segmentation/index.d.ts +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/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/{screenImageSettings.d.ts → screen-image/screenImageSettings.d.ts} +9 -2
- package/dist/{screenTextSettings.d.ts → screen-text/screenTextSettings.d.ts} +18 -2
- package/dist/screen2d/coordinates.d.ts +107 -0
- package/dist/screen2d/index.d.ts +3 -0
- package/dist/screen2d/screenTransform.d.ts +60 -0
- package/dist/screen2d/smoothing.d.ts +5 -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 +1529 -317
- 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 +12 -3
- 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 +81 -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-BGNbrc4C.js → uv-DJU_XfmN.js} +15 -156
- 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 +69 -9
- package/settings.json +1998 -0
- package/dist/DebuggerUI-CatYc-RG.cjs +0 -1
- package/dist/DebuggerUI-gLMKiVwJ.js +0 -269
- package/dist/MediaSourceSwitcher-C-xYg0nQ.js +0 -317
- package/dist/MediaSourceSwitcher-Cq3g4IKw.cjs +0 -31
- package/dist/components/FaceRetouch/defaults.d.ts +0 -13
- package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
- package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
- 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/debug-ui/face-warp-3d/index.d.ts +0 -6
- package/dist/defaults-BLpcN3pG.cjs +0 -1
- package/dist/defaults-LtY4M7dg.js +0 -55
- package/dist/index-BXyObVHF.cjs +0 -1
- package/dist/index-CY3bUAcW.js +0 -12
- package/dist/index-C_Duh13c.cjs +0 -1
- package/dist/index-D8fpPQkC.cjs +0 -1
- package/dist/index-DxshgBu0.cjs +0 -1
- package/dist/index-O-2crZ3M.js +0 -1102
- package/dist/index-safCs_af.js +0 -1341
- package/dist/internal-BjyhBP8i.cjs +0 -1
- package/dist/modules/XRClient/index.d.ts +0 -9
- package/dist/modules/index.d.ts +0 -1
- package/dist/screenImageSettings-6NRg4cx9.js +0 -39
- package/dist/screenImageSettings-y_B4_767.cjs +0 -1
- package/dist/selectors-BLl2JUWW.cjs +0 -1
- package/dist/selectors-CXd_x-6t.js +0 -59
- 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
- package/dist/useXRModel-3DcUa28n.cjs +0 -1
- package/dist/useXRModel-BMJE1hrk.js +0 -28
- /package/dist/{layerStack.d.ts → render/layerStack.d.ts} +0 -0
- /package/dist/{screenImagePresets.d.ts → screen-image/screenImagePresets.d.ts} +0 -0
- /package/dist/{screenTextPresets.d.ts → screen-text/screenTextPresets.d.ts} +0 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Iris Tracking"
|
|
3
|
+
description: "Stable left/right iris data from the shared face tracker, and an iris effect that draws a shader or image material over each iris."
|
|
4
|
+
sidebarTitle: "Iris Tracking"
|
|
5
|
+
icon: "eye"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Iris tracking reads the ten refined iris landmarks the face tracker already
|
|
9
|
+
produces. It starts no second detector: `useIrisTracking` acquires the same
|
|
10
|
+
shared `XRModel.FACE_TRACKER` as `FaceTracker` and `useFaceInfo`, and
|
|
11
|
+
`<IrisEffect>` renders over it.
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { useIrisTracking } from "@vincentt-xr/sdk/tracking";
|
|
15
|
+
import { IrisEffect } from "@vincentt-xr/sdk/face-effects";
|
|
16
|
+
|
|
17
|
+
// Rendering: built-in procedural iris, or an image, or your own material.
|
|
18
|
+
<IrisEffect mode="shader" color="#4fa3ff" opacity={0.85} smoothing={15} />;
|
|
19
|
+
<IrisEffect mode="image" textureUrl="/iris.png" scale={1.1} />;
|
|
20
|
+
|
|
21
|
+
// Data: read inside useFrame.
|
|
22
|
+
const { result, status } = useIrisTracking({ faceIndex: 0, smoothing: 15 });
|
|
23
|
+
useFrame(() => {
|
|
24
|
+
if (!result.detected) return;
|
|
25
|
+
const { center, radius, offset, confidence } = result.left;
|
|
26
|
+
});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Landmarks and sides
|
|
30
|
+
|
|
31
|
+
| MediaPipe side | Center | Ring (outer, top, inner, bottom) | Inner / outer corner | Upper / lower lid |
|
|
32
|
+
| -------------- | ------ | -------------------------------- | -------------------- | ----------------- |
|
|
33
|
+
| `left` | 473 | 474, 475, 476, 477 | 362 / 263 | 386 / 374 |
|
|
34
|
+
| `right` | 468 | 469, 470, 471, 472 | 133 / 33 | 159 / 145 |
|
|
35
|
+
|
|
36
|
+
`result.left` / `result.right` are the person's own eyes on every source
|
|
37
|
+
(GROUNDING "Left and right"). The table lists MediaPipe's sides
|
|
38
|
+
(`IRIS_LANDMARKS`): its left eye sits on the image's right of the analysed
|
|
39
|
+
frame, which is the person's left eye on a straight video, image or rear
|
|
40
|
+
camera, and their RIGHT eye on the mirrored webcam. The SDK reads the mesh
|
|
41
|
+
eye for the feed (`IRIS_LANDMARKS[personSide(side, mirrored)]`), so app code
|
|
42
|
+
never swaps. The data needs the refined mesh (478 points); with fewer
|
|
43
|
+
landmarks each eye reports `detected: false`. The
|
|
44
|
+
allocation-free helpers behind the hook (`createIrisResult`,
|
|
45
|
+
`updateIrisResult`, `computeIrisEye`, `IrisLead`) live on
|
|
46
|
+
`@vincentt-xr/sdk/low-level` for pipelines that already hold their own
|
|
47
|
+
landmarks.
|
|
48
|
+
|
|
49
|
+
## Coordinate spaces
|
|
50
|
+
|
|
51
|
+
- `center`, `ring`, `eyeCenter`: MediaPipe image space, 0..1 with a top-left
|
|
52
|
+
origin and Y down, the same space as `FaceInfo.landmarks` and
|
|
53
|
+
`detectionResults`. `z` is tracker-relative depth.
|
|
54
|
+
- `trackerCenter`: SDK tracker space (center origin, X right, Y up, Z toward
|
|
55
|
+
the viewer), the same as hand and body points.
|
|
56
|
+
- `radius`, `eyeWidth`: image-width units (half the horizontal ring diameter
|
|
57
|
+
and the corner-to-corner distance). To draw in world space, unproject the
|
|
58
|
+
center and a point `radius` to its right and take their distance, which is
|
|
59
|
+
what `<IrisEffect>` does.
|
|
60
|
+
- `offset`: the iris center relative to the eye center, each axis divided by
|
|
61
|
+
half the eye width and clamped to [-1, 1]; +x toward the person's left, +y
|
|
62
|
+
up, on every source (the horizontal sign is corrected on the mirrored
|
|
63
|
+
webcam feed, so it never flips with the camera). **This is the iris position inside the eyelid opening, not a gaze
|
|
64
|
+
direction**: it ignores head pose and eyeball geometry. Use it for
|
|
65
|
+
pupil-follow and shader inputs, not for "where is the person looking".
|
|
66
|
+
- `openness`: eyelid gap divided by eye width (about 0.25–0.35 open, 0 closed).
|
|
67
|
+
|
|
68
|
+
Mirroring: the session mirrors the webcam feed and no other source, and the
|
|
69
|
+
landmarks are already in that feed space, so positions need no flip. The
|
|
70
|
+
`mirrored` prop on `<IrisEffect>` flips the material horizontally (image
|
|
71
|
+
orientation, shader +x), nothing else.
|
|
72
|
+
|
|
73
|
+
## Confidence and lifecycle
|
|
74
|
+
|
|
75
|
+
MediaPipe reports no score for iris points and emits them even when the eye
|
|
76
|
+
is closed, so confidence is derived: `eye.confidence` is `openness / 0.2`
|
|
77
|
+
clamped to 0..1, scaled by the hold decay. `result.confidence` is 1 while the
|
|
78
|
+
face is live and decays linearly to 0 over `holdMs` while `held`. Gate
|
|
79
|
+
effects on these; the built-in materials fade with `irisConfidence`.
|
|
80
|
+
|
|
81
|
+
`useIrisTracking` returns `status` (`loading` → `ready` / `error`) for the
|
|
82
|
+
shared face model plus `result.detected` / `held` / `version` /
|
|
83
|
+
`timestampMs` / `faceIndex`. The `result` object is stable and mutated in
|
|
84
|
+
place; read it inside `useFrame`.
|
|
85
|
+
|
|
86
|
+
## Smoothing, hold and face selection
|
|
87
|
+
|
|
88
|
+
- Dropouts go through `FaceTrackMemory`, the SDK's one bridge: `holdMs` 250
|
|
89
|
+
and `predictMs` 0 by default, like every other face surface. A face that
|
|
90
|
+
stays missing longer than `holdMs` is dropped and `<IrisEffect>` hides at
|
|
91
|
+
once, so no stale eye effect lingers.
|
|
92
|
+
- `smoothing` runs the same One Euro filter as `TrackingAnchor` on the
|
|
93
|
+
centers and radius (default 0 = raw; ~10 tames jitter at rest). It is a
|
|
94
|
+
low-pass whose floor cutoff is `smoothing × 0.1` Hz, so 15 attenuates and
|
|
95
|
+
lags a 2–3 Hz head shake: keep it low when exact following matters. It
|
|
96
|
+
resets on re-acquire, so the iris never slides in from an old position.
|
|
97
|
+
- `targetFps` requests an inference cap for the shared face model (0 keeps
|
|
98
|
+
the session's `perf.targetFps`, 24 in the template). The first mounted face
|
|
99
|
+
consumer's value wins, so pass the same number everywhere the face model
|
|
100
|
+
is acquired, and note that a later change only takes effect once every
|
|
101
|
+
holder has released the model (a lone `<IrisEffect>` re-acquires and
|
|
102
|
+
re-initializes it; a session pipeline entry pins the first value for the
|
|
103
|
+
session). The example makes the effect the only holder so its panel value
|
|
104
|
+
is the real rate. **60 gives the best following, but use it with caution**: it runs
|
|
105
|
+
face inference 2.5× as often as the template default and will heat and
|
|
106
|
+
throttle phones. Ship it only when the eye effect is the point of the
|
|
107
|
+
experience and you have checked the target devices; otherwise keep the
|
|
108
|
+
session default (or 30) and let `leadMs` bridge the gap.
|
|
109
|
+
- `leadMs` (default 80, 0 disables) bridges throttled inference to the render
|
|
110
|
+
rate: between samples the centers advance along their last
|
|
111
|
+
sample-to-sample velocity for at most `leadMs`, so a 24 fps face model
|
|
112
|
+
reads continuous at 60+ fps instead of hold-and-jump. When the lag itself
|
|
113
|
+
is the problem, raise the face model's `targetFps` first (the example
|
|
114
|
+
requests 60).
|
|
115
|
+
- `faceIndex` / `numFaces` select the face exactly like `useFaceInfo`: the
|
|
116
|
+
index is the result-array position, not a persistent identity, and the
|
|
117
|
+
first mounted face consumer decides `numFaces`.
|
|
118
|
+
|
|
119
|
+
## `<IrisEffect>` props and materials
|
|
120
|
+
|
|
121
|
+
`<IrisEffect>` takes the flat `IrisEffectSettings` (`eye`: both | left |
|
|
122
|
+
right, `mode`: shader | image, `color`, `textureUrl`, `tintImage` (multiply the
|
|
123
|
+
image by `color`; off by default so images show as authored), `scale`, `opacity`,
|
|
124
|
+
`targetFps`, `smoothing`, `leadMs`, `mirrored`, `faceIndex`, `holdMs`) plus `numFaces`, `active`,
|
|
125
|
+
`predictMs`, `texture` (a pre-loaded three texture, beats `textureUrl`),
|
|
126
|
+
`material`, `renderOrder` and `onTracking(handle)`.
|
|
127
|
+
|
|
128
|
+
Each eye is a quad spanning the iris diameter, positioned on the camera's
|
|
129
|
+
z=0 plane. Every material receives the same uniforms (`IrisUniforms`):
|
|
130
|
+
|
|
131
|
+
| Uniform | Type | Meaning |
|
|
132
|
+
| ---------------- | ----------- | ---------------------------------- |
|
|
133
|
+
| `irisCenter` | `vec2` | Image-space center |
|
|
134
|
+
| `irisRadius` | `float` | Image-width radius |
|
|
135
|
+
| `irisOffset` | `vec2` | Position inside the eye, [-1, 1] |
|
|
136
|
+
| `irisConfidence` | `float` | 0..1, fade with it |
|
|
137
|
+
| `irisOpenness` | `float` | Eyelid gap / eye width |
|
|
138
|
+
| `time` | `float` | Seconds since mount |
|
|
139
|
+
| `color` | `vec3` | Tint |
|
|
140
|
+
| `opacity` | `float` | |
|
|
141
|
+
| `mirror` | `float` | 1 when mirrored |
|
|
142
|
+
| `tintImage` | `float` | 1 to multiply the image by `color` |
|
|
143
|
+
| `map` | `sampler2D` | The image in `image` mode |
|
|
144
|
+
|
|
145
|
+
A minimal custom material:
|
|
146
|
+
|
|
147
|
+
```tsx
|
|
148
|
+
import { IrisEffect, type IrisMaterialContext } from "@vincentt-xr/sdk/face-effects";
|
|
149
|
+
|
|
150
|
+
const ring = ({ uniforms }: IrisMaterialContext) =>
|
|
151
|
+
new THREE.ShaderMaterial({
|
|
152
|
+
uniforms, // the shared, live uniforms
|
|
153
|
+
vertexShader: `varying vec2 vUv; void main(){ vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`,
|
|
154
|
+
fragmentShader: `
|
|
155
|
+
uniform float irisConfidence; uniform vec3 color; uniform float opacity; varying vec2 vUv;
|
|
156
|
+
void main(){
|
|
157
|
+
float r = length(vUv - 0.5) * 2.0;
|
|
158
|
+
float ring = smoothstep(0.6, 0.7, r) * (1.0 - smoothstep(0.9, 1.0, r));
|
|
159
|
+
gl_FragColor = vec4(color, ring * opacity * irisConfidence);
|
|
160
|
+
#include <colorspace_fragment>
|
|
161
|
+
}`,
|
|
162
|
+
transparent: true,
|
|
163
|
+
depthTest: false,
|
|
164
|
+
depthWrite: false,
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
<IrisEffect material={ring} color="#ffcc00" />;
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
The factory runs once per eye for each `material` identity; the effect
|
|
171
|
+
disposes what a factory created when the factory changes or on unmount,
|
|
172
|
+
while an instance you pass stays yours. Read the live texture from
|
|
173
|
+
`uniforms.map`: `context.texture` is only the texture known when the factory
|
|
174
|
+
ran, often null. The built-in
|
|
175
|
+
image shader shows it as authored, multiplies it by `color` only when
|
|
176
|
+
`tintImage` is on, and fades with confidence.
|
|
177
|
+
|
|
178
|
+
## When to use what
|
|
179
|
+
|
|
180
|
+
- **Iris tracking**: eye decorations, pupil overlays, iris recolouring,
|
|
181
|
+
shader inputs tied to where the iris sits in the eye.
|
|
182
|
+
- **Blendshapes** (`useFaceInfo` / `useFaceAction`): blinks, winks, squints,
|
|
183
|
+
eye-look-left/right/up/down categories as discrete expressions.
|
|
184
|
+
- **Gaze estimation**: not provided. `offset` is not gaze; a real estimate
|
|
185
|
+
needs head pose and eye geometry.
|
|
186
|
+
- **PinToMesh / FaceMesh materials**: content that must deform with the skin
|
|
187
|
+
around the eye rather than sit on the iris.
|
|
188
|
+
|
|
189
|
+
## Hiding the iris behind the eyelids
|
|
190
|
+
|
|
191
|
+
The quads are flat and draw over the lids. To clip them to the eye openings
|
|
192
|
+
without a dedicated mask, draw the face mesh over them with the camera feed
|
|
193
|
+
and no eye-opening triangles (the example's "eyelid mask" toggle). The
|
|
194
|
+
material samples the feed through the mesh's live `faceUv` attribute with
|
|
195
|
+
depth testing off, so it always lands on top of the quads:
|
|
196
|
+
|
|
197
|
+
```tsx
|
|
198
|
+
import { CanonicalFaceMeshRenderer, IrisEffect } from "@vincentt-xr/sdk/face-effects";
|
|
199
|
+
import { useXRCameraTexture } from "@vincentt-xr/sdk/low-level";
|
|
200
|
+
|
|
201
|
+
const feed = new THREE.ShaderMaterial({
|
|
202
|
+
uniforms: { cameraTexture: { value: useXRCameraTexture() } },
|
|
203
|
+
vertexShader: `attribute vec2 faceUv; varying vec2 vUv;
|
|
204
|
+
void main(){ vUv = faceUv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`,
|
|
205
|
+
fragmentShader: `uniform sampler2D cameraTexture; varying vec2 vUv;
|
|
206
|
+
void main(){ gl_FragColor = texture2D(cameraTexture, vUv); #include <colorspace_fragment> }`,
|
|
207
|
+
transparent: true, // the quads are transparent; an opaque mask would draw before them
|
|
208
|
+
depthTest: false,
|
|
209
|
+
depthWrite: false,
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
// IrisEffect renders at order 100; the mask draws after it.
|
|
213
|
+
<IrisEffect />;
|
|
214
|
+
<CanonicalFaceMeshRenderer
|
|
215
|
+
showEyeGeometry={false}
|
|
216
|
+
showEyeMask={false}
|
|
217
|
+
renderOrder={101}
|
|
218
|
+
materialOverride={feed}
|
|
219
|
+
/>;
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Memoize the material on the camera texture and dispose it on unmount, as
|
|
223
|
+
the example does.
|
|
224
|
+
|
|
225
|
+
## Known limitations
|
|
226
|
+
|
|
227
|
+
- Single-person per `faceIndex`; multi-face scenes mount one effect per face.
|
|
228
|
+
- Iris points are present even for closed eyes; `confidence` is the gate.
|
|
229
|
+
- The quads sit on the z=0 plane without eyeball curvature or head pose.
|
|
230
|
+
- Hold replays the last position; with `predictMs` > 0 a sharp reversal can
|
|
231
|
+
overshoot for up to that window.
|
|
232
|
+
|
|
233
|
+
## Manual validation
|
|
234
|
+
|
|
235
|
+
Run `/iris-tracking`:
|
|
236
|
+
|
|
237
|
+
| Case | Steps | Expect |
|
|
238
|
+
| -------------------- | --------------------------------------- | ------------------------------------------------------------- |
|
|
239
|
+
| Shader material | default, change color / scale / opacity | Both irises recoloured live; pupil follows the iris offset |
|
|
240
|
+
| Image material | mode `image`, presets or a URL | Image covers each iris, tinted by color; mirror flips it |
|
|
241
|
+
| Custom material | "custom shader (ring)" | Pulsing ring from the shared uniforms |
|
|
242
|
+
| Tracking loss | cover the face / "Person Shaking Head" | Effect holds ~250 ms then disappears; no stale eyes |
|
|
243
|
+
| Multi-face | "Two People Smiling", face index 0 / 1 | Effect moves to the selected face |
|
|
244
|
+
| Mirrored camera | webcam, `eye` left | Only your real left eye; on screen it is the eye on the left |
|
|
245
|
+
| Straight video | a clip, `eye` left | Only the person's real left eye; on screen it is on the right |
|
|
246
|
+
| Portrait / landscape | resize the pane | Quads stay centred on the irises at the right size |
|
|
247
|
+
| Closed eyes | blink | Effect fades with confidence |
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Made-up Camera"
|
|
3
|
+
description: "Give face insets, face textures and face swap the camera image with the makeup on it: one shared, opt-in, feed-size render of camera plus makeup."
|
|
4
|
+
sidebarTitle: "Made-up Camera"
|
|
5
|
+
icon: "wand-magic-sparkles"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Makeup is drawn over the live face in the main render. A component that samples the camera image
|
|
9
|
+
itself (a face inset, a face texture, a face swap's live source) therefore shows the bare face.
|
|
10
|
+
`<MadeUpCamera>` gives the components inside it the camera image with the makeup on it.
|
|
11
|
+
|
|
12
|
+
It is off unless mounted. While mounted it renders one feed-size texture of camera plus makeup per
|
|
13
|
+
frame, shared by every `<MadeUpCamera>`. Import from `@vincentt-xr/sdk/face-effects`.
|
|
14
|
+
|
|
15
|
+
## Quick start
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { Blush, FaceInset, LipEffect, MadeUpCamera } from "@vincentt-xr/sdk/face-effects";
|
|
19
|
+
import { FaceTracker } from "@vincentt-xr/sdk/tracking";
|
|
20
|
+
|
|
21
|
+
<FaceTracker>
|
|
22
|
+
<Blush />
|
|
23
|
+
<LipEffect preset="lipstick" shade="classicRed" />
|
|
24
|
+
<MadeUpCamera>
|
|
25
|
+
{/* The giant mouth wears the lipstick */}
|
|
26
|
+
<FaceInset part="mouth" magnify={1.8} />
|
|
27
|
+
</MadeUpCamera>
|
|
28
|
+
</FaceTracker>;
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## What follows it
|
|
32
|
+
|
|
33
|
+
Inside a `<MadeUpCamera>`:
|
|
34
|
+
|
|
35
|
+
| Component | What shows the makeup |
|
|
36
|
+
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
37
|
+
| `FaceInset`, `useFaceInsetTexture` | The cut-out part |
|
|
38
|
+
| `FaceMorph`, `FaceReprojection` | The camera-face texture they wear |
|
|
39
|
+
| Face swap live faces | The face map. A face's map is shared: one consumer inside a `<MadeUpCamera>` decides for all of that face's consumers |
|
|
40
|
+
|
|
41
|
+
Components outside it keep the plain camera.
|
|
42
|
+
|
|
43
|
+
`FaceWarp3D` always keeps the plain camera. Nest the makeup in the warp instead: it already rides it.
|
|
44
|
+
|
|
45
|
+
The skin probe, the face swap's colour statistics and the makeup's own camera sampling always read the
|
|
46
|
+
plain camera, so makeup never feeds back into itself.
|
|
47
|
+
|
|
48
|
+
## What it holds
|
|
49
|
+
|
|
50
|
+
- Every face-atlas layer drawn between `MAKEUP_RENDER_ORDER.prepass` and `.restore`, on every face:
|
|
51
|
+
makeup regions, `LipEffect`, `MakeupDesign`, custom `FaceAtlasLayer`s at makeup orders, and the
|
|
52
|
+
self-occlusion passes.
|
|
53
|
+
- `HandCutout`, so hands stay bare.
|
|
54
|
+
- Anything you add with `object.layers.enable(MADE_UP_CAMERA_LAYER)` (layer 30; 31 is the external background layer).
|
|
55
|
+
|
|
56
|
+
Faces riding a `FaceWarp3D` or `FaceMorph` are drawn unwarped, where the camera sees them, with the
|
|
57
|
+
unwarped face's normals.
|
|
58
|
+
|
|
59
|
+
The pass is lit by the lights the main camera sees and writes and blends sRGB colour exactly as the
|
|
60
|
+
canvas does, with the same shader programs, so the makeup's pixels match the screen. It does not hold:
|
|
61
|
+
|
|
62
|
+
- `FaceRetouch`, face swaps or other face effects;
|
|
63
|
+
- face-atlas layers outside the makeup orders;
|
|
64
|
+
- the canvas's multisampling (antialiasing) or any post-processing.
|
|
65
|
+
|
|
66
|
+
## Double makeup
|
|
67
|
+
|
|
68
|
+
Makeup drawn on the same face again on top shows twice:
|
|
69
|
+
|
|
70
|
+
- makeup nested in a `FaceMorph` that is wrapped in `<MadeUpCamera>`;
|
|
71
|
+
- a wrapped face swap that lands on a face wearing makeup of its own (that makeup draws over the
|
|
72
|
+
swapped face).
|
|
73
|
+
|
|
74
|
+
Wrap only the components that should show the makeup.
|
|
75
|
+
|
|
76
|
+
## Your own materials
|
|
77
|
+
|
|
78
|
+
`useMadeUpCamera()` holds the shared target and returns a handle, or `null` before mount:
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
import { useMadeUpCamera } from "@vincentt-xr/sdk/face-effects";
|
|
82
|
+
|
|
83
|
+
const madeUp = useMadeUpCamera();
|
|
84
|
+
<mesh>
|
|
85
|
+
<planeGeometry />
|
|
86
|
+
<meshBasicMaterial map={madeUp?.ready ? madeUp.texture : null} toneMapped={false} />
|
|
87
|
+
</mesh>;
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
| Handle | Meaning |
|
|
91
|
+
| ----------------- | ---------------------------------------------------------------------------------------------------- |
|
|
92
|
+
| `texture` | Camera plus makeup. Same layout as the camera texture (uv, aspect, image top at v = 1), sRGB |
|
|
93
|
+
| `ready` | The texture holds the current camera image: false before the first pass and while the camera is gone |
|
|
94
|
+
| `frame` | Passes rendered so far |
|
|
95
|
+
| `width`, `height` | The texture's size: the camera image's |
|
|
96
|
+
|
|
97
|
+
- `useMadeUpCameraTexture()` returns the nearest `<MadeUpCamera>`'s texture while it is ready, else
|
|
98
|
+
the session camera texture (null without a camera, never a stale made-up frame). The SDK
|
|
99
|
+
components use it.
|
|
100
|
+
- `feedTextureVersion(texture)` returns a feed texture's content version: the pass count for the
|
|
101
|
+
made-up texture (its `version` never changes), `texture.version` for the camera. Compare it between
|
|
102
|
+
frames to skip work when the image did not change.
|
|
103
|
+
|
|
104
|
+
## Cost
|
|
105
|
+
|
|
106
|
+
Every frame while any holder is mounted:
|
|
107
|
+
|
|
108
|
+
- the makeup is drawn a second time;
|
|
109
|
+
- two feed-size passes: the camera copied under the makeup, then a copy into the sRGB texture;
|
|
110
|
+
- a second walk of the scene graph.
|
|
111
|
+
|
|
112
|
+
GPU memory: three 4-byte-per-pixel buffers at the camera image's size (colour, depth-stencil, output).
|
|
113
|
+
That is about 4 MB for a 390 × 844 feed and 25 MB at 1080 × 1920.
|
|
114
|
+
|
|
115
|
+
The pass runs at frame priority -0.3, after the face surfaces update. Frame callbacks at the default
|
|
116
|
+
priority read this frame's image. The face swap's live map (priority -0.75) reads the previous
|
|
117
|
+
frame's. Shadow maps are not re-rendered for the pass.
|
|
118
|
+
|
|
119
|
+
## Manual visual test plan
|
|
120
|
+
|
|
121
|
+
On the webcam, with blush and a red lipstick:
|
|
122
|
+
|
|
123
|
+
1. **Inset**: a mouth inset inside `<MadeUpCamera>` shows the lipstick, with the same colour and edge
|
|
124
|
+
as on the face. Outside it, the inset shows bare lips.
|
|
125
|
+
2. **Match**: put a `FaceInset part="face" magnify={1}` inside it. The face looks the same as without
|
|
126
|
+
the inset.
|
|
127
|
+
3. **Hands**: a hand over the cheek (with `HandCutout`) stays bare in the inset.
|
|
128
|
+
4. **Turned head**: the far cheek's blush stops at the nose in the inset, as on screen.
|
|
129
|
+
5. **Face swap**: with makeup on face 0 only, a two-person swap inside it shows that makeup where
|
|
130
|
+
face 1 is.
|
|
131
|
+
6. **Off**: unmount the `<MadeUpCamera>`. The frame time returns to its earlier value.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Makeup Skin Tone"
|
|
3
|
+
description: "Read the person's skin depth, undertone, lip and brow colours from the skin probe, and get the curated palette shades that suit them, for shade-finder UIs."
|
|
4
|
+
sidebarTitle: "Makeup Skin Tone"
|
|
5
|
+
icon: "swatchbook"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
`useMakeupSkinTone` reads the face's skin probe back from the GPU a few times a second and returns
|
|
9
|
+
what a shade finder needs:
|
|
10
|
+
|
|
11
|
+
- **Skin depth**: `fair`, `light`, `medium`, `tan`, `deep` or `rich`.
|
|
12
|
+
- **Undertone**: `cool`, `neutral` or `warm`.
|
|
13
|
+
- **The person's own colours**: settled skin, lips and brow hair, as sRGB hex.
|
|
14
|
+
- **Recommendations**: for every makeup region, the curated palette shades (`MAKEUP_SHADES`) nearest
|
|
15
|
+
what that region would paint on this person, best first.
|
|
16
|
+
|
|
17
|
+
The SDK draws no labels. Makeup does not need this readout: `shade: "auto"` already adapts on the
|
|
18
|
+
GPU. Import from `@vincentt-xr/sdk/face-effects`.
|
|
19
|
+
|
|
20
|
+
## Quick start
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { Blush, Contour, useMakeupSkinTone } from "@vincentt-xr/sdk/face-effects";
|
|
24
|
+
|
|
25
|
+
const tone = useMakeupSkinTone(); // null until the skin probe has settled
|
|
26
|
+
<Contour shade={tone?.recommendations.contour[0] ?? "medium"} />;
|
|
27
|
+
<Blush shade={tone?.recommendations.blush[0] ?? "rose"} />;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Call it inside the canvas. It works alone: it starts the face model when no `FaceTracker` is above
|
|
31
|
+
it, and starts the face's skin probe when no makeup runs one.
|
|
32
|
+
|
|
33
|
+
## Options
|
|
34
|
+
|
|
35
|
+
| Option | Default | Meaning |
|
|
36
|
+
| ------------ | --------------- | -------------------------------------------------------------- |
|
|
37
|
+
| `faceIndex` | rig / tracker | Which face: the enclosing `FaceRig` or `FaceTracker`'s, else 0 |
|
|
38
|
+
| `numFaces` | `faceIndex + 1` | Faces to start the face model with, when this hook starts it |
|
|
39
|
+
| `intervalMs` | 500 | Milliseconds between reads, at least 200 |
|
|
40
|
+
| `count` | 3 | Shades recommended per region |
|
|
41
|
+
| `quality` | `"auto"` | The skin probe's quality (`useFaceSkin`) |
|
|
42
|
+
| `enabled` | `true` | `false` stops reading and releases the probe |
|
|
43
|
+
|
|
44
|
+
## The readout
|
|
45
|
+
|
|
46
|
+
| Field | Meaning |
|
|
47
|
+
| ----------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| `skin` | The settled skin colour as the camera shows it, sRGB hex |
|
|
49
|
+
| `lab` | Its CIELAB (D65) `[L*, a*, b*]` |
|
|
50
|
+
| `depth`, `ita` | Depth from the Individual Typology Angle, `atan((L* − 50) / b*)` in degrees |
|
|
51
|
+
| `undertone` | From the CIELAB hue angle |
|
|
52
|
+
| `hue`, `chroma` | The skin's CIELAB hue (degrees) and chroma, for your own thresholds |
|
|
53
|
+
| `lips`, `brows` | The person's lip and brow-hair colours, or `null` while under a quarter of them was seen |
|
|
54
|
+
| `recommendations` | Palette shade names per region: `lips`, `contour`, `blush`, `highlighter`, `eyeshadow`, `eyeliner`, `brows` |
|
|
55
|
+
|
|
56
|
+
| Depth | ITA |
|
|
57
|
+
| -------- | ----------- |
|
|
58
|
+
| `fair` | over 55° |
|
|
59
|
+
| `light` | 41° to 55° |
|
|
60
|
+
| `medium` | 28° to 41° |
|
|
61
|
+
| `tan` | 10° to 28° |
|
|
62
|
+
| `deep` | −30° to 10° |
|
|
63
|
+
| `rich` | under −30° |
|
|
64
|
+
|
|
65
|
+
Undertone: hue under 50° is `cool`, over 60° is `warm`, between is `neutral`. Deeper skin has a lower
|
|
66
|
+
hue whatever its undertone, so below `L*` 50 both cuts drop 0.25° per unit: at `L*` 20 they are 42.5°
|
|
67
|
+
and 52.5°. A skin with chroma under 6 (a grey or washed-out image) is always `neutral`. The thresholds
|
|
68
|
+
are `MAKEUP_SKIN_TONE`.
|
|
69
|
+
|
|
70
|
+
## How shades are chosen
|
|
71
|
+
|
|
72
|
+
Each region gets a target colour: what `shade: "auto"` paints on this person.
|
|
73
|
+
|
|
74
|
+
- **Lips**: their own lips, deepened.
|
|
75
|
+
- **Blush**: their skin moved toward rose.
|
|
76
|
+
- **Contour**: their skin, deepened.
|
|
77
|
+
- **Highlighter**: their skin, lifted.
|
|
78
|
+
- **Brows**: their brow hair.
|
|
79
|
+
- **Eyeshadow**: a transition shade, the skin deepened.
|
|
80
|
+
- **Eyeliner**: the brow hair, darkened.
|
|
81
|
+
|
|
82
|
+
Warm skin leans blush, highlighter and eyeshadow toward peach, gold and bronze; cool skin toward rose,
|
|
83
|
+
pearl and taupe. The recommendations are the palette shades nearest each target (CIELAB ΔE). Unseen
|
|
84
|
+
lips or brows fall back to colours derived from the skin.
|
|
85
|
+
|
|
86
|
+
## Camera light
|
|
87
|
+
|
|
88
|
+
The readout measures the image, not the person:
|
|
89
|
+
|
|
90
|
+
- **White balance** moves the undertone. A warm room reads warm; a cool screen glow reads cool.
|
|
91
|
+
- **Exposure** moves the depth. A backlit face reads deeper.
|
|
92
|
+
|
|
93
|
+
Present the result as a suggestion the user can change, never as a label. Ask for even, neutral
|
|
94
|
+
light when it matters.
|
|
95
|
+
|
|
96
|
+
## Cost
|
|
97
|
+
|
|
98
|
+
No per-frame allocation. Each read is one 24 × 1 packing draw and an asynchronous copy to the CPU
|
|
99
|
+
(`FaceSkinProbe.readStatsAsync`), with one read in flight at a time. The hook re-renders only when the
|
|
100
|
+
readout changes.
|
|
101
|
+
|
|
102
|
+
## Photos
|
|
103
|
+
|
|
104
|
+
`computeMakeupSkinTone(stats)` takes any `FaceSkinStats`:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
import {
|
|
108
|
+
FaceSkinProbe,
|
|
109
|
+
computeMakeupSkinTone,
|
|
110
|
+
readFaceSkinStats,
|
|
111
|
+
} from "@vincentt-xr/sdk/face-effects";
|
|
112
|
+
|
|
113
|
+
const probe = new FaceSkinProbe({ renderer: gl });
|
|
114
|
+
probe.renderStill(gl, photoTexture, photoLandmarks);
|
|
115
|
+
const data = await probe.readStatsAsync(gl);
|
|
116
|
+
const tone = data ? computeMakeupSkinTone(readFaceSkinStats(data)) : null;
|
|
117
|
+
probe.dispose();
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Also exported: `classifyMakeupSkinDepth`, `classifyMakeupUndertone`, `nearestMakeupShades`,
|
|
121
|
+
`MAKEUP_SKIN_DEPTHS`, `MAKEUP_UNDERTONES`.
|
|
122
|
+
|
|
123
|
+
## Manual visual test plan
|
|
124
|
+
|
|
125
|
+
Show `tone.depth`, `tone.undertone`, `tone.skin` and the first blush, contour and lip shade in a
|
|
126
|
+
debug readout on the webcam.
|
|
127
|
+
|
|
128
|
+
1. **Settles**: the readout appears within a second of the face showing, and stays steady while you
|
|
129
|
+
hold still.
|
|
130
|
+
2. **Light**: switch from daylight to a warm lamp. The undertone moves toward warm (the documented
|
|
131
|
+
caveat); the shades follow.
|
|
132
|
+
3. **Turn away**: past about 35° the readout holds its last value.
|
|
133
|
+
4. **Lips**: wear a strong lipstick. The lip recommendations move toward it within a few seconds.
|
|
134
|
+
5. **Two faces**: `faceIndex: 1` reads the second person.
|
|
135
|
+
6. **Cost**: the frame time does not change with the hook mounted.
|