@vincentt-xr/sdk 2.0.0-alpha.1 → 2.0.0-alpha.2
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 +1588 -20
- package/dist/{DebuggerUI-CatYc-RG.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
- package/dist/{DebuggerUI-gLMKiVwJ.js → DebuggerUI-Cq28c18s.js} +1 -1
- package/dist/FaceMeshRenderer-6t8OsQhK.js +1195 -0
- package/dist/FaceMeshRenderer-lQLhYIW-.cjs +155 -0
- package/dist/FaceRetouch-CDrL0pXg.js +551 -0
- package/dist/FaceRetouch-DtNl8-4e.cjs +134 -0
- package/dist/audio/AudioEngine.d.ts +3 -1
- package/dist/audio/AudioPlayer.d.ts +29 -0
- package/dist/audio/AudioPlayerLogic.d.ts +4 -0
- package/dist/audio/index.d.ts +2 -0
- package/dist/components/Axes/index.d.ts +6 -0
- package/dist/components/FaceMesh/FaceMeshRenderer.d.ts +17 -0
- package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +17 -1
- package/dist/components/FaceMesh/canonical/FaceMeshMaterial.d.ts +25 -0
- package/dist/components/FaceMesh/canonical/assets.d.ts +3 -0
- package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +9 -0
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +2 -0
- package/dist/components/FaceMesh/canonical/shaders.d.ts +2 -0
- package/dist/components/FaceMesh/deform.d.ts +3 -0
- package/dist/components/FaceMesh/index.d.ts +5 -0
- package/dist/components/FaceMesh/material/defaults.d.ts +70 -0
- package/dist/components/FaceMesh/material/index.d.ts +1 -0
- package/dist/components/FaceMesh/material/options.d.ts +5 -1
- package/dist/components/FaceMesh/material/support.d.ts +7 -2
- package/dist/components/FaceMesh/material/textures.d.ts +4 -0
- package/dist/components/FaceMesh/material/types.d.ts +2 -2
- package/dist/components/FaceRetouch/Background.d.ts +5 -6
- package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
- package/dist/components/FaceRetouch/index.d.ts +2 -8
- package/dist/components/FaceRetouch/landmarkMask.d.ts +0 -5
- package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +3 -7
- package/dist/components/FaceTracker/index.d.ts +5 -3
- package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +1 -1
- package/dist/components/HandJoints2D/index.d.ts +1 -1
- package/dist/components/HandTracking2D/HandVisual.d.ts +1 -1
- package/dist/components/HandTracking2D/index.d.ts +1 -1
- package/dist/components/HandTracking2DController/index.d.ts +1 -1
- package/dist/components/HandTracking3D/index.d.ts +1 -1
- package/dist/components/LightObject/index.d.ts +20 -0
- package/dist/components/LookAt/index.d.ts +23 -0
- package/dist/components/MeshRenderer/index.d.ts +58 -0
- package/dist/components/PerspectiveCamera/index.d.ts +2 -8
- package/dist/components/PinToMesh/index.d.ts +47 -0
- package/dist/components/RenderGroupLayer/index.d.ts +6 -0
- package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
- package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
- package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
- package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
- package/dist/components/Screen2D/index.d.ts +5 -0
- package/dist/components/ScreenGlass/defaults.d.ts +3 -0
- package/dist/components/ScreenGlass/index.d.ts +5 -0
- package/dist/components/ScreenGlass/shaders.d.ts +2 -0
- package/dist/components/ScreenGlass/types.d.ts +10 -0
- package/dist/components/ScreenGradient/defaults.d.ts +5 -0
- package/dist/components/ScreenGradient/index.d.ts +5 -0
- package/dist/components/ScreenGradient/shaders.d.ts +2 -0
- package/dist/components/ScreenGradient/types.d.ts +19 -0
- package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
- package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
- package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
- package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
- package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
- package/dist/components/ScreenImage/fit.d.ts +52 -0
- package/dist/components/ScreenImage/index.d.ts +8 -87
- package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
- package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
- package/dist/components/ScreenImage/source.d.ts +16 -0
- package/dist/components/ScreenImage/types.d.ts +37 -0
- package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
- package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
- package/dist/components/ScreenShape/geometry.d.ts +5 -0
- package/dist/components/ScreenShape/index.d.ts +5 -0
- package/dist/components/ScreenShape/types.d.ts +41 -0
- package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
- package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
- package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
- package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
- package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
- package/dist/components/ScreenText/constants.d.ts +5 -0
- package/dist/components/ScreenText/index.d.ts +6 -20
- package/dist/components/ScreenText/types.d.ts +31 -0
- package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
- package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
- package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
- package/dist/components/TextLabel/TextLabel.d.ts +5 -0
- package/dist/components/TextLabel/alignment.d.ts +4 -0
- package/dist/components/TextLabel/bend.d.ts +9 -0
- package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
- package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
- package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
- package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
- package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
- package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
- package/dist/components/TextLabel/constants.d.ts +2 -0
- package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
- package/dist/components/TextLabel/index.d.ts +2 -161
- package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
- package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
- package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
- package/dist/components/TextLabel/types.d.ts +227 -0
- package/dist/components/TrackingAnchor/index.d.ts +18 -2
- package/dist/components/Transform3D/index.d.ts +30 -0
- package/dist/components/XRMediaSurface/index.d.ts +6 -6
- package/dist/components/XRViewport/XRViewport.d.ts +11 -0
- package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
- package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
- package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
- package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
- package/dist/components/XRViewport/constants.d.ts +24 -0
- package/dist/components/XRViewport/contexts.d.ts +6 -0
- package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
- package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
- package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
- package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
- package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
- package/dist/components/XRViewport/index.d.ts +3 -118
- package/dist/components/XRViewport/layout.d.ts +16 -0
- package/dist/components/XRViewport/slots.d.ts +16 -0
- package/dist/components/XRViewport/types.d.ts +89 -0
- package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
- package/dist/components/index.d.ts +12 -0
- package/dist/contexts-BKvTIayr.cjs +1 -0
- package/dist/contexts-Bk5zz_VR.js +214 -0
- package/dist/debug-ui/component-editor/index.d.ts +19 -0
- package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
- package/dist/debug-ui/face-retouch/index.d.ts +11 -0
- package/dist/debug-ui/hand-joints-2d/index.d.ts +1 -1
- package/dist/debug-ui/hand-tracking-2d/index.d.ts +1 -1
- package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +1 -1
- package/dist/debug-ui/hand-tracking-3d/index.d.ts +1 -1
- package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
- package/dist/debug-ui/index.d.ts +25 -2
- package/dist/debug-ui/layer-panel/index.d.ts +3 -2
- package/dist/debug-ui/media-source/index.d.ts +2 -0
- package/dist/debug-ui/media-source/session.d.ts +12 -0
- package/dist/debug-ui/media-source.cjs +1 -1
- package/dist/debug-ui/media-source.js +6 -4
- package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
- package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
- package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
- package/dist/debug-ui/scene-editor/context.d.ts +38 -0
- package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
- package/dist/debug-ui/scene-editor/index.d.ts +11 -0
- package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
- package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
- package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
- package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
- package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
- package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
- package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
- package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
- package/dist/debug-ui/screen-image-settings/index.d.ts +4 -2
- package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
- package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
- package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
- package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
- package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
- package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/index.d.ts +2 -122
- package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
- package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
- package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
- package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
- package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
- package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
- package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
- package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
- package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
- package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
- package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
- package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
- package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
- package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
- package/dist/debug-ui/shared/ScreenTransformSection.d.ts +6 -3
- package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
- package/dist/debug-ui.cjs +3 -13
- package/dist/debug-ui.js +7896 -5098
- package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
- package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
- package/dist/entries/all.d.ts +1 -0
- package/dist/entries/core.d.ts +53 -6
- package/dist/entries/face-effects.d.ts +10 -8
- package/dist/entries/internal.d.ts +1 -1
- package/dist/entries/low-level.d.ts +18 -4
- package/dist/entries/scene-object.d.ts +10 -0
- package/dist/entries/tracking.d.ts +25 -2
- package/dist/face-action/index.d.ts +34 -0
- package/dist/face-attribute-expression/index.d.ts +10 -0
- package/dist/face-effects.cjs +1 -342
- package/dist/face-effects.js +1391 -2767
- package/dist/face-info/blendshapes.d.ts +3 -0
- package/dist/face-info/derive.d.ts +8 -0
- package/dist/face-info/drawFaceCrop.d.ts +10 -0
- package/dist/face-info/getFaceInfo.d.ts +8 -0
- package/dist/face-info/index.d.ts +8 -0
- package/dist/face-info/landmarks.d.ts +21 -0
- package/dist/face-info/types.d.ts +52 -0
- package/dist/getFaceInfo-CyPAKh3h.cjs +1 -0
- package/dist/getFaceInfo-hUKMLFcr.js +118 -0
- package/dist/{handJoints2d.d.ts → hand/handJoints2d.d.ts} +1 -1
- package/dist/{handTracking2d.d.ts → hand/handTracking2d.d.ts} +1 -1
- package/dist/{handTracking2dController.d.ts → hand/handTracking2dController.d.ts} +1 -1
- package/dist/{handTracking3d.d.ts → hand/handTracking3d.d.ts} +1 -1
- package/dist/hooks/faceResults.d.ts +1 -1
- package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
- package/dist/hooks/useFaceAction.d.ts +3 -0
- package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
- package/dist/hooks/useFaceDetection.d.ts +18 -0
- package/dist/hooks/useFaceInfo.d.ts +7 -0
- package/dist/hooks/useFaceInfos.d.ts +15 -0
- package/dist/hooks/useFaceResultReader.d.ts +10 -0
- package/dist/hooks/useFrameCapture.d.ts +18 -0
- package/dist/hooks/useMediaRecorder.d.ts +14 -2
- package/dist/hooks/useOwnedTexture.d.ts +6 -0
- package/dist/hooks/useTrackerContext.d.ts +2 -2
- package/dist/hooks/useXRSession/facade.d.ts +3 -0
- package/dist/hooks/useXRSession/registry.d.ts +9 -0
- package/dist/index-82aENaRq.cjs +1 -0
- package/dist/{index-BGNbrc4C.js → index-BgQAX8rs.js} +213 -125
- package/dist/index-CEc1CAmB.cjs +1 -0
- package/dist/index-CTHeBQOs.js +178 -0
- package/dist/index-D4bLzBr6.cjs +1 -0
- package/dist/index-DSpzjuqd.cjs +1 -0
- package/dist/index-Di70KWuY.js +2049 -0
- package/dist/index-DzEzkBIH.cjs +17 -0
- package/dist/{index-safCs_af.js → index-JygePOwo.js} +565 -508
- package/dist/index-UC0Ux38E.js +111 -0
- package/dist/{internal-Cae1ps15.js → internal-DuMPpcbp.js} +86 -80
- package/dist/internal-i2JkM85N.cjs +1 -0
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +2 -2
- package/dist/low-level.cjs +1 -1
- package/dist/low-level.js +1229 -86
- package/dist/main.cjs +1 -73
- package/dist/main.js +545 -1693
- package/dist/material/MaterialFill.d.ts +20 -0
- package/dist/material/MeshMaterial.d.ts +14 -0
- package/dist/material/index.d.ts +2 -0
- package/dist/models/Body/index.d.ts +1 -1
- package/dist/models/Face/index.d.ts +1 -0
- package/dist/models/Face/rotation.d.ts +3 -0
- package/dist/render/renderGroups.d.ts +47 -0
- package/dist/render/renderPasses.d.ts +18 -0
- package/dist/renderGroups-C9QJrAXu.js +152 -0
- package/dist/renderGroups-Dvm1J4lW.cjs +1 -0
- package/dist/renderLayers-lDtL0_43.cjs +1 -0
- package/dist/renderLayers-zrK2pv5O.js +13 -0
- package/dist/renderPasses-CT5iBwtg.cjs +21 -0
- package/dist/renderPasses-CjgG_6kQ.js +1500 -0
- package/dist/scene-object/index.d.ts +146 -0
- package/dist/scene-object/runtimeRegistry.d.ts +14 -0
- package/dist/scene-object.cjs +1 -0
- package/dist/scene-object.js +40 -0
- package/dist/{screenImageSettings.d.ts → screen-image/screenImageSettings.d.ts} +9 -2
- package/dist/{screenTextSettings.d.ts → screen-text/screenTextSettings.d.ts} +18 -2
- package/dist/screen2d/coordinates.d.ts +87 -0
- package/dist/screen2d/index.d.ts +3 -0
- package/dist/screen2d/screenTransform.d.ts +47 -0
- package/dist/screen2d/smoothing.d.ts +5 -0
- package/dist/{selectors-BLl2JUWW.cjs → selectors-2QvO5RYY.cjs} +1 -1
- package/dist/{selectors-CXd_x-6t.js → selectors-Dw3C-gSk.js} +3 -3
- package/dist/services/MetricsCollector/index.d.ts +7 -1
- package/dist/services/MetricsCollector/utils.d.ts +1 -1
- package/dist/session-BChR4TgK.cjs +31 -0
- package/dist/session-C1StwN0f.js +363 -0
- package/dist/texture/animatedTexture.d.ts +61 -0
- package/dist/texture/animationMath.d.ts +8 -0
- package/dist/texture/sourceResolver.d.ts +30 -0
- package/dist/tracking.cjs +1 -1
- package/dist/tracking.js +580 -321
- package/dist/types/face.d.ts +1 -13
- package/dist/types/index.d.ts +0 -1
- package/dist/types/nodes.d.ts +2 -1
- package/dist/types/session.d.ts +2 -0
- package/dist/types/tracking.d.ts +8 -2
- package/dist/types/util-types.d.ts +1 -1
- package/dist/useFaceInfo-C-WfMlYp.cjs +1 -0
- package/dist/useFaceInfo-CwsHZedC.js +62 -0
- package/dist/useFaceResults-CkFc1egZ.js +19 -0
- package/dist/useFaceResults-VcFdOUFV.cjs +1 -0
- package/dist/utils/drawNormalizedCrop.d.ts +22 -0
- package/dist/utils/integrity.d.ts +4 -25
- package/dist/utils/landmarkBounds.d.ts +1 -1
- package/dist/utils/logger.d.ts +2 -2
- package/docs/MIGRATION_GUIDE.md +589 -0
- package/docs/SDK_DOCUMENTATION.md +1155 -0
- package/docs/api/audio.mdx +36 -0
- package/docs/api/behavior-components.mdx +164 -0
- package/docs/api/capture-recording.mdx +103 -0
- package/docs/api/debug-ui-scene-editor.mdx +249 -0
- package/docs/api/face-actions.mdx +104 -0
- package/docs/api/face-attribute-expression.mdx +87 -0
- package/docs/api/face-binding-anchors.mdx +53 -0
- package/docs/api/face-effects.mdx +19 -0
- package/docs/api/face-info.mdx +112 -0
- package/docs/api/face-mesh.mdx +98 -0
- package/docs/api/face-painting.mdx +33 -0
- package/docs/api/face-retouching.mdx +73 -0
- package/docs/api/material-render-state.mdx +132 -0
- package/docs/api/runtime-3d.mdx +311 -0
- package/docs/api/scene-object-store.mdx +213 -0
- package/docs/api/screen-image.mdx +41 -0
- package/docs/api/screen-shape.mdx +64 -0
- package/docs/api/screen-space-coordinates.mdx +41 -0
- package/docs/api/screen-text.mdx +39 -0
- package/docs/api/texture-sources.mdx +55 -0
- package/docs/api/trackers.mdx +46 -0
- package/docs/docs.json +70 -0
- package/docs/examples/scene-object-recipes.mdx +194 -0
- package/docs/guides/harness-debug-ui.mdx +139 -0
- package/docs/inspector/hierarchy-panel.mdx +51 -0
- package/docs/inspector/object-inspector-panel.mdx +51 -0
- package/docs/introduction.mdx +121 -0
- package/docs/scene-objects/overview.mdx +127 -0
- package/docs/scene-objects/render-groups.mdx +77 -0
- package/docs/scene-objects/runtime-rendering.mdx +75 -0
- package/docs/texture-api-consumer.md +58 -0
- package/package.json +37 -7
- package/dist/MediaSourceSwitcher-C-xYg0nQ.js +0 -317
- package/dist/MediaSourceSwitcher-Cq3g4IKw.cjs +0 -31
- package/dist/components/FaceRetouch/defaults.d.ts +0 -13
- package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
- package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
- package/dist/defaults-BLpcN3pG.cjs +0 -1
- package/dist/defaults-LtY4M7dg.js +0 -55
- package/dist/index-BXyObVHF.cjs +0 -1
- package/dist/index-CY3bUAcW.js +0 -12
- package/dist/index-C_Duh13c.cjs +0 -1
- package/dist/index-D8fpPQkC.cjs +0 -1
- package/dist/index-DxshgBu0.cjs +0 -1
- package/dist/index-O-2crZ3M.js +0 -1102
- package/dist/internal-BjyhBP8i.cjs +0 -1
- package/dist/modules/XRClient/index.d.ts +0 -9
- package/dist/modules/index.d.ts +0 -1
- package/dist/screenImageSettings-6NRg4cx9.js +0 -39
- package/dist/screenImageSettings-y_B4_767.cjs +0 -1
- package/dist/services/ApiService.d.ts +0 -12
- package/dist/types/client.d.ts +0 -3
- package/dist/useFaceResults-cpsSmKKc.js +0 -81
- package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
- package/dist/useXRModel-3DcUa28n.cjs +0 -1
- package/dist/useXRModel-BMJE1hrk.js +0 -28
- /package/dist/{layerStack.d.ts → render/layerStack.d.ts} +0 -0
- /package/dist/{screenImagePresets.d.ts → screen-image/screenImagePresets.d.ts} +0 -0
- /package/dist/{screenTextPresets.d.ts → screen-text/screenTextPresets.d.ts} +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* 1. Gesture-started audio is BLOCKED. Audio kicked off from a camera-detected
|
|
6
6
|
* gesture (a peace sign to start) is not a user-input event, so iOS autoplay
|
|
7
|
-
* policy blocks it. The fix is
|
|
7
|
+
* policy blocks it. The fix is app-style: run muted by default (muted
|
|
8
8
|
* autoplay is allowed un-gestured) and let the tap that unmutes be the real
|
|
9
9
|
* gesture that unlocks the pipeline (prime each element with a muted
|
|
10
10
|
* play->pause on that tap).
|
|
@@ -52,6 +52,8 @@ export declare class AudioEngine {
|
|
|
52
52
|
private muted;
|
|
53
53
|
private readonly listeners;
|
|
54
54
|
private music;
|
|
55
|
+
private musicUrl;
|
|
56
|
+
private musicReady;
|
|
55
57
|
private musicWanted;
|
|
56
58
|
private readonly pools;
|
|
57
59
|
/** Last play time per SFX URL, for the coalesce window. */
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type AudioPlayMode = "once" | "loop" | "infinite";
|
|
2
|
+
export interface AudioPlayerHandle {
|
|
3
|
+
play: () => Promise<void>;
|
|
4
|
+
pause: () => void;
|
|
5
|
+
stop: () => void;
|
|
6
|
+
readonly current: HTMLAudioElement | null;
|
|
7
|
+
}
|
|
8
|
+
export interface AudioPlayerProps {
|
|
9
|
+
src: string;
|
|
10
|
+
playMode?: AudioPlayMode;
|
|
11
|
+
/** Total number of plays in `loop` mode. Values below 1 become 1. */
|
|
12
|
+
loopCount?: number;
|
|
13
|
+
autoplay?: boolean;
|
|
14
|
+
muted?: boolean;
|
|
15
|
+
/** Volume from 0 through 100. Values are clamped. */
|
|
16
|
+
volume?: number;
|
|
17
|
+
preload?: "none" | "metadata" | "auto";
|
|
18
|
+
onReady?: () => void;
|
|
19
|
+
onPlay?: () => void;
|
|
20
|
+
onPause?: () => void;
|
|
21
|
+
onEnded?: () => void;
|
|
22
|
+
onError?: (error: Error) => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Headless, declarative audio player with timeline-friendly playback
|
|
26
|
+
* properties. It renders only a hidden HTML audio element; build any visible
|
|
27
|
+
* controls with the imperative ref or application state.
|
|
28
|
+
*/
|
|
29
|
+
export declare const AudioPlayer: import('react').ForwardRefExoticComponent<AudioPlayerProps & import('react').RefAttributes<AudioPlayerHandle>>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AudioPlayMode } from './AudioPlayer';
|
|
2
|
+
export type AudioEndedAction = "replay" | "ended";
|
|
3
|
+
export declare const resolveAudioEndedAction: (playMode: AudioPlayMode, completedPlays: number, loopCount: number) => AudioEndedAction;
|
|
4
|
+
export declare const shouldAutoplaySource: (autoplay: boolean, autoplayedSrc: string | null, src: string) => boolean;
|
package/dist/audio/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AudioEngine } from './AudioEngine';
|
|
2
2
|
export { AudioEngine } from './AudioEngine';
|
|
3
3
|
export type { AudioEngineOptions } from './AudioEngine';
|
|
4
|
+
export { AudioPlayer } from './AudioPlayer';
|
|
5
|
+
export type { AudioPlayerHandle, AudioPlayerProps, AudioPlayMode } from './AudioPlayer';
|
|
4
6
|
/** The process-wide default engine the free functions target. */
|
|
5
7
|
export declare const audio: AudioEngine;
|
|
6
8
|
/** Create + buffer the looping music element. Await in the loading gate so the
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ThreeElements } from '@react-three/fiber';
|
|
2
|
+
export type AxesProps = Omit<ThreeElements["axesHelper"], "args"> & {
|
|
3
|
+
size?: number;
|
|
4
|
+
};
|
|
5
|
+
/** RGB orientation axes: X red, Y green, Z blue. */
|
|
6
|
+
export declare const Axes: ({ size, ...props }: AxesProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CanonicalFaceMeshRendererProps } from './canonical/CanonicalFaceMeshRenderer';
|
|
2
|
+
import { Transform3DSettings } from '../Transform3D';
|
|
3
|
+
type SerializedFaceMeshRendererProps = Required<Pick<CanonicalFaceMeshRendererProps, "faceIndex" | "baseColor" | "opacity" | "materialType" | "shaderPreset" | "textureMap" | "alphaMap" | "alphaOpacity" | "side" | "blendMode" | "blendOpacity" | "showOverlayMask" | "showMouthMask" | "showLeftEyeMask" | "showRightEyeMask" | "showNoseMask" | "showLeftEyeGeometry" | "showRightEyeGeometry" | "showMouthGeometry" | "showNoseGeometry" | "maskTextureSource" | "maskSourceUrl" | "maskColor" | "maskOpacity" | "faceTextureUrl" | "faceTextureStyle2Url" | "faceAlphaMaskUrl" | "compositeShading" | "renderOrder" | "externalScale">>;
|
|
4
|
+
export type FaceMeshRendererSettings = SerializedFaceMeshRendererProps & {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
targetFps?: number;
|
|
7
|
+
externalMeshUrl?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const DEFAULT_FACE_MESH_TRANSFORM: Transform3DSettings;
|
|
10
|
+
export declare const DEFAULT_FACE_MESH_RENDERER: FaceMeshRendererSettings;
|
|
11
|
+
export declare const mapFaceMeshRendererSettingsToProps: (settings: FaceMeshRendererSettings) => CanonicalFaceMeshRendererProps;
|
|
12
|
+
export declare const resolveFaceMeshRendererSettings: (current: FaceMeshRendererSettings, patch: Partial<FaceMeshRendererSettings>) => FaceMeshRendererSettings;
|
|
13
|
+
export declare const FaceMeshRenderer: ({ transform, value, }: {
|
|
14
|
+
transform?: Transform3DSettings;
|
|
15
|
+
value: FaceMeshRendererSettings;
|
|
16
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
17
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Transform3DSettings } from '../../Transform3D';
|
|
1
2
|
import { FaceWarp3DSettings } from '../../FaceWarp3D';
|
|
2
3
|
import { FaceMeshAlphaMap, FaceMeshBlendMode, FaceMeshMaskTextureSource, FaceMeshMaterialType, FaceMeshShaderPreset, FaceMeshSide, FaceMeshTextureMap } from '../material/types';
|
|
3
4
|
import { ParsedCanonicalMesh } from './parseCanonicalFaceModel';
|
|
@@ -14,10 +15,19 @@ export type CanonicalFaceMeshRendererProps = {
|
|
|
14
15
|
side?: FaceMeshSide;
|
|
15
16
|
blendMode?: FaceMeshBlendMode;
|
|
16
17
|
blendOpacity?: number;
|
|
18
|
+
showOverlayMask?: boolean;
|
|
17
19
|
showMouthMask?: boolean;
|
|
18
20
|
showEyeMask?: boolean;
|
|
21
|
+
showLeftEyeMask?: boolean;
|
|
22
|
+
showRightEyeMask?: boolean;
|
|
19
23
|
showNoseMask?: boolean;
|
|
24
|
+
showEyeGeometry?: boolean;
|
|
25
|
+
showLeftEyeGeometry?: boolean;
|
|
26
|
+
showRightEyeGeometry?: boolean;
|
|
27
|
+
showMouthGeometry?: boolean;
|
|
28
|
+
showNoseGeometry?: boolean;
|
|
20
29
|
maskTextureSource?: FaceMeshMaskTextureSource;
|
|
30
|
+
maskSourceUrl?: string;
|
|
21
31
|
maskColor?: string;
|
|
22
32
|
maskOpacity?: number;
|
|
23
33
|
faceTextureUrl?: string;
|
|
@@ -25,7 +35,9 @@ export type CanonicalFaceMeshRendererProps = {
|
|
|
25
35
|
faceAlphaMaskUrl?: string;
|
|
26
36
|
compositeShading?: boolean;
|
|
27
37
|
faceWarp3D?: Partial<FaceWarp3DSettings>;
|
|
38
|
+
transform?: Transform3DSettings;
|
|
28
39
|
renderOrder?: number;
|
|
40
|
+
externalScale?: number;
|
|
29
41
|
/**
|
|
30
42
|
* Pre-parsed canonical mesh. If omitted, the renderer lazily fetches
|
|
31
43
|
* the default OBJ from `libConfig.sdkAssetsBaseUrl` and parses it.
|
|
@@ -36,4 +48,8 @@ export type CanonicalFaceMeshRendererProps = {
|
|
|
36
48
|
*/
|
|
37
49
|
meshUrl?: string;
|
|
38
50
|
};
|
|
39
|
-
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated Use `FaceMeshRenderer` for scene-object/editor integrations.
|
|
53
|
+
* This remains as the low-level canonical mesh renderer for existing imports.
|
|
54
|
+
*/
|
|
55
|
+
export declare const CanonicalFaceMeshRenderer: ({ faceIndex, baseColor, color, opacity, materialType, shaderPreset, textureMap, alphaMap, alphaOpacity, side, blendMode, blendOpacity, showOverlayMask, showMouthMask, showEyeMask, showLeftEyeMask, showRightEyeMask, showNoseMask, showEyeGeometry, showLeftEyeGeometry, showRightEyeGeometry, showMouthGeometry, showNoseGeometry, maskTextureSource, maskSourceUrl, maskColor, maskOpacity, faceTextureUrl, faceTextureStyle2Url, faceAlphaMaskUrl, compositeShading, faceWarp3D, transform, renderOrder, externalScale, mesh, meshUrl, }: CanonicalFaceMeshRendererProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FaceMeshAlphaMap, FaceMeshBlendMode, FaceMeshMaskTextureSource, FaceMeshMaterialType, FaceMeshShaderPreset, FaceMeshTextureMap } from '../material/types';
|
|
2
|
+
import * as THREE from "three";
|
|
3
|
+
export type FaceMeshMaterialProps = {
|
|
4
|
+
alphaMap: FaceMeshAlphaMap;
|
|
5
|
+
alphaOpacity: number;
|
|
6
|
+
blendMode: FaceMeshBlendMode;
|
|
7
|
+
blendOpacity: number;
|
|
8
|
+
cameraTexture?: THREE.Texture | null;
|
|
9
|
+
color: string;
|
|
10
|
+
compositeShading: boolean;
|
|
11
|
+
faceAlphaMaskUrl: string;
|
|
12
|
+
faceTextureStyle2Url: string;
|
|
13
|
+
faceTextureUrl: string;
|
|
14
|
+
masked?: boolean;
|
|
15
|
+
maskColor: string;
|
|
16
|
+
maskOpacity: number;
|
|
17
|
+
maskSourceUrl: string;
|
|
18
|
+
maskTextureSource: FaceMeshMaskTextureSource;
|
|
19
|
+
materialType: FaceMeshMaterialType;
|
|
20
|
+
opacity: number;
|
|
21
|
+
shaderPreset: FaceMeshShaderPreset;
|
|
22
|
+
side: THREE.Side;
|
|
23
|
+
textureMap: FaceMeshTextureMap;
|
|
24
|
+
};
|
|
25
|
+
export declare const FaceMeshMaterial: ({ alphaMap, alphaOpacity, blendMode, blendOpacity, cameraTexture, color, compositeShading, faceAlphaMaskUrl, faceTextureStyle2Url, faceTextureUrl, masked, maskColor, maskOpacity, maskSourceUrl, maskTextureSource, materialType, opacity, shaderPreset, side, textureMap, }: FaceMeshMaterialProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ParsedCanonicalMesh } from './parseCanonicalFaceModel';
|
|
2
|
+
export type CanonicalFaceMeshGeometryKey = "base" | "mouth" | "left-eye" | "right-eye" | "nose" | "mouth-mask" | "left-eye-mask" | "right-eye-mask" | "nose-mask";
|
|
3
|
+
export type CanonicalFaceMeshGeometrySpec = {
|
|
4
|
+
key: CanonicalFaceMeshGeometryKey;
|
|
5
|
+
getIndices: (mesh: ParsedCanonicalMesh) => Uint16Array;
|
|
6
|
+
masked: boolean;
|
|
7
|
+
renderOrderOffset: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const CANONICAL_FACE_MESH_GEOMETRY_SPECS: CanonicalFaceMeshGeometrySpec[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const COMPOSITE_VERTEX_SHADER = "\n attribute vec2 faceUv;\n varying vec2 vUv;\n varying vec2 vFaceUv;\n varying vec3 vNormal;\n\n void main() {\n vUv = uv;\n vFaceUv = faceUv;\n vNormal = normalize(normalMatrix * normal);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n";
|
|
2
|
+
export declare const COMPOSITE_FRAGMENT_SHADER = "\n uniform sampler2D cameraTexture;\n uniform sampler2D canonicalTexture;\n uniform sampler2D alphaMask;\n uniform vec3 textureTint;\n uniform float opacity;\n uniform int blendMode;\n uniform float blendOpacity;\n uniform float useCanonicalTexture;\n uniform float useAlphaMask;\n uniform float alphaOpacity;\n uniform float compositeShading;\n uniform vec3 lightDirection;\n uniform float ambientStrength;\n uniform float directionalStrength;\n varying vec2 vUv;\n varying vec2 vFaceUv;\n varying vec3 vNormal;\n\n vec3 linearToSrgb(vec3 value) {\n vec3 low = value * 12.92;\n vec3 high = 1.055 * pow(max(value, vec3(0.0)), vec3(1.0 / 2.4)) - 0.055;\n return mix(high, low, step(value, vec3(0.0031308)));\n }\n\n vec3 srgbToLinear(vec3 value) {\n vec3 low = value / 12.92;\n vec3 high = pow(max((value + 0.055) / 1.055, vec3(0.0)), vec3(2.4));\n return mix(high, low, step(value, vec3(0.04045)));\n }\n\n float overlayChannel(float base, float blend) {\n return base < 0.5 ? 2.0 * base * blend : 1.0 - 2.0 * (1.0 - base) * (1.0 - blend);\n }\n\n float hardLightChannel(float base, float blend) {\n return blend < 0.5 ? 2.0 * base * blend : 1.0 - 2.0 * (1.0 - base) * (1.0 - blend);\n }\n\n float softLightChannel(float base, float blend) {\n if (blend <= 0.5) {\n return base - (1.0 - 2.0 * blend) * base * (1.0 - base);\n }\n\n float d = base <= 0.25\n ? ((16.0 * base - 12.0) * base + 4.0) * base\n : sqrt(base);\n\n return base + (2.0 * blend - 1.0) * (d - base);\n }\n\n vec3 applyBlendMode(vec3 base, vec3 blend, int mode) {\n if (mode == 0) return blend;\n if (mode == 1) return min(base + blend, 1.0);\n if (mode == 2) return max(base - blend, 0.0);\n if (mode == 3) return base * blend;\n if (mode == 4) return 1.0 - (1.0 - base) * (1.0 - blend);\n if (mode == 5) {\n return vec3(\n overlayChannel(base.r, blend.r),\n overlayChannel(base.g, blend.g),\n overlayChannel(base.b, blend.b)\n );\n }\n if (mode == 6) {\n return vec3(\n softLightChannel(base.r, blend.r),\n softLightChannel(base.g, blend.g),\n softLightChannel(base.b, blend.b)\n );\n }\n if (mode == 7) {\n return vec3(\n hardLightChannel(base.r, blend.r),\n hardLightChannel(base.g, blend.g),\n hardLightChannel(base.b, blend.b)\n );\n }\n if (mode == 8) return max(base, blend);\n if (mode == 9) return min(base, blend);\n if (mode == 10) return abs(base - blend);\n return base + blend - 2.0 * base * blend;\n }\n\n void main() {\n vec3 base = linearToSrgb(texture2D(cameraTexture, vFaceUv).rgb);\n vec4 textureSample = texture2D(canonicalTexture, vUv);\n vec3 blend = linearToSrgb(textureSample.rgb) * textureTint;\n float light = ambientStrength + max(dot(normalize(vNormal), normalize(lightDirection)), 0.0) * directionalStrength;\n blend *= mix(1.0, clamp(light, 0.35, 1.35), compositeShading);\n float maskSample = texture2D(alphaMask, vUv).r;\n float mask = useAlphaMask > 0.5 ? mix(1.0, maskSample, alphaOpacity) : 1.0;\n float textureAlpha = useCanonicalTexture > 0.5 ? textureSample.a : 1.0;\n vec3 blended = applyBlendMode(base, blend, blendMode);\n vec3 color = useCanonicalTexture > 0.5 ? mix(base, blended, blendOpacity) : base;\n gl_FragColor = vec4(srgbToLinear(color), opacity * mask * textureAlpha);\n }\n";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NormalizedLandmark } from '@mediapipe/tasks-vision';
|
|
2
|
+
import { Transform3DSettings } from '../Transform3D';
|
|
2
3
|
import * as THREE from "three";
|
|
3
4
|
/** Minimal landmark shape the deform reads (x/y/z in normalized space). */
|
|
4
5
|
type LandmarkXYZ = {
|
|
@@ -6,6 +7,8 @@ type LandmarkXYZ = {
|
|
|
6
7
|
y: number;
|
|
7
8
|
z: number;
|
|
8
9
|
};
|
|
10
|
+
export declare const getFaceMeshTransformUniformScale: (settings: Transform3DSettings) => number;
|
|
11
|
+
export declare const transformFaceMeshLandmark: (landmark: LandmarkXYZ, center: LandmarkXYZ, settings: Transform3DSettings, out: LandmarkXYZ) => LandmarkXYZ;
|
|
9
12
|
/**
|
|
10
13
|
* Shared, allocation-free landmark deform for the face-mesh renderers.
|
|
11
14
|
*
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export { FaceMesh, FACE_LANDMARK_Z_SCALE_FACTOR } from './FaceMesh';
|
|
2
2
|
export { CanonicalFaceMeshRenderer } from './canonical/CanonicalFaceMeshRenderer';
|
|
3
3
|
export type { CanonicalFaceMeshRendererProps } from './canonical/CanonicalFaceMeshRenderer';
|
|
4
|
+
export { FaceMeshMaterial } from './canonical/FaceMeshMaterial';
|
|
5
|
+
export type { FaceMeshMaterialProps } from './canonical/FaceMeshMaterial';
|
|
6
|
+
export { DEFAULT_FACE_MESH_TRANSFORM, DEFAULT_FACE_MESH_RENDERER, FaceMeshRenderer, mapFaceMeshRendererSettingsToProps, resolveFaceMeshRendererSettings, type FaceMeshRendererSettings, } from './FaceMeshRenderer';
|
|
4
7
|
export { useCanonicalFaceMesh } from './canonical/useCanonicalFaceMesh';
|
|
8
|
+
export { canonicalFaceAlphaMaskUrl, canonicalFaceTextureStyle2Url, canonicalFaceTextureUrl, } from './canonical/assets';
|
|
5
9
|
export { parseCanonicalFaceModel, type ParsedCanonicalMesh, } from './canonical/parseCanonicalFaceModel';
|
|
10
|
+
export { CANONICAL_FACE_MESH_GEOMETRY_SPECS, type CanonicalFaceMeshGeometryKey, type CanonicalFaceMeshGeometrySpec, } from './canonical/geometryGroups';
|
|
6
11
|
export * from './material';
|
|
@@ -1,7 +1,77 @@
|
|
|
1
1
|
import { FaceMeshAppearance, FaceMeshMasking } from './types';
|
|
2
|
+
export declare const FACE_MESH_MATERIAL_TYPES: {
|
|
3
|
+
readonly basic: "basic";
|
|
4
|
+
readonly standard: "standard";
|
|
5
|
+
readonly physical: "physical";
|
|
6
|
+
readonly toon: "toon";
|
|
7
|
+
readonly normal: "normal";
|
|
8
|
+
readonly matcap: "matcap";
|
|
9
|
+
readonly wireframe: "wireframe";
|
|
10
|
+
readonly shader: "shader";
|
|
11
|
+
};
|
|
12
|
+
export declare const FACE_MESH_SHADER_PRESETS: {
|
|
13
|
+
readonly originalFace: "originalFace";
|
|
14
|
+
readonly composite: "composite";
|
|
15
|
+
};
|
|
16
|
+
export declare const FACE_MESH_TEXTURE_MAPS: {
|
|
17
|
+
readonly none: "none";
|
|
18
|
+
readonly canonical: "canonical";
|
|
19
|
+
readonly style2: "style2";
|
|
20
|
+
};
|
|
21
|
+
export declare const FACE_MESH_ALPHA_MAPS: {
|
|
22
|
+
readonly none: "none";
|
|
23
|
+
readonly canonical: "canonical";
|
|
24
|
+
};
|
|
25
|
+
export declare const FACE_MESH_MASK_TEXTURE_SOURCES: {
|
|
26
|
+
readonly solid: "solid";
|
|
27
|
+
readonly gradient: "gradient";
|
|
28
|
+
readonly imageUrl: "imageUrl";
|
|
29
|
+
readonly mediaUrl: "mediaUrl";
|
|
30
|
+
};
|
|
31
|
+
export declare const FACE_MESH_SIDES: {
|
|
32
|
+
readonly front: "front";
|
|
33
|
+
readonly back: "back";
|
|
34
|
+
readonly double: "double";
|
|
35
|
+
};
|
|
36
|
+
export declare const FACE_MESH_BLEND_MODES: {
|
|
37
|
+
readonly normal: "normal";
|
|
38
|
+
readonly add: "add";
|
|
39
|
+
readonly subtract: "subtract";
|
|
40
|
+
readonly multiply: "multiply";
|
|
41
|
+
readonly screen: "screen";
|
|
42
|
+
readonly overlay: "overlay";
|
|
43
|
+
readonly softLight: "softLight";
|
|
44
|
+
readonly hardLight: "hardLight";
|
|
45
|
+
readonly lighten: "lighten";
|
|
46
|
+
readonly darken: "darken";
|
|
47
|
+
readonly difference: "difference";
|
|
48
|
+
readonly exclusion: "exclusion";
|
|
49
|
+
};
|
|
50
|
+
export declare const FACE_MESH_COMPOSITE_TEXTURE_DEFAULTS: {
|
|
51
|
+
readonly textureMap: "canonical";
|
|
52
|
+
readonly alphaMap: "canonical";
|
|
53
|
+
readonly alphaOpacity: 1;
|
|
54
|
+
};
|
|
55
|
+
export declare const FACE_MESH_COMPOSITE_APPEARANCE_DEFAULTS: {
|
|
56
|
+
readonly blendMode: "hardLight";
|
|
57
|
+
readonly blendOpacity: 0.85;
|
|
58
|
+
readonly baseColor: "#ffffff";
|
|
59
|
+
readonly opacity: 1;
|
|
60
|
+
readonly compositeShading: true;
|
|
61
|
+
readonly textureMap: "canonical";
|
|
62
|
+
readonly alphaMap: "canonical";
|
|
63
|
+
readonly alphaOpacity: 1;
|
|
64
|
+
};
|
|
2
65
|
export declare const DEFAULT_APPEARANCE: FaceMeshAppearance;
|
|
3
66
|
export declare const FACE_PAINTING_PRESET: FaceMeshAppearance;
|
|
4
67
|
export declare const FACE_MESH_PRESETS: {
|
|
5
68
|
readonly facePainting: FaceMeshAppearance;
|
|
6
69
|
};
|
|
7
70
|
export declare const DEFAULT_MASKING: FaceMeshMasking;
|
|
71
|
+
export declare const DEFAULT_FACE_MESH_MASK: {
|
|
72
|
+
readonly textureSource: "solid";
|
|
73
|
+
readonly color: "#111111";
|
|
74
|
+
readonly opacity: 0.5;
|
|
75
|
+
};
|
|
76
|
+
export declare const DEFAULT_FACE_MESH_TARGET_FPS = 24;
|
|
77
|
+
export declare const DEFAULT_FACE_MESH_RENDER_ORDER = 10;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FaceMeshAlphaMap, FaceMeshBlendMode, FaceMeshMaterialType, FaceMeshShaderPreset, FaceMeshSide, FaceMeshTextureMap } from './types';
|
|
1
|
+
import { FaceMeshAlphaMap, FaceMeshBlendMode, FaceMeshMaterialType, FaceMeshMaskTextureSource, FaceMeshShaderPreset, FaceMeshSide, FaceMeshTextureMap } from './types';
|
|
2
2
|
export declare const materialTypeOptions: Array<{
|
|
3
3
|
label: string;
|
|
4
4
|
value: FaceMeshMaterialType;
|
|
@@ -19,6 +19,10 @@ export declare const alphaMapOptions: Array<{
|
|
|
19
19
|
label: string;
|
|
20
20
|
value: FaceMeshAlphaMap;
|
|
21
21
|
}>;
|
|
22
|
+
export declare const maskTextureSourceOptions: Array<{
|
|
23
|
+
label: string;
|
|
24
|
+
value: FaceMeshMaskTextureSource;
|
|
25
|
+
}>;
|
|
22
26
|
export declare const blendModeOptions: Array<{
|
|
23
27
|
label: string;
|
|
24
28
|
value: FaceMeshBlendMode;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
import { FaceMeshMaterialType, FaceMeshShaderPreset } from './types';
|
|
1
|
+
import { FaceMeshMaskTextureSource, FaceMeshMaterialType, FaceMeshShaderPreset, FaceMeshTextureMap } from './types';
|
|
2
|
+
export type FaceMeshShaderMode = "none" | "originalFace" | "composite";
|
|
3
|
+
export declare const getFaceMeshShaderMode: (materialType: FaceMeshMaterialType, shaderPreset: FaceMeshShaderPreset, textureMap: FaceMeshTextureMap) => FaceMeshShaderMode;
|
|
2
4
|
export declare const supportsTexturePanel: (materialType: FaceMeshMaterialType, shaderPreset: FaceMeshShaderPreset) => boolean;
|
|
3
|
-
export declare const supportsBlendMode: (materialType: FaceMeshMaterialType, shaderPreset: FaceMeshShaderPreset) => boolean;
|
|
5
|
+
export declare const supportsBlendMode: (materialType: FaceMeshMaterialType, shaderPreset: FaceMeshShaderPreset, textureMap?: FaceMeshTextureMap) => boolean;
|
|
6
|
+
export declare const usesLiveFaceUv: (materialType: FaceMeshMaterialType, shaderPreset: FaceMeshShaderPreset, textureMap: FaceMeshTextureMap) => boolean;
|
|
7
|
+
export declare const usesMaskSourceUrl: (source: FaceMeshMaskTextureSource) => source is "imageUrl" | "mediaUrl";
|
|
8
|
+
export declare const usesMaskColor: (source: FaceMeshMaskTextureSource) => source is "solid" | "gradient";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
export declare const TRANSPARENT_TEXTURE_DATA_URL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO2YpZcAAAAASUVORK5CYII=";
|
|
3
|
+
export declare const createToonGradientTexture: () => THREE.DataTexture;
|
|
4
|
+
export declare const createMatcapTexture: () => THREE.CanvasTexture;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export type FaceMeshMaterialType = "basic" | "standard" | "physical" | "toon" | "normal" | "matcap" | "wireframe" | "shader";
|
|
2
|
-
export type FaceMeshShaderPreset = "
|
|
2
|
+
export type FaceMeshShaderPreset = "originalFace" | "composite";
|
|
3
3
|
export type FaceMeshTextureMap = "none" | "canonical" | "style2";
|
|
4
4
|
export type FaceMeshAlphaMap = "none" | "canonical";
|
|
5
|
-
export type FaceMeshMaskTextureSource = "
|
|
5
|
+
export type FaceMeshMaskTextureSource = "solid" | "gradient" | "imageUrl" | "mediaUrl";
|
|
6
6
|
export type FaceMeshSide = "front" | "back" | "double";
|
|
7
7
|
export type FaceMeshBlendMode = "normal" | "add" | "subtract" | "multiply" | "screen" | "overlay" | "softLight" | "hardLight" | "lighten" | "darken" | "difference" | "exclusion";
|
|
8
8
|
export type FaceMeshAppearance = {
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
2
|
export type FaceRetouchBackgroundProps = {
|
|
3
3
|
retouchMask: THREE.Texture;
|
|
4
|
-
mouthMask: THREE.Texture;
|
|
5
4
|
retouchAmount: number;
|
|
6
5
|
blurRadius: number;
|
|
7
6
|
detailPreservation?: number;
|
|
8
7
|
blemishReduction?: number;
|
|
9
|
-
rednessReduction?: number;
|
|
10
8
|
blemishRadius?: number;
|
|
11
|
-
teethWhitening: number;
|
|
12
9
|
previewMask: boolean;
|
|
13
10
|
protectLandmarks: boolean;
|
|
11
|
+
clipMinX?: number;
|
|
12
|
+
clipMaxX?: number;
|
|
14
13
|
renderOrder?: number;
|
|
15
14
|
};
|
|
16
15
|
/**
|
|
17
16
|
* Full-screen plane that composites the live camera texture with a
|
|
18
|
-
* landmark-driven retouch
|
|
19
|
-
*
|
|
17
|
+
* landmark-driven skin retouch. Pair with `useFaceRetouchMask` to drive the
|
|
18
|
+
* mask.
|
|
20
19
|
*/
|
|
21
|
-
export declare const FaceRetouchBackground: ({ retouchMask,
|
|
20
|
+
export declare const FaceRetouchBackground: ({ retouchMask, retouchAmount, blurRadius, detailPreservation, blemishReduction, blemishRadius, previewMask, protectLandmarks, clipMinX, clipMaxX, renderOrder, }: FaceRetouchBackgroundProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type FaceRetouchControls = {
|
|
2
|
+
skinSmoothing: number;
|
|
3
|
+
skinRealism: number;
|
|
4
|
+
blemishReduction: number;
|
|
5
|
+
previewMask: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const FACE_RETOUCH_SETTINGS_FIELDS: [{
|
|
8
|
+
readonly key: "skinSmoothing";
|
|
9
|
+
readonly label: "Skin smoothing";
|
|
10
|
+
readonly type: "number";
|
|
11
|
+
readonly min: 0;
|
|
12
|
+
readonly max: 1;
|
|
13
|
+
readonly step: 0.01;
|
|
14
|
+
}, {
|
|
15
|
+
readonly key: "skinRealism";
|
|
16
|
+
readonly label: "Skin realism";
|
|
17
|
+
readonly type: "number";
|
|
18
|
+
readonly min: 0;
|
|
19
|
+
readonly max: 1;
|
|
20
|
+
readonly step: 0.01;
|
|
21
|
+
}, {
|
|
22
|
+
readonly key: "blemishReduction";
|
|
23
|
+
readonly label: "Blemish reduction";
|
|
24
|
+
readonly type: "number";
|
|
25
|
+
readonly min: 0;
|
|
26
|
+
readonly max: 1;
|
|
27
|
+
readonly step: 0.01;
|
|
28
|
+
}, {
|
|
29
|
+
readonly key: "previewMask";
|
|
30
|
+
readonly label: "Preview mask";
|
|
31
|
+
readonly type: "boolean";
|
|
32
|
+
}];
|
|
33
|
+
export type FaceRetouchProps = {
|
|
34
|
+
faceIndex?: number;
|
|
35
|
+
numFaces?: number;
|
|
36
|
+
skinSmoothing?: FaceRetouchControls["skinSmoothing"];
|
|
37
|
+
skinRealism?: FaceRetouchControls["skinRealism"];
|
|
38
|
+
blemishReduction?: FaceRetouchControls["blemishReduction"];
|
|
39
|
+
previewMask?: FaceRetouchControls["previewMask"];
|
|
40
|
+
clipMinX?: number;
|
|
41
|
+
clipMaxX?: number;
|
|
42
|
+
renderOrder?: number;
|
|
43
|
+
};
|
|
44
|
+
export declare const FACE_RETOUCH_DEFAULT_CONTROLS: FaceRetouchControls;
|
|
45
|
+
export declare const resolveFaceRetouchControls: (input?: Partial<FaceRetouchControls>) => FaceRetouchControls;
|
|
46
|
+
export declare const patchFaceRetouchControls: (current: FaceRetouchControls, patch: Partial<FaceRetouchControls>) => FaceRetouchControls;
|
|
47
|
+
export declare const FaceRetouch: ({ faceIndex, numFaces, skinSmoothing, skinRealism, blemishReduction, previewMask, clipMinX, clipMaxX, renderOrder, }: FaceRetouchProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
3
|
-
export { FACE_RETOUCH_PRESET } from './defaults';
|
|
4
|
-
export type { FaceRetouchSettings } from './defaults';
|
|
5
|
-
export { drawFaceRetouchMask, drawMouthRetouchMask, FACE_MASK_SIZE, FACE_OVAL, LEFT_EYE, RIGHT_EYE, OUTER_LIPS, INNER_MOUTH, LEFT_EYEBROW, RIGHT_EYEBROW, type FaceRetouchMaskOptions, } from './landmarkMask';
|
|
6
|
-
export { createFaceRetouchRegions, DEFAULT_FEATURE_GROUPS, DEFAULT_FEATURE_POINT_INDICES, type CreateFaceRetouchRegionsOptions, } from './retouchRegions';
|
|
7
|
-
export { useFaceRetouchMask } from './useFaceRetouchMask';
|
|
8
|
-
export { useFaceRetouchRegions } from './useFaceRetouchRegions';
|
|
1
|
+
export { FACE_RETOUCH_DEFAULT_CONTROLS, FACE_RETOUCH_SETTINGS_FIELDS, FaceRetouch, patchFaceRetouchControls, resolveFaceRetouchControls, } from './FaceRetouch';
|
|
2
|
+
export type { FaceRetouchControls, FaceRetouchProps } from './FaceRetouch';
|
|
@@ -19,8 +19,3 @@ export type FaceRetouchMaskOptions = {
|
|
|
19
19
|
* `size` defaults to FACE_MASK_SIZE (512). The context must be sized to match.
|
|
20
20
|
*/
|
|
21
21
|
export declare const drawFaceRetouchMask: (context: CanvasRenderingContext2D, landmarks: FaceLandmark2D[] | undefined, size?: number, options?: FaceRetouchMaskOptions) => void;
|
|
22
|
-
/**
|
|
23
|
-
* Render a single-channel mouth mask (inner-lip polygon, lightly blurred).
|
|
24
|
-
* Used for teeth-whitening regions.
|
|
25
|
-
*/
|
|
26
|
-
export declare const drawMouthRetouchMask: (context: CanvasRenderingContext2D, landmarks: FaceLandmark2D[] | undefined, size?: number) => void;
|
|
@@ -2,14 +2,10 @@ import { XRModelNodeFaceTracking } from '../../types/nodes';
|
|
|
2
2
|
import { FaceRetouchMaskOptions } from './landmarkMask';
|
|
3
3
|
import * as THREE from "three";
|
|
4
4
|
/**
|
|
5
|
-
* Drive the
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* `size` controls the mask resolution (default 512). Both masks share the
|
|
9
|
-
* same size.
|
|
5
|
+
* Drive the CanvasTexture mask consumed by `FaceRetouchBackground` from the
|
|
6
|
+
* latest face landmarks. Re-rendered on requestAnimationFrame.
|
|
10
7
|
*/
|
|
11
|
-
export declare const useFaceRetouchMask: (faceNode: XRModelNodeFaceTracking | null, size?: number, options?: FaceRetouchMaskOptions) => {
|
|
8
|
+
export declare const useFaceRetouchMask: (faceNode: XRModelNodeFaceTracking | null, size?: number, options?: FaceRetouchMaskOptions, faceIndex?: number) => {
|
|
12
9
|
canvas: HTMLCanvasElement;
|
|
13
10
|
texture: THREE.CanvasTexture;
|
|
14
|
-
mouthTexture: THREE.CanvasTexture;
|
|
15
11
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
|
-
import { FaceMesh } from '../FaceMesh';
|
|
2
|
+
import { FaceMesh } from '../FaceMesh/FaceMesh';
|
|
3
3
|
type FaceTrackerProps = PropsWithChildren & {
|
|
4
4
|
/** Index of the face to bind to in the face-tracking model's results. */
|
|
5
5
|
faceIndex?: number;
|
|
@@ -17,6 +17,8 @@ type FaceTrackerProps = PropsWithChildren & {
|
|
|
17
17
|
* world units — preserves WYSIWYG with the design editor.
|
|
18
18
|
*/
|
|
19
19
|
scaleWithFace?: boolean;
|
|
20
|
+
/** Whether children inherit head roll. Defaults to `true`. */
|
|
21
|
+
followFaceRoll?: boolean;
|
|
20
22
|
/**
|
|
21
23
|
* Cap this tracker's inference rate (fps). Overrides the session-level
|
|
22
24
|
* `perf.targetFps`. Lower = cooler, less smooth. Omit to inherit the session
|
|
@@ -34,7 +36,7 @@ type FaceTrackerProps = PropsWithChildren & {
|
|
|
34
36
|
*/
|
|
35
37
|
active?: boolean;
|
|
36
38
|
};
|
|
37
|
-
declare const FaceTrackerComponent: ({ faceIndex, numFaces, scaleWithFace, targetFps, active, children, }: FaceTrackerProps) => import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
declare const FaceTrackerComponent: ({ faceIndex, numFaces, scaleWithFace, followFaceRoll, targetFps, active, children, }: FaceTrackerProps) => import("react/jsx-runtime").JSX.Element;
|
|
38
40
|
/**
|
|
39
41
|
* Face mesh sub-component. Renders the deforming MediaPipe face mesh
|
|
40
42
|
* for the parent `FaceTracker`'s face index. Replaces the legacy
|
|
@@ -47,7 +49,7 @@ declare const FaceTrackerMesh: typeof FaceMesh;
|
|
|
47
49
|
export declare const FaceTracker: typeof FaceTrackerComponent & {
|
|
48
50
|
Mesh: typeof FaceTrackerMesh;
|
|
49
51
|
};
|
|
50
|
-
export declare const HeadTracker: (({ faceIndex, numFaces, scaleWithFace, targetFps, active, children, }: FaceTrackerProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
52
|
+
export declare const HeadTracker: (({ faceIndex, numFaces, scaleWithFace, followFaceRoll, targetFps, active, children, }: FaceTrackerProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
51
53
|
Mesh: typeof FaceTrackerMesh;
|
|
52
54
|
};
|
|
53
55
|
export { BoundingBoxOverlay } from './BoundingBoxOverlay';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FaceWarp3DSettings } from './defaults';
|
|
2
2
|
export type FaceWarp3DHeadProps = {
|
|
3
|
-
/**
|
|
3
|
+
/** Topology-compatible head mesh. */
|
|
4
4
|
headMeshUrl: string;
|
|
5
5
|
/** Optional UV reference/base texture sampled with the FBX's authored UVs. */
|
|
6
6
|
uvTextureUrl?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HandJoints2DCountResult, HandJoints2DSettings } from '../../handJoints2d';
|
|
1
|
+
import { HandJoints2DCountResult, HandJoints2DSettings } from '../../hand/handJoints2d';
|
|
2
2
|
export type HandJoints2DProps = {
|
|
3
3
|
settings?: HandJoints2DSettings;
|
|
4
4
|
onCountChange?: (result: HandJoints2DCountResult | null) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HandTracking2DHandFrame, HandTracking2DPoint, HandTracking2DSettings } from '../../handTracking2d';
|
|
1
|
+
import { HandTracking2DHandFrame, HandTracking2DPoint, HandTracking2DSettings } from '../../hand/handTracking2d';
|
|
2
2
|
type RenderedHand = HandTracking2DHandFrame & {
|
|
3
3
|
key: string;
|
|
4
4
|
points: HandTracking2DPoint[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HandTracking2DControllerSettings } from '../../handTracking2dController';
|
|
1
|
+
import { HandTracking2DControllerSettings } from '../../hand/handTracking2dController';
|
|
2
2
|
export type HandTracking2DControllerProps = {
|
|
3
3
|
settings?: HandTracking2DControllerSettings;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HandTracking3DRenderedHandFrame, HandTracking3DSettings } from '../../handTracking3d';
|
|
1
|
+
import { HandTracking3DRenderedHandFrame, HandTracking3DSettings } from '../../hand/handTracking3d';
|
|
2
2
|
export type HandTracking3DProps = {
|
|
3
3
|
settings?: HandTracking3DSettings;
|
|
4
4
|
onHandsChange?: (hands: HandTracking3DRenderedHandFrame[]) => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Transform3DSettings } from '../Transform3D';
|
|
2
|
+
export type LightType = "ambient" | "directional" | "point" | "spot";
|
|
3
|
+
export type LightSettings = {
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
type: LightType;
|
|
6
|
+
color: string;
|
|
7
|
+
intensity: number;
|
|
8
|
+
castShadow: boolean;
|
|
9
|
+
distance: number;
|
|
10
|
+
angle: number;
|
|
11
|
+
penumbra: number;
|
|
12
|
+
decay: number;
|
|
13
|
+
showHelper: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare const DEFAULT_LIGHT_SETTINGS: LightSettings;
|
|
16
|
+
export type LightObjectProps = {
|
|
17
|
+
settings: LightSettings;
|
|
18
|
+
transform: Transform3DSettings;
|
|
19
|
+
};
|
|
20
|
+
export declare const LightObject: ({ settings, transform }: LightObjectProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Object3D } from 'three';
|
|
2
|
+
export type LookAtSettings = {
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
targetObjectId: string | null;
|
|
5
|
+
mode: "point" | "direction";
|
|
6
|
+
inheritChildren: boolean;
|
|
7
|
+
offsetRotation: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
z: number;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export type LookAtProps = {
|
|
14
|
+
target: Object3D | null;
|
|
15
|
+
settings: LookAtSettings;
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
};
|
|
18
|
+
export declare const applyLookAt: ({ source, target, settings, }: {
|
|
19
|
+
source: Object3D;
|
|
20
|
+
target: Object3D | null;
|
|
21
|
+
settings: LookAtSettings;
|
|
22
|
+
}) => boolean;
|
|
23
|
+
export declare const LookAt: ({ target, settings, children }: LookAtProps) => import("react/jsx-runtime").JSX.Element;
|