@vincentt-xr/sdk 2.0.0-alpha.0 → 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.
Files changed (362) hide show
  1. package/GROUNDING.md +1813 -27
  2. package/dist/{DebuggerUI-CEfdddkZ.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-Dgop6Q6o.js → DebuggerUI-Cq28c18s.js} +1 -1
  4. package/dist/FaceMeshRenderer-6t8OsQhK.js +1195 -0
  5. package/dist/FaceMeshRenderer-lQLhYIW-.cjs +155 -0
  6. package/dist/FaceRetouch-CDrL0pXg.js +551 -0
  7. package/dist/FaceRetouch-DtNl8-4e.cjs +134 -0
  8. package/dist/audio/AudioEngine.d.ts +3 -1
  9. package/dist/audio/AudioPlayer.d.ts +29 -0
  10. package/dist/audio/AudioPlayerLogic.d.ts +4 -0
  11. package/dist/audio/index.d.ts +2 -0
  12. package/dist/components/Axes/index.d.ts +6 -0
  13. package/dist/components/FaceMesh/FaceMeshRenderer.d.ts +17 -0
  14. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +22 -1
  15. package/dist/components/FaceMesh/canonical/FaceMeshMaterial.d.ts +25 -0
  16. package/dist/components/FaceMesh/canonical/assets.d.ts +3 -0
  17. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +9 -0
  18. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +2 -0
  19. package/dist/components/FaceMesh/canonical/shaders.d.ts +2 -0
  20. package/dist/components/FaceMesh/deform.d.ts +3 -0
  21. package/dist/components/FaceMesh/index.d.ts +5 -0
  22. package/dist/components/FaceMesh/material/defaults.d.ts +74 -0
  23. package/dist/components/FaceMesh/material/index.d.ts +1 -0
  24. package/dist/components/FaceMesh/material/options.d.ts +5 -1
  25. package/dist/components/FaceMesh/material/support.d.ts +7 -2
  26. package/dist/components/FaceMesh/material/textures.d.ts +4 -0
  27. package/dist/components/FaceMesh/material/types.d.ts +4 -2
  28. package/dist/components/FaceRetouch/Background.d.ts +9 -5
  29. package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
  30. package/dist/components/FaceRetouch/index.d.ts +2 -6
  31. package/dist/components/FaceRetouch/landmarkMask.d.ts +4 -6
  32. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +4 -7
  33. package/dist/components/FaceTracker/index.d.ts +5 -3
  34. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +15 -0
  35. package/dist/components/FaceWarp3D/defaults.d.ts +37 -0
  36. package/dist/components/FaceWarp3D/index.d.ts +3 -0
  37. package/dist/components/FaceWarp3D/warp.d.ts +13 -0
  38. package/dist/components/HandJoints2D/index.d.ts +6 -0
  39. package/dist/components/HandTracker/index.d.ts +2 -2
  40. package/dist/components/HandTracking2D/HandVisual.d.ts +12 -0
  41. package/dist/components/HandTracking2D/index.d.ts +5 -0
  42. package/dist/components/HandTracking2DController/index.d.ts +5 -0
  43. package/dist/components/HandTracking3D/index.d.ts +6 -0
  44. package/dist/components/LightObject/index.d.ts +20 -0
  45. package/dist/components/LookAt/index.d.ts +23 -0
  46. package/dist/components/MeshRenderer/index.d.ts +58 -0
  47. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  48. package/dist/components/PinToMesh/index.d.ts +47 -0
  49. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  50. package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
  51. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  52. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  53. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  54. package/dist/components/Screen2D/index.d.ts +5 -0
  55. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  56. package/dist/components/ScreenGlass/index.d.ts +5 -0
  57. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  58. package/dist/components/ScreenGlass/types.d.ts +10 -0
  59. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  60. package/dist/components/ScreenGradient/index.d.ts +5 -0
  61. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  62. package/dist/components/ScreenGradient/types.d.ts +19 -0
  63. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  64. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  65. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  66. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  67. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  68. package/dist/components/ScreenImage/fit.d.ts +52 -0
  69. package/dist/components/ScreenImage/index.d.ts +8 -0
  70. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  71. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  72. package/dist/components/ScreenImage/source.d.ts +16 -0
  73. package/dist/components/ScreenImage/types.d.ts +37 -0
  74. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  75. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  76. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  77. package/dist/components/ScreenShape/index.d.ts +5 -0
  78. package/dist/components/ScreenShape/types.d.ts +41 -0
  79. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  80. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  81. package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
  82. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  83. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  84. package/dist/components/ScreenText/constants.d.ts +5 -0
  85. package/dist/components/ScreenText/index.d.ts +6 -0
  86. package/dist/components/ScreenText/types.d.ts +31 -0
  87. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  88. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  89. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  90. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  91. package/dist/components/TextLabel/alignment.d.ts +4 -0
  92. package/dist/components/TextLabel/bend.d.ts +9 -0
  93. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  94. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  95. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  96. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  97. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  98. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  99. package/dist/components/TextLabel/constants.d.ts +2 -0
  100. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  101. package/dist/components/TextLabel/index.d.ts +2 -62
  102. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  103. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  104. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  105. package/dist/components/TextLabel/types.d.ts +227 -0
  106. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  107. package/dist/components/Transform3D/index.d.ts +30 -0
  108. package/dist/components/XRMediaSurface/index.d.ts +6 -6
  109. package/dist/components/XRScene/index.d.ts +14 -3
  110. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  111. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  112. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  113. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  114. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  115. package/dist/components/XRViewport/constants.d.ts +24 -0
  116. package/dist/components/XRViewport/contexts.d.ts +6 -0
  117. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  118. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  119. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  120. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  121. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  122. package/dist/components/XRViewport/index.d.ts +3 -101
  123. package/dist/components/XRViewport/layout.d.ts +16 -0
  124. package/dist/components/XRViewport/slots.d.ts +16 -0
  125. package/dist/components/XRViewport/types.d.ts +89 -0
  126. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  127. package/dist/components/index.d.ts +19 -0
  128. package/dist/contexts-BKvTIayr.cjs +1 -0
  129. package/dist/contexts-Bk5zz_VR.js +214 -0
  130. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  131. package/dist/debug-ui/default-setting/index.d.ts +37 -0
  132. package/dist/debug-ui/default-setting.cjs +21 -0
  133. package/dist/debug-ui/default-setting.js +777 -0
  134. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  135. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  136. package/dist/debug-ui/face-warp-3d/index.d.ts +6 -0
  137. package/dist/debug-ui/hand-joints-2d/index.d.ts +6 -0
  138. package/dist/debug-ui/hand-tracking-2d/index.d.ts +6 -0
  139. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +6 -0
  140. package/dist/debug-ui/hand-tracking-3d/index.d.ts +6 -0
  141. package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
  142. package/dist/debug-ui/index.d.ts +46 -0
  143. package/dist/debug-ui/layer-panel/index.d.ts +18 -0
  144. package/dist/debug-ui/media-source/MediaSourceSwitcher.d.ts +10 -0
  145. package/dist/debug-ui/media-source/index.d.ts +6 -0
  146. package/dist/debug-ui/media-source/media-preset.d.ts +9 -0
  147. package/dist/debug-ui/media-source/session.d.ts +12 -0
  148. package/dist/debug-ui/media-source.cjs +1 -0
  149. package/dist/debug-ui/media-source.js +9 -0
  150. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  151. package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
  152. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  153. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  154. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
  155. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  156. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
  157. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  158. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  159. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  160. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  161. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  162. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  163. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  164. package/dist/debug-ui/screen-image-settings/index.d.ts +9 -0
  165. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  166. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  167. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  168. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  169. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  170. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  171. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -0
  172. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  173. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  174. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  175. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  176. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  177. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  178. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  179. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  180. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  181. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  182. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  183. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  184. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  185. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  186. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  187. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  188. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  189. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  190. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  191. package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
  192. package/dist/debug-ui/settings-panel/index.d.ts +38 -0
  193. package/dist/debug-ui/shared/MaterialSection.d.ts +13 -0
  194. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +32 -0
  195. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  196. package/dist/debug-ui.cjs +10 -0
  197. package/dist/debug-ui.js +8861 -0
  198. package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
  199. package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
  200. package/dist/entries/all.d.ts +1 -0
  201. package/dist/entries/core.d.ts +55 -4
  202. package/dist/entries/face-effects.d.ts +12 -8
  203. package/dist/entries/internal.d.ts +1 -1
  204. package/dist/entries/low-level.d.ts +21 -4
  205. package/dist/entries/scene-object.d.ts +10 -0
  206. package/dist/entries/tracking.d.ts +25 -2
  207. package/dist/face-action/index.d.ts +34 -0
  208. package/dist/face-attribute-expression/index.d.ts +10 -0
  209. package/dist/face-effects.cjs +1 -252
  210. package/dist/face-effects.js +1404 -2613
  211. package/dist/face-info/blendshapes.d.ts +3 -0
  212. package/dist/face-info/derive.d.ts +8 -0
  213. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  214. package/dist/face-info/getFaceInfo.d.ts +8 -0
  215. package/dist/face-info/index.d.ts +8 -0
  216. package/dist/face-info/landmarks.d.ts +21 -0
  217. package/dist/face-info/types.d.ts +52 -0
  218. package/dist/getFaceInfo-CyPAKh3h.cjs +1 -0
  219. package/dist/getFaceInfo-hUKMLFcr.js +118 -0
  220. package/dist/hand/handJoints2d.d.ts +49 -0
  221. package/dist/hand/handTracking2d.d.ts +33 -0
  222. package/dist/hand/handTracking2dController.d.ts +65 -0
  223. package/dist/hand/handTracking3d.d.ts +52 -0
  224. package/dist/hooks/faceResults.d.ts +1 -1
  225. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  226. package/dist/hooks/useFaceAction.d.ts +3 -0
  227. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  228. package/dist/hooks/useFaceDetection.d.ts +18 -0
  229. package/dist/hooks/useFaceInfo.d.ts +7 -0
  230. package/dist/hooks/useFaceInfos.d.ts +15 -0
  231. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  232. package/dist/hooks/useFrameCapture.d.ts +18 -0
  233. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  234. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  235. package/dist/hooks/useTrackerContext.d.ts +2 -2
  236. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  237. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  238. package/dist/index-82aENaRq.cjs +1 -0
  239. package/dist/{index-BD-JWMjE.js → index-BgQAX8rs.js} +198 -134
  240. package/dist/index-CEc1CAmB.cjs +1 -0
  241. package/dist/index-CTHeBQOs.js +178 -0
  242. package/dist/index-D4bLzBr6.cjs +1 -0
  243. package/dist/index-DSpzjuqd.cjs +1 -0
  244. package/dist/index-Di70KWuY.js +2049 -0
  245. package/dist/index-DzEzkBIH.cjs +17 -0
  246. package/dist/{index-CYMj26Ej.js → index-JygePOwo.js} +565 -498
  247. package/dist/index-UC0Ux38E.js +111 -0
  248. package/dist/{internal-KOKJDxCG.js → internal-DuMPpcbp.js} +86 -80
  249. package/dist/internal-i2JkM85N.cjs +1 -0
  250. package/dist/internal.cjs +1 -1
  251. package/dist/internal.js +2 -2
  252. package/dist/low-level.cjs +1 -1
  253. package/dist/low-level.js +959 -632
  254. package/dist/main.cjs +1 -1
  255. package/dist/main.js +556 -455
  256. package/dist/material/MaterialFill.d.ts +20 -0
  257. package/dist/material/MeshMaterial.d.ts +14 -0
  258. package/dist/material/index.d.ts +2 -0
  259. package/dist/models/Body/index.d.ts +1 -1
  260. package/dist/models/Face/index.d.ts +1 -0
  261. package/dist/models/Face/rotation.d.ts +3 -0
  262. package/dist/models/Hand/HandTracking.d.ts +2 -0
  263. package/dist/render/layerStack.d.ts +29 -0
  264. package/dist/render/renderGroups.d.ts +47 -0
  265. package/dist/render/renderPasses.d.ts +18 -0
  266. package/dist/renderGroups-C9QJrAXu.js +152 -0
  267. package/dist/renderGroups-Dvm1J4lW.cjs +1 -0
  268. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  269. package/dist/renderLayers-zrK2pv5O.js +13 -0
  270. package/dist/renderPasses-CT5iBwtg.cjs +21 -0
  271. package/dist/renderPasses-CjgG_6kQ.js +1500 -0
  272. package/dist/scene-object/index.d.ts +146 -0
  273. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  274. package/dist/scene-object.cjs +1 -0
  275. package/dist/scene-object.js +40 -0
  276. package/dist/screen-image/screenImagePresets.d.ts +13 -0
  277. package/dist/screen-image/screenImageSettings.d.ts +57 -0
  278. package/dist/screen-text/screenTextPresets.d.ts +6 -0
  279. package/dist/screen-text/screenTextSettings.d.ts +147 -0
  280. package/dist/screen2d/coordinates.d.ts +87 -0
  281. package/dist/screen2d/index.d.ts +7 -0
  282. package/dist/screen2d/material-runtime.d.ts +32 -0
  283. package/dist/screen2d/screenTransform.d.ts +47 -0
  284. package/dist/screen2d/smoothing.d.ts +5 -0
  285. package/dist/screen2d/texture.d.ts +10 -0
  286. package/dist/screen2d/transform.d.ts +25 -0
  287. package/dist/screen2d/types.d.ts +90 -0
  288. package/dist/{selectors-Bub0o3qy.cjs → selectors-2QvO5RYY.cjs} +1 -1
  289. package/dist/{selectors-BHO6TnoC.js → selectors-Dw3C-gSk.js} +5 -5
  290. package/dist/services/MetricsCollector/index.d.ts +7 -1
  291. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  292. package/dist/session-BChR4TgK.cjs +31 -0
  293. package/dist/session-C1StwN0f.js +363 -0
  294. package/dist/texture/animatedTexture.d.ts +61 -0
  295. package/dist/texture/animationMath.d.ts +8 -0
  296. package/dist/texture/sourceResolver.d.ts +30 -0
  297. package/dist/tracking.cjs +1 -1
  298. package/dist/tracking.js +582 -298
  299. package/dist/types/face.d.ts +1 -13
  300. package/dist/types/hand-tracking.d.ts +8 -0
  301. package/dist/types/index.d.ts +0 -1
  302. package/dist/types/nodes.d.ts +4 -1
  303. package/dist/types/session.d.ts +2 -0
  304. package/dist/types/tracking.d.ts +8 -2
  305. package/dist/types/util-types.d.ts +1 -1
  306. package/dist/useFaceInfo-C-WfMlYp.cjs +1 -0
  307. package/dist/useFaceInfo-CwsHZedC.js +62 -0
  308. package/dist/useFaceResults-CkFc1egZ.js +19 -0
  309. package/dist/useFaceResults-VcFdOUFV.cjs +1 -0
  310. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  311. package/dist/utils/integrity.d.ts +4 -25
  312. package/dist/utils/landmarkBounds.d.ts +1 -1
  313. package/dist/utils/logger.d.ts +2 -2
  314. package/dist/x-Co8jPhP0.js +127 -0
  315. package/dist/x-KC8E4Gaj.cjs +41 -0
  316. package/docs/MIGRATION_GUIDE.md +589 -0
  317. package/docs/SDK_DOCUMENTATION.md +1155 -0
  318. package/docs/api/audio.mdx +36 -0
  319. package/docs/api/behavior-components.mdx +164 -0
  320. package/docs/api/capture-recording.mdx +103 -0
  321. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  322. package/docs/api/face-actions.mdx +104 -0
  323. package/docs/api/face-attribute-expression.mdx +87 -0
  324. package/docs/api/face-binding-anchors.mdx +53 -0
  325. package/docs/api/face-effects.mdx +19 -0
  326. package/docs/api/face-info.mdx +112 -0
  327. package/docs/api/face-mesh.mdx +98 -0
  328. package/docs/api/face-painting.mdx +33 -0
  329. package/docs/api/face-retouching.mdx +73 -0
  330. package/docs/api/material-render-state.mdx +132 -0
  331. package/docs/api/runtime-3d.mdx +311 -0
  332. package/docs/api/scene-object-store.mdx +213 -0
  333. package/docs/api/screen-image.mdx +41 -0
  334. package/docs/api/screen-shape.mdx +64 -0
  335. package/docs/api/screen-space-coordinates.mdx +41 -0
  336. package/docs/api/screen-text.mdx +39 -0
  337. package/docs/api/texture-sources.mdx +55 -0
  338. package/docs/api/trackers.mdx +46 -0
  339. package/docs/docs.json +70 -0
  340. package/docs/examples/scene-object-recipes.mdx +194 -0
  341. package/docs/guides/harness-debug-ui.mdx +139 -0
  342. package/docs/inspector/hierarchy-panel.mdx +51 -0
  343. package/docs/inspector/object-inspector-panel.mdx +51 -0
  344. package/docs/introduction.mdx +121 -0
  345. package/docs/scene-objects/overview.mdx +127 -0
  346. package/docs/scene-objects/render-groups.mdx +77 -0
  347. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  348. package/docs/texture-api-consumer.md +58 -0
  349. package/package.json +55 -7
  350. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  351. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  352. package/dist/index-B5J4gzn2.cjs +0 -1
  353. package/dist/index-BVBVg96G.cjs +0 -1
  354. package/dist/index-DtwHElmG.js +0 -157
  355. package/dist/index-PtFmD6B8.cjs +0 -1
  356. package/dist/internal-DH5d1Xnq.cjs +0 -1
  357. package/dist/modules/XRClient/index.d.ts +0 -9
  358. package/dist/modules/index.d.ts +0 -1
  359. package/dist/services/ApiService.d.ts +0 -12
  360. package/dist/types/client.d.ts +0 -3
  361. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  362. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
package/dist/tracking.js CHANGED
@@ -1,12 +1,144 @@
1
- import { u as pr } from "./useFaceResults-cpsSmKKc.js";
2
- import { u as g, T as z, a as K } from "./index-BD-JWMjE.js";
3
- import { b as yr, F as mr } from "./index-BD-JWMjE.js";
4
- import { jsx as E, Fragment as G } from "react/jsx-runtime";
5
- import { useThree as N, useFrame as v } from "@react-three/fiber";
6
- import { useRef as T, useCallback as C, useMemo as k, useEffect as x } from "react";
7
- import * as R from "three";
8
- import { X as S, R as w } from "./index-CYMj26Ej.js";
9
- const L = {
1
+ import { u as N, T as O } from "./index-BgQAX8rs.js";
2
+ import { d as Ve, c as We, b as qe } from "./index-BgQAX8rs.js";
3
+ import { jsx as A, Fragment as J } from "react/jsx-runtime";
4
+ import { useThree as C, useFrame as b } from "@react-three/fiber";
5
+ import { useRef as R, useMemo as _, useCallback as I, useEffect as L, useState as P } from "react";
6
+ import * as U from "three";
7
+ import { X as F, u as Q, f as ee } from "./index-JygePOwo.js";
8
+ import { R as z } from "./renderLayers-zrK2pv5O.js";
9
+ import { B as $e, D as Ze, F as Je, H as Qe, T as et, g as tt } from "./index-UC0Ux38E.js";
10
+ import { u as rt } from "./useFaceResults-CkFc1egZ.js";
11
+ import { u as te } from "./useFaceInfo-CwsHZedC.js";
12
+ import { a as st } from "./useFaceInfo-CwsHZedC.js";
13
+ import { a as S } from "./getFaceInfo-hUKMLFcr.js";
14
+ import { D as it, b as ct, h as at } from "./getFaceInfo-hUKMLFcr.js";
15
+ import { d as ne } from "./drawNormalizedCrop-CRdIDyl1.js";
16
+ const re = {
17
+ "hand.wrist": 0,
18
+ "hand.thumbTip": 4,
19
+ "hand.indexTip": 8,
20
+ "hand.middleTip": 12,
21
+ "hand.ringTip": 16,
22
+ "hand.pinkyTip": 20,
23
+ "hand.indexBase": 5,
24
+ "hand.middleBase": 9,
25
+ "hand.ringBase": 13,
26
+ "hand.pinkyBase": 17
27
+ };
28
+ function oe(e, t, r = 0) {
29
+ var o;
30
+ const n = (o = e == null ? void 0 : e.hands) != null && o.length ? e.hands : e != null && e.coordinates ? [
31
+ {
32
+ coordinates: e.coordinates,
33
+ gesture: e.gesture,
34
+ handedness: e.handedness
35
+ }
36
+ ] : [];
37
+ if (n.length) {
38
+ if (t) {
39
+ const u = n.find((i) => i.handedness === t);
40
+ if (u) return u;
41
+ }
42
+ return n[r] ?? n[0];
43
+ }
44
+ }
45
+ const Ne = ({
46
+ children: e,
47
+ hand: t,
48
+ handIndex: r = 0,
49
+ targetFps: n,
50
+ active: o = !0
51
+ }) => {
52
+ const u = R(null), i = _(
53
+ () => n === void 0 ? void 0 : { targetFps: n },
54
+ [n]
55
+ ), { ready: a, node: y } = N(
56
+ F.HAND_TRACKER,
57
+ i,
58
+ o
59
+ ), { camera: s } = C(), c = R(s);
60
+ c.current !== s && (c.current = s);
61
+ const l = R(null);
62
+ b(() => {
63
+ var m;
64
+ if (!a || !y || !u.current) return;
65
+ const g = oe(y, t, r);
66
+ l.current = g ?? null;
67
+ const d = (m = g == null ? void 0 : g.coordinates) == null ? void 0 : m[0];
68
+ if (!d) {
69
+ u.current.visible = !1;
70
+ return;
71
+ }
72
+ const p = K(d, c.current);
73
+ u.current.visible = !0, u.current.position.copy(p);
74
+ });
75
+ const f = I((g) => {
76
+ var m, E;
77
+ const d = re[g];
78
+ if (d === void 0) return null;
79
+ const p = (E = (m = l.current) == null ? void 0 : m.coordinates) == null ? void 0 : E[d];
80
+ return p ? { position: K(p, c.current) } : null;
81
+ }, []), h = _(
82
+ () => ({ type: "hand", resolveLandmark: f }),
83
+ [f]
84
+ );
85
+ return /* @__PURE__ */ A(O.Provider, { value: h, children: /* @__PURE__ */ A("group", { ref: u, renderOrder: z.TRACKED, children: e }) });
86
+ }, K = (e, t) => {
87
+ const r = new U.Vector3(e.x, e.y, e.z);
88
+ r.unproject(t);
89
+ const n = r.sub(t.position).normalize(), o = -t.position.z / n.z;
90
+ return t.position.clone().add(n.multiplyScalar(o));
91
+ }, se = {
92
+ "hand.wrist": 0,
93
+ "hand.thumbTip": 4,
94
+ "hand.indexTip": 8,
95
+ "hand.middleTip": 12,
96
+ "hand.ringTip": 16,
97
+ "hand.pinkyTip": 20,
98
+ "hand.indexBase": 5,
99
+ "hand.middleBase": 9,
100
+ "hand.ringBase": 13,
101
+ "hand.pinkyBase": 17
102
+ }, Fe = ({ children: e, targetFps: t, active: r = !0 }) => {
103
+ const n = R(null), o = _(
104
+ () => t === void 0 ? void 0 : { targetFps: t },
105
+ [t]
106
+ ), { ready: u, node: i } = N(
107
+ F.GESTURE_TRACKER,
108
+ o,
109
+ r
110
+ ), { camera: a } = C(), y = R(a);
111
+ y.current !== a && (y.current = a);
112
+ const s = R(null);
113
+ b(() => {
114
+ var g;
115
+ if (!u || !i || !n.current) return;
116
+ s.current = i;
117
+ const f = (g = i == null ? void 0 : i.coordinates) == null ? void 0 : g[0];
118
+ if (!f) {
119
+ n.current.visible = !1;
120
+ return;
121
+ }
122
+ const h = G(f, y.current);
123
+ n.current.visible = !0, n.current.position.copy(h);
124
+ });
125
+ const c = I((f) => {
126
+ var d, p;
127
+ const h = se[f];
128
+ if (h === void 0) return null;
129
+ const g = (p = (d = s.current) == null ? void 0 : d.coordinates) == null ? void 0 : p[h];
130
+ return g ? { position: G(g, y.current) } : null;
131
+ }, []), l = _(
132
+ () => ({ type: "hand", resolveLandmark: c }),
133
+ [c]
134
+ );
135
+ return /* @__PURE__ */ A(O.Provider, { value: l, children: /* @__PURE__ */ A("group", { ref: n, renderOrder: z.TRACKED, children: e }) });
136
+ }, G = (e, t) => {
137
+ const r = new U.Vector3(e.x, e.y, e.z);
138
+ r.unproject(t);
139
+ const n = r.sub(t.position).normalize(), o = -t.position.z / n.z;
140
+ return t.position.clone().add(n.multiplyScalar(o));
141
+ }, ue = {
10
142
  "body.head": 0,
11
143
  "body.leftShoulder": 11,
12
144
  "body.rightShoulder": 12,
@@ -20,325 +152,477 @@ const L = {
20
152
  "body.rightKnee": 26,
21
153
  "body.leftAnkle": 27,
22
154
  "body.rightAnkle": 28
23
- }, er = ({ bodyIndex: r = 0, active: n = !0, children: t }) => {
24
- const e = T(null), { ready: o, node: a } = g(
25
- S.BODY_TRACKER,
155
+ }, Me = ({ bodyIndex: e = 0, active: t = !0, children: r }) => {
156
+ const n = R(null), { ready: o, node: u } = N(
157
+ F.BODY_TRACKER,
26
158
  void 0,
27
- n
28
- ), { camera: s } = N(), d = T(s);
29
- d.current !== s && (d.current = s);
30
- const i = T(null);
31
- v(() => {
32
- if (!o || !a || !e.current) return;
33
- const f = a;
34
- i.current = f;
35
- const c = f.getLandmarks2D(r), u = c == null ? void 0 : c[0];
36
- if (!u) {
37
- e.current.visible = !1;
159
+ t
160
+ ), { camera: i } = C(), a = R(i);
161
+ a.current !== i && (a.current = i);
162
+ const y = R(null);
163
+ b(() => {
164
+ if (!o || !u || !n.current) return;
165
+ const l = u;
166
+ y.current = l;
167
+ const f = l.getLandmarks2D(e), h = f == null ? void 0 : f[0];
168
+ if (!h) {
169
+ n.current.visible = !1;
38
170
  return;
39
171
  }
40
- const p = D(u, d.current);
41
- e.current.visible = !0, e.current.position.copy(p);
172
+ const g = B(h, a.current);
173
+ n.current.visible = !0, n.current.position.copy(g);
42
174
  });
43
- const l = C(
44
- (f) => {
45
- const c = i.current;
46
- if (!c) return null;
47
- const u = c.getLandmarks2D(r);
48
- if (!u) return null;
49
- if (f === "body.neck") {
50
- const h = u[11], b = u[12];
51
- if (!h || !b) return null;
52
- const A = {
53
- x: (h.x + b.x) / 2,
54
- y: (h.y + b.y) / 2,
55
- z: (h.z + b.z) / 2
175
+ const s = I(
176
+ (l) => {
177
+ const f = y.current;
178
+ if (!f) return null;
179
+ const h = f.getLandmarks2D(e);
180
+ if (!h) return null;
181
+ if (l === "body.neck") {
182
+ const p = h[11], m = h[12];
183
+ if (!p || !m) return null;
184
+ const E = {
185
+ x: (p.x + m.x) / 2,
186
+ y: (p.y + m.y) / 2,
187
+ z: (p.z + m.z) / 2
56
188
  };
57
- return { position: D(A, d.current) };
189
+ return { position: B(E, a.current) };
58
190
  }
59
- const p = L[f];
60
- if (p === void 0) return null;
61
- const m = u[p];
62
- return m ? { position: D(m, d.current) } : null;
191
+ const g = ue[l];
192
+ if (g === void 0) return null;
193
+ const d = h[g];
194
+ return d ? { position: B(d, a.current) } : null;
63
195
  },
64
- [r]
65
- ), y = k(
66
- () => ({ type: "body", resolveLandmark: l }),
67
- [l]
196
+ [e]
197
+ ), c = _(
198
+ () => ({ type: "body", resolveLandmark: s }),
199
+ [s]
68
200
  );
69
- return /* @__PURE__ */ E(z.Provider, { value: y, children: /* @__PURE__ */ E("group", { ref: e, renderOrder: w.TRACKED, children: t }) });
70
- }, D = (r, n) => {
71
- const t = new R.Vector3(r.x, r.y, r.z);
72
- t.unproject(n);
73
- const e = t.sub(n.position).normalize(), o = -n.position.z / e.z;
74
- return n.position.clone().add(e.multiplyScalar(o));
75
- }, W = {
76
- "hand.wrist": 0,
77
- "hand.thumbTip": 4,
78
- "hand.indexTip": 8,
79
- "hand.middleTip": 12,
80
- "hand.ringTip": 16,
81
- "hand.pinkyTip": 20,
82
- "hand.indexBase": 5,
83
- "hand.middleBase": 9,
84
- "hand.ringBase": 13,
85
- "hand.pinkyBase": 17
86
- }, tr = ({ children: r, targetFps: n, active: t = !0 }) => {
87
- const e = T(null), o = k(
88
- () => n === void 0 ? void 0 : { targetFps: n },
89
- [n]
90
- ), { ready: a, node: s } = g(
91
- S.GESTURE_TRACKER,
92
- o,
93
- t
94
- ), { camera: d } = N(), i = T(d);
95
- i.current !== d && (i.current = d);
96
- const l = T(null);
97
- v(() => {
98
- var p;
99
- if (!a || !s || !e.current) return;
100
- l.current = s;
101
- const c = (p = s == null ? void 0 : s.coordinates) == null ? void 0 : p[0];
102
- if (!c) {
103
- e.current.visible = !1;
104
- return;
105
- }
106
- const u = _(c, i.current);
107
- e.current.visible = !0, e.current.position.copy(u);
108
- });
109
- const y = C((c) => {
110
- var m, h;
111
- const u = W[c];
112
- if (u === void 0) return null;
113
- const p = (h = (m = l.current) == null ? void 0 : m.coordinates) == null ? void 0 : h[u];
114
- return p ? { position: _(p, i.current) } : null;
115
- }, []), f = k(
116
- () => ({ type: "hand", resolveLandmark: y }),
117
- [y]
201
+ return /* @__PURE__ */ A(O.Provider, { value: c, children: /* @__PURE__ */ A("group", { ref: n, renderOrder: z.TRACKED, children: r }) });
202
+ }, B = (e, t) => {
203
+ const r = new U.Vector3(e.x, e.y, e.z);
204
+ r.unproject(t);
205
+ const n = r.sub(t.position).normalize(), o = -t.position.z / n.z;
206
+ return t.position.clone().add(n.multiplyScalar(o));
207
+ }, X = ["portrait"], Be = ({ type: e, active: t = !0, children: r }) => (N(F.BACKGROUND_SEGMENTATION, { type: e }, t), L(() => {
208
+ X.includes(e) || console.warn(
209
+ `[Segmentation] unsupported type "${e}"; valid values: ${X.join(", ")}`
118
210
  );
119
- return /* @__PURE__ */ E(z.Provider, { value: f, children: /* @__PURE__ */ E("group", { ref: e, renderOrder: w.TRACKED, children: r }) });
120
- }, _ = (r, n) => {
121
- const t = new R.Vector3(r.x, r.y, r.z);
122
- t.unproject(n);
123
- const e = t.sub(n.position).normalize(), o = -n.position.z / e.z;
124
- return n.position.clone().add(e.multiplyScalar(o));
125
- }, P = 800, V = 200, $ = () => ({
211
+ }, [e]), /* @__PURE__ */ A(J, { children: r })), ie = 800, ce = 200, ae = () => ({
126
212
  armed: !1,
127
213
  armStart: null,
128
214
  holdStart: null,
129
215
  fired: !1
130
- }), j = (r, {
131
- isTrigger: n,
132
- gesture: t,
133
- now: e,
216
+ }), le = (e, {
217
+ isTrigger: t,
218
+ gesture: r,
219
+ now: n,
134
220
  mode: o,
135
- debounceMs: a,
136
- holdMs: s
221
+ debounceMs: u,
222
+ holdMs: i
137
223
  }) => {
138
- if (r.fired) return null;
224
+ if (e.fired) return null;
139
225
  if (o === "hold") {
140
- if (n && t) {
141
- if (r.holdStart === null && (r.holdStart = e), e - r.holdStart >= s)
142
- return r.fired = !0, t;
226
+ if (t && r) {
227
+ if (e.holdStart === null && (e.holdStart = n), n - e.holdStart >= i)
228
+ return e.fired = !0, r;
143
229
  } else
144
- r.holdStart = null;
230
+ e.holdStart = null;
145
231
  return null;
146
232
  }
147
- return r.armed ? n && t ? (r.fired = !0, t) : null : (n ? r.armStart = null : (r.armStart === null && (r.armStart = e), e - r.armStart >= a && (r.armed = !0)), null);
233
+ return e.armed ? t && r ? (e.fired = !0, r) : null : (t ? e.armStart = null : (e.armStart === null && (e.armStart = n), n - e.armStart >= u && (e.armed = !0)), null);
148
234
  };
149
- function F({
150
- gestures: r,
151
- mode: n = "arm",
152
- debounceMs: t = P,
153
- holdMs: e = V,
235
+ function de({
236
+ gestures: e,
237
+ mode: t = "arm",
238
+ debounceMs: r = ie,
239
+ holdMs: n = ce,
154
240
  onTrigger: o,
155
- enabled: a = !0
241
+ enabled: u = !0
156
242
  }) {
157
- const { ready: s, node: d } = g(S.GESTURE_TRACKER), i = T(o);
158
- x(() => {
159
- i.current = o;
243
+ const { ready: i, node: a } = N(F.GESTURE_TRACKER), y = R(o);
244
+ L(() => {
245
+ y.current = o;
160
246
  }, [o]);
161
- const l = T(/* @__PURE__ */ new Set());
162
- x(() => {
163
- l.current = new Set(Array.isArray(r) ? r : [r]);
164
- }, [r]);
165
- const y = T($());
166
- v(() => {
167
- if (!a || !s || !d) return;
168
- const f = d.gesture, c = !!(f && l.current.has(f)), u = j(y.current, {
169
- isTrigger: c,
170
- gesture: f,
247
+ const s = R(/* @__PURE__ */ new Set());
248
+ L(() => {
249
+ s.current = new Set(Array.isArray(e) ? e : [e]);
250
+ }, [e]);
251
+ const c = R(ae());
252
+ b(() => {
253
+ if (!u || !i || !a) return;
254
+ const l = a.gesture, f = !!(l && s.current.has(l)), h = le(c.current, {
255
+ isTrigger: f,
256
+ gesture: l,
171
257
  now: performance.now(),
172
- mode: n,
173
- debounceMs: t,
174
- holdMs: e
258
+ mode: t,
259
+ debounceMs: r,
260
+ holdMs: n
175
261
  });
176
- u && i.current(u);
262
+ h && y.current(h);
177
263
  });
178
264
  }
179
- const or = (r) => (F(r), null), q = {
180
- "hand.wrist": 0,
181
- "hand.thumbTip": 4,
182
- "hand.indexTip": 8,
183
- "hand.middleTip": 12,
184
- "hand.ringTip": 16,
185
- "hand.pinkyTip": 20,
186
- "hand.indexBase": 5,
187
- "hand.middleBase": 9,
188
- "hand.ringBase": 13,
189
- "hand.pinkyBase": 17
190
- }, ir = ({ children: r, targetFps: n, active: t = !0 }) => {
191
- const e = T(null), o = k(
192
- () => n === void 0 ? void 0 : { targetFps: n },
193
- [n]
194
- ), { ready: a, node: s } = g(
195
- S.HAND_TRACKER,
196
- o,
197
- t
198
- ), { camera: d } = N(), i = T(d);
199
- i.current !== d && (i.current = d);
200
- const l = T(null);
201
- v(() => {
202
- var m;
203
- if (!a || !s || !e.current) return;
204
- const c = s;
205
- l.current = c;
206
- const u = (m = c == null ? void 0 : c.coordinates) == null ? void 0 : m[0];
207
- if (!u) {
208
- e.current.visible = !1;
209
- return;
265
+ const je = (e) => (de(e), null), he = (e, t) => t && !e ? "begin" : !t && e ? "end" : t ? "stay" : "none", fe = {
266
+ face: null,
267
+ faces: [],
268
+ faceCount: 0,
269
+ detected: !1,
270
+ justDetected: !1,
271
+ justLost: !1,
272
+ phase: "none"
273
+ }, Oe = ({
274
+ faceIndex: e = 0,
275
+ numFaces: t,
276
+ ...r
277
+ } = {}) => {
278
+ const n = Number.isFinite(e) ? Math.max(0, Math.round(e)) : 0, o = te({
279
+ ...r,
280
+ numFaces: Math.max(t ?? n + 1, n + 1)
281
+ }), u = R([]), i = R(n), a = R({ detected: !1, faceIndex: n }), [y, s] = P(fe), c = R(y);
282
+ return L(() => {
283
+ u.current = o, i.current = n;
284
+ }, [o, n]), b(() => {
285
+ const l = u.current, f = i.current, h = l[f] ?? null, g = !!h, d = a.current.faceIndex === f && a.current.detected, p = he(d, g);
286
+ a.current = { detected: g, faceIndex: f };
287
+ const m = {
288
+ face: h,
289
+ faces: l,
290
+ faceCount: l.length,
291
+ detected: g,
292
+ justDetected: p === "begin",
293
+ justLost: p === "end",
294
+ phase: p
295
+ }, E = c.current;
296
+ E.face === m.face && E.faces === m.faces && E.faceCount === m.faceCount && E.detected === m.detected && E.justDetected === m.justDetected && E.justLost === m.justLost && E.phase === m.phase || (c.current = m, s(m));
297
+ }), y;
298
+ }, Ce = [
299
+ "_neutral",
300
+ "browDownLeft",
301
+ "browDownRight",
302
+ "browInnerUp",
303
+ "browOuterUpLeft",
304
+ "browOuterUpRight",
305
+ "cheekPuff",
306
+ "cheekSquintLeft",
307
+ "cheekSquintRight",
308
+ "eyeBlinkLeft",
309
+ "eyeBlinkRight",
310
+ "eyeLookDownLeft",
311
+ "eyeLookDownRight",
312
+ "eyeLookInLeft",
313
+ "eyeLookInRight",
314
+ "eyeLookOutLeft",
315
+ "eyeLookOutRight",
316
+ "eyeLookUpLeft",
317
+ "eyeLookUpRight",
318
+ "eyeSquintLeft",
319
+ "eyeSquintRight",
320
+ "eyeWideLeft",
321
+ "eyeWideRight",
322
+ "jawForward",
323
+ "jawLeft",
324
+ "jawOpen",
325
+ "jawRight",
326
+ "mouthClose",
327
+ "mouthDimpleLeft",
328
+ "mouthDimpleRight",
329
+ "mouthFrownLeft",
330
+ "mouthFrownRight",
331
+ "mouthFunnel",
332
+ "mouthLeft",
333
+ "mouthLowerDownLeft",
334
+ "mouthLowerDownRight",
335
+ "mouthPressLeft",
336
+ "mouthPressRight",
337
+ "mouthPucker",
338
+ "mouthRight",
339
+ "mouthRollLower",
340
+ "mouthRollUpper",
341
+ "mouthShrugLower",
342
+ "mouthShrugUpper",
343
+ "mouthSmileLeft",
344
+ "mouthSmileRight",
345
+ "mouthStretchLeft",
346
+ "mouthStretchRight",
347
+ "mouthUpperUpLeft",
348
+ "mouthUpperUpRight",
349
+ "noseSneerLeft",
350
+ "noseSneerRight"
351
+ ], pe = ({
352
+ source: e,
353
+ face: t,
354
+ canvas: r,
355
+ outputSize: n,
356
+ padding: o = 0.2
357
+ }) => ne({ source: e, bounds: t.bounds, canvas: r, outputSize: n, padding: o }), Ie = [
358
+ "browRaise",
359
+ "eyeBlink",
360
+ "eyeBlinkLeft",
361
+ "eyeBlinkRight",
362
+ "eyeBlinkEither",
363
+ "headUp",
364
+ "headDown",
365
+ "headTurnLeft",
366
+ "headTurnRight",
367
+ "mouthOpen",
368
+ "mouthPout",
369
+ "headTiltLeft",
370
+ "headTiltRight"
371
+ ], T = (e = 0.5) => ({
372
+ threshold: e,
373
+ releaseThreshold: Math.max(0, e - 0.15),
374
+ holdMs: 50
375
+ }), w = {
376
+ threshold: Math.PI / 18,
377
+ releaseThreshold: Math.PI / 30,
378
+ holdMs: 80
379
+ }, me = {
380
+ browRaise: T(0.45),
381
+ eyeBlink: T(0.55),
382
+ eyeBlinkLeft: T(0.55),
383
+ eyeBlinkRight: T(0.55),
384
+ eyeBlinkEither: T(0.55),
385
+ headUp: w,
386
+ headDown: w,
387
+ headTurnLeft: w,
388
+ headTurnRight: w,
389
+ mouthOpen: T(0.45),
390
+ mouthPout: T(0.5),
391
+ headTiltLeft: w,
392
+ headTiltRight: w
393
+ }, x = (e) => Math.max(0, e), k = (e, t) => e !== void 0 && Number.isFinite(e) ? e : t, q = (e, t = {}) => {
394
+ const r = me[e], n = Math.max(0, k(t.threshold, r.threshold));
395
+ return {
396
+ threshold: n,
397
+ releaseThreshold: Math.min(
398
+ n,
399
+ Math.max(0, k(t.releaseThreshold, r.releaseThreshold))
400
+ ),
401
+ holdMs: Math.max(0, k(t.holdMs, r.holdMs))
402
+ };
403
+ }, H = (e, t, { neutralRotation: r = { x: 0, y: 0, z: 0 } } = {}) => {
404
+ const n = k(r.x, 0), o = k(r.y, 0), u = k(r.z, 0);
405
+ switch (t) {
406
+ case "browRaise":
407
+ return Math.max(
408
+ S(e, "browInnerUp"),
409
+ S(e, "browOuterUpLeft"),
410
+ S(e, "browOuterUpRight")
411
+ );
412
+ case "eyeBlink":
413
+ return Math.min(
414
+ S(e, "eyeBlinkLeft"),
415
+ S(e, "eyeBlinkRight")
416
+ );
417
+ case "eyeBlinkLeft":
418
+ return S(e, "eyeBlinkRight");
419
+ case "eyeBlinkRight":
420
+ return S(e, "eyeBlinkLeft");
421
+ case "eyeBlinkEither":
422
+ return Math.max(
423
+ S(e, "eyeBlinkLeft"),
424
+ S(e, "eyeBlinkRight")
425
+ );
426
+ case "mouthOpen":
427
+ return S(e, "jawOpen");
428
+ case "mouthPout":
429
+ return S(e, "mouthPucker");
430
+ case "headUp":
431
+ return x(e.pose.rotation.x - n);
432
+ case "headDown":
433
+ return x(n - e.pose.rotation.x);
434
+ case "headTurnLeft":
435
+ return x(e.pose.rotation.y - o);
436
+ case "headTurnRight":
437
+ return x(o - e.pose.rotation.y);
438
+ case "headTiltLeft":
439
+ return x(e.pose.rotation.z - u);
440
+ case "headTiltRight":
441
+ return x(u - e.pose.rotation.z);
442
+ }
443
+ }, Pe = (e, t, r = {}) => H(e, t, r) >= q(t, r).threshold, Ue = (e, t, r = {}) => {
444
+ let n = null, o = 0;
445
+ for (const u of e) {
446
+ const i = H(u, t, r);
447
+ (!n || i > o) && (n = u, o = i);
448
+ }
449
+ return { face: n, value: o };
450
+ }, V = (e) => ({
451
+ action: e,
452
+ active: !1,
453
+ value: 0,
454
+ justStarted: !1,
455
+ justEnded: !1,
456
+ phase: "none",
457
+ holdStartedAt: null
458
+ }), Re = (e, t, r, n, o) => {
459
+ const u = e.phase === "begin";
460
+ if (e.value = t, e.justStarted = !1, e.justEnded = !1, e.phase = e.active ? "stay" : "none", !n)
461
+ return e.holdStartedAt = null, e.active && (e.active = !1, e.justEnded = !0, e.phase = "end"), e;
462
+ if (e.active) {
463
+ if (t <= o.releaseThreshold) {
464
+ if (u) return e;
465
+ e.active = !1, e.justEnded = !0, e.phase = "end";
210
466
  }
211
- const p = B(u, i.current);
212
- e.current.visible = !0, e.current.position.copy(p);
213
- });
214
- const y = C((c) => {
215
- var m, h;
216
- const u = q[c];
217
- if (u === void 0) return null;
218
- const p = (h = (m = l.current) == null ? void 0 : m.coordinates) == null ? void 0 : h[u];
219
- return p ? { position: B(p, i.current) } : null;
220
- }, []), f = k(
221
- () => ({ type: "hand", resolveLandmark: y }),
222
- [y]
223
- );
224
- return /* @__PURE__ */ E(z.Provider, { value: f, children: /* @__PURE__ */ E("group", { ref: e, renderOrder: w.TRACKED, children: r }) });
225
- }, B = (r, n) => {
226
- const t = new R.Vector3(r.x, r.y, r.z);
227
- t.unproject(n);
228
- const e = t.sub(n.position).normalize(), o = -n.position.z / e.z;
229
- return n.position.clone().add(e.multiplyScalar(o));
230
- }, H = ["portrait"], cr = ({ type: r, active: n = !0, children: t }) => (g(S.BACKGROUND_SEGMENTATION, { type: r }, n), x(() => {
231
- H.includes(r) || console.warn(
232
- `[Segmentation] unsupported type "${r}"; valid values: ${H.join(", ")}`
233
- );
234
- }, [r]), /* @__PURE__ */ E(G, { children: t })), sr = [
235
- "face.forehead",
236
- "face.noseTip",
237
- "face.chin",
238
- "face.leftEyeOuter",
239
- "face.rightEyeOuter",
240
- "face.leftCheek",
241
- "face.rightCheek",
242
- "face.mouthCenter"
243
- ], ur = [
244
- "hand.wrist",
245
- "hand.thumbTip",
246
- "hand.indexTip",
247
- "hand.middleTip",
248
- "hand.ringTip",
249
- "hand.pinkyTip",
250
- "hand.indexBase",
251
- "hand.middleBase",
252
- "hand.ringBase",
253
- "hand.pinkyBase"
254
- ], ar = [
255
- "body.head",
256
- "body.neck",
257
- "body.leftShoulder",
258
- "body.rightShoulder",
259
- "body.leftElbow",
260
- "body.rightElbow",
261
- "body.leftWrist",
262
- "body.rightWrist",
263
- "body.leftHip",
264
- "body.rightHip",
265
- "body.leftKnee",
266
- "body.rightKnee",
267
- "body.leftAnkle",
268
- "body.rightAnkle"
269
- ], U = (r) => r.startsWith("face.") ? "face" : r.startsWith("hand.") ? "hand" : r.startsWith("body.") ? "body" : null, M = (r, n, t) => n + t * (r - n), O = (r, n) => 1 / (1 + 1 / (2 * Math.PI * r) / n), X = (r, n, t, e, o, a) => {
270
- if (!r.initialized || t <= 0)
271
- return r.pos.copy(n), r.prevRaw.copy(n), r.dxHat.set(0, 0, 0), r.initialized = !0, r;
272
- const s = O(a, t), d = ["x", "y", "z"];
273
- for (const i of d) {
274
- const l = (n[i] - r.prevRaw[i]) / t, y = M(l, r.dxHat[i], s);
275
- r.dxHat[i] = y;
276
- const f = e + o * Math.abs(y), c = O(f, t);
277
- r.pos[i] = M(n[i], r.pos[i], c), r.prevRaw[i] = n[i];
467
+ return e;
278
468
  }
279
- return r;
280
- }, dr = ({
281
- target: r,
282
- offset: n,
283
- smoothing: t = 0,
284
- children: e
285
- }) => {
286
- const o = K(), a = T(null), s = T(!1), d = T(new R.Vector3()), i = T({
287
- pos: new R.Vector3(),
288
- prevRaw: new R.Vector3(),
289
- dxHat: new R.Vector3(),
290
- initialized: !1
291
- }), l = U(r), y = o !== null && l !== null && o.type !== l, f = o === null, c = f || y || l === null;
292
- return x(() => {
293
- f ? console.warn(
294
- `[TrackingAnchor] target "${r}" requires a FaceTracker / HandTracker / BodyTracker ancestor; rendering null.`
295
- ) : y ? console.warn(
296
- `[TrackingAnchor] target "${r}" namespace does not match parent tracker type "${o == null ? void 0 : o.type}"; rendering null.`
297
- ) : l === null && console.warn(
298
- `[TrackingAnchor] target "${r}" is not a recognized face/hand/body landmark; rendering null.`
299
- );
300
- }, [r, l, f, y, o == null ? void 0 : o.type]), v((u, p) => {
301
- if (c || !a.current || !o) return;
302
- const m = o.resolveLandmark(r);
303
- if (!m) {
304
- a.current.visible = !1, s.current = !1, i.current.initialized = !1;
469
+ return t < o.threshold ? (e.holdStartedAt = null, e) : (e.holdStartedAt === null && (e.holdStartedAt = r), r - e.holdStartedAt >= o.holdMs && (e.active = !0, e.justStarted = !0, e.phase = "begin", e.holdStartedAt = null), e);
470
+ }, W = (e) => ({
471
+ action: e,
472
+ active: !1,
473
+ value: 0,
474
+ justStarted: !1,
475
+ justEnded: !1,
476
+ phase: "none"
477
+ }), ze = (e, t, r = {}) => {
478
+ const n = R(V(t)), o = R(null), u = R(t), i = R({}), [a, y] = P(() => W(t)), s = R(a);
479
+ return L(() => {
480
+ o.current = e, i.current = r;
481
+ }, [e, r]), L(() => {
482
+ u.current = t, n.current = V(t);
483
+ const c = W(t);
484
+ s.current = c, y(c);
485
+ }, [t]), b(({ clock: c }) => {
486
+ const l = o.current, f = u.current, h = i.current, g = l ? H(l, f, h) : 0, d = Re(
487
+ n.current,
488
+ g,
489
+ c.elapsedTime * 1e3,
490
+ !!l,
491
+ q(f, h)
492
+ ), p = s.current;
493
+ if (p.action === d.action && p.active === d.active && p.value === d.value && p.justStarted === d.justStarted && p.justEnded === d.justEnded && p.phase === d.phase)
305
494
  return;
306
- }
307
- a.current.visible = !0;
308
- const h = d.current.copy(m.position), b = a.current.parent;
309
- if (b) {
310
- b.updateMatrixWorld();
311
- const A = new R.Matrix4().copy(b.matrixWorld).invert();
312
- h.applyMatrix4(A);
313
- }
314
- if (n && (h.x += n[0], h.y += n[1], h.z += n[2]), t > 0) {
315
- const A = t * 0.1;
316
- X(
317
- i.current,
318
- h,
319
- s.current ? p : 0,
320
- A,
321
- 0.5,
322
- 1
323
- ), a.current.position.copy(i.current.pos);
324
- } else
325
- a.current.position.copy(h);
326
- s.current = !0, m.quaternion && a.current.quaternion.copy(m.quaternion);
327
- }), c ? null : /* @__PURE__ */ E("group", { ref: a, renderOrder: w.TRACKED, children: e });
495
+ const m = {
496
+ action: d.action,
497
+ active: d.active,
498
+ value: d.value,
499
+ justStarted: d.justStarted,
500
+ justEnded: d.justEnded,
501
+ phase: d.phase
502
+ };
503
+ s.current = m, y(m);
504
+ }), a;
505
+ }, He = [
506
+ "angry",
507
+ "disgust",
508
+ "fear",
509
+ "happy",
510
+ "neutral",
511
+ "sad",
512
+ "surprise",
513
+ "unknown"
514
+ ], v = [
515
+ "angry",
516
+ "disgust",
517
+ "fear",
518
+ "happy",
519
+ "neutral",
520
+ "sad",
521
+ "surprise"
522
+ ], ye = (e, t = 0.55) => {
523
+ let r = -1 / 0;
524
+ for (let s = 0; s < v.length; s += 1)
525
+ r = Math.max(r, Number(e[s]) || 0);
526
+ const n = new Array(v.length);
527
+ let o = 0;
528
+ for (let s = 0; s < v.length; s += 1) {
529
+ const c = Math.exp((Number(e[s]) || 0) - r);
530
+ n[s] = c, o += c;
531
+ }
532
+ const u = Object.fromEntries(v.map((s) => [s, 0]));
533
+ let i = "unknown", a = 0;
534
+ for (let s = 0; s < v.length; s += 1) {
535
+ const c = o ? n[s] / o : 0, l = v[s];
536
+ u[l] = c, c > a && (i = l, a = c);
537
+ }
538
+ const y = Number.isFinite(t) ? Math.min(1, Math.max(0, t)) : 0.55;
539
+ return { expression: a >= y ? i : "unknown", confidence: a, scores: u };
540
+ }, ge = (e) => {
541
+ const t = e.width * e.height, r = new Float32Array(t * 3);
542
+ for (let n = 0, o = 0; n < t; n += 1, o += 4)
543
+ r[n] = e.data[o] / 127.5 - 1, r[t + n] = e.data[o + 1] / 127.5 - 1, r[t * 2 + n] = e.data[o + 2] / 127.5 - 1;
544
+ return r;
545
+ }, Ee = "https://huggingface.co/opencv/facial_expression_recognition/resolve/main/facial_expression_recognition_mobilefacenet_2022july_int8.onnx", Se = (e) => `https://cdn.jsdelivr.net/npm/onnxruntime-web@${e.env.versions.web}/dist/`, j = /* @__PURE__ */ new Map(), Te = (e) => {
546
+ let t = j.get(e);
547
+ return t || (t = Promise.all([import("onnxruntime-web/wasm"), ee(e)]).then(([r, n]) => (r.env.wasm.wasmPaths = Se(r), r.InferenceSession.create(n, { executionProviders: ["wasm"] }))).catch((r) => {
548
+ throw j.delete(e), r;
549
+ }), j.set(e, t)), t;
550
+ }, Ke = (e, {
551
+ active: t = !0,
552
+ targetFps: r = 5,
553
+ minConfidence: n = 0.55,
554
+ modelUrl: o = Ee
555
+ } = {}) => {
556
+ const { session: u } = Q(), i = R(null), a = R(null), y = R(!1), s = R(-1 / 0), c = R(!0), [l, f] = P({
557
+ status: "idle",
558
+ result: null,
559
+ error: null
560
+ });
561
+ return L(() => {
562
+ const h = document.createElement("canvas");
563
+ return i.current = h, a.current = h.getContext("2d", { willReadFrequently: !0 }), c.current = !0, () => {
564
+ c.current = !1, i.current = null, a.current = null;
565
+ };
566
+ }, []), b(({ clock: h }) => {
567
+ if (!t || !e || y.current || l.status === "error") return;
568
+ const g = Number.isFinite(r) && r > 0 ? r : 5, d = h.elapsedTime * 1e3;
569
+ if (d - s.current < 1e3 / g) return;
570
+ const p = u.getInputFrame(), m = i.current, E = a.current;
571
+ if (!p || !m || !E || !pe({ source: p, face: e, canvas: m, outputSize: { width: 112, height: 112 } })) return;
572
+ s.current = d, y.current = !0, l.status === "idle" && f({ status: "loading", result: null, error: null });
573
+ const Y = ge(E.getImageData(0, 0, 112, 112));
574
+ Promise.all([import("onnxruntime-web/wasm"), Te(o)]).then(async ([D, M]) => {
575
+ const $ = await M.run({
576
+ [M.inputNames[0]]: new D.Tensor("float32", Y, [1, 3, 112, 112])
577
+ }), Z = ye(
578
+ $[M.outputNames[0]].data,
579
+ n
580
+ );
581
+ c.current && f({ status: "ready", result: Z, error: null });
582
+ }).catch((D) => {
583
+ c.current && f({
584
+ status: "error",
585
+ result: null,
586
+ error: D instanceof Error ? D : new Error(String(D))
587
+ });
588
+ }).finally(() => {
589
+ y.current = !1;
590
+ });
591
+ }), l;
328
592
  };
329
593
  export {
330
- ar as BODY_TARGETS,
331
- er as BodyTracker,
332
- sr as FACE_TARGETS,
333
- yr as FaceMesh,
334
- mr as FaceTracker,
335
- tr as GestureTracker,
336
- or as GestureTrigger,
337
- ur as HAND_TARGETS,
338
- ir as HandTracker,
339
- H as SEGMENTATION_TYPES,
340
- cr as Segmentation,
341
- dr as TrackingAnchor,
342
- U as getTargetNamespace,
343
- pr as useFaceResults
594
+ $e as BODY_TARGETS,
595
+ Me as BodyTracker,
596
+ me as DEFAULT_FACE_ACTION_OPTIONS,
597
+ Ee as DEFAULT_FACE_ATTRIBUTE_EXPRESSION_MODEL_URL,
598
+ it as DEFAULT_FACE_EXPRESSION_THRESHOLD,
599
+ Ze as DEFAULT_TRACKING_ANCHOR,
600
+ Ie as FACE_ACTION_NAMES,
601
+ He as FACE_ATTRIBUTE_EXPRESSION_NAMES,
602
+ Ce as FACE_BLENDSHAPE_NAMES,
603
+ Ve as FACE_LANDMARK_INDICES,
604
+ Je as FACE_TARGETS,
605
+ We as FaceMesh,
606
+ qe as FaceTracker,
607
+ Fe as GestureTracker,
608
+ je as GestureTrigger,
609
+ Qe as HAND_TARGETS,
610
+ Ne as HandTracker,
611
+ X as SEGMENTATION_TYPES,
612
+ Be as Segmentation,
613
+ et as TrackingAnchor,
614
+ pe as drawFaceCrop,
615
+ H as getFaceActionValue,
616
+ S as getFaceBlendshape,
617
+ ct as getFaceEyeDistance,
618
+ Ue as getStrongestFaceAction,
619
+ tt as getTargetNamespace,
620
+ Pe as hasFaceAction,
621
+ at as hasFaceExpression,
622
+ ze as useFaceAction,
623
+ Ke as useFaceAttributeExpression,
624
+ Oe as useFaceDetection,
625
+ st as useFaceInfo,
626
+ te as useFaceInfos,
627
+ rt as useFaceResults
344
628
  };