@vincentt-xr/sdk 2.0.0-alpha.8 → 2.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GROUNDING.md +4643 -170
- package/README.md +1 -0
- package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
- package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
- package/dist/DebuggerUI-7ngnJsBe.js +275 -0
- package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
- package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
- package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
- package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
- package/dist/FaceSurface-DmP9AEeC.js +27 -0
- package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
- package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
- package/dist/SkeletonUtils-C2r90MtN.js +21 -0
- package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
- package/dist/TextLabel-XE0rQSDn.cjs +2 -0
- package/dist/TextLabel-c9BCucOI.js +961 -0
- package/dist/assets/gltfLoader.d.ts +16 -0
- package/dist/assets/loaders.d.ts +16 -1
- package/dist/body-pose/index.d.ts +521 -0
- package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
- package/dist/body-trigger/frame.d.ts +88 -0
- package/dist/body-trigger/index.d.ts +6 -0
- package/dist/body-trigger/moves.d.ts +235 -0
- package/dist/body-trigger/trigger.d.ts +75 -0
- package/dist/calibration/calibration.d.ts +11 -6
- package/dist/canonicalFace-BHwyCx1c.js +9 -0
- package/dist/canonicalFace-C83I225R.cjs +1 -0
- package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
- package/dist/components/BodyInstruction/index.d.ts +69 -0
- package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
- package/dist/components/BodyTracker/index.d.ts +10 -2
- package/dist/components/BodyTrigger/index.d.ts +49 -0
- package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
- package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
- package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
- package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
- package/dist/components/FaceAtlas/constants.d.ts +8 -0
- package/dist/components/FaceAtlas/index.d.ts +7 -0
- package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
- package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
- package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
- package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
- package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
- package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
- package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
- package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
- package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
- package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
- package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
- package/dist/components/FaceCharacter/index.d.ts +18 -0
- package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
- package/dist/components/FaceInset/FaceInset.d.ts +68 -0
- package/dist/components/FaceInset/frame.d.ts +94 -0
- package/dist/components/FaceInset/index.d.ts +6 -0
- package/dist/components/FaceInset/material.d.ts +40 -0
- package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
- package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
- package/dist/components/FaceInstruction/index.d.ts +56 -0
- package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
- package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
- package/dist/components/FaceLiquify/debug.d.ts +37 -0
- package/dist/components/FaceLiquify/frame.d.ts +55 -0
- package/dist/components/FaceLiquify/index.d.ts +10 -0
- package/dist/components/FaceLiquify/material.d.ts +39 -0
- package/dist/components/FaceLiquify/pass.d.ts +49 -0
- package/dist/components/FaceLiquify/presence.d.ts +25 -0
- package/dist/components/FaceLiquify/presets.d.ts +82 -0
- package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
- package/dist/components/FaceLiquify/target.d.ts +85 -0
- package/dist/components/FaceLiquify/warp.d.ts +72 -0
- package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +5 -3
- package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +9 -0
- package/dist/components/FaceMesh/index.d.ts +1 -1
- package/dist/components/FaceRetouch/Background.d.ts +3 -1
- package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
- package/dist/components/FaceRetouch/renderState.d.ts +19 -0
- package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
- package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
- package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
- package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
- package/dist/components/FaceSwap/index.d.ts +13 -0
- package/dist/components/FaceSwap/settings.d.ts +300 -0
- package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
- package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
- package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
- package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
- package/dist/components/FaceWarp3D/index.d.ts +2 -3
- package/dist/components/Faceless/Faceless.d.ts +51 -0
- package/dist/components/Faceless/index.d.ts +2 -0
- package/dist/components/HairLock/HairLock.d.ts +39 -0
- package/dist/components/HairLock/index.d.ts +2 -0
- package/dist/components/HairLock/lockGeometry.d.ts +15 -0
- package/dist/components/HandCutout/index.d.ts +35 -0
- package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
- package/dist/components/HandInstruction/index.d.ts +74 -0
- package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
- package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
- package/dist/components/HandRig/HandAttachment.d.ts +34 -0
- package/dist/components/HandRig/HandOccluder.d.ts +55 -0
- package/dist/components/HandRig/HandTattoo.d.ts +61 -0
- package/dist/components/HandRig/WristAttachment.d.ts +34 -0
- package/dist/components/HandRig/index.d.ts +101 -0
- package/dist/components/HandRig/useArmMask.d.ts +29 -0
- package/dist/components/HandRig/wristSolve.d.ts +69 -0
- package/dist/components/HandTouch/HandTouch.d.ts +62 -0
- package/dist/components/HandTouch/Touchable.d.ts +36 -0
- package/dist/components/HandTouch/index.d.ts +2 -0
- package/dist/components/HeadBinding/index.d.ts +14 -0
- package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
- package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
- package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
- package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
- package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
- package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
- package/dist/components/HeadOccluder/index.d.ts +57 -3
- package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
- package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
- package/dist/components/Instruction/HintStage.d.ts +29 -0
- package/dist/components/Instruction/InstructionCue.d.ts +126 -0
- package/dist/components/Instruction/gestureHold.d.ts +20 -0
- package/dist/components/Instruction/ghost.d.ts +129 -0
- package/dist/components/Instruction/hintBlend.d.ts +19 -0
- package/dist/components/Instruction/hintLook.d.ts +81 -0
- package/dist/components/Instruction/hintLoop.d.ts +36 -0
- package/dist/components/Instruction/index.d.ts +41 -0
- package/dist/components/Instruction/useGhostModel.d.ts +33 -0
- package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
- package/dist/components/LipEffect/LipEffect.d.ts +22 -2
- package/dist/components/LipEffect/LipEffectMaterial.d.ts +62 -10
- package/dist/components/LipEffect/LipEffects.d.ts +5 -2
- package/dist/components/LipEffect/defaults.d.ts +21 -2
- package/dist/components/LipEffect/index.d.ts +1 -1
- package/dist/components/LipEffect/lipShading.d.ts +73 -0
- package/dist/components/LipEffect/settings.d.ts +117 -13
- package/dist/components/LipEffect/shader.d.ts +39 -0
- package/dist/components/LipEffect/types.d.ts +82 -10
- package/dist/components/LipEffect/useLipDesignTextures.d.ts +6 -0
- package/dist/components/LipEffect/uvGuide.d.ts +31 -16
- package/dist/components/Makeup/Blush.d.ts +18 -0
- package/dist/components/Makeup/Brows.d.ts +20 -0
- package/dist/components/Makeup/Contour.d.ts +17 -0
- package/dist/components/Makeup/Eyeliner.d.ts +20 -0
- package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
- package/dist/components/Makeup/Highlighter.d.ts +18 -0
- package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
- package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
- package/dist/components/Makeup/constants.d.ts +44 -0
- package/dist/components/Makeup/design.d.ts +106 -0
- package/dist/components/Makeup/designSamples.d.ts +42 -0
- package/dist/components/Makeup/eyes.d.ts +114 -0
- package/dist/components/Makeup/fields.d.ts +10 -0
- package/dist/components/Makeup/geometry.d.ts +106 -0
- package/dist/components/Makeup/index.d.ts +26 -0
- package/dist/components/Makeup/looks.d.ts +28 -0
- package/dist/components/Makeup/material.d.ts +239 -0
- package/dist/components/Makeup/settings.d.ts +54 -0
- package/dist/components/Makeup/shades.d.ts +143 -0
- package/dist/components/Makeup/shapes.d.ts +27 -0
- package/dist/components/Makeup/skinTone.d.ts +135 -0
- package/dist/components/Makeup/types.d.ts +110 -0
- package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
- package/dist/components/Necklace/Necklace.d.ts +44 -0
- package/dist/components/Necklace/index.d.ts +1 -0
- package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
- package/dist/components/ParticleEmitter/index.d.ts +1 -0
- package/dist/components/ShoulderOccluder/index.d.ts +43 -0
- package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
- package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
- package/dist/components/SpringSwing/index.d.ts +1 -0
- package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/config/index.d.ts +0 -1
- package/dist/context-DTxSQvp4.js +13 -0
- package/dist/context-hA0Rb2Xa.cjs +1 -0
- package/dist/contexts-BH7PdKFS.cjs +1 -0
- package/dist/contexts-jak8-tND.js +667 -0
- package/dist/coordinates/index.d.ts +2 -0
- package/dist/coordinates/side.d.ts +40 -0
- package/dist/debug-ui/default-setting.cjs +2 -2
- package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
- package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
- package/dist/debug-ui/index.d.ts +4 -3
- package/dist/debug-ui/media-source/index.d.ts +1 -1
- package/dist/debug-ui/media-source/session.d.ts +30 -2
- package/dist/debug-ui/media-source.cjs +1 -1
- package/dist/debug-ui/media-source.js +1 -1
- package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
- package/dist/debug-ui/product-hotspots/index.d.ts +3 -2
- package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
- package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
- package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
- package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
- package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
- package/dist/debug-ui/settings-panel/index.d.ts +6 -1
- package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
- package/dist/debug-ui/xr-diagnostics/index.d.ts +3 -2
- package/dist/debug-ui.cjs +3 -3
- package/dist/debug-ui.js +2250 -2472
- package/dist/entries/all.d.ts +3 -1
- package/dist/entries/core.d.ts +3 -2
- package/dist/entries/face-effects.d.ts +114 -8
- package/dist/entries/instructions.d.ts +48 -0
- package/dist/entries/internal.d.ts +2 -1
- package/dist/entries/low-level.d.ts +28 -1
- package/dist/entries/particles.d.ts +11 -0
- package/dist/entries/tracking.d.ts +37 -2
- package/dist/face-atlas/attributes.d.ts +30 -0
- package/dist/face-atlas/eyes.d.ts +272 -0
- package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
- package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
- package/dist/face-atlas/glsl/common.d.ts +55 -0
- package/dist/face-atlas/glsl/design.d.ts +49 -0
- package/dist/face-atlas/glsl/eyes.d.ts +73 -0
- package/dist/face-atlas/glsl/finish.d.ts +24 -0
- package/dist/face-atlas/glsl/format.d.ts +4 -0
- package/dist/face-atlas/glsl/index.d.ts +59 -0
- package/dist/face-atlas/glsl/shading.d.ts +15 -0
- package/dist/face-atlas/glsl/shapes.d.ts +66 -0
- package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
- package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
- package/dist/face-atlas/guide.d.ts +51 -0
- package/dist/face-atlas/index.d.ts +25 -0
- package/dist/face-atlas/lead.d.ts +117 -0
- package/dist/face-atlas/madeUpCamera.d.ts +125 -0
- package/dist/face-atlas/masks.d.ts +53 -0
- package/dist/face-atlas/obj.d.ts +69 -0
- package/dist/face-atlas/polylines.d.ts +63 -0
- package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
- package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
- package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
- package/dist/face-atlas/probe/constants.d.ts +137 -0
- package/dist/face-atlas/probe/glsl.d.ts +43 -0
- package/dist/face-atlas/probe/lightFit.d.ts +108 -0
- package/dist/face-atlas/probe/schedule.d.ts +44 -0
- package/dist/face-atlas/probe/selfTest.d.ts +87 -0
- package/dist/face-atlas/probe/stats.d.ts +143 -0
- package/dist/face-atlas/probe/targets.d.ts +70 -0
- package/dist/face-atlas/probe/unwrap.d.ts +76 -0
- package/dist/face-atlas/quality.d.ts +28 -0
- package/dist/face-atlas/regions.d.ts +31 -0
- package/dist/face-atlas/registry.d.ts +252 -0
- package/dist/face-atlas/renderState.d.ts +86 -0
- package/dist/face-atlas/selfOcclusion.d.ts +62 -0
- package/dist/face-atlas/shading.d.ts +406 -0
- package/dist/face-atlas/shapes.d.ts +86 -0
- package/dist/face-atlas/sides.d.ts +41 -0
- package/dist/face-atlas/skinMask.d.ts +35 -0
- package/dist/face-atlas/surface.d.ts +155 -0
- package/dist/face-atlas/topology.d.ts +44 -0
- package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
- package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
- package/dist/face-character/bindFaceModel.d.ts +106 -0
- package/dist/face-character/canonicalFace.d.ts +17 -0
- package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
- package/dist/face-character/canonicalFacePositions.d.ts +7 -0
- package/dist/face-character/driveFaceModel.d.ts +57 -0
- package/dist/face-character/expressionOutputs.d.ts +45 -0
- package/dist/face-character/faceExpressions.d.ts +104 -0
- package/dist/face-character/faceImageLandmarker.d.ts +93 -0
- package/dist/face-character/faceMeshBinding.d.ts +62 -0
- package/dist/face-character/faceMorph.d.ts +77 -0
- package/dist/face-character/faceMorphs.d.ts +46 -0
- package/dist/face-character/facePhoto.d.ts +138 -0
- package/dist/face-character/facePiercings.d.ts +116 -0
- package/dist/face-character/facePin.d.ts +131 -0
- package/dist/face-character/faceReprojection.d.ts +273 -0
- package/dist/face-character/faceReprojector.d.ts +171 -0
- package/dist/face-character/faceRig.d.ts +176 -0
- package/dist/face-character/faceSwapPresence.d.ts +85 -0
- package/dist/face-character/faceTexture.d.ts +169 -0
- package/dist/face-character/faceTextureBaker.d.ts +86 -0
- package/dist/face-character/faceTextureGuide.d.ts +106 -0
- package/dist/face-character/faceTextureStats.d.ts +298 -0
- package/dist/face-character/faceTransfer.d.ts +396 -0
- package/dist/face-character/faceTransferGeometry.d.ts +109 -0
- package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
- package/dist/face-character/faceWarp3D.d.ts +101 -0
- package/dist/face-character/faceless.d.ts +79 -0
- package/dist/face-character/featureWarp.d.ts +28 -0
- package/dist/face-character/liveFaceRegistry.d.ts +370 -0
- package/dist/face-character/liveValue.d.ts +12 -0
- package/dist/face-character/memo.d.ts +15 -0
- package/dist/face-effects.cjs +2252 -83
- package/dist/face-effects.js +14234 -1231
- package/dist/face-expression/index.d.ts +182 -0
- package/dist/face-info/landmarks.d.ts +17 -3
- package/dist/face-info/types.d.ts +20 -3
- package/dist/gestures/definitions.d.ts +15 -2
- package/dist/gestures/index.d.ts +1 -1
- package/dist/gestures/measures.d.ts +21 -8
- package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
- package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
- package/dist/hand/armFit.d.ts +46 -0
- package/dist/hand/armMask.d.ts +178 -0
- package/dist/hand/handCutout.d.ts +23 -0
- package/dist/hand/handCutoutRegistry.d.ts +7 -0
- package/dist/hand/handGestures.d.ts +524 -0
- package/dist/hand/handPose.d.ts +98 -0
- package/dist/hand/handRigSolver.d.ts +159 -0
- package/dist/hand/handTattoo.d.ts +81 -0
- package/dist/hand/handTouch.d.ts +240 -0
- package/dist/hand/wrist.d.ts +44 -0
- package/dist/hand/wristFilter.d.ts +44 -0
- package/dist/hooks/selectors.d.ts +8 -0
- package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
- package/dist/hooks/useTrackerContext.d.ts +6 -0
- package/dist/index-B1_TzJaI.js +1104 -0
- package/dist/index-BavF06C6.js +190 -0
- package/dist/index-BfFmpddl.cjs +21 -0
- package/dist/index-BuBzneeW.cjs +46 -0
- package/dist/index-CGsQWodV.cjs +1 -0
- package/dist/index-CIe7eCMH.js +3200 -0
- package/dist/index-CfSF8LXa.cjs +1 -0
- package/dist/index-D5GTzOzD.cjs +1 -0
- package/dist/index-DBhQzvVa.js +314 -0
- package/dist/index-DE17y0ZI.cjs +1 -0
- package/dist/index-JII7huPk.js +442 -0
- package/dist/index-tpCr9CLj.cjs +1 -0
- package/dist/{renderPasses-NnKZVfBy.js → index-w1S7fI2B.js} +219 -247
- package/dist/index-zGaqrz_K.js +188 -0
- package/dist/instructions.cjs +30 -0
- package/dist/instructions.js +1507 -0
- package/dist/{internal-vsfNQycj.js → internal-B90P-clC.js} +138 -118
- package/dist/internal-Cjinca64.cjs +1 -0
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +15 -10
- package/dist/iris/compute.d.ts +7 -5
- package/dist/iris/types.d.ts +6 -4
- package/dist/{landmarkMask-CbTFzBYG.js → landmarkMask-BFDyBnKM.js} +6 -6
- package/dist/landmarks-BlUqf5MZ.cjs +1 -0
- package/dist/landmarks-bftdwq6Z.js +76 -0
- package/dist/loaders-BGAUACsd.js +363 -0
- package/dist/loaders-BJ1_QCHt.cjs +1 -0
- package/dist/low-level.cjs +1 -1
- package/dist/low-level.js +666 -602
- package/dist/main.cjs +1 -1
- package/dist/main.js +866 -1182
- package/dist/models/Body/index.d.ts +2 -0
- package/dist/models/Face/constants.d.ts +8 -0
- package/dist/models/Face/index.d.ts +3 -11
- package/dist/models/Face/rotation.d.ts +18 -3
- package/dist/models/Hand/HandTracking.d.ts +17 -1
- package/dist/models/Segmentation/index.d.ts +2 -0
- package/dist/models/nodeSource.d.ts +9 -0
- package/dist/particles/emission.d.ts +24 -0
- package/dist/particles/eyes.d.ts +24 -0
- package/dist/particles/glsl.d.ts +14 -0
- package/dist/particles/index.d.ts +10 -0
- package/dist/particles/motion.d.ts +42 -0
- package/dist/particles/presets.d.ts +12 -0
- package/dist/particles/ring.d.ts +58 -0
- package/dist/particles/selfTest.d.ts +53 -0
- package/dist/particles/settings.d.ts +127 -0
- package/dist/particles/shapes.d.ts +29 -0
- package/dist/particles/spawner.d.ts +60 -0
- package/dist/particles/system.d.ts +64 -0
- package/dist/particles.cjs +122 -0
- package/dist/particles.js +774 -0
- package/dist/product.cjs +1 -1
- package/dist/product.js +29 -29
- package/dist/{providers-C0Dlhh9Z.js → providers-C8rE26Uf.js} +127 -126
- package/dist/providers-DHsrhDI2.cjs +62 -0
- package/dist/render/renderPasses.d.ts +8 -0
- package/dist/render/sceneBeforeRender.d.ts +12 -0
- package/dist/{renderGroups-CN1cGFUo.js → renderGroups-B38pUaX2.js} +1 -1
- package/dist/{renderGroups-O4KmaMl9.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
- package/dist/renderPasses-B6l8IpJv.js +1290 -0
- package/dist/renderPasses-dqmkft4P.cjs +158 -0
- package/dist/renderState-CJNmj5jz.js +39 -0
- package/dist/renderState-apSfg4eR.cjs +1 -0
- package/dist/scene-object.cjs +1 -1
- package/dist/scene-object.js +2 -2
- package/dist/segmentation-Cb3ouK6Z.js +1758 -0
- package/dist/segmentation-D9pYO6aR.cjs +1 -0
- package/dist/segmentation2d/types.d.ts +6 -0
- package/dist/select-Ck5LGz-J.cjs +1 -0
- package/dist/select-pYRo_win.js +233 -0
- package/dist/selectors-C4X71aoD.cjs +1 -0
- package/dist/selectors-DmNaKIwE.js +196 -0
- package/dist/session-BrH8G7iJ.cjs +31 -0
- package/dist/session-DgA_z6O1.js +418 -0
- package/dist/{settings-aQk845NJ.js → settings-BJ7FMBsO.js} +53 -15
- package/dist/settings-C63FMBlF.cjs +1 -0
- package/dist/similarityFit-BFqHND2e.cjs +1 -0
- package/dist/similarityFit-Bbz-R8AY.js +91 -0
- package/dist/spring/index.d.ts +2 -0
- package/dist/spring/spring.d.ts +69 -0
- package/dist/spring/swing.d.ts +54 -0
- package/dist/tracking.cjs +10 -1
- package/dist/tracking.js +1002 -855
- package/dist/trigger-D0Pm9noT.cjs +49 -0
- package/dist/trigger-IQeys0oS.js +2128 -0
- package/dist/types/face.d.ts +20 -1
- package/dist/types/hand-tracking.d.ts +9 -0
- package/dist/types/nodes.d.ts +20 -1
- package/dist/types/segmentation.d.ts +5 -0
- package/dist/updateThrottle-BseecYag.js +4 -0
- package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
- package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
- package/dist/useFaceInfo-J4x7LsqL.js +76 -0
- package/dist/useFaceResultReader-BvEo5REG.js +61 -0
- package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
- package/dist/useInstructionHold-DOu-RpCM.js +53 -0
- package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
- package/dist/{useXRCapabilities-B1R2ghy-.cjs → useXRCapabilities-Cr3RzuAW.cjs} +1 -1
- package/dist/{useXRCapabilities-C68v__wB.js → useXRCapabilities-Cxmlmpbd.js} +1 -1
- package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
- package/dist/utils/headOccluderFit.d.ts +42 -0
- package/dist/utils/integrity.d.ts +17 -0
- package/dist/utils/resolveNumFaces.d.ts +13 -0
- package/dist/utils/shoulderOccluderFit.d.ts +38 -0
- package/dist/utils/similarityFit.d.ts +23 -0
- package/dist/uv-BMFt19bg.cjs +1 -0
- package/dist/{index-CsUdQ-pn.js → uv-DJU_XfmN.js} +15 -249
- package/docs/SDK_DOCUMENTATION.md +1 -2
- package/docs/api/adaptive-quality.mdx +1 -1
- package/docs/api/body-instructions.mdx +285 -0
- package/docs/api/body-triggers.mdx +234 -0
- package/docs/api/camera-permission.mdx +1 -1
- package/docs/api/coordinate-spaces.mdx +7 -4
- package/docs/api/cross-camera.mdx +3 -2
- package/docs/api/debug-ui-scene-editor.mdx +23 -2
- package/docs/api/external-face-mesh.mdx +231 -0
- package/docs/api/face-actions.mdx +20 -16
- package/docs/api/face-attribute-expression.mdx +1 -1
- package/docs/api/face-binding-anchors.mdx +4 -2
- package/docs/api/face-character.mdx +157 -0
- package/docs/api/face-effects.mdx +3 -0
- package/docs/api/face-expression-controller.mdx +153 -0
- package/docs/api/face-info.mdx +17 -11
- package/docs/api/face-inset.mdx +204 -0
- package/docs/api/face-instructions.mdx +183 -0
- package/docs/api/face-liquify.mdx +196 -0
- package/docs/api/face-mesh.mdx +4 -7
- package/docs/api/face-morph.mdx +117 -0
- package/docs/api/face-painting.mdx +7 -0
- package/docs/api/face-reprojection.mdx +154 -0
- package/docs/api/face-retouching.mdx +18 -10
- package/docs/api/face-swap.mdx +350 -0
- package/docs/api/face-warp-3d.mdx +166 -0
- package/docs/api/faceless.mdx +143 -0
- package/docs/api/gestures.mdx +68 -32
- package/docs/api/hair.mdx +97 -0
- package/docs/api/hand-instructions.mdx +222 -0
- package/docs/api/hand-rig.mdx +535 -0
- package/docs/api/hand-touch.mdx +162 -0
- package/docs/api/head-occluder.mdx +563 -0
- package/docs/api/holistic-tracker.mdx +6 -1
- package/docs/api/instructions.mdx +323 -0
- package/docs/api/iris-tracking.mdx +24 -19
- package/docs/api/made-up-camera.mdx +131 -0
- package/docs/api/makeup-skin-tone.mdx +135 -0
- package/docs/api/makeup.mdx +353 -0
- package/docs/api/multi-subject.mdx +4 -1
- package/docs/api/particles.mdx +155 -0
- package/docs/api/person-cutout.mdx +1 -1
- package/docs/api/pin-to-face-mesh.mdx +274 -0
- package/docs/api/product-ar.mdx +5 -2
- package/docs/api/segmentation-overlay.mdx +1 -1
- package/docs/docs.json +29 -1
- package/docs/examples/lip-shaders.mdx +82 -33
- package/docs/guides/face-atlas-template.svg +1 -0
- package/docs/guides/face-atlas-textures.mdx +186 -0
- package/docs/guides/face-texture-template.svg +1 -0
- package/docs/guides/harness-debug-ui.mdx +4 -4
- package/docs/guides/lip-effect-textures.mdx +178 -102
- package/docs/guides/lip-uv-template.png +0 -0
- package/docs/guides/lip-uv-template.svg +1 -1
- package/docs/guides/makeup-design-textures.mdx +109 -0
- package/docs/introduction.mdx +1 -2
- package/package.json +11 -1
- package/dist/DebuggerUI-C-ldiozL.js +0 -269
- package/dist/DebuggerUI-CWX5EtQv.cjs +0 -1
- package/dist/FaceMeshRenderer-BEEXZwS6.cjs +0 -158
- package/dist/FaceMeshRenderer-UuH5sTXG.js +0 -1322
- package/dist/FaceRetouch-C7h7x9kd.js +0 -683
- package/dist/FaceRetouch-DqftT26Y.cjs +0 -134
- package/dist/GLTFLoader-C5q63sKO.js +0 -1633
- package/dist/GLTFLoader-Cb_CRwmG.cjs +0 -1
- package/dist/SegmentationOverlay-DQuW3dsc.js +0 -133
- package/dist/SegmentationOverlay-aWVod8Kl.cjs +0 -1
- package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
- package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
- package/dist/components/FaceWarp3D/warp.d.ts +0 -13
- package/dist/contexts-CO0sd4JQ.cjs +0 -1
- package/dist/contexts-FzlnnMYD.js +0 -669
- package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
- package/dist/getFaceInfo-BkZfaQs-.js +0 -118
- package/dist/getFaceInfo-ahPxQFGu.cjs +0 -1
- package/dist/index--RgGzZ6X.cjs +0 -47
- package/dist/index-CHVbH0hz.js +0 -214
- package/dist/index-CeVkgsag.cjs +0 -1
- package/dist/index-CnGox6Xr.js +0 -3054
- package/dist/index-DKBAh6hV.cjs +0 -1
- package/dist/index-DsZwTfG0.cjs +0 -1
- package/dist/index-Dw6tj2Mi.js +0 -144
- package/dist/index-OCPjOaeP.cjs +0 -1
- package/dist/index-s9pF4zkG.js +0 -2053
- package/dist/internal-BYza1h8_.cjs +0 -1
- package/dist/measures-9dQPdw96.js +0 -154
- package/dist/measures-KfJzpvod.cjs +0 -1
- package/dist/providers-YNwkmNeK.cjs +0 -62
- package/dist/renderPasses-Cg-zqmEz.cjs +0 -21
- package/dist/screenTransform-BenfCtZt.js +0 -44
- package/dist/screenTransform-BiXdpVf0.cjs +0 -1
- package/dist/segmentation-9PhSvc-R.cjs +0 -1
- package/dist/segmentation-CeOTKemr.js +0 -5
- package/dist/selectors-C5G1PMYL.js +0 -195
- package/dist/selectors-Du_PsVnW.cjs +0 -1
- package/dist/session-BBr0yN8h.cjs +0 -31
- package/dist/session-Cy0m7l7-.js +0 -363
- package/dist/settings-DRR7-snV.cjs +0 -1
- package/dist/useFaceInfo-Blf7FCu3.js +0 -303
- package/dist/useFaceInfo-C5mO8NQY.cjs +0 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Hand Instructions"
|
|
3
|
+
description: "Ask for a hand gesture with a 3D hint hand and your own copy, detect it on the tracked hands, and complete when it is held."
|
|
4
|
+
sidebarTitle: "Hand Instructions"
|
|
5
|
+
icon: "hand-peace"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
`HandInstruction` asks the person for a hand gesture and waits for it. A looping, translucent 3D hand
|
|
9
|
+
demonstrates the gesture, your copy sits under it, and holding the gesture for `holdMs` completes it.
|
|
10
|
+
There is no card and no progress bar. The pieces underneath are exported too: `useHandGesture` (the
|
|
11
|
+
detection alone) and `HandGestureHint` (the hand alone). For face expressions, see [Face Instructions](/api/face-instructions):
|
|
12
|
+
same layout and feedback.
|
|
13
|
+
|
|
14
|
+
Import from `@vincentt-xr/sdk/instructions`. Everything is customisable: your own gestures, detection
|
|
15
|
+
logic, thresholds, hint look and motion, text style, or a fully custom prompt. See
|
|
16
|
+
[Instructions](/api/instructions).
|
|
17
|
+
|
|
18
|
+
## Quick start
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
import { useLoader } from "@react-three/fiber";
|
|
22
|
+
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
|
|
23
|
+
import { HandInstruction } from "@vincentt-xr/sdk/instructions";
|
|
24
|
+
|
|
25
|
+
const PeaceToStart = ({ onStart }: { onStart: () => void }) => {
|
|
26
|
+
const hand = useLoader(GLTFLoader, handUrl); // hand-v1.glb, or any hand following the rig contract
|
|
27
|
+
return (
|
|
28
|
+
<HandInstruction
|
|
29
|
+
gesture="peace"
|
|
30
|
+
text="Peace to start"
|
|
31
|
+
model={hand.scene}
|
|
32
|
+
poses={hand.animations}
|
|
33
|
+
onComplete={onStart}
|
|
34
|
+
/>
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Mount it inside `XRScene`. It acquires the hand model itself, so you don't need a `HandTracker`, and
|
|
40
|
+
draws over the AR content in its own screen-space layer (`HAND_INSTRUCTION_RENDER_ORDER` = 2000 and
|
|
41
|
+
up). Detection reads the hand model's world poses. It is separate from `GestureTracker` and its
|
|
42
|
+
MediaPipe gesture names.
|
|
43
|
+
|
|
44
|
+
## `HandInstruction`
|
|
45
|
+
|
|
46
|
+
| Prop | Default | What it does |
|
|
47
|
+
| ---------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| `gesture` | — | What to ask for: a name from `HAND_GESTURES` or your own `defineHandGesture(…)`. A new value is a new prompt. |
|
|
49
|
+
| `model` | — | The hint hand: a skinned hand following the [rig contract](/api/hand-rig#the-rig-contract-for-your-own-hand-model). |
|
|
50
|
+
| `poses` | — | The model's authored poses (the GLB's `animations`). Without them the hint is posed procedurally. |
|
|
51
|
+
| `modelHand` | `"right"` | The chirality the model is authored as. |
|
|
52
|
+
| `text` | the gesture's `label` | Your copy, in any language. Long text shrinks to fit. |
|
|
53
|
+
| `doneText` | keep `text` | Copy shown once completed, while it fades out. |
|
|
54
|
+
| `nudgeText` | `"Show your hand to the camera"` | Second line after `nudgeAfterMs` with no hand in view; the hint pulses. `null` turns it off. |
|
|
55
|
+
| `nudgeAfterMs` | `3000` | How long without a hand before the nudge. |
|
|
56
|
+
| `hand` | `"any"` | Which of the person's hands may do it: `"left"`, `"right"` or `"any"`. |
|
|
57
|
+
| `holdMs` | `400` | How long the gesture must be held. |
|
|
58
|
+
| `graceMs` | `150` | Dropouts shorter than this don't restart the hold. |
|
|
59
|
+
| `limits` | — | Classifier thresholds to override for this prompt (see `HAND_SHAPE_LIMITS`). |
|
|
60
|
+
| `size` | `"md"` | `"sm"`, `"md"`, `"lg"`: the hint is 10 / 14 / 19 % of the screen height; or a fraction of it (`0.22`). |
|
|
61
|
+
| `placement` | `"center"` | `"top"`, `"center"` or `"bottom"`. |
|
|
62
|
+
| `offset` | `[0, 0]` | Shift from the placement, in half-screens (`[0.5, 0]` = a quarter screen right). |
|
|
63
|
+
| `orbit` | `35` | The hint's auto orbit, degrees to each side. `0` holds it still. |
|
|
64
|
+
| `look` | `HAND_HINT_LOOK` | The hint's look, merged over the default: ghost tint and opacities, halo, glow, highlight, your own material. |
|
|
65
|
+
| `loop` | `HAND_HINT_LOOP` | The hint's loop: `seconds`, `hold`, `from`, `easing`, finger `stagger`. |
|
|
66
|
+
| `highlight` | picked from the gesture | The digits drawn brighter, or `false`. |
|
|
67
|
+
| `color` | `"#ffffff"` | Text colour. The text has a soft dark shadow so it reads on any camera feed. |
|
|
68
|
+
| `textStyle` … | — | `textStyle`, `nudgeTextStyle`, `renderText`, `motion`, `layout`: restyle the text, timings and proportions. See [Instructions](/api/instructions). |
|
|
69
|
+
| `onComplete` | — | Called once when the gesture is held long enough. |
|
|
70
|
+
| `onStatusChange` | — | Called once with the first status, then on every change (see below). |
|
|
71
|
+
| `hideOnComplete` | `true` | Fade out after completing. A small pop and a white ring play either way. |
|
|
72
|
+
| `active` | `true` | `false` hides it and pauses detection. |
|
|
73
|
+
|
|
74
|
+
`onStatusChange` reports a `HandInstructionStatus`:
|
|
75
|
+
|
|
76
|
+
- `"waiting"`: no usable hand in view.
|
|
77
|
+
- `"detected"`: a hand in view, not doing the gesture.
|
|
78
|
+
- `"holding"`: doing it; the hold is running.
|
|
79
|
+
- `"done"`: completed.
|
|
80
|
+
|
|
81
|
+
Use it for app logic or to announce progress to a screen reader. The instruction is drawn in WebGL, so
|
|
82
|
+
it is invisible to assistive technology on its own.
|
|
83
|
+
|
|
84
|
+
## Gestures
|
|
85
|
+
|
|
86
|
+
| Name | Default copy | Recognised when |
|
|
87
|
+
| -------------- | ----------------------- | --------------------------------------------------------- |
|
|
88
|
+
| `palm` | Show your palm | All five digits up. |
|
|
89
|
+
| `fist` | Make a fist | No digit up. |
|
|
90
|
+
| `peace` | Show a peace sign | Index and middle up, ring and pinky folded (thumb any). |
|
|
91
|
+
| `thumbUp` | Give a thumbs up | Thumb up and pointing up on screen, fingers folded. |
|
|
92
|
+
| `thumbDown` | Give a thumbs down | Thumb up and pointing down on screen, fingers folded. |
|
|
93
|
+
| `point` | Point your index finger | Index up, the other fingers folded (thumb any). |
|
|
94
|
+
| `one` … `five` | Show 1 finger … | Exactly that many digits up, thumb included, any of them. |
|
|
95
|
+
| `rock` | Rock on | Index and pinky up, middle and ring folded. |
|
|
96
|
+
| `loveYou` | Sign I love you | Thumb, index and pinky up, middle and ring folded. |
|
|
97
|
+
| `callMe` | Call me | Thumb and pinky up, the rest folded. |
|
|
98
|
+
| `ok` | Make an OK sign | Thumb and index tips touching, middle, ring and pinky up. |
|
|
99
|
+
|
|
100
|
+
Several can match at once: a peace sign is also `two`. There is deliberately no gesture for the
|
|
101
|
+
middle finger alone.
|
|
102
|
+
|
|
103
|
+
## Detection only: `useHandGesture`
|
|
104
|
+
|
|
105
|
+
```tsx
|
|
106
|
+
import { useHandGesture } from "@vincentt-xr/sdk/instructions";
|
|
107
|
+
|
|
108
|
+
const { status, holdRef, matchedRef, shapesRef, isInView, reset } = useHandGesture("thumbUp", {
|
|
109
|
+
hand: "any",
|
|
110
|
+
holdMs: 400,
|
|
111
|
+
limits: { thumbReach: 0.9 }, // optional, this detector only
|
|
112
|
+
onComplete: () => unlock(),
|
|
113
|
+
});
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`status` (`"waiting"` → `"holding"` → `"done"`) re-renders only when it changes. Read
|
|
117
|
+
`holdRef.current.progress` (0..1), `matchedRef.current` (matched this frame) and
|
|
118
|
+
`shapesRef.current.left` / `.right` (`HandShape`) inside `useFrame`, not in render. `reset()` asks
|
|
119
|
+
again. The result is an `InstructionDetector`, so it can drive a custom `<Instruction>`.
|
|
120
|
+
|
|
121
|
+
A rule, a match function or a definition works anywhere a gesture name does:
|
|
122
|
+
|
|
123
|
+
```tsx
|
|
124
|
+
useHandGesture({ digits: { index: true, pinky: true, middle: false }, thumbIndexTouch: false });
|
|
125
|
+
useHandGesture((shape, side) => side === "left" && shape.curl.index > 0.8);
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
A `HandGestureRule` has these fields:
|
|
129
|
+
|
|
130
|
+
- `digits`: per digit, `true` = up, `false` = folded, omitted = any.
|
|
131
|
+
- `count`: the exact number of digits up.
|
|
132
|
+
- `thumbDirection`: `"up"` or `"down"`.
|
|
133
|
+
- `thumbIndexTouch`: whether the thumb and index tips touch.
|
|
134
|
+
|
|
135
|
+
The classifier is pure. `analyzeHandShape(pose.world)` returns a `HandShape` with:
|
|
136
|
+
|
|
137
|
+
- `extended` and `curl` (0..1) per digit;
|
|
138
|
+
- `count`;
|
|
139
|
+
- `thumbDirection`, relative to the screen;
|
|
140
|
+
- `thumbIndexTouch`.
|
|
141
|
+
|
|
142
|
+
`matchHandGesture(shape, nameOrRule)` tests one gesture; `matchingHandGestures(shape)` lists every
|
|
143
|
+
name the shape satisfies. The default thresholds are `HAND_SHAPE_LIMITS` (read-only); override them per
|
|
144
|
+
call with `analyzeHandShape(world, { limits })` or the hook's `limits`.
|
|
145
|
+
|
|
146
|
+
## The hint hand: `HandGestureHint`
|
|
147
|
+
|
|
148
|
+
```tsx
|
|
149
|
+
<HandGestureHint gesture="ok" model={hand.scene} poses={hand.animations} height={0.4} />
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
The hand alone, for your own layout. It is fitted to `height` (parent units) and loops from a relaxed
|
|
153
|
+
hand into the pose and back. The default look:
|
|
154
|
+
|
|
155
|
+
- **Ghost:** translucent white, with a brighter rim.
|
|
156
|
+
- **Highlight:** the gesture's key digits are brighter. Peace lights the index and middle, OK the
|
|
157
|
+
thumb and index, thumbs up the thumb. `highlight` overrides with a digit list or `false`.
|
|
158
|
+
- **Halo:** a soft dark edge so it reads on light backgrounds (`look.halo`).
|
|
159
|
+
- **Glow:** a soft white light from behind the hand, brightening as the gesture forms (`look.glow`).
|
|
160
|
+
It is a separate disc behind the hand, so it never shows as inner layers.
|
|
161
|
+
- **Motion:** the fingers close one after another, pinky first (`loop`).
|
|
162
|
+
- **Orbit:** a slow ±35° side-to-side turn (`orbit`, `orbitSeconds`).
|
|
163
|
+
|
|
164
|
+
`look` is merged over `HAND_HINT_LOOK` (`false` turns a layer off; `look.material` replaces the
|
|
165
|
+
ghost). `showHand` picks the chirality to show; the other one is the model
|
|
166
|
+
mirrored.
|
|
167
|
+
|
|
168
|
+
**Authored poses.** Each gesture's `hint.clip` names a single-key animation clip on the model.
|
|
169
|
+
`hand-v1.glb` ships 11, posed in Blender: `palm`, `fist`, `peace`, `one`, `three`, `four`, `rock`,
|
|
170
|
+
`loveYou`, `callMe`, `thumbUp`, `ok`. `two`, `point`, `five` and `thumbDown` reuse them. Pass the
|
|
171
|
+
GLB's `animations` as `poses`. A model without the clip is posed procedurally from the same
|
|
172
|
+
`HandHintPose`.
|
|
173
|
+
|
|
174
|
+
**The view** is part of the hint too:
|
|
175
|
+
|
|
176
|
+
- `yaw` turns the hand about the fingers' axis: 0 shows the palm (most gestures, including peace,
|
|
177
|
+
point and the counts), 180 the back of the hand (rock), 124 the thumb side (OK).
|
|
178
|
+
- `roll` turns it in the screen plane: call me is held sideways, thumb up.
|
|
179
|
+
- `aimThumb` turns a thumbs up or down until the thumb points that way.
|
|
180
|
+
|
|
181
|
+
Every hint pose, authored and procedural, is tested to be recognised by the detector as its own
|
|
182
|
+
gesture.
|
|
183
|
+
|
|
184
|
+
The pieces underneath, also in `/instructions`:
|
|
185
|
+
|
|
186
|
+
- `applyHandHintPose(binding, hint, amount, clips)`: `amount` 0..1, or one per digit
|
|
187
|
+
(`HandHintAmount`).
|
|
188
|
+
- `readHandClipPose(clip)`.
|
|
189
|
+
- The hold timing: `GESTURE_HOLD_DEFAULT_MS`, `GESTURE_HOLD_GRACE_MS`, `createGestureHoldState`,
|
|
190
|
+
`stepGestureHold`.
|
|
191
|
+
|
|
192
|
+
## Example
|
|
193
|
+
|
|
194
|
+
`/hand-instructions` covers:
|
|
195
|
+
|
|
196
|
+
- every gesture as a chip, and a sequence mode that moves to the next gesture when one completes;
|
|
197
|
+
- text, nudge, size, placement and hold-time controls;
|
|
198
|
+
- a live readout of the status and what the classifier sees on each hand: digits up, count, thumb
|
|
199
|
+
direction, touch, matching gestures.
|
|
200
|
+
|
|
201
|
+
Local clips in the git-ignored `example/src/assets/media/local/` are listed first.
|
|
202
|
+
|
|
203
|
+
## Manual visual test plan
|
|
204
|
+
|
|
205
|
+
Open `/hand-instructions`.
|
|
206
|
+
|
|
207
|
+
1. **Every hint reads**: step through all 15 chips. Each hand forms its gesture, at its view: the palm
|
|
208
|
+
for peace, point and the counts, the back of the hand for rock, thumb side for OK, sideways for call me, thumb vertical for
|
|
209
|
+
thumbs up / down. The key digits are brighter, and it stays inside its slot through the orbit.
|
|
210
|
+
2. **Looks**: the ghost is translucent with no inner fingers showing through, the halo separates it
|
|
211
|
+
from a white shirt, and the wrist fades out.
|
|
212
|
+
3. **Motion**: the fingers close pinky first and settle. The hand swings about 35° each way.
|
|
213
|
+
4. **Detection**: on the webcam, make each gesture with either hand. The readout shows `holding`,
|
|
214
|
+
then `done`. A wrong gesture stays `detected`. Peace also lists `two`.
|
|
215
|
+
5. **Completion**: on done, a small pop and a white ring play. With sequence on, it fades out and the
|
|
216
|
+
next gesture comes in.
|
|
217
|
+
6. **Nudge**: hide your hands for 3 s. The second line fades in and the hint pulses. Show a hand and
|
|
218
|
+
it fades out. With the nudge off it never appears.
|
|
219
|
+
7. **Copy and layout**: type custom text (long text shrinks to fit), switch the sizes and top /
|
|
220
|
+
center / bottom placement. Nothing overlaps the screen edge.
|
|
221
|
+
8. **Mirroring**: on the mirrored webcam the hint shows the hand you'd use, mirrored to match the
|
|
222
|
+
screen, with the thumb on the correct side.
|