@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,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Holistic Tracker"
|
|
3
|
+
description: "One MediaPipe inference for face, hands and pose, with unified results, dropout bridging and the same TrackingAnchor targets as the individual trackers."
|
|
4
|
+
sidebarTitle: "Holistic Tracker"
|
|
5
|
+
icon: "person-rays"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
`<HolisticTracker>` runs MediaPipe's Holistic Landmarker: a single graph that
|
|
9
|
+
returns face landmarks and blendshapes, left and right hand landmarks, and the
|
|
10
|
+
33-point pose for **one person**. It is additive and opt-in; `FaceTracker`,
|
|
11
|
+
`HandTracker` and `BodyTracker` are unchanged.
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { HolisticTracker, TrackingAnchor } from "@vincentt-xr/sdk/tracking";
|
|
15
|
+
|
|
16
|
+
<HolisticTracker holdMs={250}>
|
|
17
|
+
<HolisticTracker.Face>
|
|
18
|
+
<TrackingAnchor target="face.noseTip">{/* … */}</TrackingAnchor>
|
|
19
|
+
</HolisticTracker.Face>
|
|
20
|
+
<HolisticTracker.Hand hand="right">
|
|
21
|
+
<TrackingAnchor target="hand.indexTip">{/* … */}</TrackingAnchor>
|
|
22
|
+
</HolisticTracker.Hand>
|
|
23
|
+
<HolisticTracker.Body>
|
|
24
|
+
<TrackingAnchor target="body.leftShoulder">{/* … */}</TrackingAnchor>
|
|
25
|
+
</HolisticTracker.Body>
|
|
26
|
+
</HolisticTracker>;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Composition
|
|
30
|
+
|
|
31
|
+
- `<HolisticTracker>` acquires `XRModel.HOLISTIC_TRACKER` through the shared,
|
|
32
|
+
refcounted registry. Every descendant and every other `<HolisticTracker>`
|
|
33
|
+
in the session shares that one model and one inference per frame.
|
|
34
|
+
- `<HolisticTracker.Face>`, `<HolisticTracker.Hand hand="left" | "right">` and
|
|
35
|
+
`<HolisticTracker.Body>` are the stream groups. Each provides the same
|
|
36
|
+
tracker context as `FaceTracker` / `HandTracker` / `BodyTracker`, so
|
|
37
|
+
`TrackingAnchor` targets (`face.*`, `hand.*`, `body.*`, including
|
|
38
|
+
`body.neck` and `face.custom`) and `smoothing` work unchanged. The group is
|
|
39
|
+
hidden while its stream is absent, and its origin is the nose tip, the
|
|
40
|
+
wrist, or the head.
|
|
41
|
+
- `useHolisticTracking()` returns `{ node, ready, status, error }`. Read
|
|
42
|
+
`node.getResult()` inside `useFrame`; the result object is stable and
|
|
43
|
+
mutated in place.
|
|
44
|
+
|
|
45
|
+
## The unified result
|
|
46
|
+
|
|
47
|
+
`HolisticResult` carries `version`, `timestampMs` and four streams that are
|
|
48
|
+
`null` when neither detected nor held:
|
|
49
|
+
|
|
50
|
+
| Stream | Coordinates | Extras |
|
|
51
|
+
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
|
|
52
|
+
| `face` | 478 `NormalizedLandmark`s in MediaPipe image space (0..1, top-left, Y down) — the same space as `FaceTracker`'s `detectionResults` | `blendshapes` name → score, `confidence`, `held` |
|
|
53
|
+
| `leftHand`, `rightHand` | 21 `TrackerPoint`s: center origin, X right, Y up, Z toward the viewer — the same as `HandTracker`'s `coordinates` | `handedness`, `worldLandmarks` (metres, MediaPipe world space), `confidence`, `held` |
|
|
54
|
+
| `pose` | 33 `TrackerPoint`s — the same as `BodyTracker`'s `getLandmarks2D()` | `visibility[]`, `worldLandmarks`, `confidence`, `held` |
|
|
55
|
+
|
|
56
|
+
Mirroring of coordinates follows the individual trackers: no source-dependent
|
|
57
|
+
flip is applied to any stream. Hand **labels** are the person's anatomical
|
|
58
|
+
side on every source: holistic assigns hands from the pose, whose left/right
|
|
59
|
+
follow the image, so the SDK swaps them on the mirrored webcam feed.
|
|
60
|
+
`leftHand` is the person's left hand (on the viewer's left in the selfie view),
|
|
61
|
+
the same hand `<HandTracker hand="left">` selects, and `hands="left"` keeps it.
|
|
62
|
+
The pose's left/right landmark indices are swapped the same way, so `pose`
|
|
63
|
+
wrist 15 and `leftHand` are always the same physical hand. This differs from
|
|
64
|
+
`BodyTracker`'s raw `getLandmarks2D()`, whose indices follow the image (its
|
|
65
|
+
`TrackingAnchor` targets are the person's side). `pose` and `pose.worldLandmarks` are already the
|
|
66
|
+
person's own sides on every feed (index 11 = their left shoulder): never convert them again with
|
|
67
|
+
`personSide` / `feedSidedName` / `bodyLandmarkIndex`, which would flip them back. The `face` stream keeps the
|
|
68
|
+
mesh's indices; sided `TrackingAnchor` targets under `HolisticTracker.Face` are
|
|
69
|
+
the person's own (GROUNDING "Left and right").
|
|
70
|
+
|
|
71
|
+
**Pre-release note:** the default model is MediaPipe's published
|
|
72
|
+
`holistic_landmarker.task` on `storage.googleapis.com` (integrity pinned)
|
|
73
|
+
until the SDK CDN copy is published. Pass `modelUrl` to self-host it. The face has no transformation matrix in the holistic graph, so there is
|
|
74
|
+
no head rotation; use `<FaceTracker>` when children must roll with the head.
|
|
75
|
+
|
|
76
|
+
### Confidence contract
|
|
77
|
+
|
|
78
|
+
- Face and hands: `1` while detected (the holistic graph does not report
|
|
79
|
+
per-landmark visibility for them).
|
|
80
|
+
- Pose: the mean landmark `visibility`.
|
|
81
|
+
- While a stream is **held** after a dropout, `held` is `true` and
|
|
82
|
+
`confidence` decays linearly from the last live value to `0` at `holdMs`.
|
|
83
|
+
|
|
84
|
+
### Dropouts
|
|
85
|
+
|
|
86
|
+
Each stream runs through `FaceTrackMemory`, the SDK's one hold/predict bridge:
|
|
87
|
+
a missing stream is replayed for `holdMs` (default 250), extrapolated along its
|
|
88
|
+
last velocity for the first `predictMs` (default 0), then dropped. Set
|
|
89
|
+
`holdMs={0}` for immediate disappearance. Do not add app-side holds.
|
|
90
|
+
|
|
91
|
+
## Options
|
|
92
|
+
|
|
93
|
+
| Prop | Applies | Notes |
|
|
94
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------- |
|
|
95
|
+
| `modelUrl` | model creation | Defaults to MediaPipe's published `holistic_landmarker.task` (13.7 MB), SHA-384 pinned |
|
|
96
|
+
| `minFaceDetectionConfidence`, `minFacePresenceConfidence`, `minPoseDetectionConfidence`, `minPosePresenceConfidence`, `minHandLandmarksConfidence` | model creation | MediaPipe thresholds, default 0.5 |
|
|
97
|
+
| `outputFaceBlendshapes` | model creation | Default `true` |
|
|
98
|
+
| `delegate` | model creation | `"auto"` (default), `"GPU"`, `"CPU"`; see below |
|
|
99
|
+
| `targetFps` | run time | Overrides `perf.targetFps` for this model |
|
|
100
|
+
| `hands` | live | `"both"` (default), `"left"`, `"right"`, `"none"`; holistic tracks at most one of each |
|
|
101
|
+
| `analysisMaxDimension` | live | Longest side of the analysed frame, default 768 |
|
|
102
|
+
| `holdMs`, `predictMs` | live | Dropout bridge |
|
|
103
|
+
| `active` | live | Pause inference without unmounting |
|
|
104
|
+
| `onStatusChange(status, error)` | — | `loading` → `ready` / `error`; a transient inference error recovers on the next frame |
|
|
105
|
+
|
|
106
|
+
Model-creation options come from the first mounted consumer (like `numFaces`
|
|
107
|
+
on `FaceTracker`); changing them re-acquires the model. Live options apply
|
|
108
|
+
through `node.setOptions` and the last writer wins.
|
|
109
|
+
|
|
110
|
+
## Delegate: GPU with an automatic CPU fallback
|
|
111
|
+
|
|
112
|
+
MediaPipe's holistic face-blendshape stage has no WebGL implementation for
|
|
113
|
+
one of its ops, so with `outputFaceBlendshapes` the GPU graph fails on its
|
|
114
|
+
first frame (`UNIMPLEMENTED … No support of const`). With the default
|
|
115
|
+
`delegate="auto"` the tracker rebuilds the graph on the CPU once: one
|
|
116
|
+
`console.warn`, status dips to `loading` during the rebuild, no refetch, and
|
|
117
|
+
`node.getDelegate()` reports `"CPU"` afterwards. CPU inference is several
|
|
118
|
+
times slower (tens to hundreds of milliseconds per frame on a laptop). When
|
|
119
|
+
blendshapes are not needed, `outputFaceBlendshapes={false}` keeps the whole
|
|
120
|
+
graph on the GPU. `delegate="GPU"` reports the failure as `error` instead of
|
|
121
|
+
retrying; `delegate="CPU"` starts on the CPU.
|
|
122
|
+
|
|
123
|
+
## Coexistence with the individual trackers
|
|
124
|
+
|
|
125
|
+
- Holistic is a **separate model**. Mounting `<FaceTracker>` next to
|
|
126
|
+
`<HolisticTracker>` runs two inferences; pick one per scene.
|
|
127
|
+
- Inside a holistic scene, use the sub-trackers instead of `FaceTracker` /
|
|
128
|
+
`HandTracker` / `BodyTracker`. `GestureTracker` (named gestures) and
|
|
129
|
+
`Segmentation` are unrelated models and combine freely.
|
|
130
|
+
- `FaceMesh`, face readers (`useFaceInfo`, `useFaceResults`), face effects and
|
|
131
|
+
head binding read `XRModel.FACE_TRACKER`; they do not consume holistic
|
|
132
|
+
results. For those, keep `<FaceTracker>`.
|
|
133
|
+
|
|
134
|
+
## Combined signals
|
|
135
|
+
|
|
136
|
+
`getHolisticSignals(result)` derives presence, `smile` / `mouthOpen`
|
|
137
|
+
blendshape scores, raised hands (pose wrist above its shoulder), open palms
|
|
138
|
+
(three of four fingers extended) and `greeting`: a raised open hand while
|
|
139
|
+
smiling. `isHandRaised` and `isPalmOpen` are exported on their own.
|
|
140
|
+
|
|
141
|
+
## Migration and performance
|
|
142
|
+
|
|
143
|
+
- Replace `<FaceTracker>` + `<HandTracker>` + `<BodyTracker>` with one
|
|
144
|
+
`<HolisticTracker>` and three sub-trackers when a scene needs all three; the
|
|
145
|
+
anchors move over unchanged. Keep the individual trackers when only one
|
|
146
|
+
stream is needed: the holistic model is heavier than any single one.
|
|
147
|
+
- Default inference cap follows `perf.targetFps` (the template ships 24).
|
|
148
|
+
Lower `analysisMaxDimension` (512) when only the face and hands matter and
|
|
149
|
+
the subject is close.
|
|
150
|
+
- First load downloads 13.7 MB plus the shared MediaPipe engine.
|
|
151
|
+
|
|
152
|
+
## Manual validation
|
|
153
|
+
|
|
154
|
+
Run `/holistic-tracking` in the playground:
|
|
155
|
+
|
|
156
|
+
| Case | Source | Expect |
|
|
157
|
+
| ----------------- | ------------------------------------ | ----------------------------------------------------------------------------------------- |
|
|
158
|
+
| All streams | "Person Fullbody" | Face, both hands and pose dots follow; HUD shows every stream present |
|
|
159
|
+
| Hands option | panel `hands: left` | Right hand dots disappear immediately; left keeps tracking |
|
|
160
|
+
| Hold | panel `holdMs: 0` vs 250 | Dots vanish instantly on a dropout vs. hold for a quarter second with decaying confidence |
|
|
161
|
+
| Combined gesture | webcam, raise an open hand and smile | The raised hand turns yellow and the HUD reports the greeting |
|
|
162
|
+
| Status | reload | `loading` → `ready`; a bad `modelUrl` reports `error` with the message |
|
|
163
|
+
| Delegate fallback | blendshapes on, then off | HUD shows `delegate CPU` after one warning; with blendshapes off it stays on `GPU` |
|
|
164
|
+
| Coexistence | mount `<FaceTracker>` too | Two models in the debugger; no crash, no shared state |
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Instructions"
|
|
3
|
+
description: "Prompts that ask for a gesture, an expression or a pose with a 3D hint and your copy — ready-made presets, and every layer underneath open for your own vocabulary, detection, look and layout."
|
|
4
|
+
sidebarTitle: "Instructions"
|
|
5
|
+
icon: "person-chalkboard"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
An instruction asks the person to do something and waits until they do. It shows a 3D hint, puts
|
|
9
|
+
your copy under it, and completes once the pose has been held for `holdMs`. Everything lives in one door:
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import { … } from "@vincentt-xr/sdk/instructions";
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
There are three ready-made presets:
|
|
16
|
+
|
|
17
|
+
- [Hand Instructions](/api/hand-instructions)
|
|
18
|
+
- [Face Instructions](/api/face-instructions)
|
|
19
|
+
- [Body Instructions](/api/body-instructions)
|
|
20
|
+
|
|
21
|
+
Each preset is built from four open layers, and you can use any layer on its own from outside the SDK.
|
|
22
|
+
|
|
23
|
+
| Layer | What you get |
|
|
24
|
+
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
25
|
+
| **Vocabulary** | The built-in gestures, expressions and poses; `defineHandGesture` / `defineFaceExpression` / `defineBodyPose` for your own. |
|
|
26
|
+
| **Detection** | `useHandGesture`, `useFaceExpression`, `useBodyPose`, and `useInstructionHold` for any condition. |
|
|
27
|
+
| **Hint** | `HandGestureHint`, `FaceExpressionHint`, `BodyPoseHint` with `look` and `loop`, and the kit to build a hint on any model. |
|
|
28
|
+
| **Layout** | `<Instruction>`: any detector, any symbol, your text style, motion and proportions. |
|
|
29
|
+
|
|
30
|
+
The rest of this page goes from small changes to a fully custom prompt.
|
|
31
|
+
|
|
32
|
+
## 1. Restyle a preset
|
|
33
|
+
|
|
34
|
+
Every preset takes the same layout and text options, plus `look` and `loop` for its hint. Each is
|
|
35
|
+
merged over that preset's default, so you only write what you change.
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
<HandInstruction
|
|
39
|
+
gesture="peace"
|
|
40
|
+
model={hand.scene}
|
|
41
|
+
poses={hand.animations}
|
|
42
|
+
size={0.2} // a fraction of the screen height, or "sm" | "md" | "lg"
|
|
43
|
+
look={{
|
|
44
|
+
ghost: { color: "#7dd3fc", core: 0.35 }, // tint, opacity facing you, at the rim (`rim`), rim whitening
|
|
45
|
+
halo: false, // turn a layer off
|
|
46
|
+
glow: { color: "#38bdf8", full: 1 },
|
|
47
|
+
highlight: { opacity: 1 },
|
|
48
|
+
}}
|
|
49
|
+
loop={{ seconds: 1.6, stagger: 0 }} // timing, hold share, start, easing, finger stagger (hand)
|
|
50
|
+
textStyle={{ fontFamily: "Georgia, serif", strokeColor: "#0c4a6e", strokeWidth: 6 }}
|
|
51
|
+
motion={{ ring: { color: "#38bdf8" }, pop: 0.2, bob: 0 }}
|
|
52
|
+
layout={{ gap: 0.2, textHeight: 0.35 }}
|
|
53
|
+
/>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**`look`** (`HintLook`) controls how the hint is drawn:
|
|
57
|
+
|
|
58
|
+
- `ghost` (`GhostOptions`): `color`, `core` (opacity facing you), `rim` (opacity at the silhouette),
|
|
59
|
+
`whiten`.
|
|
60
|
+
- `parts`: overrides per model material name, e.g. `{ iris: { color: "#2a2732" } }`; `null` removes
|
|
61
|
+
a default tint.
|
|
62
|
+
- `halo`: `width` in model units, `color`, `opacity`.
|
|
63
|
+
- `glow`: `color`, `size`, `idle` and `full` opacity.
|
|
64
|
+
- `highlight`: `opacity`, `whiten`, and `idle` (the share shown while relaxed).
|
|
65
|
+
- `matcap`: your own shading texture.
|
|
66
|
+
- `material`: any three.js material, replacing the ghost.
|
|
67
|
+
|
|
68
|
+
Any layer can be `false` to turn it off. The defaults are exported:
|
|
69
|
+
|
|
70
|
+
- `HAND_HINT_LOOK` and `HAND_HINT_LOOP`
|
|
71
|
+
- `FACE_HINT_LOOK` and `FACE_HINT_LOOP`
|
|
72
|
+
- `BODY_HINT_LOOK` and `BODY_HINT_LOOP`
|
|
73
|
+
|
|
74
|
+
`mergeHintLook(base, over)` merges two looks the same way the presets do.
|
|
75
|
+
|
|
76
|
+
**`loop`** (`HintLoop`) controls how the hint animates:
|
|
77
|
+
|
|
78
|
+
- `seconds` per cycle; `0` holds the pose.
|
|
79
|
+
- `hold`: the share of the cycle held at the full pose.
|
|
80
|
+
- `from`: where each cycle starts, 0 = the model's rest.
|
|
81
|
+
- `easing`.
|
|
82
|
+
- The hand also takes `stagger`, how far apart the fingers move; `0` moves them together.
|
|
83
|
+
|
|
84
|
+
**Text and layout** apply to every preset and to `<Instruction>`:
|
|
85
|
+
|
|
86
|
+
- `textStyle` / `nudgeTextStyle`: any `TextLabel` style (font, weight, stroke, shadow, background),
|
|
87
|
+
merged over `INSTRUCTION_TEXT_STYLE`.
|
|
88
|
+
- `color`: a shortcut for the text colour.
|
|
89
|
+
- `motion` (`InstructionMotion`):
|
|
90
|
+
- `fadeIn` and `fadeOut`, in seconds;
|
|
91
|
+
- `rise`, `bob`, `pop`, `popSeconds` and `nudgePulse`;
|
|
92
|
+
- `ring`: `{ color, seconds, opacity, from, to }`, or `false`.
|
|
93
|
+
- `layout` (`InstructionLayout`): `textHeight`, `gap`, `nudgeHeight`, `textWidth` and `edgeMargin`.
|
|
94
|
+
Each is relative to the size, except `edgeMargin`, which is a fraction of the screen height.
|
|
95
|
+
- `renderText(slot)`: draw each line yourself. You get `{ text, role, width, height, renderOrder,
|
|
96
|
+
style }`. Use transparent materials, because the layout fades every mesh under it.
|
|
97
|
+
|
|
98
|
+
## 2. Your own gesture, expression or pose
|
|
99
|
+
|
|
100
|
+
A definition holds three things:
|
|
101
|
+
|
|
102
|
+
- its default copy (`label`);
|
|
103
|
+
- how it is detected: a `rule`, a `match` function, or both, in which case both must pass;
|
|
104
|
+
- how the hint shows it (`hint`).
|
|
105
|
+
|
|
106
|
+
Pass a definition anywhere a built-in name goes: the presets, the hooks, the hints and the pure
|
|
107
|
+
`match*` functions.
|
|
108
|
+
|
|
109
|
+
```tsx
|
|
110
|
+
const hangLoose = defineHandGesture({
|
|
111
|
+
label: "Hang loose",
|
|
112
|
+
rule: { digits: { thumb: true, index: false, middle: false, ring: false, pinky: true } },
|
|
113
|
+
match: (shape) => shape.curl.pinky < 0.35, // and the pinky really straight
|
|
114
|
+
hint: { clip: "callMe", roll: 103, highlight: ["thumb", "pinky"] },
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
const yawn = defineFaceExpression({
|
|
118
|
+
label: "Big yawn",
|
|
119
|
+
rule: { atLeast: { jawOpen: 0.7 } },
|
|
120
|
+
hint: { targets: { surprised: 1, smile: 0.3 } }, // a weighted mix of morph targets
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
const flex = defineBodyPose({
|
|
124
|
+
label: "Show your muscles",
|
|
125
|
+
match: (shape) =>
|
|
126
|
+
shape.arms.left.bend > 70 && shape.arms.right.bend > 70 && shape.arms.left.up > 0,
|
|
127
|
+
hint: { clip: "flex", arms: ["left", "right"] }, // a clip in your own figure
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
<HandInstruction gesture={hangLoose} model={hand.scene} poses={hand.animations} />;
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The hint can name a clip in your own model:
|
|
134
|
+
|
|
135
|
+
- **Hand:** a `HandHintPose`: an authored `clip`, or a procedural pose (`curl`, `spread`,
|
|
136
|
+
`thumbTuck`, `thumbTo`), plus the view (`yaw`, `roll`, `aimThumb`) and `highlight`.
|
|
137
|
+
- **Face:** `{ target }` or `{ targets }`.
|
|
138
|
+
- **Body:** `{ clip, arms }`.
|
|
139
|
+
|
|
140
|
+
`resolveHandGesture`, `resolveFaceExpression` and `resolveBodyPose` turn a name or definition into
|
|
141
|
+
the full definition.
|
|
142
|
+
|
|
143
|
+
## 3. Tune detection
|
|
144
|
+
|
|
145
|
+
Every hook takes the same kinds of input:
|
|
146
|
+
|
|
147
|
+
- a built-in name;
|
|
148
|
+
- a rule;
|
|
149
|
+
- a match function:
|
|
150
|
+
- hand: `(shape, side) => boolean`;
|
|
151
|
+
- face: `(blendshapes, face) => boolean`;
|
|
152
|
+
- body: `(shape) => boolean`;
|
|
153
|
+
- a definition.
|
|
154
|
+
|
|
155
|
+
They also take `holdMs`, `graceMs`, `onComplete` and `active`.
|
|
156
|
+
|
|
157
|
+
The hand and body hooks take `limits`: thresholds overridden for that detector only. The defaults,
|
|
158
|
+
`HAND_SHAPE_LIMITS` and `BODY_SHAPE_LIMITS`, are frozen. The pure classifiers take them too:
|
|
159
|
+
|
|
160
|
+
```tsx
|
|
161
|
+
const thumb = useHandGesture("thumbUp", { limits: { thumbVertical: 0.5 }, holdMs: 800 });
|
|
162
|
+
const shape = analyzeBodyShape(landmarks, { mirrored, limits: { raisedAboveShoulder: 1 } });
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Every hook returns an **`InstructionDetector`** plus its own readout (`shapesRef`, `faceRef`,
|
|
166
|
+
`shapeRef`):
|
|
167
|
+
|
|
168
|
+
- `status`: re-renders only when it changes;
|
|
169
|
+
- `holdRef`: `progress` 0..1;
|
|
170
|
+
- `matchedRef`: matched on this frame;
|
|
171
|
+
- `isInView()`;
|
|
172
|
+
- `reset()`.
|
|
173
|
+
|
|
174
|
+
**Any condition.** `useInstructionHold(match, options)` holds any test you write; `match` runs every
|
|
175
|
+
frame. To combine detectors, read their `matchedRef`s, and call those hooks first in the same
|
|
176
|
+
component:
|
|
177
|
+
|
|
178
|
+
```tsx
|
|
179
|
+
const hand = useHandGesture("palm");
|
|
180
|
+
const face = useFaceExpression("smile");
|
|
181
|
+
const both = useInstructionHold(() => hand.matchedRef.current && face.matchedRef.current, {
|
|
182
|
+
isInView: () => hand.isInView() && face.isInView(),
|
|
183
|
+
holdMs: 600,
|
|
184
|
+
onComplete: start,
|
|
185
|
+
});
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
A new name, rule or definition value starts a new prompt. A match function is read live and doesn't
|
|
189
|
+
restart the hold. For a new prompt with the same function, call `reset()` or change the component's
|
|
190
|
+
React `key`.
|
|
191
|
+
|
|
192
|
+
## 4. A fully custom prompt: `<Instruction>`
|
|
193
|
+
|
|
194
|
+
The layout on its own: any detector, any symbol.
|
|
195
|
+
|
|
196
|
+
```tsx
|
|
197
|
+
<Instruction
|
|
198
|
+
detector={both} // any hook result, or your own { status, isInView }
|
|
199
|
+
text="Wave and smile"
|
|
200
|
+
nudgeText="Show your hand and your face" // default null (no nudge) here
|
|
201
|
+
symbol={(height, renderOrder) => (
|
|
202
|
+
<TextLabel
|
|
203
|
+
text="🖐️😊"
|
|
204
|
+
bgColor="transparent"
|
|
205
|
+
aspect={2}
|
|
206
|
+
scale={[height * 2, height, 1]}
|
|
207
|
+
renderOrder={renderOrder}
|
|
208
|
+
/>
|
|
209
|
+
)}
|
|
210
|
+
renderText={({ text, width, height, renderOrder }) => (
|
|
211
|
+
<TextLabel
|
|
212
|
+
text={text}
|
|
213
|
+
bgColor="#fde68a"
|
|
214
|
+
color="#0f172a"
|
|
215
|
+
borderRadius={60}
|
|
216
|
+
bgFit="text"
|
|
217
|
+
aspect={width / height}
|
|
218
|
+
scale={[width, height, 1]}
|
|
219
|
+
renderOrder={renderOrder}
|
|
220
|
+
/>
|
|
221
|
+
)}
|
|
222
|
+
/>
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
It takes every option from section 1, plus `symbolAspect` (a taller slot, e.g. 2.1 for a standing
|
|
226
|
+
figure) and `active`. Mount it inside `XRScene`; it draws in its own `ScreenSpaceUI`, above the AR
|
|
227
|
+
content (`INSTRUCTION_RENDER_ORDER`, 2000 and up). The symbol can be:
|
|
228
|
+
|
|
229
|
+
- a preset hint, e.g. `HandGestureHint` with your definition and `look`;
|
|
230
|
+
- an image (`ScreenImage`), a `SpriteAnimation` or an emoji;
|
|
231
|
+
- your own 3D model.
|
|
232
|
+
|
|
233
|
+
## 5. A hint on your own model
|
|
234
|
+
|
|
235
|
+
The presets' hints are built from a small kit you can use on any model:
|
|
236
|
+
|
|
237
|
+
- **`useGhostModel(model, look, { base, renderOrder })`** makes a ghost copy of the model.
|
|
238
|
+
- It applies a matcap per part, a depth pre-pass, the halo and the glow, all from one `look`.
|
|
239
|
+
- It returns `object` to render, and `meshes` (each with its twins, which need the same morph
|
|
240
|
+
weights).
|
|
241
|
+
- `setHighlight(bone => 0..1)` lights up bones; call `setStrength(amount)` every frame.
|
|
242
|
+
- **`HintStage`** handles the staging. It fits `span` to `height`, mirrors the model, draws the glow
|
|
243
|
+
disc behind it and runs the auto orbit.
|
|
244
|
+
- **`sampleHintLoop(time, loop)`** samples the loop: rest → pose (held) → rest. It returns `{ amount,
|
|
245
|
+
drive, phase, closing }`.
|
|
246
|
+
- **`createClipBlend(root, fromClip, toClip)`** and **`createMorphBlend(meshes, targets)`** pose the
|
|
247
|
+
model; `apply(amount)` each frame.
|
|
248
|
+
- **`orbitSpan(points, middle, amplitude)`** fits the model over the whole orbit.
|
|
249
|
+
|
|
250
|
+
```tsx
|
|
251
|
+
const MyHint = ({ height, renderOrder }: { height: number; renderOrder: number }) => {
|
|
252
|
+
const ghost = useGhostModel(
|
|
253
|
+
face.scene,
|
|
254
|
+
{ ghost: { color: "#fde68a" } },
|
|
255
|
+
{ base: FACE_HINT_LOOK, renderOrder },
|
|
256
|
+
);
|
|
257
|
+
const blend = useMemo(
|
|
258
|
+
() =>
|
|
259
|
+
createMorphBlend(
|
|
260
|
+
ghost.meshes.flatMap(({ mesh, twins }) => [mesh, ...twins]),
|
|
261
|
+
{ surprised: 1, wink: 1 },
|
|
262
|
+
),
|
|
263
|
+
[ghost.meshes],
|
|
264
|
+
);
|
|
265
|
+
const frame = useMemo(() => {
|
|
266
|
+
const box = new THREE.Box3().setFromObject(ghost.object);
|
|
267
|
+
const size = box.getSize(new THREE.Vector3());
|
|
268
|
+
return {
|
|
269
|
+
offset: box.getCenter(new THREE.Vector3()).negate(),
|
|
270
|
+
span: Math.max(size.x, size.y) * 1.2,
|
|
271
|
+
};
|
|
272
|
+
}, [ghost.object]);
|
|
273
|
+
useFrame(({ clock }) => {
|
|
274
|
+
const { amount } = sampleHintLoop(clock.elapsedTime, { seconds: 2 });
|
|
275
|
+
blend.apply(amount);
|
|
276
|
+
ghost.setStrength(amount);
|
|
277
|
+
});
|
|
278
|
+
return (
|
|
279
|
+
<HintStage
|
|
280
|
+
height={height}
|
|
281
|
+
span={frame.span}
|
|
282
|
+
orbit={20}
|
|
283
|
+
glow={ghost.glowMaterial}
|
|
284
|
+
renderOrder={renderOrder}
|
|
285
|
+
>
|
|
286
|
+
<group position={frame.offset}>
|
|
287
|
+
<primitive object={ghost.object} />
|
|
288
|
+
</group>
|
|
289
|
+
</HintStage>
|
|
290
|
+
);
|
|
291
|
+
};
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
The material factories are exported for full control: `createGhostMaterial`, `createHaloMaterial`,
|
|
295
|
+
`createGlowMaterial`, `createDepthPrepassMaterial`, `createHintMatcap`, `addHintTwins` and
|
|
296
|
+
`assignHintMaterials`. Their opacities, colours and widths are uniforms (`userData.ghost`,
|
|
297
|
+
`userData.halo`). The hold timing is pure too: `createGestureHoldState`, `stepGestureHold`,
|
|
298
|
+
`GESTURE_HOLD_DEFAULT_MS` (400) and `GESTURE_HOLD_GRACE_MS` (150).
|
|
299
|
+
|
|
300
|
+
## Example
|
|
301
|
+
|
|
302
|
+
`/custom-instruction` has three demos, built only from this door:
|
|
303
|
+
|
|
304
|
+
1. **Hang loose:** a custom gesture on the hand preset, with a restyled look, loop, text style and
|
|
305
|
+
ring.
|
|
306
|
+
2. **Palm and smile:** an open palm and a smile held together. It uses an emoji symbol and a pill
|
|
307
|
+
text component.
|
|
308
|
+
3. **Surprised wink:** your own hint, mixing two morph targets, for an expression with a match
|
|
309
|
+
function.
|
|
310
|
+
|
|
311
|
+
## Manual visual test plan
|
|
312
|
+
|
|
313
|
+
Open `/custom-instruction`.
|
|
314
|
+
|
|
315
|
+
1. **Restyled preset**: the hang-loose hand is cyan with no halo and a blue glow. The thumb and
|
|
316
|
+
pinky are brighter, the fingers move together, and the text is a serif with a dark stroke. On the
|
|
317
|
+
webcam, do the gesture: a large cyan ring plays, and "Nice!" replaces the copy.
|
|
318
|
+
2. **Any condition**: the emoji pair stands over a yellow pill. Show an open palm only: it stays
|
|
319
|
+
`detected`. Then smile with the palm up: it holds, then completes.
|
|
320
|
+
3. **Own hint**: the gold face loops into a surprised wink with a dark-gold halo. A plain wink or a
|
|
321
|
+
plain open mouth doesn't complete it; both together do.
|
|
322
|
+
4. **Presets unchanged**: `/hand-instructions`, `/face-instructions` and `/body-instructions` look
|
|
323
|
+
and behave as before. The exception is peace, point and the counts, which now show the palm.
|