@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
@@ -37,7 +37,7 @@ export type FaceRawTrackingData = {
37
37
  transformationMatrix?: Matrix;
38
38
  };
39
39
  /**
40
- * 2D face landmark in normalized image space (0..1 across both axes).
40
+ * 2D face landmark in normalized tracker-input space (0..1 across both axes).
41
41
  */
42
42
  export type FaceLandmark2D = {
43
43
  x: number;
@@ -53,15 +53,3 @@ export type BoundingBox = {
53
53
  width: number;
54
54
  height: number;
55
55
  };
56
- /**
57
- * Elliptical region used by the face-retouch shader. All coordinates are
58
- * in normalized image space (0..1).
59
- */
60
- export type FaceRetouchRegion = {
61
- centerX: number;
62
- centerY: number;
63
- radiusX: number;
64
- radiusY: number;
65
- strength: number;
66
- kind: "face" | "feature";
67
- };
@@ -1,4 +1,3 @@
1
- export * from './client';
2
1
  export * from './nodes';
3
2
  export * from './session';
4
3
  export * from './body';
@@ -1,5 +1,5 @@
1
1
  import { FaceLandmarkerResult } from '@mediapipe/tasks-vision';
2
- import { Texture } from 'three';
2
+ import { Texture, Camera } from 'three';
3
3
  import { Coordinate } from './common';
4
4
  import { Face, FaceRawTrackingData } from './face';
5
5
  import { GestureData } from './gesture-tracking';
@@ -34,4 +34,5 @@ export type XRModelNodeFaceTracking = {
34
34
  getDetectionResults: () => FaceLandmarkerResult | undefined;
35
35
  getFace: (faceIndex?: number) => Face | undefined;
36
36
  getRawFaceTrackingData: (faceIndex?: number) => FaceRawTrackingData | undefined;
37
+ setCamera: (camera: Camera, faceIndex?: number) => void;
37
38
  };
@@ -98,5 +98,7 @@ export type XRSession = {
98
98
  * Throws `XRError` if called before `<XRScene>` has mounted.
99
99
  */
100
100
  captureFrame: () => string;
101
+ /** Current tracker-input frame. Read-only; reused and repainted by the session. */
102
+ getInputFrame: () => OffscreenCanvas | HTMLCanvasElement | null;
101
103
  };
102
104
  export {};
@@ -9,7 +9,13 @@
9
9
  * The lists below are the v1 enumeration. New entries can be added
10
10
  * non-breakingly as additional landmarks/joints become supported.
11
11
  */
12
- export type FaceTarget = "face.forehead" | "face.noseTip" | "face.chin" | "face.leftEyeOuter" | "face.rightEyeOuter" | "face.leftCheek" | "face.rightCheek" | "face.mouthCenter";
12
+ export type FaceTarget = "face.custom" | "face.center" | "face.forehead" | "face.noseTip" | "face.chin" | "face.leftEyeOuter" | "face.rightEyeOuter" | "face.leftCheek" | "face.rightCheek" | "face.mouthCenter" | "face.leftEye" | "face.rightEye" | "face.leftEarlobe" | "face.rightEarlobe";
13
+ /** Face-local point: X/Y are clamped to [-1, 1], origin is face center, and +Z points toward camera. */
14
+ export type FaceCustomAnchorPoint = {
15
+ x: number;
16
+ y: number;
17
+ z: number;
18
+ };
13
19
  export type HandTarget = "hand.wrist" | "hand.thumbTip" | "hand.indexTip" | "hand.middleTip" | "hand.ringTip" | "hand.pinkyTip" | "hand.indexBase" | "hand.middleBase" | "hand.ringBase" | "hand.pinkyBase";
14
20
  export type BodyTarget = "body.head" | "body.neck" | "body.leftShoulder" | "body.rightShoulder" | "body.leftElbow" | "body.rightElbow" | "body.leftWrist" | "body.rightWrist" | "body.leftHip" | "body.rightHip" | "body.leftKnee" | "body.rightKnee" | "body.leftAnkle" | "body.rightAnkle";
15
21
  /**
@@ -20,7 +26,7 @@ export type TrackingTarget = FaceTarget | HandTarget | BodyTarget;
20
26
  * Tracker type identifier exposed via tracker context.
21
27
  */
22
28
  export type TrackerType = "face" | "hand" | "body";
23
- export declare const FACE_TARGETS: readonly ["face.forehead", "face.noseTip", "face.chin", "face.leftEyeOuter", "face.rightEyeOuter", "face.leftCheek", "face.rightCheek", "face.mouthCenter"];
29
+ export declare const FACE_TARGETS: readonly ["face.center", "face.forehead", "face.noseTip", "face.chin", "face.leftEyeOuter", "face.rightEyeOuter", "face.leftCheek", "face.rightCheek", "face.mouthCenter", "face.leftEye", "face.rightEye", "face.leftEarlobe", "face.rightEarlobe", "face.custom"];
24
30
  export declare const HAND_TARGETS: readonly ["hand.wrist", "hand.thumbTip", "hand.indexTip", "hand.middleTip", "hand.ringTip", "hand.pinkyTip", "hand.indexBase", "hand.middleBase", "hand.ringBase", "hand.pinkyBase"];
25
31
  export declare const BODY_TARGETS: readonly ["body.head", "body.neck", "body.leftShoulder", "body.rightShoulder", "body.leftElbow", "body.rightElbow", "body.leftWrist", "body.rightWrist", "body.leftHip", "body.rightHip", "body.leftKnee", "body.rightKnee", "body.leftAnkle", "body.rightAnkle"];
26
32
  /**
@@ -1 +1 @@
1
- export type Class<T> = new (...args: any[]) => T;
1
+ export type Class<T> = new (...args: never[]) => T;
@@ -0,0 +1 @@
1
+ "use strict";const R=require("@react-three/fiber"),m=require("react"),q=require("./index-D4bLzBr6.cjs"),h=require("./getFaceInfo-CyPAKh3h.cjs"),N=require("./index-82aENaRq.cjs"),x=({active:t=!0,holdMs:r=250,numFaces:o=1,targetFps:e,throttleMs:a=16}={})=>{const{camera:d}=R.useThree(),f=Number.isFinite(o)?Math.max(1,Math.round(o)):1,u=e!==void 0&&Number.isFinite(e)&&e>0?e:void 0,c=m.useMemo(()=>({numFaces:f,...u?{targetFps:u}:{}}),[f,u]),{node:n,ready:M}=N.useXRModel(q.XRModel.FACE_TRACKER,c,t);m.useEffect(()=>{if(n)for(let s=0;s<c.numFaces;s+=1)n.setCamera(d,s)},[c.numFaces,d,n]);const b=m.useCallback(s=>{if(!n)return[];const F=[];for(let i=0;i<s.faceLandmarks.length;i+=1){const l=h.getFaceInfoFromResults(n,s,i);l&&F.push(l)}return F},[n]);return h.useFaceResultReader({enabled:t&&M,holdMs:Number.isFinite(r)?Math.max(0,r):250,node:n,prepare:b,throttleMs:Number.isFinite(a)?Math.max(0,a):16})},I=({faceIndex:t=0,numFaces:r,...o}={})=>{const e=Number.isFinite(t)?Math.max(0,Math.round(t)):0;return x({...o,numFaces:Math.max(r??e+1,e+1)})[e]??null};exports.useFaceInfo=I;exports.useFaceInfos=x;
@@ -0,0 +1,62 @@
1
+ import { useThree as M } from "@react-three/fiber";
2
+ import { useMemo as p, useEffect as x, useCallback as b } from "react";
3
+ import { X as R } from "./index-JygePOwo.js";
4
+ import { g as N, u as C } from "./getFaceInfo-hUKMLFcr.js";
5
+ import { u as v } from "./index-BgQAX8rs.js";
6
+ const E = ({
7
+ active: r = !0,
8
+ holdMs: t = 250,
9
+ numFaces: a = 1,
10
+ targetFps: e,
11
+ throttleMs: n = 16
12
+ } = {}) => {
13
+ const { camera: c } = M(), f = Number.isFinite(a) ? Math.max(1, Math.round(a)) : 1, u = e !== void 0 && Number.isFinite(e) && e > 0 ? e : void 0, i = p(
14
+ () => ({
15
+ numFaces: f,
16
+ ...u ? { targetFps: u } : {}
17
+ }),
18
+ [f, u]
19
+ ), { node: s, ready: l } = v(
20
+ R.FACE_TRACKER,
21
+ i,
22
+ r
23
+ );
24
+ x(() => {
25
+ if (s)
26
+ for (let o = 0; o < i.numFaces; o += 1)
27
+ s.setCamera(c, o);
28
+ }, [i.numFaces, c, s]);
29
+ const h = b(
30
+ (o) => {
31
+ if (!s) return [];
32
+ const d = [];
33
+ for (let m = 0; m < o.faceLandmarks.length; m += 1) {
34
+ const F = N(s, o, m);
35
+ F && d.push(F);
36
+ }
37
+ return d;
38
+ },
39
+ [s]
40
+ );
41
+ return C({
42
+ enabled: r && l,
43
+ holdMs: Number.isFinite(t) ? Math.max(0, t) : 250,
44
+ node: s,
45
+ prepare: h,
46
+ throttleMs: Number.isFinite(n) ? Math.max(0, n) : 16
47
+ });
48
+ }, I = ({
49
+ faceIndex: r = 0,
50
+ numFaces: t,
51
+ ...a
52
+ } = {}) => {
53
+ const e = Number.isFinite(r) ? Math.max(0, Math.round(r)) : 0;
54
+ return E({
55
+ ...a,
56
+ numFaces: Math.max(t ?? e + 1, e + 1)
57
+ })[e] ?? null;
58
+ };
59
+ export {
60
+ I as a,
61
+ E as u
62
+ };
@@ -0,0 +1,19 @@
1
+ import { useCallback as c } from "react";
2
+ import { p as l, u as m } from "./getFaceInfo-hUKMLFcr.js";
3
+ const R = ({
4
+ node: e,
5
+ enabled: a,
6
+ selectedSource: r,
7
+ throttleMs: s = 16,
8
+ holdMs: t = 250,
9
+ onFrame: u
10
+ }) => {
11
+ const o = c(
12
+ (p) => l(p.faceLandmarks ?? []),
13
+ [r]
14
+ );
15
+ return m({ enabled: a, holdMs: t, node: e, onFrame: u, prepare: o, throttleMs: s });
16
+ };
17
+ export {
18
+ R as u
19
+ };
@@ -0,0 +1 @@
1
+ "use strict";const o=require("react"),e=require("./getFaceInfo-CyPAKh3h.cjs"),R=({node:s,enabled:a,selectedSource:r,throttleMs:t=16,holdMs:c=250,onFrame:u})=>{const n=o.useCallback(l=>e.prepareCalibrationFaceResults(l.faceLandmarks??[]),[r]);return e.useFaceResultReader({enabled:a,holdMs:c,node:s,onFrame:u,prepare:n,throttleMs:t})};exports.useFaceResults=R;
@@ -0,0 +1,22 @@
1
+ export type NormalizedCropBounds = Readonly<{
2
+ minX: number;
3
+ minY: number;
4
+ maxX: number;
5
+ maxY: number;
6
+ }>;
7
+ export type CropOutputSize = Readonly<{
8
+ width: number;
9
+ height: number;
10
+ }>;
11
+ export type DrawNormalizedCropOptions = {
12
+ source: CanvasImageSource;
13
+ bounds: NormalizedCropBounds;
14
+ canvas: HTMLCanvasElement;
15
+ outputSize: CropOutputSize;
16
+ /** Fraction of the detected width/height added on every side. Default 0. */
17
+ padding?: number;
18
+ };
19
+ /** Resolves a padded, aspect-correct crop in normalized source coordinates. */
20
+ export declare const resolveNormalizedCrop: (bounds: NormalizedCropBounds, sourceSize: CropOutputSize, outputSize: CropOutputSize, padding?: number) => NormalizedCropBounds | null;
21
+ /** Draws a normalized source crop into caller-owned canvas storage. */
22
+ export declare const drawNormalizedCrop: ({ source, bounds, canvas, outputSize, padding, }: DrawNormalizedCropOptions) => boolean;
@@ -1,30 +1,9 @@
1
- /**
2
- * Subresource-integrity verification for CDN-hosted model + mesh assets.
3
- *
4
- * The SDK fetches MediaPipe tracker weights, the canonical face mesh, and
5
- * the head-occluder GLB from `cdn.vincentt.studio`. None of those are
6
- * served with SRI script-attributes (they aren't <script> tags) and the
7
- * S3+CloudFront setup does not sign content, so a CDN/origin compromise
8
- * would silently backdoor ML inference and 3D models for every viewer.
9
- *
10
- * This module verifies fetched bytes against a hash baked into the SDK
11
- * at publish time. The manifest is generated by
12
- * `scripts/generate-integrity-manifest.ts` — when an asset is republished
13
- * on the CDN, re-run the script and commit the new hash with the new SDK
14
- * version. The hash travels with the SDK code, not with the asset.
15
- *
16
- * Consumers: the canonical face OBJ, MediaPipe tracker .task files
17
- * (fed via `modelAssetBuffer`), and the head-occluder GLB (parsed with
18
- * GLTFLoader.parse from the verified buffer). drei's `useGLTF` is
19
- * bypassed because it owns the fetch — we need to own it to verify.
20
- */
21
1
  export type IntegrityHash = `sha384-${string}`;
22
2
  /**
23
3
  * Keys are URL pathnames relative to the asset origin
24
4
  * (e.g. "/assets/xr/canonical_face_model.obj"). Populated by
25
- * `scripts/generate-integrity-manifest.ts`. An empty manifest puts
26
- * fetchAndVerify in best-effort mode — once entries are added, missing
27
- * entries can be promoted to hard errors.
5
+ * `scripts/generate-integrity-manifest.ts`. Missing hashes fail closed for
6
+ * SDK-owned CDN URLs; consumer-owned custom URLs remain best-effort.
28
7
  */
29
8
  export declare const INTEGRITY_MANIFEST: Record<string, IntegrityHash>;
30
9
  /**
@@ -32,8 +11,8 @@ export declare const INTEGRITY_MANIFEST: Record<string, IntegrityHash>;
32
11
  * ArrayBuffer on success. Throws if the fetch fails or the manifest hash
33
12
  * doesn't match the computed SHA-384.
34
13
  *
35
- * URLs with no manifest entry pass through with a warning so the SDK
36
- * stays usable while the manifest is being populated.
14
+ * Consumer-owned URLs with no manifest entry pass through with a warning.
15
+ * SDK-owned CDN URLs with no entry fail closed.
37
16
  */
38
17
  export declare function fetchAndVerify(url: string): Promise<ArrayBuffer>;
39
18
  /**
@@ -8,4 +8,4 @@ import { FaceBounds } from '../types/face';
8
8
  * Empty input yields a zero-size box at the origin rather than the inverted
9
9
  * `min=1,max=0` seed, so downstream width/height stay non-negative.
10
10
  */
11
- export declare const computeLandmarkBounds: (landmarks: NormalizedLandmark[]) => FaceBounds;
11
+ export declare const computeLandmarkBounds: (landmarks: readonly NormalizedLandmark[], target?: FaceBounds) => FaceBounds;
@@ -2,6 +2,6 @@ import { LoggerOptions } from '../types/logger';
2
2
  export declare class Logger {
3
3
  private options;
4
4
  constructor(opts?: Partial<LoggerOptions>);
5
- log(...params: any[]): void;
6
- error(...params: any[]): void;
5
+ log(...params: unknown[]): void;
6
+ error(...params: unknown[]): void;
7
7
  }