@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.
Files changed (352) hide show
  1. package/GROUNDING.md +1588 -20
  2. package/dist/{DebuggerUI-CatYc-RG.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-gLMKiVwJ.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 +17 -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 +70 -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 +2 -2
  28. package/dist/components/FaceRetouch/Background.d.ts +5 -6
  29. package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
  30. package/dist/components/FaceRetouch/index.d.ts +2 -8
  31. package/dist/components/FaceRetouch/landmarkMask.d.ts +0 -5
  32. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +3 -7
  33. package/dist/components/FaceTracker/index.d.ts +5 -3
  34. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +1 -1
  35. package/dist/components/HandJoints2D/index.d.ts +1 -1
  36. package/dist/components/HandTracking2D/HandVisual.d.ts +1 -1
  37. package/dist/components/HandTracking2D/index.d.ts +1 -1
  38. package/dist/components/HandTracking2DController/index.d.ts +1 -1
  39. package/dist/components/HandTracking3D/index.d.ts +1 -1
  40. package/dist/components/LightObject/index.d.ts +20 -0
  41. package/dist/components/LookAt/index.d.ts +23 -0
  42. package/dist/components/MeshRenderer/index.d.ts +58 -0
  43. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  44. package/dist/components/PinToMesh/index.d.ts +47 -0
  45. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  46. package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
  47. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  48. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  49. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  50. package/dist/components/Screen2D/index.d.ts +5 -0
  51. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  52. package/dist/components/ScreenGlass/index.d.ts +5 -0
  53. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  54. package/dist/components/ScreenGlass/types.d.ts +10 -0
  55. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  56. package/dist/components/ScreenGradient/index.d.ts +5 -0
  57. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  58. package/dist/components/ScreenGradient/types.d.ts +19 -0
  59. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  60. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  61. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  62. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  63. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  64. package/dist/components/ScreenImage/fit.d.ts +52 -0
  65. package/dist/components/ScreenImage/index.d.ts +8 -87
  66. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  67. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  68. package/dist/components/ScreenImage/source.d.ts +16 -0
  69. package/dist/components/ScreenImage/types.d.ts +37 -0
  70. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  71. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  72. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  73. package/dist/components/ScreenShape/index.d.ts +5 -0
  74. package/dist/components/ScreenShape/types.d.ts +41 -0
  75. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  76. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  77. package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
  78. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  79. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  80. package/dist/components/ScreenText/constants.d.ts +5 -0
  81. package/dist/components/ScreenText/index.d.ts +6 -20
  82. package/dist/components/ScreenText/types.d.ts +31 -0
  83. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  84. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  85. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  86. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  87. package/dist/components/TextLabel/alignment.d.ts +4 -0
  88. package/dist/components/TextLabel/bend.d.ts +9 -0
  89. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  90. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  91. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  92. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  93. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  94. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  95. package/dist/components/TextLabel/constants.d.ts +2 -0
  96. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  97. package/dist/components/TextLabel/index.d.ts +2 -161
  98. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  99. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  100. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  101. package/dist/components/TextLabel/types.d.ts +227 -0
  102. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  103. package/dist/components/Transform3D/index.d.ts +30 -0
  104. package/dist/components/XRMediaSurface/index.d.ts +6 -6
  105. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  106. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  107. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  108. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  109. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  110. package/dist/components/XRViewport/constants.d.ts +24 -0
  111. package/dist/components/XRViewport/contexts.d.ts +6 -0
  112. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  113. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  114. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  115. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  116. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  117. package/dist/components/XRViewport/index.d.ts +3 -118
  118. package/dist/components/XRViewport/layout.d.ts +16 -0
  119. package/dist/components/XRViewport/slots.d.ts +16 -0
  120. package/dist/components/XRViewport/types.d.ts +89 -0
  121. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  122. package/dist/components/index.d.ts +12 -0
  123. package/dist/contexts-BKvTIayr.cjs +1 -0
  124. package/dist/contexts-Bk5zz_VR.js +214 -0
  125. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  126. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  127. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  128. package/dist/debug-ui/hand-joints-2d/index.d.ts +1 -1
  129. package/dist/debug-ui/hand-tracking-2d/index.d.ts +1 -1
  130. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +1 -1
  131. package/dist/debug-ui/hand-tracking-3d/index.d.ts +1 -1
  132. package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
  133. package/dist/debug-ui/index.d.ts +25 -2
  134. package/dist/debug-ui/layer-panel/index.d.ts +3 -2
  135. package/dist/debug-ui/media-source/index.d.ts +2 -0
  136. package/dist/debug-ui/media-source/session.d.ts +12 -0
  137. package/dist/debug-ui/media-source.cjs +1 -1
  138. package/dist/debug-ui/media-source.js +6 -4
  139. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  140. package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
  141. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  142. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  143. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
  144. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  145. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
  146. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  147. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  148. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  149. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  150. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  151. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  152. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  153. package/dist/debug-ui/screen-image-settings/index.d.ts +4 -2
  154. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  155. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  156. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  157. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  158. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  159. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  160. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -122
  161. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  162. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  163. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  164. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  165. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  166. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  167. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  168. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  169. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  170. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  171. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  172. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  173. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  174. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  175. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  176. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  177. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  178. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  179. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  180. package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
  181. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +6 -3
  182. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  183. package/dist/debug-ui.cjs +3 -13
  184. package/dist/debug-ui.js +7896 -5098
  185. package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
  186. package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
  187. package/dist/entries/all.d.ts +1 -0
  188. package/dist/entries/core.d.ts +53 -6
  189. package/dist/entries/face-effects.d.ts +10 -8
  190. package/dist/entries/internal.d.ts +1 -1
  191. package/dist/entries/low-level.d.ts +18 -4
  192. package/dist/entries/scene-object.d.ts +10 -0
  193. package/dist/entries/tracking.d.ts +25 -2
  194. package/dist/face-action/index.d.ts +34 -0
  195. package/dist/face-attribute-expression/index.d.ts +10 -0
  196. package/dist/face-effects.cjs +1 -342
  197. package/dist/face-effects.js +1391 -2767
  198. package/dist/face-info/blendshapes.d.ts +3 -0
  199. package/dist/face-info/derive.d.ts +8 -0
  200. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  201. package/dist/face-info/getFaceInfo.d.ts +8 -0
  202. package/dist/face-info/index.d.ts +8 -0
  203. package/dist/face-info/landmarks.d.ts +21 -0
  204. package/dist/face-info/types.d.ts +52 -0
  205. package/dist/getFaceInfo-CyPAKh3h.cjs +1 -0
  206. package/dist/getFaceInfo-hUKMLFcr.js +118 -0
  207. package/dist/{handJoints2d.d.ts → hand/handJoints2d.d.ts} +1 -1
  208. package/dist/{handTracking2d.d.ts → hand/handTracking2d.d.ts} +1 -1
  209. package/dist/{handTracking2dController.d.ts → hand/handTracking2dController.d.ts} +1 -1
  210. package/dist/{handTracking3d.d.ts → hand/handTracking3d.d.ts} +1 -1
  211. package/dist/hooks/faceResults.d.ts +1 -1
  212. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  213. package/dist/hooks/useFaceAction.d.ts +3 -0
  214. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  215. package/dist/hooks/useFaceDetection.d.ts +18 -0
  216. package/dist/hooks/useFaceInfo.d.ts +7 -0
  217. package/dist/hooks/useFaceInfos.d.ts +15 -0
  218. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  219. package/dist/hooks/useFrameCapture.d.ts +18 -0
  220. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  221. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  222. package/dist/hooks/useTrackerContext.d.ts +2 -2
  223. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  224. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  225. package/dist/index-82aENaRq.cjs +1 -0
  226. package/dist/{index-BGNbrc4C.js → index-BgQAX8rs.js} +213 -125
  227. package/dist/index-CEc1CAmB.cjs +1 -0
  228. package/dist/index-CTHeBQOs.js +178 -0
  229. package/dist/index-D4bLzBr6.cjs +1 -0
  230. package/dist/index-DSpzjuqd.cjs +1 -0
  231. package/dist/index-Di70KWuY.js +2049 -0
  232. package/dist/index-DzEzkBIH.cjs +17 -0
  233. package/dist/{index-safCs_af.js → index-JygePOwo.js} +565 -508
  234. package/dist/index-UC0Ux38E.js +111 -0
  235. package/dist/{internal-Cae1ps15.js → internal-DuMPpcbp.js} +86 -80
  236. package/dist/internal-i2JkM85N.cjs +1 -0
  237. package/dist/internal.cjs +1 -1
  238. package/dist/internal.js +2 -2
  239. package/dist/low-level.cjs +1 -1
  240. package/dist/low-level.js +1229 -86
  241. package/dist/main.cjs +1 -73
  242. package/dist/main.js +545 -1693
  243. package/dist/material/MaterialFill.d.ts +20 -0
  244. package/dist/material/MeshMaterial.d.ts +14 -0
  245. package/dist/material/index.d.ts +2 -0
  246. package/dist/models/Body/index.d.ts +1 -1
  247. package/dist/models/Face/index.d.ts +1 -0
  248. package/dist/models/Face/rotation.d.ts +3 -0
  249. package/dist/render/renderGroups.d.ts +47 -0
  250. package/dist/render/renderPasses.d.ts +18 -0
  251. package/dist/renderGroups-C9QJrAXu.js +152 -0
  252. package/dist/renderGroups-Dvm1J4lW.cjs +1 -0
  253. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  254. package/dist/renderLayers-zrK2pv5O.js +13 -0
  255. package/dist/renderPasses-CT5iBwtg.cjs +21 -0
  256. package/dist/renderPasses-CjgG_6kQ.js +1500 -0
  257. package/dist/scene-object/index.d.ts +146 -0
  258. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  259. package/dist/scene-object.cjs +1 -0
  260. package/dist/scene-object.js +40 -0
  261. package/dist/{screenImageSettings.d.ts → screen-image/screenImageSettings.d.ts} +9 -2
  262. package/dist/{screenTextSettings.d.ts → screen-text/screenTextSettings.d.ts} +18 -2
  263. package/dist/screen2d/coordinates.d.ts +87 -0
  264. package/dist/screen2d/index.d.ts +3 -0
  265. package/dist/screen2d/screenTransform.d.ts +47 -0
  266. package/dist/screen2d/smoothing.d.ts +5 -0
  267. package/dist/{selectors-BLl2JUWW.cjs → selectors-2QvO5RYY.cjs} +1 -1
  268. package/dist/{selectors-CXd_x-6t.js → selectors-Dw3C-gSk.js} +3 -3
  269. package/dist/services/MetricsCollector/index.d.ts +7 -1
  270. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  271. package/dist/session-BChR4TgK.cjs +31 -0
  272. package/dist/session-C1StwN0f.js +363 -0
  273. package/dist/texture/animatedTexture.d.ts +61 -0
  274. package/dist/texture/animationMath.d.ts +8 -0
  275. package/dist/texture/sourceResolver.d.ts +30 -0
  276. package/dist/tracking.cjs +1 -1
  277. package/dist/tracking.js +580 -321
  278. package/dist/types/face.d.ts +1 -13
  279. package/dist/types/index.d.ts +0 -1
  280. package/dist/types/nodes.d.ts +2 -1
  281. package/dist/types/session.d.ts +2 -0
  282. package/dist/types/tracking.d.ts +8 -2
  283. package/dist/types/util-types.d.ts +1 -1
  284. package/dist/useFaceInfo-C-WfMlYp.cjs +1 -0
  285. package/dist/useFaceInfo-CwsHZedC.js +62 -0
  286. package/dist/useFaceResults-CkFc1egZ.js +19 -0
  287. package/dist/useFaceResults-VcFdOUFV.cjs +1 -0
  288. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  289. package/dist/utils/integrity.d.ts +4 -25
  290. package/dist/utils/landmarkBounds.d.ts +1 -1
  291. package/dist/utils/logger.d.ts +2 -2
  292. package/docs/MIGRATION_GUIDE.md +589 -0
  293. package/docs/SDK_DOCUMENTATION.md +1155 -0
  294. package/docs/api/audio.mdx +36 -0
  295. package/docs/api/behavior-components.mdx +164 -0
  296. package/docs/api/capture-recording.mdx +103 -0
  297. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  298. package/docs/api/face-actions.mdx +104 -0
  299. package/docs/api/face-attribute-expression.mdx +87 -0
  300. package/docs/api/face-binding-anchors.mdx +53 -0
  301. package/docs/api/face-effects.mdx +19 -0
  302. package/docs/api/face-info.mdx +112 -0
  303. package/docs/api/face-mesh.mdx +98 -0
  304. package/docs/api/face-painting.mdx +33 -0
  305. package/docs/api/face-retouching.mdx +73 -0
  306. package/docs/api/material-render-state.mdx +132 -0
  307. package/docs/api/runtime-3d.mdx +311 -0
  308. package/docs/api/scene-object-store.mdx +213 -0
  309. package/docs/api/screen-image.mdx +41 -0
  310. package/docs/api/screen-shape.mdx +64 -0
  311. package/docs/api/screen-space-coordinates.mdx +41 -0
  312. package/docs/api/screen-text.mdx +39 -0
  313. package/docs/api/texture-sources.mdx +55 -0
  314. package/docs/api/trackers.mdx +46 -0
  315. package/docs/docs.json +70 -0
  316. package/docs/examples/scene-object-recipes.mdx +194 -0
  317. package/docs/guides/harness-debug-ui.mdx +139 -0
  318. package/docs/inspector/hierarchy-panel.mdx +51 -0
  319. package/docs/inspector/object-inspector-panel.mdx +51 -0
  320. package/docs/introduction.mdx +121 -0
  321. package/docs/scene-objects/overview.mdx +127 -0
  322. package/docs/scene-objects/render-groups.mdx +77 -0
  323. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  324. package/docs/texture-api-consumer.md +58 -0
  325. package/package.json +37 -7
  326. package/dist/MediaSourceSwitcher-C-xYg0nQ.js +0 -317
  327. package/dist/MediaSourceSwitcher-Cq3g4IKw.cjs +0 -31
  328. package/dist/components/FaceRetouch/defaults.d.ts +0 -13
  329. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  330. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  331. package/dist/defaults-BLpcN3pG.cjs +0 -1
  332. package/dist/defaults-LtY4M7dg.js +0 -55
  333. package/dist/index-BXyObVHF.cjs +0 -1
  334. package/dist/index-CY3bUAcW.js +0 -12
  335. package/dist/index-C_Duh13c.cjs +0 -1
  336. package/dist/index-D8fpPQkC.cjs +0 -1
  337. package/dist/index-DxshgBu0.cjs +0 -1
  338. package/dist/index-O-2crZ3M.js +0 -1102
  339. package/dist/internal-BjyhBP8i.cjs +0 -1
  340. package/dist/modules/XRClient/index.d.ts +0 -9
  341. package/dist/modules/index.d.ts +0 -1
  342. package/dist/screenImageSettings-6NRg4cx9.js +0 -39
  343. package/dist/screenImageSettings-y_B4_767.cjs +0 -1
  344. package/dist/services/ApiService.d.ts +0 -12
  345. package/dist/types/client.d.ts +0 -3
  346. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  347. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
  348. package/dist/useXRModel-3DcUa28n.cjs +0 -1
  349. package/dist/useXRModel-BMJE1hrk.js +0 -28
  350. /package/dist/{layerStack.d.ts → render/layerStack.d.ts} +0 -0
  351. /package/dist/{screenImagePresets.d.ts → screen-image/screenImagePresets.d.ts} +0 -0
  352. /package/dist/{screenTextPresets.d.ts → screen-text/screenTextPresets.d.ts} +0 -0
package/dist/tracking.js CHANGED
@@ -1,13 +1,144 @@
1
- import { u as yr } from "./useFaceResults-cpsSmKKc.js";
2
- import { T as z, u as K } from "./index-BGNbrc4C.js";
3
- import { a as Tr, F as br } from "./index-BGNbrc4C.js";
4
- import { jsx as g, Fragment as G } from "react/jsx-runtime";
5
- import { useThree as N, useFrame as k } from "@react-three/fiber";
6
- import { useRef as T, useCallback as C, useMemo as A, useEffect as x } from "react";
7
- import * as E from "three";
8
- import { X as v, R as w } from "./index-safCs_af.js";
9
- import { u as S } from "./useXRModel-BMJE1hrk.js";
10
- 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 = {
11
142
  "body.head": 0,
12
143
  "body.leftShoulder": 11,
13
144
  "body.rightShoulder": 12,
@@ -21,349 +152,477 @@ const L = {
21
152
  "body.rightKnee": 26,
22
153
  "body.leftAnkle": 27,
23
154
  "body.rightAnkle": 28
24
- }, or = ({ bodyIndex: r = 0, active: n = !0, children: t }) => {
25
- const e = T(null), { ready: o, node: i } = S(
26
- v.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,
27
158
  void 0,
28
- n
29
- ), { camera: s } = N(), p = T(s);
30
- p.current !== s && (p.current = s);
31
- const c = T(null);
32
- k(() => {
33
- if (!o || !i || !e.current) return;
34
- const d = i;
35
- c.current = d;
36
- const u = d.getLandmarks2D(r), y = u == null ? void 0 : u[0];
37
- if (!y) {
38
- 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;
39
170
  return;
40
171
  }
41
- const l = D(y, p.current);
42
- e.current.visible = !0, e.current.position.copy(l);
172
+ const g = B(h, a.current);
173
+ n.current.visible = !0, n.current.position.copy(g);
43
174
  });
44
- const a = C(
45
- (d) => {
46
- const u = c.current;
47
- if (!u) return null;
48
- const y = u.getLandmarks2D(r);
49
- if (!y) return null;
50
- if (d === "body.neck") {
51
- const f = y[11], b = y[12];
52
- if (!f || !b) return null;
53
- const R = {
54
- x: (f.x + b.x) / 2,
55
- y: (f.y + b.y) / 2,
56
- z: (f.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
57
188
  };
58
- return { position: D(R, p.current) };
189
+ return { position: B(E, a.current) };
59
190
  }
60
- const l = L[d];
61
- if (l === void 0) return null;
62
- const m = y[l];
63
- return m ? { position: D(m, p.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;
64
195
  },
65
- [r]
66
- ), h = A(
67
- () => ({ type: "body", resolveLandmark: a }),
68
- [a]
196
+ [e]
197
+ ), c = _(
198
+ () => ({ type: "body", resolveLandmark: s }),
199
+ [s]
69
200
  );
70
- return /* @__PURE__ */ g(z.Provider, { value: h, children: /* @__PURE__ */ g("group", { ref: e, renderOrder: w.TRACKED, children: t }) });
71
- }, D = (r, n) => {
72
- const t = new E.Vector3(r.x, r.y, r.z);
73
- t.unproject(n);
74
- const e = t.sub(n.position).normalize(), o = -n.position.z / e.z;
75
- return n.position.clone().add(e.multiplyScalar(o));
76
- }, W = {
77
- "hand.wrist": 0,
78
- "hand.thumbTip": 4,
79
- "hand.indexTip": 8,
80
- "hand.middleTip": 12,
81
- "hand.ringTip": 16,
82
- "hand.pinkyTip": 20,
83
- "hand.indexBase": 5,
84
- "hand.middleBase": 9,
85
- "hand.ringBase": 13,
86
- "hand.pinkyBase": 17
87
- }, ir = ({ children: r, targetFps: n, active: t = !0 }) => {
88
- const e = T(null), o = A(
89
- () => n === void 0 ? void 0 : { targetFps: n },
90
- [n]
91
- ), { ready: i, node: s } = S(
92
- v.GESTURE_TRACKER,
93
- o,
94
- t
95
- ), { camera: p } = N(), c = T(p);
96
- c.current !== p && (c.current = p);
97
- const a = T(null);
98
- k(() => {
99
- var l;
100
- if (!i || !s || !e.current) return;
101
- a.current = s;
102
- const u = (l = s == null ? void 0 : s.coordinates) == null ? void 0 : l[0];
103
- if (!u) {
104
- e.current.visible = !1;
105
- return;
106
- }
107
- const y = _(u, c.current);
108
- e.current.visible = !0, e.current.position.copy(y);
109
- });
110
- const h = C((u) => {
111
- var m, f;
112
- const y = W[u];
113
- if (y === void 0) return null;
114
- const l = (f = (m = a.current) == null ? void 0 : m.coordinates) == null ? void 0 : f[y];
115
- return l ? { position: _(l, c.current) } : null;
116
- }, []), d = A(
117
- () => ({ type: "hand", resolveLandmark: h }),
118
- [h]
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(", ")}`
119
210
  );
120
- return /* @__PURE__ */ g(z.Provider, { value: d, children: /* @__PURE__ */ g("group", { ref: e, renderOrder: w.TRACKED, children: r }) });
121
- }, _ = (r, n) => {
122
- const t = new E.Vector3(r.x, r.y, r.z);
123
- t.unproject(n);
124
- const e = t.sub(n.position).normalize(), o = -n.position.z / e.z;
125
- return n.position.clone().add(e.multiplyScalar(o));
126
- }, P = 800, V = 200, $ = () => ({
211
+ }, [e]), /* @__PURE__ */ A(J, { children: r })), ie = 800, ce = 200, ae = () => ({
127
212
  armed: !1,
128
213
  armStart: null,
129
214
  holdStart: null,
130
215
  fired: !1
131
- }), j = (r, {
132
- isTrigger: n,
133
- gesture: t,
134
- now: e,
216
+ }), le = (e, {
217
+ isTrigger: t,
218
+ gesture: r,
219
+ now: n,
135
220
  mode: o,
136
- debounceMs: i,
137
- holdMs: s
221
+ debounceMs: u,
222
+ holdMs: i
138
223
  }) => {
139
- if (r.fired) return null;
224
+ if (e.fired) return null;
140
225
  if (o === "hold") {
141
- if (n && t) {
142
- if (r.holdStart === null && (r.holdStart = e), e - r.holdStart >= s)
143
- 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;
144
229
  } else
145
- r.holdStart = null;
230
+ e.holdStart = null;
146
231
  return null;
147
232
  }
148
- return r.armed ? n && t ? (r.fired = !0, t) : null : (n ? r.armStart = null : (r.armStart === null && (r.armStart = e), e - r.armStart >= i && (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);
149
234
  };
150
- function F({
151
- gestures: r,
152
- mode: n = "arm",
153
- debounceMs: t = P,
154
- holdMs: e = V,
235
+ function de({
236
+ gestures: e,
237
+ mode: t = "arm",
238
+ debounceMs: r = ie,
239
+ holdMs: n = ce,
155
240
  onTrigger: o,
156
- enabled: i = !0
241
+ enabled: u = !0
157
242
  }) {
158
- const { ready: s, node: p } = S(v.GESTURE_TRACKER), c = T(o);
159
- x(() => {
160
- c.current = o;
243
+ const { ready: i, node: a } = N(F.GESTURE_TRACKER), y = R(o);
244
+ L(() => {
245
+ y.current = o;
161
246
  }, [o]);
162
- const a = T(/* @__PURE__ */ new Set());
163
- x(() => {
164
- a.current = new Set(Array.isArray(r) ? r : [r]);
165
- }, [r]);
166
- const h = T($());
167
- k(() => {
168
- if (!i || !s || !p) return;
169
- const d = p.gesture, u = !!(d && a.current.has(d)), y = j(h.current, {
170
- isTrigger: u,
171
- gesture: d,
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,
172
257
  now: performance.now(),
173
- mode: n,
174
- debounceMs: t,
175
- holdMs: e
258
+ mode: t,
259
+ debounceMs: r,
260
+ holdMs: n
176
261
  });
177
- y && c.current(y);
262
+ h && y.current(h);
178
263
  });
179
264
  }
180
- const cr = (r) => (F(r), null), q = {
181
- "hand.wrist": 0,
182
- "hand.thumbTip": 4,
183
- "hand.indexTip": 8,
184
- "hand.middleTip": 12,
185
- "hand.ringTip": 16,
186
- "hand.pinkyTip": 20,
187
- "hand.indexBase": 5,
188
- "hand.middleBase": 9,
189
- "hand.ringBase": 13,
190
- "hand.pinkyBase": 17
191
- };
192
- function U(r, n, t = 0) {
193
- var o;
194
- const e = (o = r == null ? void 0 : r.hands) != null && o.length ? r.hands : r != null && r.coordinates ? [
195
- {
196
- coordinates: r.coordinates,
197
- gesture: r.gesture,
198
- handedness: r.handedness
199
- }
200
- ] : [];
201
- if (e.length) {
202
- if (n) {
203
- const i = e.find((s) => s.handedness === n);
204
- if (i) return i;
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";
205
466
  }
206
- return e[t] ?? e[0];
467
+ return e;
207
468
  }
208
- }
209
- const sr = ({
210
- children: r,
211
- hand: n,
212
- handIndex: t = 0,
213
- targetFps: e,
214
- active: o = !0
215
- }) => {
216
- const i = T(null), s = A(
217
- () => e === void 0 ? void 0 : { targetFps: e },
218
- [e]
219
- ), { ready: p, node: c } = S(
220
- v.HAND_TRACKER,
221
- s,
222
- o
223
- ), { camera: a } = N(), h = T(a);
224
- h.current !== a && (h.current = a);
225
- const d = T(null);
226
- k(() => {
227
- var b;
228
- if (!p || !c || !i.current) return;
229
- const l = U(c, n, t);
230
- d.current = l ?? null;
231
- const m = (b = l == null ? void 0 : l.coordinates) == null ? void 0 : b[0];
232
- if (!m) {
233
- i.current.visible = !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)
234
494
  return;
235
- }
236
- const f = B(m, h.current);
237
- i.current.visible = !0, i.current.position.copy(f);
238
- });
239
- const u = C((l) => {
240
- var b, R;
241
- const m = q[l];
242
- if (m === void 0) return null;
243
- const f = (R = (b = d.current) == null ? void 0 : b.coordinates) == null ? void 0 : R[m];
244
- return f ? { position: B(f, h.current) } : null;
245
- }, []), y = A(
246
- () => ({ type: "hand", resolveLandmark: u }),
247
- [u]
248
- );
249
- return /* @__PURE__ */ g(z.Provider, { value: y, children: /* @__PURE__ */ g("group", { ref: i, renderOrder: w.TRACKED, children: r }) });
250
- }, B = (r, n) => {
251
- const t = new E.Vector3(r.x, r.y, r.z);
252
- t.unproject(n);
253
- const e = t.sub(n.position).normalize(), o = -n.position.z / e.z;
254
- return n.position.clone().add(e.multiplyScalar(o));
255
- }, H = ["portrait"], ur = ({ type: r, active: n = !0, children: t }) => (S(v.BACKGROUND_SEGMENTATION, { type: r }, n), x(() => {
256
- H.includes(r) || console.warn(
257
- `[Segmentation] unsupported type "${r}"; valid values: ${H.join(", ")}`
258
- );
259
- }, [r]), /* @__PURE__ */ g(G, { children: t })), ar = [
260
- "face.forehead",
261
- "face.noseTip",
262
- "face.chin",
263
- "face.leftEyeOuter",
264
- "face.rightEyeOuter",
265
- "face.leftCheek",
266
- "face.rightCheek",
267
- "face.mouthCenter"
268
- ], dr = [
269
- "hand.wrist",
270
- "hand.thumbTip",
271
- "hand.indexTip",
272
- "hand.middleTip",
273
- "hand.ringTip",
274
- "hand.pinkyTip",
275
- "hand.indexBase",
276
- "hand.middleBase",
277
- "hand.ringBase",
278
- "hand.pinkyBase"
279
- ], lr = [
280
- "body.head",
281
- "body.neck",
282
- "body.leftShoulder",
283
- "body.rightShoulder",
284
- "body.leftElbow",
285
- "body.rightElbow",
286
- "body.leftWrist",
287
- "body.rightWrist",
288
- "body.leftHip",
289
- "body.rightHip",
290
- "body.leftKnee",
291
- "body.rightKnee",
292
- "body.leftAnkle",
293
- "body.rightAnkle"
294
- ], X = (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), Y = (r, n, t, e, o, i) => {
295
- if (!r.initialized || t <= 0)
296
- return r.pos.copy(n), r.prevRaw.copy(n), r.dxHat.set(0, 0, 0), r.initialized = !0, r;
297
- const s = O(i, t), p = ["x", "y", "z"];
298
- for (const c of p) {
299
- const a = (n[c] - r.prevRaw[c]) / t, h = M(a, r.dxHat[c], s);
300
- r.dxHat[c] = h;
301
- const d = e + o * Math.abs(h), u = O(d, t);
302
- r.pos[c] = M(n[c], r.pos[c], u), r.prevRaw[c] = n[c];
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;
303
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;
304
544
  return r;
305
- }, fr = ({
306
- target: r,
307
- offset: n,
308
- smoothing: t = 0,
309
- children: e
310
- }) => {
311
- const o = K(), i = T(null), s = T(!1), p = T(new E.Vector3()), c = T({
312
- pos: new E.Vector3(),
313
- prevRaw: new E.Vector3(),
314
- dxHat: new E.Vector3(),
315
- initialized: !1
316
- }), a = X(r), h = o !== null && a !== null && o.type !== a, d = o === null, u = d || h || a === null;
317
- return x(() => {
318
- d ? console.warn(
319
- `[TrackingAnchor] target "${r}" requires a FaceTracker / HandTracker / BodyTracker ancestor; rendering null.`
320
- ) : h ? console.warn(
321
- `[TrackingAnchor] target "${r}" namespace does not match parent tracker type "${o == null ? void 0 : o.type}"; rendering null.`
322
- ) : a === null && console.warn(
323
- `[TrackingAnchor] target "${r}" is not a recognized face/hand/body landmark; rendering null.`
324
- );
325
- }, [r, a, d, h, o == null ? void 0 : o.type]), k((y, l) => {
326
- if (u || !i.current || !o) return;
327
- const m = o.resolveLandmark(r);
328
- if (!m) {
329
- i.current.visible = !1, s.current = !1, c.current.initialized = !1;
330
- return;
331
- }
332
- i.current.visible = !0;
333
- const f = p.current.copy(m.position), b = i.current.parent;
334
- if (b) {
335
- b.updateMatrixWorld();
336
- const R = new E.Matrix4().copy(b.matrixWorld).invert();
337
- f.applyMatrix4(R);
338
- }
339
- if (n && (f.x += n[0], f.y += n[1], f.z += n[2]), t > 0) {
340
- const R = t * 0.1;
341
- Y(
342
- c.current,
343
- f,
344
- s.current ? l : 0,
345
- R,
346
- 0.5,
347
- 1
348
- ), i.current.position.copy(c.current.pos);
349
- } else
350
- i.current.position.copy(f);
351
- s.current = !0, m.quaternion && i.current.quaternion.copy(m.quaternion);
352
- }), u ? null : /* @__PURE__ */ g("group", { ref: i, renderOrder: w.TRACKED, children: e });
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;
353
592
  };
354
593
  export {
355
- lr as BODY_TARGETS,
356
- or as BodyTracker,
357
- ar as FACE_TARGETS,
358
- Tr as FaceMesh,
359
- br as FaceTracker,
360
- ir as GestureTracker,
361
- cr as GestureTrigger,
362
- dr as HAND_TARGETS,
363
- sr as HandTracker,
364
- H as SEGMENTATION_TYPES,
365
- ur as Segmentation,
366
- fr as TrackingAnchor,
367
- X as getTargetNamespace,
368
- yr 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
369
628
  };