@relu-interactives/spatial-ecs 0.5.2 → 0.8.0

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 (511) hide show
  1. package/dist/{System-V_mv07le.d.cts → System-8D-XBDKZ.d.cts} +734 -8
  2. package/dist/{System-V_mv07le.d.ts → System-DPMAW30g.d.ts} +734 -8
  3. package/dist/{XRHandPose-CU3vNFuS.d.ts → XRHandPose-G0Dl-F0w.d.ts} +93 -3
  4. package/dist/{XRHandPose-CQTLGxFC.d.cts → XRHandPose-VQMT1WXj.d.cts} +93 -3
  5. package/dist/animation/index.cjs +252 -0
  6. package/dist/animation/index.cjs.map +1 -0
  7. package/dist/animation/index.d.cts +100 -0
  8. package/dist/animation/index.d.ts +100 -0
  9. package/dist/animation/index.js +4 -0
  10. package/dist/animation/index.js.map +1 -0
  11. package/dist/chunk-CKTHDXPS.js +11 -0
  12. package/dist/chunk-CKTHDXPS.js.map +1 -0
  13. package/dist/chunk-G4XJ53LS.js +1237 -0
  14. package/dist/chunk-G4XJ53LS.js.map +1 -0
  15. package/dist/chunk-GSWC6LLD.js +241 -0
  16. package/dist/chunk-GSWC6LLD.js.map +1 -0
  17. package/dist/{chunk-DF5SSRN6.js → chunk-JIJQFW6P.js} +1216 -2920
  18. package/dist/chunk-JIJQFW6P.js.map +1 -0
  19. package/dist/{chunk-BUEKOSR5.js → chunk-NNDUOQ7O.js} +188 -14
  20. package/dist/chunk-NNDUOQ7O.js.map +1 -0
  21. package/dist/chunk-OHCNPPMX.js +334 -0
  22. package/dist/chunk-OHCNPPMX.js.map +1 -0
  23. package/dist/{chunk-RXBLOO5B.js → chunk-SGF73YTF.js} +105 -715
  24. package/dist/chunk-SGF73YTF.js.map +1 -0
  25. package/dist/chunk-U727NTWQ.js +2856 -0
  26. package/dist/chunk-U727NTWQ.js.map +1 -0
  27. package/dist/{chunk-OY7ZODZP.js → chunk-XE4OXN2W.js} +3 -9
  28. package/dist/chunk-XE4OXN2W.js.map +1 -0
  29. package/dist/{chunk-OWQSESTO.js → chunk-XU2DVWCP.js} +4 -3
  30. package/dist/chunk-XU2DVWCP.js.map +1 -0
  31. package/dist/components/index.cjs +183 -10
  32. package/dist/components/index.cjs.map +1 -1
  33. package/dist/components/index.d.cts +5 -3
  34. package/dist/components/index.d.ts +5 -3
  35. package/dist/components/index.js +3 -2
  36. package/dist/docs/api/Behaviour/classes/Behaviour.md +366 -79
  37. package/dist/docs/api/Behaviour/index.md +7 -3
  38. package/dist/docs/api/Behaviour/type-aliases/UiInteractionEvent.md +35 -0
  39. package/dist/docs/api/Component/classes/Component.md +14 -1
  40. package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
  41. package/dist/docs/api/components/classes/AudioComponent.md +19 -19
  42. package/dist/docs/api/components/classes/CameraComponent.md +14 -14
  43. package/dist/docs/api/components/classes/EntityType.md +4 -4
  44. package/dist/docs/api/components/classes/Environment.md +5 -4
  45. package/dist/docs/api/components/classes/ImageComponent.md +7 -7
  46. package/dist/docs/api/components/classes/ImageTarget.md +8 -8
  47. package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
  48. package/dist/docs/api/components/classes/InstanceSlotComponent.md +4 -4
  49. package/dist/docs/api/components/classes/InstancedMeshComponent.md +10 -10
  50. package/dist/docs/api/components/classes/LightComponent.md +6 -6
  51. package/dist/docs/api/components/classes/MaterialComponent.md +16 -16
  52. package/dist/docs/api/components/classes/MeshComponent.md +3 -3
  53. package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
  54. package/dist/docs/api/components/classes/ModelComponent.md +8 -5
  55. package/dist/docs/api/components/classes/Name.md +3 -3
  56. package/dist/docs/api/components/classes/Object3DRef.md +4 -4
  57. package/dist/docs/api/components/classes/ParentId.md +3 -3
  58. package/dist/docs/api/components/classes/PhysicsComponent.md +7 -6
  59. package/dist/docs/api/components/classes/Postprocessing.md +3 -3
  60. package/dist/docs/api/components/classes/PrefabInstance.md +5 -5
  61. package/dist/docs/api/components/classes/PrefabNode.md +3 -3
  62. package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
  63. package/dist/docs/api/components/classes/ScriptObjectComponent.md +9 -9
  64. package/dist/docs/api/components/classes/Selectable.md +3 -3
  65. package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
  66. package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
  67. package/dist/docs/api/components/classes/TransformComponent.md +12 -12
  68. package/dist/docs/api/components/classes/UIButtonComponent.md +63 -0
  69. package/dist/docs/api/components/classes/UIPanelComponent.md +62 -0
  70. package/dist/docs/api/components/classes/UISliderComponent.md +59 -0
  71. package/dist/docs/api/components/classes/UITextComponent.md +59 -0
  72. package/dist/docs/api/components/classes/UIToggleComponent.md +56 -0
  73. package/dist/docs/api/components/classes/VRTeleportAreaComponent.md +53 -0
  74. package/dist/docs/api/components/classes/VideoComponent.md +28 -28
  75. package/dist/docs/api/components/classes/XRAnchorComponent.md +64 -0
  76. package/dist/docs/api/components/classes/XREnvironmentComponent.md +64 -0
  77. package/dist/docs/api/components/classes/XRHandPoseComponent.md +50 -0
  78. package/dist/docs/api/components/classes/XRInteractableComponent.md +74 -0
  79. package/dist/docs/api/components/classes/XRInteractorComponent.md +57 -0
  80. package/dist/docs/api/components/classes/XRInteractorSideComponent.md +50 -0
  81. package/dist/docs/api/components/classes/XRRigComponent.md +68 -0
  82. package/dist/docs/api/components/functions/createAttachPoint.md +25 -0
  83. package/dist/docs/api/components/functions/createHandPoseEntry.md +25 -0
  84. package/dist/docs/api/components/functions/defaultMaterialValue.md +1 -1
  85. package/dist/docs/api/components/functions/handPoseDefinitionFor.md +33 -0
  86. package/dist/docs/api/components/functions/normalizeEnvironmentLighting.md +30 -0
  87. package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
  88. package/dist/docs/api/components/functions/setModelLoadState.md +33 -0
  89. package/dist/docs/api/components/functions/setPhysicsLiveRef.md +3 -9
  90. package/dist/docs/api/components/index.md +61 -4
  91. package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
  92. package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
  93. package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
  94. package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +5 -3
  95. package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
  96. package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
  97. package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
  98. package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
  99. package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
  100. package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
  101. package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
  102. package/dist/docs/api/components/type-aliases/EnvironmentLightingState.md +40 -0
  103. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxImageProjection.md +22 -0
  104. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +9 -7
  105. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
  106. package/dist/docs/api/components/type-aliases/EnvironmentState.md +7 -5
  107. package/dist/docs/api/components/type-aliases/EnvironmentToneMapping.md +16 -0
  108. package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
  109. package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
  110. package/dist/docs/api/components/type-aliases/InstanceTransform.md +13 -13
  111. package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +1 -1
  112. package/dist/docs/api/components/type-aliases/LightShadowState.md +37 -0
  113. package/dist/docs/api/components/type-aliases/LightValueState.md +13 -11
  114. package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
  115. package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
  116. package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
  117. package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
  118. package/dist/docs/api/components/type-aliases/ModelLoadState.md +15 -0
  119. package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
  120. package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
  121. package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
  122. package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
  123. package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
  124. package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
  125. package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
  126. package/dist/docs/api/components/type-aliases/ScriptEntry.md +8 -8
  127. package/dist/docs/api/components/type-aliases/ScriptObjectComponentInput.md +1 -1
  128. package/dist/docs/api/components/type-aliases/ScriptObjectRuntimeState.md +1 -1
  129. package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
  130. package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
  131. package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
  132. package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
  133. package/dist/docs/api/components/type-aliases/UIButtonOptions.md +45 -0
  134. package/dist/docs/api/components/type-aliases/UIPanelOptions.md +39 -0
  135. package/dist/docs/api/components/type-aliases/UISliderOptions.md +39 -0
  136. package/dist/docs/api/components/type-aliases/UITextOptions.md +41 -0
  137. package/dist/docs/api/components/type-aliases/UIToggleOptions.md +35 -0
  138. package/dist/docs/api/components/type-aliases/UiFollowMode.md +15 -0
  139. package/dist/docs/api/components/type-aliases/UiTextAlign.md +13 -0
  140. package/dist/docs/api/components/type-aliases/UiTextVAlign.md +13 -0
  141. package/dist/docs/api/components/type-aliases/VRTeleportAreaOptions.md +29 -0
  142. package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
  143. package/dist/docs/api/components/type-aliases/VrTeleportShape.md +15 -0
  144. package/dist/docs/api/components/type-aliases/XRAnchorOptions.md +23 -0
  145. package/dist/docs/api/components/type-aliases/XRHandPoseOptions.md +23 -0
  146. package/dist/docs/api/components/type-aliases/XRInteractableOptions.md +75 -0
  147. package/dist/docs/api/components/type-aliases/XRInteractorOptions.md +37 -0
  148. package/dist/docs/api/components/type-aliases/XRRigOptions.md +51 -0
  149. package/dist/docs/api/components/type-aliases/XrAttachPoint.md +53 -0
  150. package/dist/docs/api/components/type-aliases/XrDistanceGrabBehavior.md +19 -0
  151. package/dist/docs/api/components/type-aliases/XrEnvironmentKind.md +15 -0
  152. package/dist/docs/api/components/type-aliases/XrEnvironmentOrientation.md +15 -0
  153. package/dist/docs/api/components/type-aliases/XrEnvironmentPhysics.md +25 -0
  154. package/dist/docs/api/components/type-aliases/XrGrabGesture.md +19 -0
  155. package/dist/docs/api/components/type-aliases/XrGrabHands.md +20 -0
  156. package/dist/docs/api/components/type-aliases/XrGrabReach.md +20 -0
  157. package/dist/docs/api/components/type-aliases/XrHandPoseEntry.md +49 -0
  158. package/dist/docs/api/components/type-aliases/XrHandPreset.md +19 -0
  159. package/dist/docs/api/components/type-aliases/XrInteractorSide.md +15 -0
  160. package/dist/docs/api/components/type-aliases/XrInteractorType.md +13 -0
  161. package/dist/docs/api/components/type-aliases/XrLocomotionMode.md +15 -0
  162. package/dist/docs/api/components/type-aliases/XrTrackingOrigin.md +24 -0
  163. package/dist/docs/api/components/type-aliases/XrTwoHandRotation.md +15 -0
  164. package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
  165. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_LIGHTING.md +15 -0
  166. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
  167. package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +1 -1
  168. package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +1 -1
  169. package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
  170. package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
  171. package/dist/docs/api/components/variables/DEFAULT_POSE_CURLS.md +13 -0
  172. package/dist/docs/api/components/variables/DEFAULT_POSE_DIRECTIONS.md +13 -0
  173. package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
  174. package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
  175. package/dist/docs/api/components/variables/MODEL_NO_PATH_MESSAGE.md +15 -0
  176. package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
  177. package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
  178. package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
  179. package/dist/docs/api/index/classes/AudioSystem.md +4 -4
  180. package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
  181. package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +19 -4
  182. package/dist/docs/api/index/classes/HandPoseTracker.md +114 -0
  183. package/dist/docs/api/index/classes/InputSystem.md +33 -33
  184. package/dist/docs/api/index/classes/InstancedMeshSystem.md +2 -2
  185. package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
  186. package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
  187. package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
  188. package/dist/docs/api/index/classes/ObjectManagementSystem.md +14 -14
  189. package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
  190. package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
  191. package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +34 -10
  192. package/dist/docs/api/index/classes/RenderSystem.md +13 -4
  193. package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +9 -5
  194. package/dist/docs/api/index/classes/ScriptObject.md +10 -10
  195. package/dist/docs/api/index/classes/ScriptObjectSystem.md +6 -6
  196. package/dist/docs/api/index/classes/TeleportAimGate.md +114 -0
  197. package/dist/docs/api/index/classes/ThrowVelocityTracker.md +89 -0
  198. package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
  199. package/dist/docs/api/index/classes/UIInteractionSystem.md +60 -0
  200. package/dist/docs/api/index/classes/UIPanelSystem.md +79 -0
  201. package/dist/docs/api/index/classes/VRTeleportAreaSystem.md +49 -0
  202. package/dist/docs/api/index/classes/VideoSystem.md +8 -6
  203. package/dist/docs/api/index/classes/World.md +282 -100
  204. package/dist/docs/api/index/classes/XRAnchorSystem.md +90 -0
  205. package/dist/docs/api/index/classes/XRControllerVisualSystem.md +77 -0
  206. package/dist/docs/api/index/classes/XREnvironmentSystem.md +137 -0
  207. package/dist/docs/api/index/classes/XRHandPoseSystem.md +107 -0
  208. package/dist/docs/api/index/classes/XRHitTestSystem.md +93 -0
  209. package/dist/docs/api/index/classes/XRHoverVisualSystem.md +76 -0
  210. package/dist/docs/api/index/classes/XRInputSystem.md +189 -0
  211. package/dist/docs/api/index/classes/XRInteractionSystem.md +323 -0
  212. package/dist/docs/api/index/classes/XRLocomotionSystem.md +128 -0
  213. package/dist/docs/api/index/classes/XRSessionSystem.md +116 -0
  214. package/dist/docs/api/index/classes/XRTeleportVisualSystem.md +75 -0
  215. package/dist/docs/api/index/functions/angularVelocityFrom.md +33 -0
  216. package/dist/docs/api/index/functions/applyHandMaterial.md +26 -0
  217. package/dist/docs/api/index/functions/applyPrefabToSnapshotInstances.md +1 -1
  218. package/dist/docs/api/index/functions/arcGroundCrossing.md +30 -0
  219. package/dist/docs/api/index/functions/buildComponentValueMaps.md +1 -1
  220. package/dist/docs/api/index/functions/buildNodeKeyMapsFromSnapshot.md +1 -1
  221. package/dist/docs/api/index/functions/buildNodeMapsFromSnapshot.md +1 -1
  222. package/dist/docs/api/index/functions/canonicalizeComponentValue.md +1 -1
  223. package/dist/docs/api/index/functions/clearModelCache.md +1 -1
  224. package/dist/docs/api/index/functions/clearPrefabCache.md +1 -1
  225. package/dist/docs/api/index/functions/cloneHandPose.md +23 -0
  226. package/dist/docs/api/index/functions/collectDiffPaths.md +1 -1
  227. package/dist/docs/api/index/functions/collectDirectPrefabDependencies.md +1 -1
  228. package/dist/docs/api/index/functions/collectEntitySubtree.md +1 -1
  229. package/dist/docs/api/index/functions/collectSnapshotSubtreeIds.md +1 -1
  230. package/dist/docs/api/index/functions/computeFingerCurl.md +29 -0
  231. package/dist/docs/api/index/functions/computeHandShape.md +29 -0
  232. package/dist/docs/api/index/functions/computeInstanceOverrides.md +1 -1
  233. package/dist/docs/api/index/functions/computePalmPose.md +30 -0
  234. package/dist/docs/api/index/functions/computePalmWidth.md +25 -0
  235. package/dist/docs/api/index/functions/computePinch.md +29 -0
  236. package/dist/docs/api/index/functions/computeSpread.md +33 -0
  237. package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
  238. package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
  239. package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
  240. package/dist/docs/api/index/functions/createEntityTypeComponent.md +2 -2
  241. package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
  242. package/dist/docs/api/index/functions/createHandMaterial.md +30 -0
  243. package/dist/docs/api/index/functions/createImageComponent.md +1 -1
  244. package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
  245. package/dist/docs/api/index/functions/createImageTargetComponent.md +2 -2
  246. package/dist/docs/api/index/functions/createInstanceSlotComponent.md +1 -1
  247. package/dist/docs/api/index/functions/createInstancedMeshComponent.md +1 -1
  248. package/dist/docs/api/index/functions/createLightComponent.md +2 -2
  249. package/dist/docs/api/index/functions/createMaterialComponent.md +2 -2
  250. package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
  251. package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
  252. package/dist/docs/api/index/functions/createModelComponent.md +1 -1
  253. package/dist/docs/api/index/functions/createNameComponent.md +1 -1
  254. package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
  255. package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
  256. package/dist/docs/api/index/functions/createPhysicsComponent.md +1 -1
  257. package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
  258. package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
  259. package/dist/docs/api/index/functions/createScriptObjectComponent.md +1 -1
  260. package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
  261. package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
  262. package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
  263. package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
  264. package/dist/docs/api/index/functions/createUIButtonComponent.md +28 -0
  265. package/dist/docs/api/index/functions/createUIPanelComponent.md +28 -0
  266. package/dist/docs/api/index/functions/createUISliderComponent.md +28 -0
  267. package/dist/docs/api/index/functions/createUITextComponent.md +28 -0
  268. package/dist/docs/api/index/functions/createUIToggleComponent.md +28 -0
  269. package/dist/docs/api/index/functions/createVRTeleportAreaComponent.md +28 -0
  270. package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
  271. package/dist/docs/api/index/functions/createXRAnchorComponent.md +28 -0
  272. package/dist/docs/api/index/functions/createXRHandPoseComponent.md +28 -0
  273. package/dist/docs/api/index/functions/createXRInteractableComponent.md +28 -0
  274. package/dist/docs/api/index/functions/createXRInteractorComponent.md +28 -0
  275. package/dist/docs/api/index/functions/createXRInteractorSideComponent.md +28 -0
  276. package/dist/docs/api/index/functions/createXRRigComponent.md +28 -0
  277. package/dist/docs/api/index/functions/decanonicalizeComponentValue.md +1 -1
  278. package/dist/docs/api/index/functions/despawnPrefab.md +1 -1
  279. package/dist/docs/api/index/functions/encodeOverride.md +1 -1
  280. package/dist/docs/api/index/functions/estimateHandScale.md +28 -0
  281. package/dist/docs/api/index/functions/findSnapshotRootEntityIds.md +1 -1
  282. package/dist/docs/api/index/functions/findTopLevelNestedRegions.md +1 -1
  283. package/dist/docs/api/index/functions/getHandPosePreset.md +31 -0
  284. package/dist/docs/api/index/functions/groupOverridePaths.md +1 -1
  285. package/dist/docs/api/index/functions/handPoseFromCurls.md +42 -0
  286. package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
  287. package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +1 -1
  288. package/dist/docs/api/index/functions/indexSnapshotByEntity.md +1 -1
  289. package/dist/docs/api/index/functions/instantiateSubtree.md +1 -1
  290. package/dist/docs/api/index/functions/loadPrefab.md +1 -1
  291. package/dist/docs/api/index/functions/loadSharedGltf.md +1 -1
  292. package/dist/docs/api/index/functions/matchHandPose.md +34 -0
  293. package/dist/docs/api/index/functions/mergeComponentValue.md +1 -1
  294. package/dist/docs/api/index/functions/parseOverride.md +1 -1
  295. package/dist/docs/api/index/functions/parsePrefabAsset.md +1 -1
  296. package/dist/docs/api/index/functions/prefabFileVersionFor.md +1 -1
  297. package/dist/docs/api/index/functions/readXrCapabilities.md +30 -0
  298. package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
  299. package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
  300. package/dist/docs/api/index/functions/remapSnapshotEntityIds.md +3 -3
  301. package/dist/docs/api/index/functions/resolveDracoDecoderPath.md +1 -1
  302. package/dist/docs/api/index/functions/restoreComponentState.md +1 -1
  303. package/dist/docs/api/index/functions/restorePostCreateComponents.md +1 -1
  304. package/dist/docs/api/index/functions/sampleTeleportArc.md +40 -0
  305. package/dist/docs/api/index/functions/serializeEntitySubtree.md +1 -1
  306. package/dist/docs/api/index/functions/setDracoDecoderPath.md +1 -1
  307. package/dist/docs/api/index/functions/setPrefabAssetUrlResolver.md +1 -1
  308. package/dist/docs/api/index/functions/spawnPrefab.md +1 -1
  309. package/dist/docs/api/index/index.md +116 -4
  310. package/dist/docs/api/index/interfaces/ChromaKeyOptions.md +20 -0
  311. package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
  312. package/dist/docs/api/index/interfaces/PostprocessingBuildContext.md +21 -0
  313. package/dist/docs/api/index/interfaces/PostprocessingPipeline.md +84 -0
  314. package/dist/docs/api/index/interfaces/RenderBackend.md +168 -0
  315. package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
  316. package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
  317. package/dist/docs/api/index/type-aliases/ApplyPrefabToSnapshotResult.md +3 -3
  318. package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
  319. package/dist/docs/api/index/type-aliases/ComponentValueMaps.md +50 -26
  320. package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +14 -2
  321. package/dist/docs/api/index/type-aliases/EcsRenderer.md +17 -0
  322. package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
  323. package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
  324. package/dist/docs/api/index/type-aliases/ExternalRefWarning.md +5 -5
  325. package/dist/docs/api/index/type-aliases/HandMaterialOptions.md +32 -0
  326. package/dist/docs/api/index/type-aliases/HandPoseTrackerOptions.md +27 -0
  327. package/dist/docs/api/index/type-aliases/HydrateOptions.md +3 -3
  328. package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +4 -4
  329. package/dist/docs/api/index/type-aliases/InstantiateSubtreeResult.md +3 -3
  330. package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
  331. package/dist/docs/api/index/type-aliases/ModuleLoader.md +1 -1
  332. package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
  333. package/dist/docs/api/index/type-aliases/NestedRegion.md +5 -5
  334. package/dist/docs/api/index/type-aliases/NodeKeyMaps.md +5 -5
  335. package/dist/docs/api/index/type-aliases/NodeMaps.md +4 -4
  336. package/dist/docs/api/index/type-aliases/PrefabAsset.md +5 -5
  337. package/dist/docs/api/index/type-aliases/RemapSnapshotOptions.md +2 -2
  338. package/dist/docs/api/index/type-aliases/RendererKind.md +15 -0
  339. package/dist/docs/api/index/type-aliases/ScriptBehaviourSystemOptions.md +23 -0
  340. package/dist/docs/api/index/type-aliases/ScriptErrorEvent.md +39 -0
  341. package/dist/docs/api/index/type-aliases/ScriptErrorListener.md +25 -0
  342. package/dist/docs/api/index/type-aliases/ScriptErrorPhase.md +28 -0
  343. package/dist/docs/api/index/type-aliases/ScriptErrorReport.md +31 -0
  344. package/dist/docs/api/index/type-aliases/ScriptErrorSource.md +15 -0
  345. package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
  346. package/dist/docs/api/index/type-aliases/SerializeEntitySubtreeResult.md +4 -4
  347. package/dist/docs/api/index/type-aliases/SpawnPrefabOptions.md +5 -5
  348. package/dist/docs/api/index/type-aliases/SpawnPrefabSource.md +1 -1
  349. package/dist/docs/api/index/type-aliases/SubtreeSnapshot.md +3 -3
  350. package/dist/docs/api/index/type-aliases/UiCanvasLike.md +46 -0
  351. package/dist/docs/api/index/type-aliases/VelocitySample.md +23 -0
  352. package/dist/docs/api/index/type-aliases/XrCapabilities.md +41 -0
  353. package/dist/docs/api/index/type-aliases/XrFinger.md +13 -0
  354. package/dist/docs/api/index/type-aliases/XrFingerCurl.md +27 -0
  355. package/dist/docs/api/index/type-aliases/XrFingerTarget.md +31 -0
  356. package/dist/docs/api/index/type-aliases/XrHandJointName.md +40 -0
  357. package/dist/docs/api/index/type-aliases/XrHandJoints.md +18 -0
  358. package/dist/docs/api/index/type-aliases/XrHandPoseAxis.md +15 -0
  359. package/dist/docs/api/index/type-aliases/XrHandPoseContext.md +23 -0
  360. package/dist/docs/api/index/type-aliases/XrHandPoseDefinition.md +47 -0
  361. package/dist/docs/api/index/type-aliases/XrHandPoseDirection.md +21 -0
  362. package/dist/docs/api/index/type-aliases/XrHandPoseEvent.md +13 -0
  363. package/dist/docs/api/index/type-aliases/XrHandPoseEventDetail.md +27 -0
  364. package/dist/docs/api/index/type-aliases/XrHandPoseMatch.md +25 -0
  365. package/dist/docs/api/index/type-aliases/XrHandPoseOrientation.md +25 -0
  366. package/dist/docs/api/index/type-aliases/XrHandShape.md +46 -0
  367. package/dist/docs/api/index/type-aliases/XrHandedness.md +15 -0
  368. package/dist/docs/api/index/type-aliases/XrHitResult.md +25 -0
  369. package/dist/docs/api/index/type-aliases/XrInputKind.md +19 -0
  370. package/dist/docs/api/index/type-aliases/XrInputState.md +60 -0
  371. package/dist/docs/api/index/type-aliases/XrPalmPose.md +31 -0
  372. package/dist/docs/api/index/variables/ADDED_NODE_MARKER_COMPONENT.md +2 -2
  373. package/dist/docs/api/index/variables/ARC_GRAVITY.md +15 -0
  374. package/dist/docs/api/index/variables/ARC_MAX_TIME.md +15 -0
  375. package/dist/docs/api/index/variables/ARC_SPEED.md +15 -0
  376. package/dist/docs/api/index/variables/ARC_STEPS.md +15 -0
  377. package/dist/docs/api/index/variables/CURLED_COS.md +13 -0
  378. package/dist/docs/api/index/variables/DEFAULT_DIRECTION_TOLERANCE.md +15 -0
  379. package/dist/docs/api/index/variables/DEFAULT_ENTER_CONFIDENCE.md +13 -0
  380. package/dist/docs/api/index/variables/DEFAULT_EXIT_CONFIDENCE.md +13 -0
  381. package/dist/docs/api/index/variables/DEFAULT_LOST_GRACE_SECONDS.md +13 -0
  382. package/dist/docs/api/index/variables/DEFAULT_MIN_HOLD_SECONDS.md +13 -0
  383. package/dist/docs/api/index/variables/DEFAULT_SCRIPT_ERROR_RETRY_DELAY.md +17 -0
  384. package/dist/docs/api/index/variables/FALLBACK_HAND_SCALE.md +15 -0
  385. package/dist/docs/api/index/variables/HAND_POSE_PRESETS.md +19 -0
  386. package/dist/docs/api/index/variables/HAND_POSE_PRESET_IDS.md +15 -0
  387. package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
  388. package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
  389. package/dist/docs/api/index/variables/MATCH_FALLOFF.md +15 -0
  390. package/dist/docs/api/index/variables/MAX_PLAUSIBLE_SPEED.md +25 -0
  391. package/dist/docs/api/index/variables/MAX_SAMPLE_AGE_SECONDS.md +18 -0
  392. package/dist/docs/api/index/variables/NODE_KEY_SEPARATOR.md +1 -1
  393. package/dist/docs/api/index/variables/NO_XR_CAPABILITIES.md +15 -0
  394. package/dist/docs/api/index/variables/OVERRIDE_DIFF_EXCLUDED_COMPONENTS.md +1 -1
  395. package/dist/docs/api/index/variables/OVERRIDE_ROOT_EXCLUDED_COMPONENTS.md +1 -1
  396. package/dist/docs/api/index/variables/PINCH_FINGERS.md +15 -0
  397. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION.md +1 -1
  398. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION_NESTED.md +1 -1
  399. package/dist/docs/api/index/variables/SCRIPT_OBJECT_ROOT_FLAG.md +1 -1
  400. package/dist/docs/api/index/variables/SHARED_MODEL_RESOURCE_FLAG.md +1 -1
  401. package/dist/docs/api/index/variables/STRAIGHT_COS.md +19 -0
  402. package/dist/docs/api/index/variables/VELOCITY_SAMPLES.md +15 -0
  403. package/dist/docs/api/index/variables/XR_FINGERS.md +13 -0
  404. package/dist/docs/api/index/variables/XR_HOVER_SHELL_FLAG.md +15 -0
  405. package/dist/docs/api/index/variables/webglBackend.md +16 -0
  406. package/dist/docs/api/typedoc-sidebar.json +1 -1
  407. package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
  408. package/dist/docs/api/types/type-aliases/CheckboxInput.md +3 -3
  409. package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
  410. package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
  411. package/dist/docs/api/types/type-aliases/ComponentKind.md +1 -1
  412. package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
  413. package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
  414. package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
  415. package/dist/docs/api/types/type-aliases/EcsEntityKind.md +10 -2
  416. package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
  417. package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
  418. package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
  419. package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
  420. package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
  421. package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
  422. package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
  423. package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
  424. package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
  425. package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
  426. package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
  427. package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
  428. package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
  429. package/dist/docs/guide/audio-mixing-and-sound-banks.md +71 -0
  430. package/dist/docs/guide/authoring-a-behaviour.md +3 -3
  431. package/dist/docs/guide/authoring-a-script-object.md +12 -9
  432. package/dist/docs/guide/behaviour-data-binding/index.md +11 -11
  433. package/dist/docs/guide/behaviour-lifecycle.md +9 -0
  434. package/dist/docs/guide/bone-attachments-and-ik.md +128 -0
  435. package/dist/docs/guide/component-catalog.md +10 -2
  436. package/dist/docs/guide/components/light.md +42 -0
  437. package/dist/docs/guide/components/model.md +32 -3
  438. package/dist/docs/guide/concepts.md +2 -2
  439. package/dist/docs/guide/getting-started/creating-objects.md +2 -2
  440. package/dist/docs/guide/getting-started/editing-objects.md +2 -2
  441. package/dist/docs/guide/getting-started/editor/ai-agent.md +227 -0
  442. package/dist/docs/guide/getting-started/editor/hierarchy.md +2 -2
  443. package/dist/docs/guide/getting-started/editor/index.md +3 -2
  444. package/dist/docs/guide/getting-started/editor/inspector.md +2 -2
  445. package/dist/docs/guide/getting-started/editor/scene-inspector.md +3 -3
  446. package/dist/docs/guide/getting-started/editor/toolbar.md +11 -11
  447. package/dist/docs/guide/getting-started/editor/viewport.md +17 -9
  448. package/dist/docs/guide/getting-started/index.md +1 -1
  449. package/dist/docs/guide/getting-started/installation.md +1 -1
  450. package/dist/docs/guide/getting-started/preview-and-test.md +7 -7
  451. package/dist/docs/guide/getting-started/project-types/image-tracking.md +23 -11
  452. package/dist/docs/guide/getting-started/project-types/index.md +4 -4
  453. package/dist/docs/guide/getting-started/project-types/vr.md +270 -2
  454. package/dist/docs/guide/getting-started/projects.md +4 -5
  455. package/dist/docs/guide/getting-started/shortcuts.md +5 -4
  456. package/dist/docs/guide/multiplayer.md +92 -0
  457. package/dist/docs/guide/scene/environment.md +101 -4
  458. package/dist/docs/guide/scene/index.md +4 -4
  459. package/dist/docs/guide/scene/postprocessing.md +67 -5
  460. package/dist/docs/guide/spawning/area-light.md +2 -0
  461. package/dist/docs/guide/systems/environment-sync-system.md +11 -6
  462. package/dist/docs/guide/systems/light-sync-system.md +5 -3
  463. package/dist/docs/guide/systems/postprocessing-sync-system.md +16 -6
  464. package/dist/docs/guide/systems/render-system.md +7 -6
  465. package/dist/docs/guide/systems/script-behaviour-system.md +7 -5
  466. package/dist/docs/guide/systems/script-object-system.md +3 -1
  467. package/dist/docs/guide/systems/video-system.md +1 -1
  468. package/dist/docs/guide/webgpu-and-tsl.md +415 -0
  469. package/dist/docs/guide/world-api.md +52 -2
  470. package/dist/factories/index.cjs +770 -283
  471. package/dist/factories/index.cjs.map +1 -1
  472. package/dist/factories/index.d.cts +14 -3
  473. package/dist/factories/index.d.ts +14 -3
  474. package/dist/factories/index.js +7 -4
  475. package/dist/{index-D2Jt_JzH.d.ts → index-C61n65PE.d.ts} +135 -42
  476. package/dist/{index-DaG03vyN.d.cts → index-C70N4BYG.d.cts} +135 -42
  477. package/dist/{index-C3ik3sA1.d.ts → index-D9DjrUn3.d.cts} +25 -3
  478. package/dist/{index-Dlr-7-4m.d.cts → index-DppafVu4.d.ts} +25 -3
  479. package/dist/index.cjs +3642 -1263
  480. package/dist/index.cjs.map +1 -1
  481. package/dist/index.d.cts +113 -11
  482. package/dist/index.d.ts +113 -11
  483. package/dist/index.js +187 -12
  484. package/dist/index.js.map +1 -1
  485. package/dist/network/index.cjs +4896 -0
  486. package/dist/network/index.cjs.map +1 -0
  487. package/dist/network/index.d.cts +98 -0
  488. package/dist/network/index.d.ts +98 -0
  489. package/dist/network/index.js +493 -0
  490. package/dist/network/index.js.map +1 -0
  491. package/dist/systems/index.cjs +3958 -1762
  492. package/dist/systems/index.cjs.map +1 -1
  493. package/dist/systems/index.d.cts +4 -2
  494. package/dist/systems/index.d.ts +4 -2
  495. package/dist/systems/index.js +8 -4
  496. package/dist/types.d.cts +3 -1
  497. package/dist/types.d.ts +3 -1
  498. package/dist/webgpu/index.d.ts +113 -0
  499. package/dist/webgpu/index.js +302 -0
  500. package/dist/webgpu/index.js.map +1 -0
  501. package/dist/worldSnapshotUtils.d.cts +3 -1
  502. package/dist/worldSnapshotUtils.d.ts +3 -1
  503. package/dist/worldSnapshotUtils.js +3 -2
  504. package/package.json +19 -3
  505. package/dist/chunk-BUEKOSR5.js.map +0 -1
  506. package/dist/chunk-DF5SSRN6.js.map +0 -1
  507. package/dist/chunk-OWQSESTO.js.map +0 -1
  508. package/dist/chunk-OY7ZODZP.js.map +0 -1
  509. package/dist/chunk-RXBLOO5B.js.map +0 -1
  510. package/dist/chunk-WJD2VKEH.js +0 -315
  511. package/dist/chunk-WJD2VKEH.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: VideoComponent
8
8
 
9
- Defined in: [components/Video.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L37)
9
+ Defined in: [components/Video.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L37)
10
10
 
11
11
  Plays a video file as a texture on a quad. Supports green-screen keying
12
12
  (`isGreenScreen`, `backgroundColor`, `similarity`, `smoothness`, `spill`).
@@ -25,7 +25,7 @@ when the project loads.
25
25
  new VideoComponent(path, options?): VideoComponent;
26
26
  ```
27
27
 
28
- Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L90)
28
+ Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L90)
29
29
 
30
30
  #### Parameters
31
31
 
@@ -46,29 +46,29 @@ Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-s
46
46
 
47
47
  | Property | Type | Description | Defined in |
48
48
  | ------ | ------ | ------ | ------ |
49
- | <a id="path"></a> `path` | `string` | Source URL or `localasset://` path of the video file. | [components/Video.ts:39](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L39) |
50
- | <a id="options"></a> `options` | \{ `autoplay`: `boolean`; `loop`: `boolean`; `volume`: `number`; `width`: `number`; `height`: `number`; `isGreenScreen`: `boolean`; `backgroundColor`: `string`; `similarity`: `number`; `smoothness`: `number`; `spill`: `number`; `positional`: `boolean`; `refDistance`: `number`; `distanceModel`: `string`; `rolloffFactor`: `number`; \} | Playback + green-screen options. | Field | Default | Description | |---|---|---| | `autoplay` | `false` | Start playback as soon as the video is ready. | | `loop` | `true` | Loop playback indefinitely. | | `volume` | `1` | Linear gain in `[0, 1]`. | | `width` | `1` | Quad width in world units. | | `height` | `1` | Quad height in world units. | | `isGreenScreen` | `false` | Enable chroma keying using the fields below. | | `backgroundColor` | `"#00ff00"` | Color to key out (CSS color string). | | `similarity` | `0.4` | How close a pixel must be to the key to be removed (`0`–`1`). | | `smoothness` | `0.08` | Soft-edge thickness around the key threshold. | | `spill` | `0.12` | Amount of color spill suppression near edges. | | `positional` | `false` | When `true`, the video's audio stream is spatialized using the entity's 3D position. | | `refDistance` | `1` | Distance at which volume is unattenuated (positional only). | | `distanceModel` | `"inverse"` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. | | `rolloffFactor` | `1` | How quickly volume falls off past `refDistance`. Positional only. | | [components/Video.ts:60](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L60) |
51
- | `options.autoplay` | `boolean` | - | [components/Video.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L9) |
52
- | `options.loop` | `boolean` | - | [components/Video.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L10) |
53
- | `options.volume` | `number` | - | [components/Video.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L11) |
54
- | `options.width` | `number` | - | [components/Video.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L12) |
55
- | `options.height` | `number` | - | [components/Video.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L13) |
56
- | `options.isGreenScreen` | `boolean` | - | [components/Video.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L14) |
57
- | `options.backgroundColor` | `string` | - | [components/Video.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L15) |
58
- | `options.similarity` | `number` | - | [components/Video.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L16) |
59
- | `options.smoothness` | `number` | - | [components/Video.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L17) |
60
- | `options.spill` | `number` | - | [components/Video.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L18) |
61
- | `options.positional` | `boolean` | When `true`, the video's audio stream is spatialized using the entity's transform. | [components/Video.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L20) |
62
- | `options.refDistance` | `number` | Distance at which volume is unattenuated (positional only). | [components/Video.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L22) |
63
- | `options.distanceModel` | `string` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. | [components/Video.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L24) |
64
- | `options.rolloffFactor` | `number` | How quickly volume falls off past `refDistance`. Positional only. | [components/Video.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L26) |
65
- | <a id="object"></a> `object` | `Object3D`\<`Object3DEventMap`\> \| `null` | Live three.js object hosting the video quad. `null` until built. | [components/Video.ts:62](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L62) |
66
- | <a id="videoelement"></a> `videoElement` | `HTMLVideoElement` \| `null` | Underlying HTML video element. `null` until built. | [components/Video.ts:64](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L64) |
67
- | <a id="texture"></a> `texture` | `VideoTexture` \| `null` | Three.js texture sampling the video element. `null` until built. | [components/Video.ts:66](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L66) |
68
- | <a id="material"></a> `material` | `Material` \| `null` | Material rendering the video texture (with green-screen shader when enabled). `null` until built. | [components/Video.ts:68](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L68) |
69
- | <a id="audionode"></a> `audioNode` | `Audio`\<`GainNode`\> \| `PositionalAudio` \| `null` | THREE.js audio node connected to this video's audio stream via `setMediaElementSource`. Present only in preview when the camera listener is available. `null` in editor mode. | [components/Video.ts:74](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L74) |
70
- | <a id="isplaying"></a> `isPlaying` | `boolean` | Whether the video should be playing. Managed by `VideoSystem` in preview. Non-enumerable — not persisted to snapshots or save data. Set via [play](#play) / [stop](#stop). | [components/Video.ts:81](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L81) |
71
- | <a id="ispaused"></a> `isPaused` | `boolean` | Whether the video is paused mid-playback (position is preserved). Non-enumerable — not persisted to snapshots or save data. Set via [pause](#pause) / [play](#play) / [stop](#stop). | [components/Video.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L88) |
49
+ | <a id="path"></a> `path` | `string` | Source URL or `localasset://` path of the video file. | [components/Video.ts:39](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L39) |
50
+ | <a id="options"></a> `options` | \{ `autoplay`: `boolean`; `loop`: `boolean`; `volume`: `number`; `width`: `number`; `height`: `number`; `isGreenScreen`: `boolean`; `backgroundColor`: `string`; `similarity`: `number`; `smoothness`: `number`; `spill`: `number`; `positional`: `boolean`; `refDistance`: `number`; `distanceModel`: `string`; `rolloffFactor`: `number`; \} | Playback + green-screen options. | Field | Default | Description | |---|---|---| | `autoplay` | `false` | Start playback as soon as the video is ready. | | `loop` | `true` | Loop playback indefinitely. | | `volume` | `1` | Linear gain in `[0, 1]`. | | `width` | `1` | Quad width in world units. | | `height` | `1` | Quad height in world units. | | `isGreenScreen` | `false` | Enable chroma keying using the fields below. | | `backgroundColor` | `"#00ff00"` | Color to key out (CSS color string). | | `similarity` | `0.4` | How close a pixel must be to the key to be removed (`0`–`1`). | | `smoothness` | `0.08` | Soft-edge thickness around the key threshold. | | `spill` | `0.12` | Amount of color spill suppression near edges. | | `positional` | `false` | When `true`, the video's audio stream is spatialized using the entity's 3D position. | | `refDistance` | `1` | Distance at which volume is unattenuated (positional only). | | `distanceModel` | `"inverse"` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. | | `rolloffFactor` | `1` | How quickly volume falls off past `refDistance`. Positional only. | | [components/Video.ts:60](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L60) |
51
+ | `options.autoplay` | `boolean` | - | [components/Video.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L9) |
52
+ | `options.loop` | `boolean` | - | [components/Video.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L10) |
53
+ | `options.volume` | `number` | - | [components/Video.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L11) |
54
+ | `options.width` | `number` | - | [components/Video.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L12) |
55
+ | `options.height` | `number` | - | [components/Video.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L13) |
56
+ | `options.isGreenScreen` | `boolean` | - | [components/Video.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L14) |
57
+ | `options.backgroundColor` | `string` | - | [components/Video.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L15) |
58
+ | `options.similarity` | `number` | - | [components/Video.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L16) |
59
+ | `options.smoothness` | `number` | - | [components/Video.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L17) |
60
+ | `options.spill` | `number` | - | [components/Video.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L18) |
61
+ | `options.positional` | `boolean` | When `true`, the video's audio stream is spatialized using the entity's transform. | [components/Video.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L20) |
62
+ | `options.refDistance` | `number` | Distance at which volume is unattenuated (positional only). | [components/Video.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L22) |
63
+ | `options.distanceModel` | `string` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. | [components/Video.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L24) |
64
+ | `options.rolloffFactor` | `number` | How quickly volume falls off past `refDistance`. Positional only. | [components/Video.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L26) |
65
+ | <a id="object"></a> `object` | `Object3D`\<`Object3DEventMap`\> \| `null` | Live three.js object hosting the video quad. `null` until built. | [components/Video.ts:62](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L62) |
66
+ | <a id="videoelement"></a> `videoElement` | `HTMLVideoElement` \| `null` | Underlying HTML video element. `null` until built. | [components/Video.ts:64](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L64) |
67
+ | <a id="texture"></a> `texture` | `VideoTexture`\<`HTMLVideoElement`\> \| `null` | Three.js texture sampling the video element. `null` until built. | [components/Video.ts:66](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L66) |
68
+ | <a id="material"></a> `material` | `Material`\<`MaterialEventMap`\> \| `null` | Material rendering the video texture (with green-screen shader when enabled). `null` until built. | [components/Video.ts:68](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L68) |
69
+ | <a id="audionode"></a> `audioNode` | `Audio`\<`GainNode`\> \| `PositionalAudio` \| `null` | THREE.js audio node connected to this video's audio stream via `setMediaElementSource`. Present only in preview when the camera listener is available. `null` in editor mode. | [components/Video.ts:74](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L74) |
70
+ | <a id="isplaying"></a> `isPlaying` | `boolean` | Whether the video should be playing. Managed by `VideoSystem` in preview. Non-enumerable — not persisted to snapshots or save data. Set via [play](#play) / [stop](#stop). | [components/Video.ts:81](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L81) |
71
+ | <a id="ispaused"></a> `isPaused` | `boolean` | Whether the video is paused mid-playback (position is preserved). Non-enumerable — not persisted to snapshots or save data. Set via [pause](#pause) / [play](#play) / [stop](#stop). | [components/Video.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L88) |
72
72
 
73
73
  ## Methods
74
74
 
@@ -78,7 +78,7 @@ Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-s
78
78
  play(): void;
79
79
  ```
80
80
 
81
- Defined in: [components/Video.ts:127](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L127)
81
+ Defined in: [components/Video.ts:127](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L127)
82
82
 
83
83
  Signals `VideoSystem` to start (or resume) playback.
84
84
  Has no direct effect in the editor — `VideoSystem` drives the actual
@@ -96,7 +96,7 @@ HTML video element call in preview.
96
96
  pause(): void;
97
97
  ```
98
98
 
99
- Defined in: [components/Video.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L137)
99
+ Defined in: [components/Video.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L137)
100
100
 
101
101
  Signals `VideoSystem` to pause playback, preserving the current position.
102
102
  Calling [play](#play) afterwards resumes from where it paused.
@@ -114,7 +114,7 @@ No-op if not currently playing.
114
114
  stop(): void;
115
115
  ```
116
116
 
117
- Defined in: [components/Video.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L146)
117
+ Defined in: [components/Video.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L146)
118
118
 
119
119
  Signals `VideoSystem` to stop playback and reset the playback position.
120
120
 
@@ -0,0 +1,64 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / XRAnchorComponent
6
+
7
+ # Class: XRAnchorComponent
8
+
9
+ Defined in: [components/XRAnchor.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRAnchor.ts#L33)
10
+
11
+ Pins an entity to a real-world position.
12
+
13
+ A headset's idea of where the room is keeps being refined while a session
14
+ runs — it re-recognises the space, corrects drift, and quietly shifts its
15
+ coordinate system by a few centimetres. Content placed at fixed scene
16
+ coordinates does not move with those corrections, so a vase carefully set on a
17
+ real table gradually slides off it.
18
+
19
+ An anchor is the runtime's own handle on a point in the room. Attaching this
20
+ component hands the entity's pose over to that handle, so the entity moves
21
+ exactly as the runtime's understanding of the room moves and stays put
22
+ relative to the real world.
23
+
24
+ Because the anchor OWNS the transform once created, moving the entity by
25
+ script or by physics has no lasting effect — release it first if you want to
26
+ move it, then re-anchor.
27
+
28
+ Anchors last only as long as the session. Persisting one across launches
29
+ needs `requestPersistentHandle`, which is still a draft extension and not
30
+ supported here.
31
+
32
+ ## Extends
33
+
34
+ - [`Component`](../../Component/classes/Component.md)
35
+
36
+ ## Constructors
37
+
38
+ ### Constructor
39
+
40
+ ```ts
41
+ new XRAnchorComponent(options?): XRAnchorComponent;
42
+ ```
43
+
44
+ Defined in: [components/XRAnchor.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRAnchor.ts#L37)
45
+
46
+ #### Parameters
47
+
48
+ | Parameter | Type |
49
+ | ------ | ------ |
50
+ | `options?` | [`XRAnchorOptions`](../type-aliases/XRAnchorOptions.md) |
51
+
52
+ #### Returns
53
+
54
+ `XRAnchorComponent`
55
+
56
+ #### Overrides
57
+
58
+ [`Component`](../../Component/classes/Component.md).[`constructor`](../../Component/classes/Component.md#constructor)
59
+
60
+ ## Properties
61
+
62
+ | Property | Type | Description | Defined in |
63
+ | ------ | ------ | ------ | ------ |
64
+ | <a id="enabled"></a> `enabled` | `boolean` | Whether the entity should anchor. Turning this off releases the anchor. | [components/XRAnchor.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRAnchor.ts#L35) |
@@ -0,0 +1,64 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / XREnvironmentComponent
6
+
7
+ # Class: XREnvironmentComponent
8
+
9
+ Defined in: [components/XREnvironment.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L26)
10
+
11
+ Marks an entity as a piece of the user's REAL room, detected at runtime.
12
+
13
+ These entities are spawned by `XREnvironmentSystem` from WebXR plane and mesh
14
+ detection — they are never authored, never saved, and vanish with the session.
15
+ They exist as ordinary entities (rather than colliders hidden inside a system)
16
+ so the normal physics pipeline builds their colliders, and so scripts can find
17
+ them with a plain `world.query(XREnvironmentComponent)`.
18
+
19
+ `semanticLabel` is what makes them useful to a game rather than just solid:
20
+ it is how a script says "spawn the target on a WALL" or "only drop coins on the
21
+ FLOOR". It is whatever the runtime reported — commonly `floor`, `wall`,
22
+ `ceiling`, `table`, `desk`, `couch`, `door`, `window` — and is `null` on
23
+ runtimes that classify nothing, so always handle the null case.
24
+
25
+ ## Extends
26
+
27
+ - [`Component`](../../Component/classes/Component.md)
28
+
29
+ ## Constructors
30
+
31
+ ### Constructor
32
+
33
+ ```ts
34
+ new XREnvironmentComponent(
35
+ kind,
36
+ semanticLabel?,
37
+ orientation?): XREnvironmentComponent;
38
+ ```
39
+
40
+ Defined in: [components/XREnvironment.ts:34](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L34)
41
+
42
+ #### Parameters
43
+
44
+ | Parameter | Type | Default value |
45
+ | ------ | ------ | ------ |
46
+ | `kind` | [`XrEnvironmentKind`](../type-aliases/XrEnvironmentKind.md) | `undefined` |
47
+ | `semanticLabel` | `string` \| `null` | `null` |
48
+ | `orientation` | \| [`XrEnvironmentOrientation`](../type-aliases/XrEnvironmentOrientation.md) \| `null` | `null` |
49
+
50
+ #### Returns
51
+
52
+ `XREnvironmentComponent`
53
+
54
+ #### Overrides
55
+
56
+ [`Component`](../../Component/classes/Component.md).[`constructor`](../../Component/classes/Component.md#constructor)
57
+
58
+ ## Properties
59
+
60
+ | Property | Type | Description | Defined in |
61
+ | ------ | ------ | ------ | ------ |
62
+ | <a id="kind"></a> `kind` | [`XrEnvironmentKind`](../type-aliases/XrEnvironmentKind.md) | Whether this came from plane detection or the room mesh. | [components/XREnvironment.ts:28](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L28) |
63
+ | <a id="semanticlabel"></a> `semanticLabel` | `string` \| `null` | The runtime's classification, or `null` when it did not provide one. | [components/XREnvironment.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L30) |
64
+ | <a id="orientation"></a> `orientation` | \| [`XrEnvironmentOrientation`](../type-aliases/XrEnvironmentOrientation.md) \| `null` | Plane orientation, or `null` for mesh geometry and unclassified planes. | [components/XREnvironment.ts:32](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L32) |
@@ -0,0 +1,50 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / XRHandPoseComponent
6
+
7
+ # Class: XRHandPoseComponent
8
+
9
+ Defined in: [components/XRHandPose.ts:135](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L135)
10
+
11
+ Listens for hand poses and reports them to the entity's Behaviours.
12
+
13
+ Attached to any entity that wants to react to a gesture — the poses are
14
+ detected on the user's hands, not on the entity, so this is a subscription
15
+ rather than a property of the object itself.
16
+
17
+ ## Extends
18
+
19
+ - [`Component`](../../Component/classes/Component.md)
20
+
21
+ ## Constructors
22
+
23
+ ### Constructor
24
+
25
+ ```ts
26
+ new XRHandPoseComponent(options?): XRHandPoseComponent;
27
+ ```
28
+
29
+ Defined in: [components/XRHandPose.ts:139](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L139)
30
+
31
+ #### Parameters
32
+
33
+ | Parameter | Type |
34
+ | ------ | ------ |
35
+ | `options?` | [`XRHandPoseOptions`](../type-aliases/XRHandPoseOptions.md) |
36
+
37
+ #### Returns
38
+
39
+ `XRHandPoseComponent`
40
+
41
+ #### Overrides
42
+
43
+ [`Component`](../../Component/classes/Component.md).[`constructor`](../../Component/classes/Component.md#constructor)
44
+
45
+ ## Properties
46
+
47
+ | Property | Type | Defined in |
48
+ | ------ | ------ | ------ |
49
+ | <a id="enabled"></a> `enabled` | `boolean` | [components/XRHandPose.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L136) |
50
+ | <a id="poses"></a> `poses` | [`XrHandPoseEntry`](../type-aliases/XrHandPoseEntry.md)[] | [components/XRHandPose.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L137) |
@@ -0,0 +1,74 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / XRInteractableComponent
6
+
7
+ # Class: XRInteractableComponent
8
+
9
+ Defined in: [components/XRInteractable.ts:123](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L123)
10
+
11
+ Makes an entity respond to XR pointers and hands.
12
+
13
+ Split into `pointable` and `grabbable` because they are different
14
+ affordances: a wall panel should receive select events without being
15
+ liftable, while a physics prop should be both.
16
+
17
+ ## Extends
18
+
19
+ - [`Component`](../../Component/classes/Component.md)
20
+
21
+ ## Constructors
22
+
23
+ ### Constructor
24
+
25
+ ```ts
26
+ new XRInteractableComponent(options?): XRInteractableComponent;
27
+ ```
28
+
29
+ Defined in: [components/XRInteractable.ts:168](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L168)
30
+
31
+ #### Parameters
32
+
33
+ | Parameter | Type |
34
+ | ------ | ------ |
35
+ | `options?` | [`XRInteractableOptions`](../type-aliases/XRInteractableOptions.md) |
36
+
37
+ #### Returns
38
+
39
+ `XRInteractableComponent`
40
+
41
+ #### Overrides
42
+
43
+ [`Component`](../../Component/classes/Component.md).[`constructor`](../../Component/classes/Component.md#constructor)
44
+
45
+ ## Properties
46
+
47
+ | Property | Type | Description | Defined in |
48
+ | ------ | ------ | ------ | ------ |
49
+ | <a id="enabled"></a> `enabled` | `boolean` | - | [components/XRInteractable.ts:124](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L124) |
50
+ | <a id="grabbable"></a> `grabbable` | `boolean` | - | [components/XRInteractable.ts:125](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L125) |
51
+ | <a id="pointable"></a> `pointable` | `boolean` | - | [components/XRInteractable.ts:126](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L126) |
52
+ | <a id="grabreach"></a> `grabReach` | [`XrGrabReach`](../type-aliases/XrGrabReach.md) | Whether the object can be grabbed up close, at range, or either. | [components/XRInteractable.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L128) |
53
+ | <a id="distancebehavior"></a> `distanceBehavior` | [`XrDistanceGrabBehavior`](../type-aliases/XrDistanceGrabBehavior.md) | What a distance grab does — bring it here, or manipulate it in place. | [components/XRInteractable.ts:130](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L130) |
54
+ | <a id="grabgesture"></a> `grabGesture` | [`XrGrabGesture`](../type-aliases/XrGrabGesture.md) | Which gesture grabs it. | [components/XRInteractable.ts:132](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L132) |
55
+ | <a id="grabradius"></a> `grabRadius` | `number` | Metres within which a physical grab registers. | [components/XRInteractable.ts:134](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L134) |
56
+ | <a id="graboffsetposition"></a> `grabOffsetPosition` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Position offset from the hand while held. | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L136) |
57
+ | `grabOffsetPosition.x` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L136) |
58
+ | `grabOffsetPosition.y` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L136) |
59
+ | `grabOffsetPosition.z` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L136) |
60
+ | <a id="graboffsetrotation"></a> `grabOffsetRotation` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Rotation offset (radians) while held. | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L138) |
61
+ | `grabOffsetRotation.x` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L138) |
62
+ | `grabOffsetRotation.y` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L138) |
63
+ | `grabOffsetRotation.z` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L138) |
64
+ | <a id="grabhands"></a> `grabHands` | [`XrGrabHands`](../type-aliases/XrGrabHands.md) | How many hands may hold it, and whether a second grab transfers it. | [components/XRInteractable.ts:140](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L140) |
65
+ | <a id="twohandrotation"></a> `twoHandRotation` | [`XrTwoHandRotation`](../type-aliases/XrTwoHandRotation.md) | Whether the second hand aims the object or only scales it. | [components/XRInteractable.ts:142](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L142) |
66
+ | <a id="allowtwohandscale"></a> `allowTwoHandScale` | `boolean` | Whether a two-hand grab may resize the object. | [components/XRInteractable.ts:144](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L144) |
67
+ | <a id="minscale"></a> `minScale` | `number` | Scale floor for one gesture, as a fraction of the size at grab time. | [components/XRInteractable.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L146) |
68
+ | <a id="maxscale"></a> `maxScale` | `number` | Scale ceiling for one gesture, as a multiple of the size at grab time. | [components/XRInteractable.ts:148](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L148) |
69
+ | <a id="attachpoints"></a> `attachPoints` | [`XrAttachPoint`](../type-aliases/XrAttachPoint.md)[] | Authored hand-holds; empty means grab anywhere. | [components/XRInteractable.ts:150](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L150) |
70
+ | <a id="applyvelocityonrelease"></a> `applyVelocityOnRelease` | `boolean` | Hand the object the velocity it was moving with when released. Applies to every release, not just a deliberate throw — letting go while your hand drifts should nudge the object, which is why this is not called "throw". | [components/XRInteractable.ts:158](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L158) |
71
+ | <a id="velocityscale"></a> `velocityScale` | `number` | Multiplier on released velocity. | [components/XRInteractable.ts:160](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L160) |
72
+ | <a id="hoverbehavior"></a> `hoverBehavior` | `XrHoverBehavior` | Feedback shown while a pointer is on the object. | [components/XRInteractable.ts:162](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L162) |
73
+ | <a id="hovercolor"></a> `hoverColor` | `string` | Outline colour for the `color` and `both` behaviours. | [components/XRInteractable.ts:164](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L164) |
74
+ | <a id="hoverscale"></a> `hoverScale` | `number` | Size multiplier for the `scale` and `both` behaviours. | [components/XRInteractable.ts:166](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L166) |
@@ -0,0 +1,57 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / XRInteractorComponent
6
+
7
+ # Class: XRInteractorComponent
8
+
9
+ Defined in: [components/XRInteractor.ts:71](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L71)
10
+
11
+ Configures what the user sees as their hands, and hosts custom hand content.
12
+
13
+ An interactor entity owns two children — a left and a right interactor —
14
+ whose transforms are driven by the corresponding tracked hand. Anything an
15
+ author parents under those children renders at that hand, which is how custom
16
+ tools, gloves, or held props are built without any scripting.
17
+
18
+ ## Extends
19
+
20
+ - [`Component`](../../Component/classes/Component.md)
21
+
22
+ ## Constructors
23
+
24
+ ### Constructor
25
+
26
+ ```ts
27
+ new XRInteractorComponent(options?): XRInteractorComponent;
28
+ ```
29
+
30
+ Defined in: [components/XRInteractor.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L90)
31
+
32
+ #### Parameters
33
+
34
+ | Parameter | Type |
35
+ | ------ | ------ |
36
+ | `options?` | [`XRInteractorOptions`](../type-aliases/XRInteractorOptions.md) |
37
+
38
+ #### Returns
39
+
40
+ `XRInteractorComponent`
41
+
42
+ #### Overrides
43
+
44
+ [`Component`](../../Component/classes/Component.md).[`constructor`](../../Component/classes/Component.md#constructor)
45
+
46
+ ## Properties
47
+
48
+ | Property | Type | Description | Defined in |
49
+ | ------ | ------ | ------ | ------ |
50
+ | <a id="interactortype"></a> `interactorType` | [`XrInteractorType`](../type-aliases/XrInteractorType.md) | What to render at the hands. | [components/XRInteractor.ts:73](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L73) |
51
+ | <a id="handpreset"></a> `handPreset` | [`XrHandPreset`](../type-aliases/XrHandPreset.md) | Look for tracked-hand meshes. | [components/XRInteractor.ts:75](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L75) |
52
+ | <a id="handcolor"></a> `handColor` | `string` | Tint applied by the preset. | [components/XRInteractor.ts:77](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L77) |
53
+ | <a id="handopacity"></a> `handOpacity` | `number` | 0-1 opacity for translucent presets. | [components/XRInteractor.ts:79](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L79) |
54
+ | <a id="handemissiveintensity"></a> `handEmissiveIntensity` | `number` | Emissive strength for glowing presets. | [components/XRInteractor.ts:81](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L81) |
55
+ | <a id="rayvisibility"></a> `rayVisibility` | `XrRayVisibility` | When the pointer ray is drawn. | [components/XRInteractor.ts:84](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L84) |
56
+ | <a id="raycolor"></a> `rayColor` | `string` | Pointer ray colour. | [components/XRInteractor.ts:86](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L86) |
57
+ | <a id="raythickness"></a> `rayThickness` | `number` | Pointer ray thickness (diameter), metres. | [components/XRInteractor.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L88) |
@@ -0,0 +1,50 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / XRInteractorSideComponent
6
+
7
+ # Class: XRInteractorSideComponent
8
+
9
+ Defined in: [components/XRInteractor.ts:114](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L114)
10
+
11
+ Marks an entity as the left or right hand slot of an [XRInteractorComponent](XRInteractorComponent.md).
12
+
13
+ Its transform is driven every frame from the tracked hand, so authored
14
+ children ride along. Authors never set this by hand — the interactor factory
15
+ creates both slots.
16
+
17
+ ## Extends
18
+
19
+ - [`Component`](../../Component/classes/Component.md)
20
+
21
+ ## Constructors
22
+
23
+ ### Constructor
24
+
25
+ ```ts
26
+ new XRInteractorSideComponent(options?): XRInteractorSideComponent;
27
+ ```
28
+
29
+ Defined in: [components/XRInteractor.ts:118](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L118)
30
+
31
+ #### Parameters
32
+
33
+ | Parameter | Type |
34
+ | ------ | ------ |
35
+ | `options?` | \{ `side?`: [`XrInteractorSide`](../type-aliases/XrInteractorSide.md); \} |
36
+ | `options.side?` | [`XrInteractorSide`](../type-aliases/XrInteractorSide.md) |
37
+
38
+ #### Returns
39
+
40
+ `XRInteractorSideComponent`
41
+
42
+ #### Overrides
43
+
44
+ [`Component`](../../Component/classes/Component.md).[`constructor`](../../Component/classes/Component.md#constructor)
45
+
46
+ ## Properties
47
+
48
+ | Property | Type | Description | Defined in |
49
+ | ------ | ------ | ------ | ------ |
50
+ | <a id="side"></a> `side` | [`XrInteractorSide`](../type-aliases/XrInteractorSide.md) | Which hand this slot follows. | [components/XRInteractor.ts:116](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L116) |
@@ -0,0 +1,68 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / XRRigComponent
6
+
7
+ # Class: XRRigComponent
8
+
9
+ Defined in: [components/XRRig.ts:85](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L85)
10
+
11
+ Marks an entity as the XR rig — the player's movable origin.
12
+
13
+ The rig exists because a WebXR headset owns the camera pose absolutely: three
14
+ composes the render camera as `rig.matrixWorld × headPose`, so the ONLY way
15
+ to move the player is to move the camera's parent. The camera entity must be
16
+ a child of this entity.
17
+
18
+ Defaults are deliberately comfort-first — teleport locomotion with snap
19
+ turning is the combination least likely to cause motion sickness, and is what
20
+ every platform's design guidance recommends as the baseline.
21
+
22
+ ## Extends
23
+
24
+ - [`Component`](../../Component/classes/Component.md)
25
+
26
+ ## Constructors
27
+
28
+ ### Constructor
29
+
30
+ ```ts
31
+ new XRRigComponent(options?): XRRigComponent;
32
+ ```
33
+
34
+ Defined in: [components/XRRig.ts:125](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L125)
35
+
36
+ #### Parameters
37
+
38
+ | Parameter | Type |
39
+ | ------ | ------ |
40
+ | `options?` | [`XRRigOptions`](../type-aliases/XRRigOptions.md) |
41
+
42
+ #### Returns
43
+
44
+ `XRRigComponent`
45
+
46
+ #### Overrides
47
+
48
+ [`Component`](../../Component/classes/Component.md).[`constructor`](../../Component/classes/Component.md#constructor)
49
+
50
+ ## Properties
51
+
52
+ | Property | Type | Description | Defined in |
53
+ | ------ | ------ | ------ | ------ |
54
+ | <a id="trackingorigin"></a> `trackingOrigin` | [`XrTrackingOrigin`](../type-aliases/XrTrackingOrigin.md) | Where the headset origin sits (floor-relative vs eye-relative). | [components/XRRig.ts:87](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L87) |
55
+ | <a id="locomotion"></a> `locomotion` | [`XrLocomotionMode`](../type-aliases/XrLocomotionMode.md) | Movement style. | [components/XRRig.ts:89](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L89) |
56
+ | <a id="movespeed"></a> `moveSpeed` | `number` | Metres/second for `smooth` locomotion. | [components/XRRig.ts:91](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L91) |
57
+ | <a id="snapturn"></a> `snapTurn` | `boolean` | Rotate in fixed steps rather than continuously. | [components/XRRig.ts:93](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L93) |
58
+ | <a id="snapturndegrees"></a> `snapTurnDegrees` | `number` | Degrees per snap-turn step. | [components/XRRig.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L95) |
59
+ | <a id="fallbackeyeheight"></a> `fallbackEyeHeight` | `number` | Eye height fallback for devices without a floor-relative reference space. | [components/XRRig.ts:97](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L97) |
60
+ | <a id="teleportarccolor"></a> `teleportArcColor` | `string` | Teleport arc colour when it lands somewhere valid. | [components/XRRig.ts:99](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L99) |
61
+ | <a id="teleportarcinvalidcolor"></a> `teleportArcInvalidColor` | `string` | Teleport arc colour when it lands nowhere teleportable. | [components/XRRig.ts:101](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L101) |
62
+ | <a id="teleportarcthickness"></a> `teleportArcThickness` | `number` | Teleport arc thickness (diameter), metres. | [components/XRRig.ts:103](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L103) |
63
+ | <a id="passthrough"></a> `passthrough` | `boolean` | Run the session in passthrough — the real room shows through. This is the VR/MR switch for the whole project: the entry button requests `immersive-ar` instead of `immersive-vr`. Blend mode is fixed for the life of a session, so this cannot be flipped mid-session — ending and re-entering is the only way to change it. | [components/XRRig.ts:113](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L113) |
64
+ | <a id="depthocclusion"></a> `depthOcclusion` | `boolean` | Let real objects occlude virtual ones, via WebXR depth sensing. | [components/XRRig.ts:115](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L115) |
65
+ | <a id="environmentphysics"></a> `environmentPhysics` | [`XrEnvironmentPhysics`](../type-aliases/XrEnvironmentPhysics.md) | Which detected real-world geometry becomes physics colliders. | [components/XRRig.ts:117](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L117) |
66
+ | <a id="environmentdebug"></a> `environmentDebug` | `boolean` | Draw the detected room geometry on-device, for checking a scan. | [components/XRRig.ts:119](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L119) |
67
+ | <a id="hittest"></a> `hitTest` | `boolean` | Allow scripts to raycast against the real room (`hit-test`). | [components/XRRig.ts:121](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L121) |
68
+ | <a id="anchors"></a> `anchors` | `boolean` | Allow content to be pinned to real-world features (`anchors`). | [components/XRRig.ts:123](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRRig.ts#L123) |
@@ -0,0 +1,25 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / createAttachPoint
6
+
7
+ # Function: createAttachPoint()
8
+
9
+ ```ts
10
+ function createAttachPoint(partial): XrAttachPoint;
11
+ ```
12
+
13
+ Defined in: [components/XRInteractable.ts:206](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L206)
14
+
15
+ An attach point with every field populated, for the editor and AI tools.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Type |
20
+ | ------ | ------ |
21
+ | `partial` | `Partial`\<[`XrAttachPoint`](../type-aliases/XrAttachPoint.md)\> & \{ `id`: `string`; \} |
22
+
23
+ ## Returns
24
+
25
+ [`XrAttachPoint`](../type-aliases/XrAttachPoint.md)
@@ -0,0 +1,25 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / createHandPoseEntry
6
+
7
+ # Function: createHandPoseEntry()
8
+
9
+ ```ts
10
+ function createHandPoseEntry(partial): XrHandPoseEntry;
11
+ ```
12
+
13
+ Defined in: [components/XRHandPose.ts:70](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L70)
14
+
15
+ A pose entry with every field populated, for the editor and AI tools.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Type |
20
+ | ------ | ------ |
21
+ | `partial` | `Partial`\<[`XrHandPoseEntry`](../type-aliases/XrHandPoseEntry.md)\> & \{ `id`: `string`; \} |
22
+
23
+ ## Returns
24
+
25
+ [`XrHandPoseEntry`](../type-aliases/XrHandPoseEntry.md)