@vincentt-xr/sdk 2.0.0-alpha.7 → 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 +5651 -82
- 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/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/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 +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/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 +17 -0
- 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 +37 -5
- package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
- package/dist/components/FaceMesh/index.d.ts +2 -2
- 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/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/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/HandTracker/index.d.ts +10 -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/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/LipEffect/LipEffect.d.ts +27 -1
- package/dist/components/LipEffect/LipEffectMaterial.d.ts +95 -7
- package/dist/components/LipEffect/LipEffects.d.ts +12 -0
- package/dist/components/LipEffect/defaults.d.ts +46 -4
- package/dist/components/LipEffect/index.d.ts +11 -3
- 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 +128 -9
- package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
- package/dist/components/LipEffect/uvGuide.d.ts +74 -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/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 +50 -0
- package/dist/components/PersonCutout/personCutout.d.ts +16 -0
- package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
- package/dist/components/ScreenImage/index.d.ts +3 -1
- package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
- package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
- package/dist/components/ScreenImage/source.d.ts +6 -0
- package/dist/components/ScreenImage/types.d.ts +18 -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/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/XRProvider/index.d.ts +16 -2
- package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
- package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
- package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
- package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
- package/dist/components/index.d.ts +11 -0
- package/dist/config/index.d.ts +0 -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-BH7PdKFS.cjs +1 -0
- package/dist/contexts-jak8-tND.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/default-setting.cjs +2 -2
- 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/hierarchy-panel/index.d.ts +3 -2
- package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
- package/dist/debug-ui/index.d.ts +18 -3
- package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
- package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
- 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 +25 -0
- 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/segmentation-overlay-settings/index.d.ts +12 -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 +26 -0
- package/dist/debug-ui.cjs +3 -3
- package/dist/debug-ui.js +2695 -2547
- package/dist/detector-K8aej4MB.js +59 -0
- package/dist/detector-ijypGtse.cjs +1 -0
- package/dist/entries/all.d.ts +3 -1
- package/dist/entries/core.d.ts +20 -2
- package/dist/entries/face-effects.d.ts +123 -9
- package/dist/entries/instructions.d.ts +48 -0
- package/dist/entries/internal.d.ts +2 -1
- package/dist/entries/low-level.d.ts +49 -3
- package/dist/entries/particles.d.ts +11 -0
- package/dist/entries/product.d.ts +11 -0
- package/dist/entries/tracking.d.ts +60 -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 +2324 -1
- package/dist/face-effects.js +14208 -2268
- 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 +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-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 +76 -1
- package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
- package/dist/hooks/useFaceInfo.d.ts +13 -1
- package/dist/hooks/useFaceInfos.d.ts +1 -1
- package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
- package/dist/hooks/useGesture.d.ts +32 -0
- package/dist/hooks/useIrisTracking.d.ts +45 -0
- package/dist/hooks/useTrackerContext.d.ts +6 -0
- package/dist/hooks/useXRDiagnostics.d.ts +81 -0
- package/dist/hooks/useXRModel.d.ts +7 -0
- package/dist/hooks/useXRSession/facade.d.ts +42 -2
- package/dist/hooks/useXRSession/index.d.ts +2 -2
- package/dist/hooks/useXRSession/reason.d.ts +3 -1
- package/dist/hooks/useXRSession/registry.d.ts +14 -0
- package/dist/hooks/useXRSession/store.d.ts +52 -3
- 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/index-w1S7fI2B.js +1432 -0
- package/dist/index-zGaqrz_K.js +188 -0
- package/dist/instructions.cjs +30 -0
- package/dist/instructions.js +1507 -0
- package/dist/{internal-Dmk1cTXq.js → internal-B90P-clC.js} +138 -119
- 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 +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-BFDyBnKM.js +224 -0
- package/dist/landmarkMask-u7es2k4X.cjs +1 -0
- 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 +1190 -675
- package/dist/main.cjs +1 -1
- package/dist/main.js +1190 -452
- package/dist/models/Base/index.d.ts +49 -0
- package/dist/models/Body/index.d.ts +3 -1
- package/dist/models/Face/constants.d.ts +8 -0
- package/dist/models/Face/index.d.ts +4 -12
- package/dist/models/Face/rotation.d.ts +18 -3
- package/dist/models/Hand/GestureTracking.d.ts +1 -1
- package/dist/models/Hand/HandTracking.d.ts +17 -1
- package/dist/models/Holistic/index.d.ts +49 -0
- package/dist/models/Holistic/result.d.ts +68 -0
- package/dist/models/Segmentation/index.d.ts +2 -0
- 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 +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/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-C8rE26Uf.js +366 -0
- package/dist/providers-DHsrhDI2.cjs +62 -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/renderPasses.d.ts +8 -0
- package/dist/render/sceneBeforeRender.d.ts +12 -0
- package/dist/{renderGroups-KZk6eRiY.js → renderGroups-B38pUaX2.js} +1 -1
- package/dist/{renderGroups-80H3DpTl.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/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/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-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 +62 -0
- package/dist/subjects/types.d.ts +55 -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 +1326 -506
- package/dist/trigger-D0Pm9noT.cjs +49 -0
- package/dist/trigger-IQeys0oS.js +2128 -0
- package/dist/types/compositor.d.ts +21 -0
- package/dist/types/face.d.ts +20 -1
- package/dist/types/hand-tracking.d.ts +9 -0
- package/dist/types/holistic.d.ts +121 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/model.d.ts +22 -2
- package/dist/types/nodes.d.ts +47 -3
- package/dist/types/segmentation.d.ts +24 -0
- package/dist/types/session.d.ts +41 -3
- 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-Cr3RzuAW.cjs +1 -0
- package/dist/useXRCapabilities-Cxmlmpbd.js +30 -0
- package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
- package/dist/utils/fns.d.ts +6 -3
- package/dist/utils/headOccluderFit.d.ts +42 -0
- package/dist/utils/integrity.d.ts +21 -1
- 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/uv-BMFt19bg.cjs +1 -0
- package/dist/{index-ByoNj0QP.js → uv-DJU_XfmN.js} +15 -247
- package/docs/SDK_DOCUMENTATION.md +1 -2
- package/docs/api/adaptive-quality.mdx +104 -0
- package/docs/api/asset-lifecycle.mdx +78 -0
- package/docs/api/body-instructions.mdx +285 -0
- package/docs/api/body-triggers.mdx +234 -0
- package/docs/api/camera-permission.mdx +142 -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 +23 -2
- package/docs/api/diagnostics-calibration.mdx +97 -0
- 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 +9 -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 +8 -9
- 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 +209 -0
- 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 +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/multi-subject.mdx +98 -0
- package/docs/api/particles.mdx +155 -0
- package/docs/api/person-cutout.mdx +136 -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/screen-space-coordinates.mdx +4 -1
- package/docs/api/segmentation-overlay.mdx +301 -0
- package/docs/api/session-lifecycle.mdx +136 -0
- package/docs/api/trackers.mdx +5 -0
- package/docs/api/tracking-config.mdx +108 -0
- package/docs/docs.json +51 -1
- package/docs/examples/lip-shaders.mdx +273 -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 +4 -4
- 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/introduction.mdx +1 -2
- package/package.json +23 -1
- package/dist/DebuggerUI-B6bP6P9r.cjs +0 -1
- package/dist/DebuggerUI-BjOMr8q_.js +0 -269
- package/dist/FaceMeshRenderer-C5l6VLdO.cjs +0 -155
- package/dist/FaceMeshRenderer-wjAHrJzP.js +0 -1270
- package/dist/FaceRetouch-BkJzoA79.cjs +0 -134
- package/dist/FaceRetouch-DwbKQJAN.js +0 -551
- 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-ByhzppYl.js +0 -663
- package/dist/contexts-Dr62It_K.cjs +0 -1
- package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
- package/dist/getFaceInfo-C4QpCQIY.js +0 -118
- package/dist/getFaceInfo-fA1bFBub.cjs +0 -1
- package/dist/index-9dlAQAhy.js +0 -1462
- package/dist/index-BjmTe9eM.cjs +0 -1
- package/dist/index-BpEf2BBb.cjs +0 -1
- package/dist/index-CyUUurQT.cjs +0 -1
- package/dist/index-DCiMbxC3.cjs +0 -1
- package/dist/index-DXT3WccE.js +0 -2089
- package/dist/index-DpI-qo5X.cjs +0 -17
- package/dist/index-DyVF4vEW.js +0 -111
- package/dist/index-VJ0SJwmG.js +0 -214
- package/dist/internal-Cq-TEQ5Y.cjs +0 -1
- package/dist/renderLayers-lDtL0_43.cjs +0 -1
- package/dist/renderLayers-zrK2pv5O.js +0 -13
- package/dist/renderPasses-BOoBSr8z.cjs +0 -21
- package/dist/renderPasses-BcquyVtu.js +0 -1500
- package/dist/selectors-B8H97CKA.js +0 -59
- package/dist/selectors-CZLKT2Iv.cjs +0 -1
- package/dist/session-CpkiK5YA.cjs +0 -31
- package/dist/session-DLFN_VII.js +0 -363
- package/dist/useFaceInfo-BJ8-_MOs.cjs +0 -1
- package/dist/useFaceInfo-Dk426LTu.js +0 -62
- package/dist/useFaceResults-CtetsO9M.js +0 -19
- package/dist/useFaceResults-wBJF3zyp.cjs +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ParsedCanonicalMesh } from '../FaceMesh/canonical/parseCanonicalFaceModel';
|
|
2
|
+
/** Lip extent in the face atlas (`v` grows upward, as in the OBJ). */
|
|
3
|
+
export type LipUvBounds = {
|
|
4
|
+
minU: number;
|
|
5
|
+
maxU: number;
|
|
6
|
+
minV: number;
|
|
7
|
+
maxV: number;
|
|
8
|
+
/** `v` of the mouth line (mean of the inner ring); above it is the upper lip. */
|
|
9
|
+
mouthV: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Lip region of the face atlas, rounded. `getLipUvBounds()` gives the exact
|
|
13
|
+
* values from the bundled atlas data.
|
|
14
|
+
*/
|
|
15
|
+
export declare const CANONICAL_LIP_UV_BOUNDS: LipUvBounds;
|
|
16
|
+
export type LipUvGuideOptions = {
|
|
17
|
+
/** Pixel size of the square texture canvas the guide represents. Default 1024. */
|
|
18
|
+
size?: number;
|
|
19
|
+
/** Frame the whole canvas (the design contract) or zoom onto the lip region. Default "canvas". */
|
|
20
|
+
region?: "canvas" | "lips";
|
|
21
|
+
/** Draw the lip triangle wireframe. Default true. */
|
|
22
|
+
wireframe?: boolean;
|
|
23
|
+
/** Draw orientation and region labels. Default true. */
|
|
24
|
+
labels?: boolean;
|
|
25
|
+
/** Fill the canvas with a colour. Omit for a transparent background. */
|
|
26
|
+
background?: string;
|
|
27
|
+
};
|
|
28
|
+
/** The guide's colours: the face atlas guide's `lips` and `mouth` colours, and its wireframe and text. */
|
|
29
|
+
export declare const LIP_UV_GUIDE_COLORS: {
|
|
30
|
+
outerRing: string;
|
|
31
|
+
innerRing: string;
|
|
32
|
+
wireframe: string;
|
|
33
|
+
text: string;
|
|
34
|
+
frame: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Convert a face-atlas UV to texture pixel space. `TextureLoader` textures are
|
|
38
|
+
* `flipY`, so `v = 1` is the top row of the image (`faceAtlasUvToPixel`).
|
|
39
|
+
*/
|
|
40
|
+
export declare const lipUvToPixel: (u: number, v: number, size: number) => {
|
|
41
|
+
x: number;
|
|
42
|
+
y: number;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Bounding box of the outer lip ring in the face atlas, plus the mouth line.
|
|
46
|
+
* Without an argument it reads the bundled atlas (`FACE_ATLAS_UVS`), which
|
|
47
|
+
* is what `LipEffect` samples; with a parsed canonical mesh it reads that
|
|
48
|
+
* mesh's `uv` attribute (the same layout).
|
|
49
|
+
*/
|
|
50
|
+
export declare const getLipUvBounds: (mesh?: ParsedCanonicalMesh) => LipUvBounds;
|
|
51
|
+
/**
|
|
52
|
+
* Render the creator-facing lip template as an SVG string. It is the face
|
|
53
|
+
* atlas guide (`createFaceAtlasGuideSvg`) for the `lips` and `mouth` regions,
|
|
54
|
+
* drawn from the bundled atlas data `LipEffect` samples, plus the lip
|
|
55
|
+
* triangle wireframe and lip labels: which side of the image is which side
|
|
56
|
+
* of the person (image-left = the person's right, on every feed), the upper
|
|
57
|
+
* and lower lip, and the lip region's extent. `region: "lips"` zooms onto
|
|
58
|
+
* the lips.
|
|
59
|
+
*
|
|
60
|
+
* `createLipUvGuideSvg(mesh, options)` (alpha.8) still works; the mesh is
|
|
61
|
+
* no longer read, since its UVs are the atlas.
|
|
62
|
+
*/
|
|
63
|
+
export declare const createLipUvGuideSvg: (meshOrOptions?: ParsedCanonicalMesh | LipUvGuideOptions, maybeOptions?: LipUvGuideOptions) => string;
|
|
64
|
+
/**
|
|
65
|
+
* The guide as an `image/svg+xml` data URL, loadable with `THREE.TextureLoader`
|
|
66
|
+
* or an `<img>`. Takes `(options)` or alpha.8's `(mesh, options)`.
|
|
67
|
+
*/
|
|
68
|
+
export declare const createLipUvGuideDataUrl: (meshOrOptions?: ParsedCanonicalMesh | LipUvGuideOptions, maybeOptions?: LipUvGuideOptions) => string;
|
|
69
|
+
/**
|
|
70
|
+
* Rasterize the guide to a PNG `Blob` in the browser (an `<img>` and a 2D
|
|
71
|
+
* canvas), for download or for use as a texture. Transparent unless
|
|
72
|
+
* `options.background` is set. Takes `(options)` or alpha.8's `(mesh, options)`.
|
|
73
|
+
*/
|
|
74
|
+
export declare const createLipUvGuidePngBlob: (meshOrOptions?: ParsedCanonicalMesh | LipUvGuideOptions, maybeOptions?: LipUvGuideOptions) => Promise<Blob>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MakeupRegionProps } from './MakeupRegion';
|
|
2
|
+
import { BlushSettings } from './types';
|
|
3
|
+
/** `<Blush>` props: any `BlushSettings` (resolved like `resolveMakeupSettings("blush", …)`) plus the region props. */
|
|
4
|
+
export type BlushProps = Partial<BlushSettings> & MakeupRegionProps<"blush">;
|
|
5
|
+
/**
|
|
6
|
+
* Blush on the cheeks of the live face: soft, Gaussian-like shapes placed
|
|
7
|
+
* by `shape` (`apples`, `lifted`, `draped`, `sunKissed`), `size` and `lift`
|
|
8
|
+
* (toward the temple), shaded relative to the person's own skin and light.
|
|
9
|
+
* Works alone (no `FaceTracker` or Suspense needed), inside a `FaceTracker`
|
|
10
|
+
* (that face), or nested in a `FaceRig` / `FaceWarp3D` / `FaceMorph` (it
|
|
11
|
+
* rides that face). `enabled={false}` draws and costs nothing.
|
|
12
|
+
*
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <Blush shade="rose" />
|
|
15
|
+
* <Blush {...MAKEUP_LOOKS.glam.blush} shade="coral" />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const Blush: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: BlushProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MakeupRegionProps } from './MakeupRegion';
|
|
2
|
+
import { BrowsSettings } from './types';
|
|
3
|
+
/** `<Brows>` props: any `BrowsSettings` (resolved like `resolveMakeupSettings("brows", …)`) plus the region props. */
|
|
4
|
+
export type BrowsProps = Partial<BrowsSettings> & MakeupRegionProps<"brows">;
|
|
5
|
+
/**
|
|
6
|
+
* Brows on the live face, built on the person's own brow: `shape`
|
|
7
|
+
* (`natural`, `softArch`, `straight`, `highArch`, `bold`, `thin`) reshapes
|
|
8
|
+
* its centre line, `boldness` its width (0.5 = their own), `fill` mixes a
|
|
9
|
+
* tint of only the real hairs (0) toward a full powder shape (1), and
|
|
10
|
+
* `strokes` adds procedural hair strokes. Shaded relative to the person's
|
|
11
|
+
* own skin and light; `shade: "auto"` is their own brow-hair colour.
|
|
12
|
+
* Works alone, inside a `FaceTracker`, or nested in a `FaceRig` /
|
|
13
|
+
* `FaceWarp3D` / `FaceMorph`. `enabled={false}` draws and costs nothing.
|
|
14
|
+
*
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <Brows shape="softArch" shade="softBrown" />
|
|
17
|
+
* <Brows shade="auto" fill={0} />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const Brows: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: BrowsProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MakeupRegionProps } from './MakeupRegion';
|
|
2
|
+
import { ContourSettings } from './types';
|
|
3
|
+
/** `<Contour>` props: any `ContourSettings` (resolved like `resolveMakeupSettings("contour", …)`) plus the region props. */
|
|
4
|
+
export type ContourProps = Partial<ContourSettings> & MakeupRegionProps<"contour">;
|
|
5
|
+
/**
|
|
6
|
+
* Contour on the live face: soft tapered lines in the cheek hollows, along
|
|
7
|
+
* the jaw, at the temples and down the sides of the nose, placed by `shape`
|
|
8
|
+
* (`soft`, `sculpted`, `bronzed`, `nose`) and `size`, shaded relative to the
|
|
9
|
+
* person's own skin and light (`shade: "auto"` darkens their own skin).
|
|
10
|
+
* Works alone, inside a `FaceTracker`, or nested in a `FaceRig` /
|
|
11
|
+
* `FaceWarp3D` / `FaceMorph`. `enabled={false}` draws and costs nothing.
|
|
12
|
+
*
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <Contour shape="sculpted" shade="tan" />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const Contour: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: ContourProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MakeupRegionProps } from './MakeupRegion';
|
|
2
|
+
import { EyelinerSettings } from './types';
|
|
3
|
+
/** `<Eyeliner>` props: any `EyelinerSettings` (resolved like `resolveMakeupSettings("eyeliner", …)`) plus the region props. */
|
|
4
|
+
export type EyelinerProps = Partial<EyelinerSettings> & MakeupRegionProps<"eyeliner">;
|
|
5
|
+
/**
|
|
6
|
+
* Eyeliner on the live face: a line along the upper lashes (`thickness` mm
|
|
7
|
+
* at its outer part, tapering toward the inner corner), an optional `lower`
|
|
8
|
+
* line (it fades while blinking), a `wing` (mm) swept `wingAngle` degrees
|
|
9
|
+
* upward in the person's frame past the outer corner, and `smudge`, placed
|
|
10
|
+
* by `shape` (`tightline`, `classic`, `winged`, `catEye`, `smudged`, `kohl`)
|
|
11
|
+
* and shaded relative to the person's own skin and light. Never paints the
|
|
12
|
+
* eyeball. Works alone, inside a `FaceTracker`, or nested in a `FaceRig` /
|
|
13
|
+
* `FaceWarp3D` / `FaceMorph`. `enabled={false}` draws and costs nothing.
|
|
14
|
+
*
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <Eyeliner shape="winged" />
|
|
17
|
+
* <Eyeliner shape="catEye" wingAngle={30} side="left" />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const Eyeliner: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: EyelinerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MakeupRegionProps } from './MakeupRegion';
|
|
2
|
+
import { EyeshadowSettings } from './types';
|
|
3
|
+
/** `<Eyeshadow>` props: any `EyeshadowSettings` (resolved like `resolveMakeupSettings("eyeshadow", …)`) plus the region props. */
|
|
4
|
+
export type EyeshadowProps = Partial<EyeshadowSettings> & MakeupRegionProps<"eyeshadow">;
|
|
5
|
+
/**
|
|
6
|
+
* Eyeshadow on the live face's lids: the shade from the lash line up to
|
|
7
|
+
* `height` of the way to the brow, a `crease` band in `creaseShade` at its
|
|
8
|
+
* top edge, shadow along the `lower` lash line (it fades while blinking) and
|
|
9
|
+
* an `inner`-corner highlight in `innerShade`, placed by `shape` (`lid`,
|
|
10
|
+
* `crease`, `smoky`, `cutCrease`, `halo`, `winged`) and shaded relative to
|
|
11
|
+
* the person's own skin and light. Never paints the eyeball. Works alone,
|
|
12
|
+
* inside a `FaceTracker`, or nested in a `FaceRig` / `FaceWarp3D` /
|
|
13
|
+
* `FaceMorph`. `enabled={false}` draws and costs nothing.
|
|
14
|
+
*
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <Eyeshadow shape="crease" shade="warmBrown" creaseShade="espresso" />
|
|
17
|
+
* <Eyeshadow {...MAKEUP_LOOKS.smokyEye.eyeshadow} />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const Eyeshadow: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: EyeshadowProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MakeupRegionProps } from './MakeupRegion';
|
|
2
|
+
import { HighlighterSettings } from './types';
|
|
3
|
+
/** `<Highlighter>` props: any `HighlighterSettings` (resolved like `resolveMakeupSettings("highlighter", …)`) plus the region props. */
|
|
4
|
+
export type HighlighterProps = Partial<HighlighterSettings> & MakeupRegionProps<"highlighter">;
|
|
5
|
+
/**
|
|
6
|
+
* Highlighter on the high points of the live face: soft blobs on the
|
|
7
|
+
* cheekbones, brow bone, nose bridge, cupid's bow and chin, placed by
|
|
8
|
+
* `shape` (`cheekbones`, `strobe`, `glow`, `nose`) and `size`. Defaults to a
|
|
9
|
+
* `shimmer` finish in `champagne`. Its own region, so a look can switch
|
|
10
|
+
* contour off and keep the glow. Works alone, inside a `FaceTracker`, or
|
|
11
|
+
* nested in a `FaceRig` / `FaceWarp3D` / `FaceMorph`. `enabled={false}`
|
|
12
|
+
* draws and costs nothing.
|
|
13
|
+
*
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <Highlighter shape="strobe" finish="metallic" shade="gold" />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const Highlighter: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: HighlighterProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { MakeupDesignSettings } from './design';
|
|
2
|
+
import { MakeupRegionProps } from './MakeupRegion';
|
|
3
|
+
import * as THREE from "three";
|
|
4
|
+
/** Art for `MakeupDesign`: a URL, a texture you own, or nothing. */
|
|
5
|
+
export type MakeupDesignTexture = string | THREE.Texture | null;
|
|
6
|
+
/** `<MakeupDesign>` props: any `MakeupDesignSettings`, the art and the region props. */
|
|
7
|
+
export type MakeupDesignProps = Partial<MakeupDesignSettings> & MakeupRegionProps<"design"> & {
|
|
8
|
+
/**
|
|
9
|
+
* The art, painted in the face atlas as on an unmirrored photo
|
|
10
|
+
* (image-left = the person's right; template `docs/guides/face-atlas-template.svg`):
|
|
11
|
+
* a URL (PNG, WebP or SVG with a size; loaded without Suspense, owned
|
|
12
|
+
* and disposed here) or a `THREE.Texture` you own (never changed;
|
|
13
|
+
* read as sRGB unless tagged `LinearSRGBColorSpace`). `null` / `""`
|
|
14
|
+
* draws nothing. With `sharedMaterial` the material's own art is used.
|
|
15
|
+
*/
|
|
16
|
+
texture?: MakeupDesignTexture;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Creator art painted on the live face, in the face atlas (FACE-1):
|
|
20
|
+
* freckles, face gems, graphic liner, face paint. The art is shaded like
|
|
21
|
+
* makeup (relative to the person's own skin and light, with a `finish`),
|
|
22
|
+
* its alpha is the mask and its colours are the paint (`color` tints them).
|
|
23
|
+
* Each side of the art stays on the person's own side on every feed: on the
|
|
24
|
+
* mirrored webcam the art is sampled at `(1 − u, v)`.
|
|
25
|
+
*
|
|
26
|
+
* Works alone (no `FaceTracker` or Suspense), inside a `FaceTracker` (that
|
|
27
|
+
* face), or nested in a `FaceRig` / `FaceWarp3D` / `FaceMorph` (it rides that
|
|
28
|
+
* face). Draws at `MAKEUP_RENDER_ORDER.design` (-1.68): over the eye
|
|
29
|
+
* regions, under the lips. Nothing draws until the art has loaded (a custom
|
|
30
|
+
* `material` draws at once: a procedural design needs no art).
|
|
31
|
+
*
|
|
32
|
+
* ```tsx
|
|
33
|
+
* <MakeupDesign texture="/makeup/freckles.svg" region={["nose", "cheeks"]} coverage={0.4} opacity={0.7} />
|
|
34
|
+
* <MakeupDesign texture="/makeup/face-gems.svg" finish="gloss" />
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const MakeupDesign: ({ texture, faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: MakeupDesignProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { FaceAtlasMaterialContext, FaceAtlasMaterialResult } from '../FaceAtlas/FaceAtlasLayer';
|
|
2
|
+
import { FaceSkinReference } from '../FaceAtlas/useFaceSkin';
|
|
3
|
+
import { MakeupMaterialRegion, MakeupMaterialSettings, MakeupUniforms } from './material';
|
|
4
|
+
import type * as THREE from "three";
|
|
5
|
+
/**
|
|
6
|
+
* The makeup region core (FACE-1): what `Blush`, `Contour`, `Highlighter`,
|
|
7
|
+
* `Eyeshadow`, `Eyeliner`, `Brows` and `MakeupDesign` are built on. One region on one face is
|
|
8
|
+
* one `FaceAtlasLayer` mesh over the region's atlas triangles, drawn at the
|
|
9
|
+
* region's `MAKEUP_RENDER_ORDER`, shaded with `MAKEUP_GLSL` against the
|
|
10
|
+
* face's skin probe (`useFaceSkin`). It
|
|
11
|
+
*
|
|
12
|
+
* - draws nothing and holds nothing while `enabled` is false (no surface, no
|
|
13
|
+
* probe, no material);
|
|
14
|
+
* - writes the resolved settings into ONE uniforms object per region
|
|
15
|
+
* instance, which the built-in material and a custom material share
|
|
16
|
+
* (`ctx.uniforms`), so edits never recompile; inputs that are not
|
|
17
|
+
* settings (a design texture) come in as `uniforms` and join it;
|
|
18
|
+
* - binds the face's shared uniforms into it: the layer's camera feed,
|
|
19
|
+
* presence and `uPersonLeftSign` (#298 sides), and the skin probe's maps
|
|
20
|
+
* and stats;
|
|
21
|
+
* - routes the material: `sharedMaterial` as given, else `material` (a
|
|
22
|
+
* node, an instance, or a factory of `MakeupMaterialContext`, run once
|
|
23
|
+
* per factory), else the built-in `createMakeupMaterial(region)`, owned
|
|
24
|
+
* here and disposed once its warm-up compile has settled; a material
|
|
25
|
+
* from `createMakeupMaterial`, through either prop, keeps its own
|
|
26
|
+
* settings and is drawn through a per-face copy
|
|
27
|
+
* (`createMakeupFaceCopy`) that holds this face's bindings, so the
|
|
28
|
+
* source is never changed and can serve several faces;
|
|
29
|
+
* - warms the built-in program up with `renderer.compileAsync` and shows
|
|
30
|
+
* the region once it is ready (blush, contour and highlighter share one
|
|
31
|
+
* program, so only the first one waits).
|
|
32
|
+
*
|
|
33
|
+
* A region plugs in through its `MAKEUP_REGION_PROGRAMS` entry
|
|
34
|
+
* (`MakeupRegionProgram`): fragment shader, own uniforms, `resolve` /
|
|
35
|
+
* `patch` of its settings, settings → uniforms, triangles, auto shade,
|
|
36
|
+
* order and an optional per-frame hook.
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* What a custom makeup material factory receives (`material={(ctx) => …}`).
|
|
40
|
+
* The factory runs once per region instance (again only for a new factory
|
|
41
|
+
* or region): not on edits, a new camera, a mirroring change, a new
|
|
42
|
+
* triangle set or the skin probe becoming ready. Read live values from
|
|
43
|
+
* `uniforms` and `skin`; the other fields are those of when it ran.
|
|
44
|
+
*/
|
|
45
|
+
export type MakeupMaterialContext<R extends MakeupMaterialRegion = MakeupMaterialRegion> = Omit<FaceAtlasMaterialContext, "uniforms"> & {
|
|
46
|
+
/**
|
|
47
|
+
* Every uniform `MAKEUP_GLSL` reads, kept current from the settings
|
|
48
|
+
* (`uColor`, `uOpacity`, `uCoverage`, `uFinish`, `uShine`, the sparkle
|
|
49
|
+
* fields, `uSide`, the shape uniforms…) and bound to the face (`uCameraMap`,
|
|
50
|
+
* `uPresence`, `uPersonLeftSign`, the skin probe's `uSkin*`). Pass it as
|
|
51
|
+
* `uniforms={ctx.uniforms}` (or spread it and add your own): the objects
|
|
52
|
+
* are stable, so the material never needs rebuilding on an edit.
|
|
53
|
+
*/
|
|
54
|
+
uniforms: MakeupUniforms;
|
|
55
|
+
/** The region. */
|
|
56
|
+
region: R;
|
|
57
|
+
/** The resolved settings when the material was made (`uniforms` follow later edits). */
|
|
58
|
+
settings: MakeupMaterialSettings[R];
|
|
59
|
+
/** The face's skin probe (`useFaceSkin`): maps, stats, `ready`, always the current ones. */
|
|
60
|
+
skin: FaceSkinReference;
|
|
61
|
+
/** `MAKEUP_GLSL.atlasVertex`, the vertex shader to pair with these uniforms. */
|
|
62
|
+
vertexShader: string;
|
|
63
|
+
/** The built-in material's fragment shader, to start from. */
|
|
64
|
+
fragmentShader: string;
|
|
65
|
+
};
|
|
66
|
+
/** A region's material: an instance, a node, or a factory of either from the context. */
|
|
67
|
+
export type MakeupMaterialSpec<R extends MakeupMaterialRegion = MakeupMaterialRegion> = FaceAtlasMaterialResult | ((context: MakeupMaterialContext<R>) => FaceAtlasMaterialResult);
|
|
68
|
+
/** Props every makeup region component takes besides its settings. */
|
|
69
|
+
export type MakeupRegionProps<R extends MakeupMaterialRegion = MakeupMaterialRegion> = {
|
|
70
|
+
/**
|
|
71
|
+
* Which face. Default: the enclosing `FaceRig` / `FaceWarp3D` / `FaceMorph`'s
|
|
72
|
+
* (it rides that face), else the enclosing `FaceTracker`'s, else 0.
|
|
73
|
+
*/
|
|
74
|
+
faceIndex?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Faces to start the face model with when this region starts it (no
|
|
77
|
+
* `FaceTracker` above): at least `faceIndex + 1`. Pass the same value to
|
|
78
|
+
* every face component.
|
|
79
|
+
*/
|
|
80
|
+
numFaces?: number;
|
|
81
|
+
/** Whether the feed is mirrored, for the person's own sides. Default: the session's. */
|
|
82
|
+
mirrored?: boolean;
|
|
83
|
+
/** Draw order in the face layer. Default `MAKEUP_RENDER_ORDER[region]`. */
|
|
84
|
+
renderOrder?: number;
|
|
85
|
+
/**
|
|
86
|
+
* A custom material: a node, an instance (you own it), or
|
|
87
|
+
* `(ctx: MakeupMaterialContext) => either`. Spread `MAKEUP_BLENDING`, set
|
|
88
|
+
* `depthWrite={false}` and pass `uniforms={ctx.uniforms}`. Prefer a
|
|
89
|
+
* factory that returns a node (the layer owns and disposes it). A
|
|
90
|
+
* factory runs once per factory, not on edits; a new factory (an inline
|
|
91
|
+
* arrow, each render) runs again, and an instance the previous one made
|
|
92
|
+
* is then disposed, so keep one that returns an instance stable (module
|
|
93
|
+
* scope or `useCallback`) and dispose the last one it made. A material
|
|
94
|
+
* from `createMakeupMaterial` is drawn as `sharedMaterial` is (its own
|
|
95
|
+
* settings; pass it as `sharedMaterial`).
|
|
96
|
+
*/
|
|
97
|
+
material?: MakeupMaterialSpec<R>;
|
|
98
|
+
/**
|
|
99
|
+
* Use this material instead of the built-in one and `material`; you own
|
|
100
|
+
* it and its settings (the region never writes settings into it). Any
|
|
101
|
+
* material is drawn as given and never changed, except one from
|
|
102
|
+
* `createMakeupMaterial`: it is drawn through a per-face copy that shares
|
|
103
|
+
* its program and its uniform objects and adds this face's camera,
|
|
104
|
+
* presence, sides and skin probe, so one such material can serve every
|
|
105
|
+
* face (`<FaceTracker numFaces={2}>`). Drive its look with
|
|
106
|
+
* `updateMakeupMaterial` (or its uniforms in `useFrame`). It is drawn
|
|
107
|
+
* over every triangle its own region can reach, at its own region's
|
|
108
|
+
* order: give it to that region's component (`<Blush>` for a blush
|
|
109
|
+
* material), one component per face.
|
|
110
|
+
*/
|
|
111
|
+
sharedMaterial?: THREE.Material;
|
|
112
|
+
};
|
|
113
|
+
/** Internal props of the core: the region, its resolved settings, and optional triangles and uniforms. */
|
|
114
|
+
export type MakeupRegionLayerProps<R extends MakeupMaterialRegion> = MakeupRegionProps<R> & {
|
|
115
|
+
region: R;
|
|
116
|
+
/** Resolved settings (`MAKEUP_REGION_PROGRAMS[region].resolve(…)`). */
|
|
117
|
+
settings: MakeupMaterialSettings[R];
|
|
118
|
+
/** Atlas triangles to draw instead of the region's own (stable). */
|
|
119
|
+
triangles?: ArrayLike<number>;
|
|
120
|
+
/**
|
|
121
|
+
* Uniforms that are not settings (a design texture, a time): merged into
|
|
122
|
+
* the region's uniforms by name, replacing the program's neutral entries,
|
|
123
|
+
* before settings are written. Keep the `{ value }` objects stable and
|
|
124
|
+
* change their values.
|
|
125
|
+
*/
|
|
126
|
+
uniforms?: Record<string, THREE.IUniform>;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* The core every makeup region component renders: nothing while
|
|
130
|
+
* `settings.enabled` is false, else the region's layer (see the module doc).
|
|
131
|
+
*/
|
|
132
|
+
export declare const MakeupRegionLayer: <R extends MakeupMaterialRegion>(props: MakeupRegionLayerProps<R>) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Makeup vocabulary shared by every region and by `LipEffect`. Plain data with
|
|
3
|
+
* no imports, so the lip settings and the makeup tables can both build on it.
|
|
4
|
+
*/
|
|
5
|
+
/** The seven makeup region keys: lips first, then the six face regions. Not the draw order. */
|
|
6
|
+
export declare const MAKEUP_REGIONS: readonly ["lips", "contour", "blush", "highlighter", "eyeshadow", "eyeliner", "brows"];
|
|
7
|
+
export type MakeupRegion = (typeof MAKEUP_REGIONS)[number];
|
|
8
|
+
/** The six regions drawn by the makeup region components (every region but lips). */
|
|
9
|
+
export type MakeupFaceRegion = Exclude<MakeupRegion, "lips">;
|
|
10
|
+
/**
|
|
11
|
+
* How the product reflects light. `matte` removes the skin's own shine,
|
|
12
|
+
* `satin` keeps a soft sheen, `gloss` adds a wet highlight, `shimmer` fine
|
|
13
|
+
* flakes, `metallic` a highlight tinted by the shade, `glitter` sparse large
|
|
14
|
+
* flakes.
|
|
15
|
+
*/
|
|
16
|
+
export declare const MAKEUP_FINISHES: readonly ["matte", "satin", "gloss", "shimmer", "metallic", "glitter"];
|
|
17
|
+
export type MakeupFinish = (typeof MAKEUP_FINISHES)[number];
|
|
18
|
+
/** Which of the person's own sides a paired region paints, on every feed. */
|
|
19
|
+
export declare const MAKEUP_SIDES: readonly ["both", "left", "right"];
|
|
20
|
+
export type MakeupSide = (typeof MAKEUP_SIDES)[number];
|
|
21
|
+
/**
|
|
22
|
+
* Regions whose `shade` accepts `"auto"`: a colour taken from the person's
|
|
23
|
+
* own skin, lips or brows (lips: their lip colour deepened; blush: their skin
|
|
24
|
+
* hue moved toward rose; contour and highlighter: their skin darkened or
|
|
25
|
+
* lifted; brows: their brow-hair colour), measured on the GPU by the face's
|
|
26
|
+
* skin probe (`useFaceSkin`). `Blush`, `Contour`, `Highlighter`, `Brows`
|
|
27
|
+
* and `LipEffect` derive it there; `color` shows until it is measured.
|
|
28
|
+
*/
|
|
29
|
+
export declare const MAKEUP_AUTO_SHADE_REGIONS: readonly ["lips", "blush", "contour", "highlighter", "brows"];
|
|
30
|
+
export type MakeupAutoShadeRegion = (typeof MAKEUP_AUTO_SHADE_REGIONS)[number];
|
|
31
|
+
/** The fields a finish sets. Choosing a finish re-applies them; explicit values win. */
|
|
32
|
+
export type MakeupFinishDefaults = {
|
|
33
|
+
/** Strength of the finish highlight, 0..1. */
|
|
34
|
+
shine: number;
|
|
35
|
+
/** Flake density, 0..1. Read by `shimmer` and `glitter` only. */
|
|
36
|
+
sparkleDensity: number;
|
|
37
|
+
/** Flake size in millimetres on the face, 0.1..1.5. */
|
|
38
|
+
sparkleSize: number;
|
|
39
|
+
};
|
|
40
|
+
export declare const MAKEUP_FINISH_DEFAULTS: Record<MakeupFinish, MakeupFinishDefaults>;
|
|
41
|
+
/** The keys a finish sets. */
|
|
42
|
+
export declare const MAKEUP_FINISH_KEYS: readonly ["shine", "sparkleDensity", "sparkleSize"];
|
|
43
|
+
/** Range of `sparkleSize` in millimetres (lips and every region). */
|
|
44
|
+
export declare const MAKEUP_SPARKLE_SIZE_RANGE: readonly [0.1, 1.5];
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { SettingsPanelField } from '../../debug-ui/settings-panel';
|
|
2
|
+
import { MakeupDesignUniforms } from '../../face-atlas/glsl/design';
|
|
3
|
+
import { FaceAtlasRegionSelection } from '../../face-atlas/regions';
|
|
4
|
+
import { MakeupFinish, MakeupSide } from './constants';
|
|
5
|
+
import * as THREE from "three";
|
|
6
|
+
/**
|
|
7
|
+
* `MakeupDesign` settings (FACE-1): creator art painted in the face atlas
|
|
8
|
+
* (freckles, face gems, graphic liner), shaded like the makeup regions. Flat
|
|
9
|
+
* and serializable; the art itself is the component's `texture` prop (or
|
|
10
|
+
* `setMakeupDesignTexture` on a material), not a setting.
|
|
11
|
+
*/
|
|
12
|
+
export type MakeupDesignSettings = {
|
|
13
|
+
/** `false` draws nothing and costs nothing. */
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The atlas regions the art may paint (`FACE_ATLAS_REGIONS`; one name or
|
|
17
|
+
* several): art outside them is never drawn. Default `"face"` (everything
|
|
18
|
+
* but the eye and mouth openings and the nostrils); a smaller region draws
|
|
19
|
+
* fewer pixels (`["nose", "cheeks"]` for freckles, `"lids"` for liner).
|
|
20
|
+
* `"eyes"` / `"mouth"` paint over the openings.
|
|
21
|
+
*/
|
|
22
|
+
region: FaceAtlasRegionSelection;
|
|
23
|
+
/** `""` keeps the art's own colours; a CSS colour multiplies (tints) them: paint white art to recolour it freely. */
|
|
24
|
+
color: string;
|
|
25
|
+
/** Linear amount, 0..1, times the art's alpha. */
|
|
26
|
+
opacity: number;
|
|
27
|
+
/** 0 = sheer (the art filters the person's own colour, never lightens), 1 = opaque (covers the skin). */
|
|
28
|
+
coverage: number;
|
|
29
|
+
/** How the art reflects light. Choosing a finish sets `shine` and the sparkle fields. */
|
|
30
|
+
finish: MakeupFinish;
|
|
31
|
+
/** Strength of the finish highlight, 0..1. */
|
|
32
|
+
shine: number;
|
|
33
|
+
/** Flake colour for `shimmer` / `glitter`; `""` derives it from the art. */
|
|
34
|
+
sparkleColor: string;
|
|
35
|
+
/** Flake density, 0..1 (`shimmer` and `glitter` only). */
|
|
36
|
+
sparkleDensity: number;
|
|
37
|
+
/** Flake size in millimetres, 0.1..1.5. */
|
|
38
|
+
sparkleSize: number;
|
|
39
|
+
/** The person's own side(s) of the art to paint, on every feed. */
|
|
40
|
+
side: MakeupSide;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Defaults: the art as painted (opaque, matte, its own colours) over the
|
|
44
|
+
* whole face, both sides.
|
|
45
|
+
*/
|
|
46
|
+
export declare const DEFAULT_MAKEUP_DESIGN_SETTINGS: Readonly<MakeupDesignSettings>;
|
|
47
|
+
type Range = readonly [min: number, max: number];
|
|
48
|
+
/** Inclusive clamp range of every numeric `MakeupDesignSettings` field. */
|
|
49
|
+
export declare const MAKEUP_DESIGN_SETTINGS_RANGES: Readonly<Record<"opacity" | "coverage" | "shine" | "sparkleDensity" | "sparkleSize", Range>>;
|
|
50
|
+
/**
|
|
51
|
+
* Complete, clamped design settings from a partial. Order: defaults → the
|
|
52
|
+
* finish's `shine` and sparkle values → every explicit value. Invalid values
|
|
53
|
+
* fall back to that order's value; unknown keys are dropped.
|
|
54
|
+
*/
|
|
55
|
+
export declare const resolveMakeupDesignSettings: (input?: Partial<MakeupDesignSettings>) => MakeupDesignSettings;
|
|
56
|
+
/**
|
|
57
|
+
* Apply an edit to resolved design settings, from a panel (the whole object)
|
|
58
|
+
* or from code (a sparse patch). A `finish` that differs re-applies its
|
|
59
|
+
* `shine` and sparkle values, except those the patch sets; the patch's other
|
|
60
|
+
* values win. A whole-object patch counts only the fields that differ from
|
|
61
|
+
* `current`.
|
|
62
|
+
*/
|
|
63
|
+
export declare const patchMakeupDesignSettings: (current: MakeupDesignSettings, patch: Partial<MakeupDesignSettings>) => MakeupDesignSettings;
|
|
64
|
+
/**
|
|
65
|
+
* The atlas triangles a design draws for a region selection (cached per
|
|
66
|
+
* selection, so the same selection returns the same array). Without one:
|
|
67
|
+
* every region, the eye and mouth openings included (what any settings can
|
|
68
|
+
* paint).
|
|
69
|
+
*/
|
|
70
|
+
export declare const getMakeupDesignTriangles: (selection?: FaceAtlasRegionSelection) => Uint16Array;
|
|
71
|
+
/**
|
|
72
|
+
* How `MAKEUP_GLSL.design` reads a texture: `srgb` when it holds sRGB bytes
|
|
73
|
+
* the shader decodes (any colour space but `SRGBColorSpace`, which the GPU
|
|
74
|
+
* decodes, and `LinearSRGBColorSpace`, read as linear: so an untagged
|
|
75
|
+
* `CanvasTexture` of art is read as the sRGB it is), `premultiplied` when it
|
|
76
|
+
* was uploaded premultiplied. A premultiplied texture must stay untagged (or
|
|
77
|
+
* linear): the GPU decodes `SRGBColorSpace` bytes before the shader divides
|
|
78
|
+
* the alpha out, which darkens soft edges (`setMakeupDesignTexture` warns).
|
|
79
|
+
*/
|
|
80
|
+
export declare const makeupDesignTextureFlags: (texture: THREE.Texture | null) => {
|
|
81
|
+
srgb: boolean;
|
|
82
|
+
premultiplied: boolean;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Puts art on a design material's uniforms (`createMakeupMaterial("design").uniforms`,
|
|
86
|
+
* or a custom material's `ctx.uniforms`): the texture and how to read it
|
|
87
|
+
* (`makeupDesignTextureFlags`). `null` paints nothing. The texture is never
|
|
88
|
+
* changed; you own it.
|
|
89
|
+
*/
|
|
90
|
+
export declare const setMakeupDesignTexture: (uniforms: MakeupDesignUniforms, texture: THREE.Texture | null) => void;
|
|
91
|
+
/**
|
|
92
|
+
* Where the shader samples the art for an atlas uv on a feed: `(1 − u, v)`
|
|
93
|
+
* on a mirrored feed, so each side of the art stays on the person's own
|
|
94
|
+
* side (the TypeScript mirror of `makeupDesignUv`).
|
|
95
|
+
*/
|
|
96
|
+
export declare const makeupDesignUv: (u: number, v: number, mirrored: boolean) => {
|
|
97
|
+
u: number;
|
|
98
|
+
v: number;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Typed `SettingsPanel` fields for `MakeupDesignSettings`. The region select
|
|
102
|
+
* offers every single name and the unions the example art uses, each in the
|
|
103
|
+
* order `resolveMakeupDesignSettings` gives it (so the panel matches it).
|
|
104
|
+
*/
|
|
105
|
+
export declare const MAKEUP_DESIGN_SETTINGS_FIELDS: SettingsPanelField<MakeupDesignSettings>[];
|
|
106
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { FaceAtlasRegionSelection } from '../../face-atlas/regions';
|
|
2
|
+
import { MakeupDesignSettings } from './design';
|
|
3
|
+
/**
|
|
4
|
+
* Example art for `MakeupDesign` (FACE-1), drawn directly in face-atlas
|
|
5
|
+
* coordinates from `FACE_ATLAS_UVS` and the atlas polylines, so it registers
|
|
6
|
+
* exactly. Internal: not exported from any entry point (the SDK ships no
|
|
7
|
+
* art). `scripts/generate-makeup-samples.ts` writes the SVGs to
|
|
8
|
+
* `example/public/makeup/`; sources and credits are in `assets-src/makeup/`.
|
|
9
|
+
* Our own work, CC0, credit Vincentt.
|
|
10
|
+
*
|
|
11
|
+
* Coordinates are atlas uv (v up), turned into image pixels with
|
|
12
|
+
* `faceAtlasUvToPixel` (image top = `v = 1`). Image-left (u < 0.5) is the
|
|
13
|
+
* person's right, as on an unmirrored photo.
|
|
14
|
+
*/
|
|
15
|
+
export declare const MAKEUP_DESIGN_SAMPLE_NAMES: readonly ["freckles", "faceGems", "graphicLiner", "sideTest"];
|
|
16
|
+
export type MakeupDesignSampleName = (typeof MAKEUP_DESIGN_SAMPLE_NAMES)[number];
|
|
17
|
+
/** The file each sample is written to, under `example/public/makeup/` (served at `/makeup/…`). */
|
|
18
|
+
export declare const MAKEUP_DESIGN_SAMPLE_FILES: Readonly<Record<MakeupDesignSampleName, string>>;
|
|
19
|
+
/**
|
|
20
|
+
* Settings each sample is made for. `region` is the smallest union that
|
|
21
|
+
* holds all of the art (tested), so the layer draws as few pixels as it can.
|
|
22
|
+
*/
|
|
23
|
+
export declare const MAKEUP_DESIGN_SAMPLE_SETTINGS: Readonly<Record<MakeupDesignSampleName, Partial<MakeupDesignSettings>>>;
|
|
24
|
+
type Uv = {
|
|
25
|
+
u: number;
|
|
26
|
+
v: number;
|
|
27
|
+
};
|
|
28
|
+
/** Whether an atlas uv lies on a triangle of a region selection. */
|
|
29
|
+
export declare const faceAtlasUvInRegion: (point: Uv, selection: FaceAtlasRegionSelection) => boolean;
|
|
30
|
+
/**
|
|
31
|
+
* A drawn sample: the SVG, the atlas points its marks are centred on, and
|
|
32
|
+
* points on the edge of every mark (circle rings, polygon vertices and edge
|
|
33
|
+
* midpoints): a mark is whole when its edge is inside the region (tests).
|
|
34
|
+
*/
|
|
35
|
+
export type MakeupDesignSample = {
|
|
36
|
+
svg: string;
|
|
37
|
+
points: Uv[];
|
|
38
|
+
edges: Uv[];
|
|
39
|
+
};
|
|
40
|
+
/** Draws one sample at `size` px square (default 1024): the SVG and its mark centres. */
|
|
41
|
+
export declare const buildMakeupDesignSample: (name: MakeupDesignSampleName, size?: number) => MakeupDesignSample;
|
|
42
|
+
export {};
|