@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
@@ -0,0 +1,589 @@
1
+ # Migration Guide
2
+
3
+ This guide helps you migrate from the old portal-based architecture to the new unified architecture introduced in January 2025.
4
+
5
+ ## Table of Contents
6
+
7
+ - [What Changed](#what-changed)
8
+ - [Benefits of the New Architecture](#benefits-of-the-new-architecture)
9
+ - [Migration Steps](#migration-steps)
10
+ - [Component Changes](#component-changes)
11
+ - [Breaking Changes](#breaking-changes)
12
+ - [Side-by-Side Comparison](#side-by-side-comparison)
13
+
14
+ ## What Changed
15
+
16
+ The SDK has been completely refactored from a **portal-based dual-camera system** to a **unified scene architecture**:
17
+
18
+ ### Removed
19
+
20
+ - ❌ Portal-based scene isolation
21
+ - ❌ Manual event handling with `onPointerEvent`
22
+ - ❌ Manual `gl.render()` calls
23
+ - ❌ Custom `OrthographicCamera` component
24
+ - ❌ `SegmentationPlane` component
25
+
26
+ ### Added
27
+
28
+ - ✅ `VideoBackground` component for camera feed rendering
29
+ - ✅ `ScreenSpaceUI` component for 2D UI positioning
30
+ - ✅ Standard R3F rendering pipeline
31
+ - ✅ Native event system support
32
+ - ✅ Postprocessing support
33
+
34
+ ### Deprecated (but still available)
35
+
36
+ - ⚠️ Custom `PerspectiveCamera` (use drei's `PerspectiveCamera` instead)
37
+ - ⚠️ Custom `OrthographicCamera` (use `VideoBackground` instead)
38
+
39
+ ## Benefits of the New Architecture
40
+
41
+ ### 1. Events Work Correctly
42
+
43
+ **Old:** Manual event handling was required
44
+
45
+ ```tsx
46
+ // Old - Manual event handling
47
+ <mesh onPointerEvent={(event) => {
48
+ if (event.type === 'click') {
49
+ handleClick();
50
+ }
51
+ }}>
52
+ ```
53
+
54
+ **New:** Standard R3F events work
55
+
56
+ ```tsx
57
+ // New - Standard events
58
+ <mesh
59
+ onClick={handleClick}
60
+ onPointerOver={handleHover}
61
+ onPointerOut={handleUnhover}
62
+ >
63
+ ```
64
+
65
+ ### 2. Postprocessing Works
66
+
67
+ **Old:** Postprocessing didn't work due to portal isolation
68
+
69
+ **New:** EffectComposer and all effects work
70
+
71
+ ```tsx
72
+ import { EffectComposer, Bloom, Glitch } from "@react-three/postprocessing";
73
+
74
+ <XRScene>
75
+ {/* Your content */}
76
+ <EffectComposer>
77
+ <Bloom intensity={0.5} />
78
+ <Glitch />
79
+ </EffectComposer>
80
+ </XRScene>;
81
+ ```
82
+
83
+ ### 3. All Drei Components Work
84
+
85
+ **Old:** Components like `Html`, `Text`, etc. had issues
86
+
87
+ **New:** All Drei components work correctly
88
+
89
+ ```tsx
90
+ import { Html, Text } from "@react-three/drei";
91
+
92
+ <HeadTracker>
93
+ <Html>
94
+ <div>HTML UI attached to face</div>
95
+ </Html>
96
+ <Text fontSize={0.5}>3D Text</Text>
97
+ </HeadTracker>;
98
+ ```
99
+
100
+ ### 4. Simpler Architecture
101
+
102
+ **Old:** Two cameras, portal system, manual rendering
103
+
104
+ **New:** Single camera, standard R3F rendering
105
+
106
+ ## Migration Steps
107
+
108
+ ## XRViewport Migration Direction
109
+
110
+ For new responsive apps, use `XRViewport` as app root and treat direct
111
+ `XRScene` usage as legacy-first.
112
+
113
+ ### Old API -> New API Mapping
114
+
115
+ - `XRScene` root -> `XRViewport mode="r3f"` or `mode="hybrid"`
116
+ - `XRScene` + separate DOM overlay -> `XRViewport mode="hybrid"`
117
+ - calibration/debug DOM preview -> `XRViewport mode="dom"`
118
+ - session-owned legacy media flow -> `XRViewport mediaStrategy="external"`
119
+ - viewport-owned new media flow -> `XRViewport mediaStrategy="internal"`
120
+ - `initialSource` / `initialImageId` / `initialVideoId` -> `source={{ kind, assetId }}`
121
+
122
+ ### Example
123
+
124
+ ```tsx
125
+ <XRProvider>
126
+ <XRViewport mode="r3f" mediaStrategy="external">
127
+ <XRViewport.Scene>
128
+ <PerspectiveCamera makeDefault position={[0, 0, 5]} fov={45} />
129
+ <VideoBackground />
130
+ <FaceTracker>{/* AR content */}</FaceTracker>
131
+ </XRViewport.Scene>
132
+ </XRViewport>
133
+ </XRProvider>
134
+ ```
135
+
136
+ ### Migration Gotchas
137
+
138
+ - `XRViewport mode="dom"` with `mediaStrategy="internal"` owns preview media itself. Do not also start a parallel session media source for same page.
139
+ - `XRViewport mode="r3f"` and `mode="hybrid"` can use `mediaStrategy="external"` while legacy pages still bootstrap session media separately.
140
+ - New responsive tracking flows should prefer direct frame/canvas input through viewport-managed internals instead of `captureStream()` bridges.
141
+ - During migration, keep one owner for media truth per page. Mixed ownership is where resize and mirror bugs appear.
142
+ - `mediaStrategy="external"` viewport state can still expose `faces` to overlay/scene slot consumers, but selected source kind should be passed through `source={{ kind: ... }}` for correct source-aware transforms.
143
+
144
+ ### Removal Criteria For Direct XRScene Entry
145
+
146
+ - old demos that matter must run under `XRViewport`
147
+ - calibration workflow must stay correct for webcam, image, and video
148
+ - resize must stay correct without refresh in viewport-owned flows
149
+ - docs/examples must point to `XRViewport` first
150
+
151
+ ### Step 1: Update Camera Setup
152
+
153
+ **Before:**
154
+
155
+ ```tsx
156
+ <XRScene>
157
+ <OrthographicCamera>
158
+ <SegmentationPlane alphaMask={mask} />
159
+ </OrthographicCamera>
160
+
161
+ <PerspectiveCamera>{/* AR content */}</PerspectiveCamera>
162
+ </XRScene>
163
+ ```
164
+
165
+ **After:**
166
+
167
+ ```tsx
168
+ import { PerspectiveCamera } from "@react-three/drei";
169
+
170
+ <XRScene>
171
+ <PerspectiveCamera makeDefault position={[0, 0, 5]} fov={45} />
172
+
173
+ <VideoBackground segmentationMask={mask} />
174
+
175
+ {/* AR content */}
176
+ </XRScene>;
177
+ ```
178
+
179
+ ### Step 2: Replace SegmentationPlane with VideoBackground
180
+
181
+ **Before:**
182
+
183
+ ```tsx
184
+ <OrthographicCamera>
185
+ <SegmentationPlane alphaMask={segmentationMask} backgroundColor="#6366f1" />
186
+ </OrthographicCamera>
187
+ ```
188
+
189
+ **After:**
190
+
191
+ ```tsx
192
+ <VideoBackground
193
+ segmentationMask={segmentationMask}
194
+ customBackground="#6366f1"
195
+ renderOrder={-999}
196
+ />
197
+ ```
198
+
199
+ ### Step 3: Update 2D UI to Use ScreenSpaceUI
200
+
201
+ **Before:**
202
+
203
+ ```tsx
204
+ // Manual positioning for 2D UI
205
+ <OrthographicCamera>
206
+ <Text position={[-5, 3, 0]} fontSize={0.15}>
207
+ Top Left Text
208
+ </Text>
209
+ </OrthographicCamera>
210
+ ```
211
+
212
+ **After:**
213
+
214
+ ```tsx
215
+ <ScreenSpaceUI>
216
+ <ScreenSpaceUI.TopLeft>
217
+ <Text fontSize={0.15} color="white" anchorX="left" anchorY="top">
218
+ Top Left Text
219
+ </Text>
220
+ </ScreenSpaceUI.TopLeft>
221
+ </ScreenSpaceUI>
222
+ ```
223
+
224
+ ### Step 4: Update Event Handlers
225
+
226
+ **Before:**
227
+
228
+ ```tsx
229
+ <mesh
230
+ onPointerEvent={(event) => {
231
+ if (event.type === 'click') {
232
+ setClickCount(prev => prev + 1);
233
+ }
234
+ if (event.type === 'pointerover') {
235
+ setHovered(true);
236
+ }
237
+ }}
238
+ >
239
+ ```
240
+
241
+ **After:**
242
+
243
+ ```tsx
244
+ <mesh
245
+ onClick={() => setClickCount(prev => prev + 1)}
246
+ onPointerOver={() => setHovered(true)}
247
+ onPointerOut={() => setHovered(false)}
248
+ >
249
+ ```
250
+
251
+ ### Step 5: Remove Manual Render Calls
252
+
253
+ **Before:**
254
+
255
+ ```tsx
256
+ // Manual render calls in useFrame
257
+ useFrame(({ gl, scene, camera }) => {
258
+ gl.render(scene, camera);
259
+ });
260
+ ```
261
+
262
+ **After:**
263
+
264
+ ```tsx
265
+ // No manual rendering needed - R3F handles it
266
+ useFrame(() => {
267
+ // Your frame logic
268
+ });
269
+ ```
270
+
271
+ ## Component Changes
272
+
273
+ ### VideoBackground
274
+
275
+ Replaces `SegmentationPlane` and renders the camera feed.
276
+
277
+ **Props:**
278
+
279
+ - `segmentationMask?: Texture` - Person segmentation mask
280
+ - `customBackground?: string | Texture` - Background color/texture
281
+ - `renderOrder?: number` - Render order (default: -999)
282
+
283
+ **Example:**
284
+
285
+ ```tsx
286
+ <VideoBackground segmentationMask={segmentationMask} customBackground="#6366f1" />
287
+ ```
288
+
289
+ ### ScreenSpaceUI
290
+
291
+ New component for 2D UI positioning with helper components.
292
+
293
+ **Helper Components:**
294
+
295
+ - `TopLeft`, `TopCenter`, `TopRight`
296
+ - `CenterLeft`, `Center`, `CenterRight`
297
+ - `BottomLeft`, `BottomCenter`, `BottomRight`
298
+
299
+ **Example:**
300
+
301
+ ```tsx
302
+ <ScreenSpaceUI>
303
+ <ScreenSpaceUI.TopLeft>
304
+ <Text>UI Element</Text>
305
+ </ScreenSpaceUI.TopLeft>
306
+ </ScreenSpaceUI>
307
+ ```
308
+
309
+ ### HeadTracker
310
+
311
+ No changes - works the same but now supports standard events.
312
+
313
+ **Example:**
314
+
315
+ ```tsx
316
+ <HeadTracker faceIndex={0}>
317
+ <mesh onClick={handleClick}>
318
+ <boxGeometry args={[1, 1, 1]} />
319
+ <meshStandardMaterial color="red" />
320
+ </mesh>
321
+ </HeadTracker>
322
+ ```
323
+
324
+ ## Breaking Changes
325
+
326
+ ### 1. OrthographicCamera Removed
327
+
328
+ **Impact:** High - Required for old architecture
329
+
330
+ **Migration:** Replace with `VideoBackground` for camera feed rendering
331
+
332
+ ### 2. SegmentationPlane Removed
333
+
334
+ **Impact:** High - Used for background effects
335
+
336
+ **Migration:** Use `VideoBackground` with `segmentationMask` prop
337
+
338
+ ### 3. Custom PerspectiveCamera Deprecated
339
+
340
+ **Impact:** Medium - Still works but deprecated
341
+
342
+ **Migration:** Use drei's `PerspectiveCamera` with `makeDefault`
343
+
344
+ ### 4. Manual Event Handling
345
+
346
+ **Impact:** Medium - Custom event system removed
347
+
348
+ **Migration:** Use standard R3F events (onClick, onPointerOver, etc.)
349
+
350
+ ### 5. Portal System
351
+
352
+ **Impact:** Low - Internal implementation detail
353
+
354
+ **Migration:** No action needed - automatically handled
355
+
356
+ ## Side-by-Side Comparison
357
+
358
+ ### Complete Old Example
359
+
360
+ ```tsx
361
+ import { useEffect, useState } from "react";
362
+ import {
363
+ XRProvider,
364
+ XRScene,
365
+ useXRContext,
366
+ OrthographicCamera,
367
+ PerspectiveCamera,
368
+ SegmentationPlane,
369
+ HeadTracker,
370
+ XRMediaSource,
371
+ XRModel,
372
+ } from "@vincentt-xr/sdk";
373
+
374
+ const Content = () => {
375
+ const { session } = useXRContext();
376
+ const [segmentationMask, setSegmentationMask] = useState();
377
+
378
+ useEffect(() => {
379
+ const initSession = async () => {
380
+ await session.setMediaSource({ source: XRMediaSource.WEBCAM });
381
+ await session.registerXRPipeline([
382
+ { model: XRModel.FACE_TRACKER },
383
+ { model: XRModel.BACKGROUND_SEGMENTATION },
384
+ ]);
385
+ await session.start();
386
+ };
387
+ initSession();
388
+ }, []);
389
+
390
+ useEffect(() => {
391
+ if (session.ready) {
392
+ const segNode = session.getModelNode(XRModel.BACKGROUND_SEGMENTATION);
393
+ setSegmentationMask(segNode?.backgroundSegmentationMask);
394
+ }
395
+ }, [session.ready]);
396
+
397
+ return (
398
+ <XRScene>
399
+ {/* Old: Two cameras with portal isolation */}
400
+ <OrthographicCamera>
401
+ <SegmentationPlane alphaMask={segmentationMask} backgroundColor="#6366f1" />
402
+ </OrthographicCamera>
403
+
404
+ <PerspectiveCamera>
405
+ <ambientLight intensity={1} />
406
+
407
+ {/* Old: Custom event handling */}
408
+ <HeadTracker>
409
+ <mesh
410
+ onPointerEvent={(event) => {
411
+ if (event.type === "click") {
412
+ console.log("Clicked!");
413
+ }
414
+ }}
415
+ >
416
+ <boxGeometry args={[1, 1, 1]} />
417
+ <meshStandardMaterial color="red" />
418
+ </mesh>
419
+ </HeadTracker>
420
+ </PerspectiveCamera>
421
+ </XRScene>
422
+ );
423
+ };
424
+
425
+ export default function App() {
426
+ return (
427
+ <XRProvider>
428
+ <Content />
429
+ </XRProvider>
430
+ );
431
+ }
432
+ ```
433
+
434
+ ### Complete New Example
435
+
436
+ ```tsx
437
+ import { PerspectiveCamera } from "@react-three/drei";
438
+ import { useEffect, useState } from "react";
439
+ import { Texture } from "three";
440
+ import {
441
+ XRProvider,
442
+ XRScene,
443
+ useXRContext,
444
+ VideoBackground,
445
+ HeadTracker,
446
+ ScreenSpaceUI,
447
+ XRMediaSource,
448
+ XRModel,
449
+ XRModelNodeSegmentation,
450
+ } from "@vincentt-xr/sdk";
451
+
452
+ const Content = () => {
453
+ const { session } = useXRContext();
454
+ const [segmentationMask, setSegmentationMask] = useState<Texture | undefined>();
455
+
456
+ useEffect(() => {
457
+ const initSession = async () => {
458
+ await session.setMediaSource({ source: XRMediaSource.WEBCAM });
459
+ await session.registerXRPipeline([
460
+ { model: XRModel.FACE_TRACKER },
461
+ { model: XRModel.BACKGROUND_SEGMENTATION },
462
+ ]);
463
+ await session.start();
464
+ };
465
+ initSession();
466
+ }, []);
467
+
468
+ useEffect(() => {
469
+ if (session.ready) {
470
+ const segNode = session.getModelNode<XRModelNodeSegmentation>(
471
+ XRModel.BACKGROUND_SEGMENTATION,
472
+ );
473
+ setSegmentationMask(segNode?.backgroundSegmentationMask);
474
+ }
475
+ }, [session.ready]);
476
+
477
+ return (
478
+ <XRScene>
479
+ {/* New: Single camera from drei */}
480
+ <PerspectiveCamera makeDefault position={[0, 0, 5]} fov={45} />
481
+
482
+ {/* New: VideoBackground component */}
483
+ <VideoBackground segmentationMask={segmentationMask} customBackground="#6366f1" />
484
+
485
+ <ambientLight intensity={1} />
486
+
487
+ {/* New: Standard R3F events work */}
488
+ <HeadTracker>
489
+ <mesh onClick={() => console.log("Clicked!")}>
490
+ <boxGeometry args={[1, 1, 1]} />
491
+ <meshStandardMaterial color="red" />
492
+ </mesh>
493
+ </HeadTracker>
494
+
495
+ {/* New: ScreenSpaceUI for 2D UI */}
496
+ <ScreenSpaceUI>
497
+ <ScreenSpaceUI.TopLeft>
498
+ <Text fontSize={0.15} color="white">
499
+ Click the box!
500
+ </Text>
501
+ </ScreenSpaceUI.TopLeft>
502
+ </ScreenSpaceUI>
503
+ </XRScene>
504
+ );
505
+ };
506
+
507
+ export default function App() {
508
+ return (
509
+ <XRProvider>
510
+ <Content />
511
+ </XRProvider>
512
+ );
513
+ }
514
+ ```
515
+
516
+ ## Common Migration Issues
517
+
518
+ ### Issue 1: Events Not Working
519
+
520
+ **Problem:** Click events not firing after migration
521
+
522
+ **Solution:** Make sure you're using drei's `PerspectiveCamera` with `makeDefault`:
523
+
524
+ ```tsx
525
+ import { PerspectiveCamera } from "@react-three/drei";
526
+
527
+ <PerspectiveCamera makeDefault position={[0, 0, 5]} fov={45} />;
528
+ ```
529
+
530
+ ### Issue 2: UI Elements Not Visible
531
+
532
+ **Problem:** Screen-space UI not appearing
533
+
534
+ **Solution:** Use `material-depthTest={false}` and proper `renderOrder`:
535
+
536
+ ```tsx
537
+ <ScreenSpaceUI>
538
+ <ScreenSpaceUI.TopLeft>
539
+ <Text material-depthTest={false} renderOrder={999}>
540
+ UI Text
541
+ </Text>
542
+ </ScreenSpaceUI.TopLeft>
543
+ </ScreenSpaceUI>
544
+ ```
545
+
546
+ ### Issue 3: Video Background Not Showing
547
+
548
+ **Problem:** Camera feed not rendering
549
+
550
+ **Solution:** Ensure `VideoBackground` is placed before other content and has correct `renderOrder`:
551
+
552
+ ```tsx
553
+ <VideoBackground renderOrder={-999} />
554
+ ```
555
+
556
+ ### Issue 4: Postprocessing Not Working
557
+
558
+ **Problem:** Effects not applying to scene
559
+
560
+ **Solution:** Make sure `EffectComposer` is inside `XRScene` and using drei's camera:
561
+
562
+ ```tsx
563
+ import { EffectComposer, Bloom } from "@react-three/postprocessing";
564
+ import { PerspectiveCamera } from "@react-three/drei";
565
+
566
+ <XRScene>
567
+ <PerspectiveCamera makeDefault position={[0, 0, 5]} fov={45} />
568
+ {/* Your content */}
569
+ <EffectComposer>
570
+ <Bloom intensity={0.5} />
571
+ </EffectComposer>
572
+ </XRScene>;
573
+ ```
574
+
575
+ ## Need Help?
576
+
577
+ If you encounter issues during migration:
578
+
579
+ 1. Check the [Getting Started Guide](./GETTING_STARTED.md) for complete API reference
580
+ 2. Review the example in `example/src/pages/UnifiedArchitecture`
581
+ 3. Ensure you're using the correct peer dependency versions:
582
+ - `@react-three/fiber`: `8.18.0`
583
+ - `@react-three/drei`: `9.105.6`
584
+ - `three`: `0.173.0`
585
+
586
+ ---
587
+
588
+ **Migration Date:** January 2025
589
+ **SDK Version:** 2.0.0+