@relu-interactives/spatial-ecs 0.2.24 → 0.3.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 (270) hide show
  1. package/dist/{Video-ppAXaKt0.d.cts → Video-AIQYTAAr.d.cts} +15 -3
  2. package/dist/{Video-C1IOat7L.d.ts → Video-DlZ4G9ig.d.ts} +15 -3
  3. package/dist/{chunk-JHCPRVBC.js → chunk-7BPHZWQ6.js} +59 -17
  4. package/dist/chunk-7BPHZWQ6.js.map +1 -0
  5. package/dist/{chunk-CCE5K2TU.js → chunk-7JFSEV7A.js} +18 -13
  6. package/dist/chunk-7JFSEV7A.js.map +1 -0
  7. package/dist/{chunk-52CHDPRQ.js → chunk-AT5SPSPM.js} +4 -4
  8. package/dist/{chunk-52CHDPRQ.js.map → chunk-AT5SPSPM.js.map} +1 -1
  9. package/dist/{chunk-ZXGHKX7N.js → chunk-OWQSESTO.js} +12 -2
  10. package/dist/chunk-OWQSESTO.js.map +1 -0
  11. package/dist/{chunk-WKGCC7YL.js → chunk-PZ4CAALA.js} +3 -3
  12. package/dist/{chunk-WKGCC7YL.js.map → chunk-PZ4CAALA.js.map} +1 -1
  13. package/dist/components/index.cjs +55 -13
  14. package/dist/components/index.cjs.map +1 -1
  15. package/dist/components/index.d.cts +2 -2
  16. package/dist/components/index.d.ts +2 -2
  17. package/dist/components/index.js +1 -1
  18. package/dist/docs/api/Behaviour/classes/Behaviour.md +98 -51
  19. package/dist/docs/api/Component/classes/Component.md +4 -1
  20. package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
  21. package/dist/docs/api/components/classes/AudioComponent.md +19 -19
  22. package/dist/docs/api/components/classes/CameraComponent.md +14 -14
  23. package/dist/docs/api/components/classes/EntityType.md +4 -4
  24. package/dist/docs/api/components/classes/Environment.md +3 -3
  25. package/dist/docs/api/components/classes/ImageComponent.md +7 -7
  26. package/dist/docs/api/components/classes/ImageTarget.md +7 -7
  27. package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
  28. package/dist/docs/api/components/classes/InstanceSlotComponent.md +4 -4
  29. package/dist/docs/api/components/classes/InstancedMeshComponent.md +10 -10
  30. package/dist/docs/api/components/classes/LightComponent.md +6 -6
  31. package/dist/docs/api/components/classes/MaterialComponent.md +57 -11
  32. package/dist/docs/api/components/classes/MeshComponent.md +3 -3
  33. package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
  34. package/dist/docs/api/components/classes/ModelComponent.md +4 -4
  35. package/dist/docs/api/components/classes/Name.md +3 -3
  36. package/dist/docs/api/components/classes/Object3DRef.md +4 -4
  37. package/dist/docs/api/components/classes/ParentId.md +3 -3
  38. package/dist/docs/api/components/classes/PhysicsComponent.md +12 -13
  39. package/dist/docs/api/components/classes/Postprocessing.md +3 -3
  40. package/dist/docs/api/components/classes/PrefabInstance.md +80 -0
  41. package/dist/docs/api/components/classes/PrefabNode.md +54 -0
  42. package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
  43. package/dist/docs/api/components/classes/ScriptObjectComponent.md +55 -0
  44. package/dist/docs/api/components/classes/Selectable.md +3 -3
  45. package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
  46. package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
  47. package/dist/docs/api/components/classes/TransformComponent.md +12 -12
  48. package/dist/docs/api/components/classes/VideoComponent.md +28 -28
  49. package/dist/docs/api/components/functions/defaultMaterialValue.md +17 -0
  50. package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
  51. package/dist/docs/api/components/functions/setPhysicsLiveRef.md +34 -0
  52. package/dist/docs/api/components/index.md +8 -1
  53. package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
  54. package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
  55. package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
  56. package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +1 -1
  57. package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
  58. package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
  59. package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
  60. package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
  61. package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
  62. package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
  63. package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
  64. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +7 -7
  65. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
  66. package/dist/docs/api/components/type-aliases/EnvironmentState.md +5 -5
  67. package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
  68. package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
  69. package/dist/docs/api/components/type-aliases/InstanceTransform.md +13 -13
  70. package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +1 -1
  71. package/dist/docs/api/components/type-aliases/LightValueState.md +11 -11
  72. package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
  73. package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
  74. package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
  75. package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
  76. package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
  77. package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
  78. package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
  79. package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
  80. package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
  81. package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
  82. package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
  83. package/dist/docs/api/components/type-aliases/ScriptEntry.md +8 -10
  84. package/dist/docs/api/components/type-aliases/ScriptObjectComponentInput.md +20 -0
  85. package/dist/docs/api/components/type-aliases/ScriptObjectRuntimeState.md +13 -0
  86. package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
  87. package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
  88. package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
  89. package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
  90. package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
  91. package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
  92. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
  93. package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +1 -1
  94. package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +1 -1
  95. package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
  96. package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
  97. package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
  98. package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
  99. package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
  100. package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
  101. package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
  102. package/dist/docs/api/index/classes/AudioSystem.md +4 -4
  103. package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
  104. package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +4 -4
  105. package/dist/docs/api/index/classes/InputSystem.md +33 -33
  106. package/dist/docs/api/index/classes/InstancedMeshSystem.md +2 -2
  107. package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
  108. package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
  109. package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
  110. package/dist/docs/api/index/classes/ObjectManagementSystem.md +14 -14
  111. package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
  112. package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
  113. package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +4 -4
  114. package/dist/docs/api/index/classes/RenderSystem.md +3 -3
  115. package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +5 -5
  116. package/dist/docs/api/index/classes/ScriptObject.md +156 -0
  117. package/dist/docs/api/index/classes/ScriptObjectSystem.md +129 -0
  118. package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
  119. package/dist/docs/api/index/classes/VideoSystem.md +4 -4
  120. package/dist/docs/api/index/classes/World.md +183 -86
  121. package/dist/docs/api/index/functions/applyPrefabToSnapshotInstances.md +32 -0
  122. package/dist/docs/api/index/functions/buildComponentValueMaps.md +23 -0
  123. package/dist/docs/api/index/functions/buildNodeKeyMapsFromSnapshot.md +25 -0
  124. package/dist/docs/api/index/functions/buildNodeMapsFromSnapshot.md +23 -0
  125. package/dist/docs/api/index/functions/canonicalizeComponentValue.md +38 -0
  126. package/dist/docs/api/index/functions/clearModelCache.md +26 -0
  127. package/dist/docs/api/index/functions/clearPrefabCache.md +25 -0
  128. package/dist/docs/api/index/functions/collectDiffPaths.md +38 -0
  129. package/dist/docs/api/index/functions/collectDirectPrefabDependencies.md +27 -0
  130. package/dist/docs/api/index/functions/collectEntitySubtree.md +29 -0
  131. package/dist/docs/api/index/functions/collectSnapshotSubtreeIds.md +26 -0
  132. package/dist/docs/api/index/functions/computeInstanceOverrides.md +44 -0
  133. package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
  134. package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
  135. package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
  136. package/dist/docs/api/index/functions/createEntityTypeComponent.md +2 -2
  137. package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
  138. package/dist/docs/api/index/functions/createImageComponent.md +1 -1
  139. package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
  140. package/dist/docs/api/index/functions/createImageTargetComponent.md +1 -1
  141. package/dist/docs/api/index/functions/createInstanceSlotComponent.md +1 -1
  142. package/dist/docs/api/index/functions/createInstancedMeshComponent.md +1 -1
  143. package/dist/docs/api/index/functions/createLightComponent.md +1 -1
  144. package/dist/docs/api/index/functions/createMaterialComponent.md +1 -1
  145. package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
  146. package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
  147. package/dist/docs/api/index/functions/createModelComponent.md +1 -1
  148. package/dist/docs/api/index/functions/createNameComponent.md +1 -1
  149. package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
  150. package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
  151. package/dist/docs/api/index/functions/createPhysicsComponent.md +2 -4
  152. package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
  153. package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
  154. package/dist/docs/api/index/functions/createScriptObjectComponent.md +28 -0
  155. package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
  156. package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
  157. package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
  158. package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
  159. package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
  160. package/dist/docs/api/index/functions/decanonicalizeComponentValue.md +28 -0
  161. package/dist/docs/api/index/functions/despawnPrefab.md +32 -0
  162. package/dist/docs/api/index/functions/encodeOverride.md +28 -0
  163. package/dist/docs/api/index/functions/findSnapshotRootEntityIds.md +25 -0
  164. package/dist/docs/api/index/functions/findTopLevelNestedRegions.md +28 -0
  165. package/dist/docs/api/index/functions/groupOverridePaths.md +25 -0
  166. package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
  167. package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +4 -2
  168. package/dist/docs/api/index/functions/indexSnapshotByEntity.md +25 -0
  169. package/dist/docs/api/index/functions/instantiateSubtree.md +32 -0
  170. package/dist/docs/api/index/functions/loadPrefab.md +28 -0
  171. package/dist/docs/api/index/functions/loadSharedGltf.md +29 -0
  172. package/dist/docs/api/index/functions/mergeComponentValue.md +32 -0
  173. package/dist/docs/api/index/functions/parseOverride.md +34 -0
  174. package/dist/docs/api/index/functions/parsePrefabAsset.md +25 -0
  175. package/dist/docs/api/index/functions/prefabFileVersionFor.md +25 -0
  176. package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
  177. package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
  178. package/dist/docs/api/index/functions/remapSnapshotEntityIds.md +46 -0
  179. package/dist/docs/api/index/functions/resolveDracoDecoderPath.md +17 -0
  180. package/dist/docs/api/index/functions/restoreComponentState.md +34 -0
  181. package/dist/docs/api/index/functions/restorePostCreateComponents.md +36 -0
  182. package/dist/docs/api/index/functions/serializeEntitySubtree.md +35 -0
  183. package/dist/docs/api/index/functions/setDracoDecoderPath.md +30 -0
  184. package/dist/docs/api/index/functions/setPrefabAssetUrlResolver.md +30 -0
  185. package/dist/docs/api/index/functions/spawnPrefab.md +36 -0
  186. package/dist/docs/api/index/index.md +65 -0
  187. package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
  188. package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
  189. package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
  190. package/dist/docs/api/index/type-aliases/ApplyPrefabToSnapshotResult.md +23 -0
  191. package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
  192. package/dist/docs/api/index/type-aliases/ComponentValueMaps.md +69 -0
  193. package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +2 -1
  194. package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
  195. package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
  196. package/dist/docs/api/index/type-aliases/ExternalRefWarning.md +27 -0
  197. package/dist/docs/api/index/type-aliases/HydrateOptions.md +27 -0
  198. package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +7 -5
  199. package/dist/docs/api/index/type-aliases/InstantiateSubtreeResult.md +23 -0
  200. package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
  201. package/dist/docs/api/index/type-aliases/ModuleLoader.md +25 -0
  202. package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
  203. package/dist/docs/api/index/type-aliases/NestedRegion.md +27 -0
  204. package/dist/docs/api/index/type-aliases/NodeKeyMaps.md +30 -0
  205. package/dist/docs/api/index/type-aliases/NodeMaps.md +25 -0
  206. package/dist/docs/api/index/type-aliases/PrefabAsset.md +32 -0
  207. package/dist/docs/api/index/type-aliases/RemapSnapshotOptions.md +21 -0
  208. package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
  209. package/dist/docs/api/index/type-aliases/SerializeEntitySubtreeResult.md +25 -0
  210. package/dist/docs/api/index/type-aliases/SpawnPrefabOptions.md +27 -0
  211. package/dist/docs/api/index/type-aliases/SpawnPrefabSource.md +19 -0
  212. package/dist/docs/api/index/type-aliases/SubtreeSnapshot.md +43 -0
  213. package/dist/docs/api/index/variables/ADDED_NODE_MARKER_COMPONENT.md +19 -0
  214. package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
  215. package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
  216. package/dist/docs/api/index/variables/NODE_KEY_SEPARATOR.md +13 -0
  217. package/dist/docs/api/index/variables/OVERRIDE_DIFF_EXCLUDED_COMPONENTS.md +15 -0
  218. package/dist/docs/api/index/variables/OVERRIDE_ROOT_EXCLUDED_COMPONENTS.md +16 -0
  219. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION.md +13 -0
  220. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION_NESTED.md +15 -0
  221. package/dist/docs/api/index/variables/SCRIPT_OBJECT_ROOT_FLAG.md +15 -0
  222. package/dist/docs/api/index/variables/SHARED_MODEL_RESOURCE_FLAG.md +17 -0
  223. package/dist/docs/api/typedoc-sidebar.json +1 -1
  224. package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
  225. package/dist/docs/api/types/type-aliases/CheckboxInput.md +3 -3
  226. package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
  227. package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
  228. package/dist/docs/api/types/type-aliases/ComponentKind.md +2 -1
  229. package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
  230. package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
  231. package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
  232. package/dist/docs/api/types/type-aliases/EcsEntityKind.md +3 -2
  233. package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
  234. package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
  235. package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
  236. package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
  237. package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
  238. package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
  239. package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
  240. package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
  241. package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
  242. package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
  243. package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
  244. package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
  245. package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
  246. package/dist/docs/guide/components/_sidebar.json +4 -0
  247. package/dist/docs/guide/components/material.md +1 -0
  248. package/dist/docs/guide/components/script-object.md +32 -0
  249. package/dist/factories/index.cjs +54 -13
  250. package/dist/factories/index.cjs.map +1 -1
  251. package/dist/factories/index.d.cts +1 -1
  252. package/dist/factories/index.d.ts +1 -1
  253. package/dist/factories/index.js +3 -3
  254. package/dist/{index-DdiWu1b6.d.ts → index-BwiRJNIT.d.ts} +3 -2
  255. package/dist/{index-Cu2Pt7wN.d.cts → index-Gr8aCPRM.d.cts} +3 -2
  256. package/dist/index.cjs +80 -23
  257. package/dist/index.cjs.map +1 -1
  258. package/dist/index.d.cts +3 -3
  259. package/dist/index.d.ts +3 -3
  260. package/dist/index.js +9 -9
  261. package/dist/systems/index.cjs +68 -22
  262. package/dist/systems/index.cjs.map +1 -1
  263. package/dist/systems/index.js +3 -3
  264. package/dist/worldSnapshotUtils.cjs +10 -0
  265. package/dist/worldSnapshotUtils.cjs.map +1 -1
  266. package/dist/worldSnapshotUtils.js +1 -1
  267. package/package.json +4 -4
  268. package/dist/chunk-CCE5K2TU.js.map +0 -1
  269. package/dist/chunk-JHCPRVBC.js.map +0 -1
  270. package/dist/chunk-ZXGHKX7N.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: TransformComponent
8
8
 
9
- Defined in: [components/Transform.ts:50](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L50)
9
+ Defined in: [components/Transform.ts:50](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L50)
10
10
 
11
11
  Position, rotation, and scale of an entity in its parent's local space.
12
12
 
@@ -29,7 +29,7 @@ helpers so dependent systems pick up the change.
29
29
  new TransformComponent(data?): TransformComponent;
30
30
  ```
31
31
 
32
- Defined in: [components/Transform.ts:58](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L58)
32
+ Defined in: [components/Transform.ts:58](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L58)
33
33
 
34
34
  #### Parameters
35
35
 
@@ -49,9 +49,9 @@ Defined in: [components/Transform.ts:58](https://github.com/Relu-Interactives/re
49
49
 
50
50
  | Property | Type | Description | Defined in |
51
51
  | ------ | ------ | ------ | ------ |
52
- | <a id="position"></a> `position` | [`Vec3`](../type-aliases/Vec3.md) | Local position relative to the parent (or world if no parent). | [components/Transform.ts:52](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L52) |
53
- | <a id="rotation"></a> `rotation` | [`Vec3`](../type-aliases/Vec3.md) | Local rotation as Euler XYZ in **radians**. | [components/Transform.ts:54](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L54) |
54
- | <a id="scale"></a> `scale` | [`Vec3`](../type-aliases/Vec3.md) | Local scale factors per axis (`1` = identity). | [components/Transform.ts:56](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L56) |
52
+ | <a id="position"></a> `position` | [`Vec3`](../type-aliases/Vec3.md) | Local position relative to the parent (or world if no parent). | [components/Transform.ts:52](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L52) |
53
+ | <a id="rotation"></a> `rotation` | [`Vec3`](../type-aliases/Vec3.md) | Local rotation as Euler XYZ in **radians**. | [components/Transform.ts:54](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L54) |
54
+ | <a id="scale"></a> `scale` | [`Vec3`](../type-aliases/Vec3.md) | Local scale factors per axis (`1` = identity). | [components/Transform.ts:56](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L56) |
55
55
 
56
56
  ## Methods
57
57
 
@@ -61,7 +61,7 @@ Defined in: [components/Transform.ts:58](https://github.com/Relu-Interactives/re
61
61
  toPositionVector3(target?): Vector3;
62
62
  ```
63
63
 
64
- Defined in: [components/Transform.ts:84](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L84)
64
+ Defined in: [components/Transform.ts:84](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L84)
65
65
 
66
66
  #### Parameters
67
67
 
@@ -81,7 +81,7 @@ Defined in: [components/Transform.ts:84](https://github.com/Relu-Interactives/re
81
81
  toRotationEuler(target?, order?): Euler;
82
82
  ```
83
83
 
84
- Defined in: [components/Transform.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L88)
84
+ Defined in: [components/Transform.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L88)
85
85
 
86
86
  #### Parameters
87
87
 
@@ -102,7 +102,7 @@ Defined in: [components/Transform.ts:88](https://github.com/Relu-Interactives/re
102
102
  toRotationQuaternion(target?, order?): Quaternion;
103
103
  ```
104
104
 
105
- Defined in: [components/Transform.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L95)
105
+ Defined in: [components/Transform.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L95)
106
106
 
107
107
  #### Parameters
108
108
 
@@ -123,7 +123,7 @@ Defined in: [components/Transform.ts:95](https://github.com/Relu-Interactives/re
123
123
  toScaleVector3(target?): Vector3;
124
124
  ```
125
125
 
126
- Defined in: [components/Transform.ts:108](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L108)
126
+ Defined in: [components/Transform.ts:108](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L108)
127
127
 
128
128
  #### Parameters
129
129
 
@@ -143,7 +143,7 @@ Defined in: [components/Transform.ts:108](https://github.com/Relu-Interactives/r
143
143
  setPosition(input): this;
144
144
  ```
145
145
 
146
- Defined in: [components/Transform.ts:112](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L112)
146
+ Defined in: [components/Transform.ts:112](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L112)
147
147
 
148
148
  #### Parameters
149
149
 
@@ -163,7 +163,7 @@ Defined in: [components/Transform.ts:112](https://github.com/Relu-Interactives/r
163
163
  setScale(input): this;
164
164
  ```
165
165
 
166
- Defined in: [components/Transform.ts:120](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L120)
166
+ Defined in: [components/Transform.ts:120](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L120)
167
167
 
168
168
  #### Parameters
169
169
 
@@ -183,7 +183,7 @@ Defined in: [components/Transform.ts:120](https://github.com/Relu-Interactives/r
183
183
  setRotation(input, order?): this;
184
184
  ```
185
185
 
186
- Defined in: [components/Transform.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L128)
186
+ Defined in: [components/Transform.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Transform.ts#L128)
187
187
 
188
188
  #### Parameters
189
189
 
@@ -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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L37)
9
+ Defined in: [components/Video.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L90)
28
+ Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L60) |
51
- | `options.autoplay` | `boolean` | - | [components/Video.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L9) |
52
- | `options.loop` | `boolean` | - | [components/Video.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L10) |
53
- | `options.volume` | `number` | - | [components/Video.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L11) |
54
- | `options.width` | `number` | - | [components/Video.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L12) |
55
- | `options.height` | `number` | - | [components/Video.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L13) |
56
- | `options.isGreenScreen` | `boolean` | - | [components/Video.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L14) |
57
- | `options.backgroundColor` | `string` | - | [components/Video.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L15) |
58
- | `options.similarity` | `number` | - | [components/Video.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L16) |
59
- | `options.smoothness` | `number` | - | [components/Video.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L17) |
60
- | `options.spill` | `number` | - | [components/Video.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/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) |
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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L127)
81
+ Defined in: [components/Video.ts:127](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L137)
99
+ Defined in: [components/Video.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L146)
117
+ Defined in: [components/Video.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Video.ts#L146)
118
118
 
119
119
  Signals `VideoSystem` to stop playback and reset the playback position.
120
120
 
@@ -0,0 +1,17 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / defaultMaterialValue
6
+
7
+ # Function: defaultMaterialValue()
8
+
9
+ ```ts
10
+ function defaultMaterialValue(): MaterialValueState;
11
+ ```
12
+
13
+ Defined in: [components/Material.ts:155](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Material.ts#L155)
14
+
15
+ ## Returns
16
+
17
+ [`MaterialValueState`](../type-aliases/MaterialValueState.md)
@@ -10,7 +10,7 @@
10
10
  function normalizePhysicsState(value): PhysicsState;
11
11
  ```
12
12
 
13
- Defined in: [components/Physics.ts:319](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L319)
13
+ Defined in: [components/Physics.ts:319](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L319)
14
14
 
15
15
  ## Parameters
16
16
 
@@ -0,0 +1,34 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [components](../index.md) / setPhysicsLiveRef
6
+
7
+ # Function: setPhysicsLiveRef()
8
+
9
+ ```ts
10
+ function setPhysicsLiveRef(
11
+ component,
12
+ key,
13
+ value): void;
14
+ ```
15
+
16
+ Defined in: [components/Physics.ts:357](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L357)
17
+
18
+ Write a live Rapier ref as a NON-ENUMERABLE own property. Always via
19
+ defineProperty (mirroring ScriptObjectComponent's `instance` ref): a
20
+ history-restored clone that dropped the original slot would otherwise get an
21
+ ENUMERABLE property from plain assignment, leaking Rapier objects — and for
22
+ trimesh their huge vertex buffers — into snapshot/history/debug walks.
23
+
24
+ ## Parameters
25
+
26
+ | Parameter | Type |
27
+ | ------ | ------ |
28
+ | `component` | [`PhysicsComponent`](../classes/PhysicsComponent.md) |
29
+ | `key` | `"collider"` \| `"rigidBody"` |
30
+ | `value` | `RigidBody` \| `Collider` \| `null` |
31
+
32
+ ## Returns
33
+
34
+ `void`
@@ -30,9 +30,12 @@
30
30
  | [Name](classes/Name.md) | Human-readable name for an entity. Shown in the editor hierarchy panel and preserved across save/reload. |
31
31
  | [Object3DRef](classes/Object3DRef.md) | Wraps the live `THREE.Object3D` for an entity. Almost every entity that renders to the scene carries an `Object3DRef` so transform sync, selection, and parenting systems can manipulate the underlying object. |
32
32
  | [ParentId](classes/ParentId.md) | Records the parent entity id for hierarchical scene graphs. `null` means the entity is at the world root. The `ObjectManagementSystem` reconciles scene-graph parenting from this component each frame. |
33
- | [PhysicsComponent](classes/PhysicsComponent.md) | Unified physics component combining a Rapier rigid body and a Rapier collider into a single authoring and runtime container. |
33
+ | [PhysicsComponent](classes/PhysicsComponent.md) | Marker base class for every ECS component. Subclass `Component` to declare a typed data container that systems can query. |
34
34
  | [Postprocessing](classes/Postprocessing.md) | Postprocessing stack settings (depth-of-field, bloom, vignette, chromatic aberration, noise, pixelation, tone mapping, hue/saturation, sepia, SMAA, |
35
+ | [PrefabInstance](classes/PrefabInstance.md) | Marks the ROOT entity of a prefab instance and records its link to the source `.prefab` asset plus the instance's per-property overrides. |
36
+ | [PrefabNode](classes/PrefabNode.md) | Stable identity for an entity that originated from a prefab asset. |
35
37
  | [ScriptComponent](classes/ScriptComponent.md) | Component holding the list of [scripts](type-aliases/ScriptEntry.md) attached to an entity. Loaded from the saved project; the runtime-side fields (`scriptInstance`, `scriptInstances`) are non-enumerable so they never leak into save data or undo history. |
38
+ | [ScriptObjectComponent](classes/ScriptObjectComponent.md) | Component for a **script object** — a single [ScriptObject](../index/classes/ScriptObject.md) whose THREE.js visual is built by user code and runs in the editor AND at runtime. Unlike [ScriptComponent](classes/ScriptComponent.md) this holds ONE script (not an entries array). The live instance ref is non-enumerable so it never leaks into save data or undo history. |
36
39
  | [Selectable](classes/Selectable.md) | Toggles whether the editor selection system can pick this entity. When `enabled` is `false`, the entity is excluded from raycast hit tests. |
37
40
  | [SelectionTransformState](classes/SelectionTransformState.md) | Singleton-style component (attached once to a system entity) that mirrors the editor's current transform-gizmo state into the ECS world. Persisted in snapshots so undo/redo restores the exact gizmo configuration. |
38
41
  | [SpriteComponent](classes/SpriteComponent.md) | Camera-facing 2D sprite. Unlike [ImageComponent](classes/ImageComponent.md), sprites use `THREE.Sprite` and always render as billboards. |
@@ -75,6 +78,8 @@
75
78
  | [PhysicsState](type-aliases/PhysicsState.md) | Combined authoring state for [PhysicsComponent](classes/PhysicsComponent.md). Saved with the project. |
76
79
  | [PostprocessingState](type-aliases/PostprocessingState.md) | Aggregated post-processing effect chain authored on the scene environment. Each sub-effect has its own `enabled` flag plus per-effect parameters. |
77
80
  | [ScriptEntry](type-aliases/ScriptEntry.md) | One script attached to an entity. Multiple entries may target a single entity (different classes from the same or different files). |
81
+ | [ScriptObjectRuntimeState](type-aliases/ScriptObjectRuntimeState.md) | - |
82
+ | [ScriptObjectComponentInput](type-aliases/ScriptObjectComponentInput.md) | - |
78
83
  | [TransformModeValue](type-aliases/TransformModeValue.md) | Active gizmo mode in the editor. |
79
84
  | [TransformSpaceValue](type-aliases/TransformSpaceValue.md) | Reference frame for the active gizmo. |
80
85
  | [Vec3](type-aliases/Vec3.md) | Plain XYZ vector. All ECS transform fields use this shape rather than `THREE.Vector3` so they save cleanly with the project. |
@@ -97,4 +102,6 @@
97
102
 
98
103
  | Function | Description |
99
104
  | ------ | ------ |
105
+ | [defaultMaterialValue](functions/defaultMaterialValue.md) | - |
100
106
  | [normalizePhysicsState](functions/normalizePhysicsState.md) | - |
107
+ | [setPhysicsLiveRef](functions/setPhysicsLiveRef.md) | Write a live Rapier ref as a NON-ENUMERABLE own property. Always via defineProperty (mirroring ScriptObjectComponent's `instance` ref): a history-restored clone that dropped the original slot would otherwise get an ENUMERABLE property from plain assignment, leaking Rapier objects — and for trimesh their huge vertex buffers — into snapshot/history/debug walks. |
@@ -24,7 +24,7 @@ type AnimationComponentOptions = {
24
24
  };
25
25
  ```
26
26
 
27
- Defined in: [components/Animation.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L10)
27
+ Defined in: [components/Animation.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L10)
28
28
 
29
29
  Initializer for [AnimationComponent](../classes/AnimationComponent.md).
30
30
 
@@ -32,11 +32,11 @@ Initializer for [AnimationComponent](../classes/AnimationComponent.md).
32
32
 
33
33
  | Property | Type | Description | Defined in |
34
34
  | ------ | ------ | ------ | ------ |
35
- | <a id="clips"></a> `clips?` | `THREE.AnimationClip`[] | Initial set of clips imported from the entity's model. | [components/Animation.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L12) |
36
- | <a id="externalclipsources"></a> `externalClipSources?` | `string`[] | URLs (or `localasset://` paths) of clips to load asynchronously and merge into the catalog. | [components/Animation.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L14) |
37
- | <a id="activestate"></a> `activeState?` | `string` \| `null` | Name of the state to activate after construction. | [components/Animation.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L16) |
38
- | <a id="paused"></a> `paused?` | `boolean` | Whether playback starts paused. | [components/Animation.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L18) |
39
- | <a id="reverse"></a> `reverse?` | `boolean` | Play the active clip in reverse. | [components/Animation.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L20) |
40
- | <a id="timescale"></a> `timeScale?` | `number` | Time-scale multiplier (`1` = real-time). | [components/Animation.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L22) |
41
- | <a id="crossfadeduration"></a> `crossFadeDuration?` | `number` | Default cross-fade duration in seconds when switching states. | [components/Animation.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L24) |
42
- | <a id="states"></a> `states?` | \{ `name`: `string`; `clip`: `string`; `clipId?`: `string`; `loop?`: `boolean`; \}[] | Predefined state machine entries (`name` -> clip binding). | [components/Animation.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L26) |
35
+ | <a id="clips"></a> `clips?` | `THREE.AnimationClip`[] | Initial set of clips imported from the entity's model. | [components/Animation.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L12) |
36
+ | <a id="externalclipsources"></a> `externalClipSources?` | `string`[] | URLs (or `localasset://` paths) of clips to load asynchronously and merge into the catalog. | [components/Animation.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L14) |
37
+ | <a id="activestate"></a> `activeState?` | `string` \| `null` | Name of the state to activate after construction. | [components/Animation.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L16) |
38
+ | <a id="paused"></a> `paused?` | `boolean` | Whether playback starts paused. | [components/Animation.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L18) |
39
+ | <a id="reverse"></a> `reverse?` | `boolean` | Play the active clip in reverse. | [components/Animation.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L20) |
40
+ | <a id="timescale"></a> `timeScale?` | `number` | Time-scale multiplier (`1` = real-time). | [components/Animation.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L22) |
41
+ | <a id="crossfadeduration"></a> `crossFadeDuration?` | `number` | Default cross-fade duration in seconds when switching states. | [components/Animation.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L24) |
42
+ | <a id="states"></a> `states?` | \{ `name`: `string`; `clip`: `string`; `clipId?`: `string`; `loop?`: `boolean`; \}[] | Predefined state machine entries (`name` -> clip binding). | [components/Animation.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Animation.ts#L26) |
@@ -23,7 +23,7 @@ type CameraComponentOptions = {
23
23
  };
24
24
  ```
25
25
 
26
- Defined in: [components/Camera.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L11)
26
+ Defined in: [components/Camera.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L11)
27
27
 
28
28
  Optional initializer for [CameraComponent](../classes/CameraComponent.md). Any field omitted falls back to the defaults documented on the component.
29
29
 
@@ -31,15 +31,15 @@ Optional initializer for [CameraComponent](../classes/CameraComponent.md). Any f
31
31
 
32
32
  | Property | Type | Description | Defined in |
33
33
  | ------ | ------ | ------ | ------ |
34
- | <a id="camera"></a> `camera?` | `THREE.Camera` | Pre-built three.js camera. When omitted the component creates one from [projection](#projection). | [components/Camera.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L13) |
35
- | <a id="type"></a> `type?` | [`CameraRuntimeType`](CameraRuntimeType.md) | Runtime camera mode. | [components/Camera.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L15) |
36
- | <a id="isdefault"></a> `isDefault?` | `boolean` | Mark this camera as the default camera the renderer uses. | [components/Camera.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L17) |
37
- | <a id="projection"></a> `projection?` | [`CameraProjection`](CameraProjection.md) | Projection model. | [components/Camera.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L19) |
38
- | <a id="fov"></a> `fov?` | `number` | Vertical field of view in **degrees** (perspective only). | [components/Camera.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L21) |
39
- | <a id="near"></a> `near?` | `number` | Near clip plane in world units. | [components/Camera.ts:23](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L23) |
40
- | <a id="far"></a> `far?` | `number` | Far clip plane in world units. | [components/Camera.ts:25](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L25) |
41
- | <a id="left"></a> `left?` | `number` | Left edge of the orthographic frustum in world units. | [components/Camera.ts:27](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L27) |
42
- | <a id="right"></a> `right?` | `number` | Right edge of the orthographic frustum in world units. | [components/Camera.ts:29](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L29) |
43
- | <a id="top"></a> `top?` | `number` | Top edge of the orthographic frustum in world units. | [components/Camera.ts:31](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L31) |
44
- | <a id="bottom"></a> `bottom?` | `number` | Bottom edge of the orthographic frustum in world units. | [components/Camera.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L33) |
45
- | <a id="zoom"></a> `zoom?` | `number` | Zoom multiplier (`1` = no zoom). | [components/Camera.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L35) |
34
+ | <a id="camera"></a> `camera?` | `THREE.Camera` | Pre-built three.js camera. When omitted the component creates one from [projection](#projection). | [components/Camera.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L13) |
35
+ | <a id="type"></a> `type?` | [`CameraRuntimeType`](CameraRuntimeType.md) | Runtime camera mode. | [components/Camera.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L15) |
36
+ | <a id="isdefault"></a> `isDefault?` | `boolean` | Mark this camera as the default camera the renderer uses. | [components/Camera.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L17) |
37
+ | <a id="projection"></a> `projection?` | [`CameraProjection`](CameraProjection.md) | Projection model. | [components/Camera.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L19) |
38
+ | <a id="fov"></a> `fov?` | `number` | Vertical field of view in **degrees** (perspective only). | [components/Camera.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L21) |
39
+ | <a id="near"></a> `near?` | `number` | Near clip plane in world units. | [components/Camera.ts:23](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L23) |
40
+ | <a id="far"></a> `far?` | `number` | Far clip plane in world units. | [components/Camera.ts:25](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L25) |
41
+ | <a id="left"></a> `left?` | `number` | Left edge of the orthographic frustum in world units. | [components/Camera.ts:27](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L27) |
42
+ | <a id="right"></a> `right?` | `number` | Right edge of the orthographic frustum in world units. | [components/Camera.ts:29](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L29) |
43
+ | <a id="top"></a> `top?` | `number` | Top edge of the orthographic frustum in world units. | [components/Camera.ts:31](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L31) |
44
+ | <a id="bottom"></a> `bottom?` | `number` | Bottom edge of the orthographic frustum in world units. | [components/Camera.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L33) |
45
+ | <a id="zoom"></a> `zoom?` | `number` | Zoom multiplier (`1` = no zoom). | [components/Camera.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L35) |
@@ -10,6 +10,6 @@
10
10
  type CameraProjection = "perspective" | "orthographic";
11
11
  ```
12
12
 
13
- Defined in: [components/Camera.ts:8](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L8)
13
+ Defined in: [components/Camera.ts:8](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L8)
14
14
 
15
15
  Projection model.
@@ -10,6 +10,6 @@
10
10
  type CameraRuntimeType = "3d" | "ar";
11
11
  ```
12
12
 
13
- Defined in: [components/Camera.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L6)
13
+ Defined in: [components/Camera.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Camera.ts#L6)
14
14
 
15
15
  Runtime camera mode. `3d` is a free camera; `ar` is composited over a tracked image/face feed.
@@ -10,6 +10,6 @@
10
10
  type ColliderShape = "cuboid" | "ball" | "capsule" | "cylinder" | "trimesh";
11
11
  ```
12
12
 
13
- Defined in: [components/Physics.ts:83](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L83)
13
+ Defined in: [components/Physics.ts:83](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L83)
14
14
 
15
15
  Collider primitive shape. `trimesh` derives geometry from the entity's mesh.
@@ -33,7 +33,7 @@ type ColliderState = {
33
33
  };
34
34
  ```
35
35
 
36
- Defined in: [components/Physics.ts:91](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L91)
36
+ Defined in: [components/Physics.ts:91](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L91)
37
37
 
38
38
  Authoring state for the collider half of [PhysicsComponent](../classes/PhysicsComponent.md). Only the size fields relevant to [ColliderState.shape](#shape) are read at simulation time.
39
39
 
@@ -41,22 +41,22 @@ Authoring state for the collider half of [PhysicsComponent](../classes/PhysicsCo
41
41
 
42
42
  | Property | Type | Description | Defined in |
43
43
  | ------ | ------ | ------ | ------ |
44
- | <a id="enabled"></a> `enabled` | `boolean` | When `false`, the collider is removed from physics simulation but kept in state. | [components/Physics.ts:93](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L93) |
45
- | <a id="shape"></a> `shape` | [`ColliderShape`](ColliderShape.md) | Collider primitive shape. | [components/Physics.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L95) |
46
- | <a id="offsetposition"></a> `offsetPosition` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Local offset of the collider relative to the entity's transform, in world units. | [components/Physics.ts:97](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L97) |
47
- | `offsetPosition.x` | `number` | Offset along local X. | [components/Physics.ts:99](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L99) |
48
- | `offsetPosition.y` | `number` | Offset along local Y. | [components/Physics.ts:101](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L101) |
49
- | `offsetPosition.z` | `number` | Offset along local Z. | [components/Physics.ts:103](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L103) |
50
- | <a id="offsetrotation"></a> `offsetRotation` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Local rotation offset in **radians** (Euler XYZ). | [components/Physics.ts:106](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L106) |
51
- | `offsetRotation.x` | `number` | Rotation around local X (radians). | [components/Physics.ts:108](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L108) |
52
- | `offsetRotation.y` | `number` | Rotation around local Y (radians). | [components/Physics.ts:110](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L110) |
53
- | `offsetRotation.z` | `number` | Rotation around local Z (radians). | [components/Physics.ts:112](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L112) |
54
- | <a id="size"></a> `size` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Half-extents for `cuboid` shape, in world units. | [components/Physics.ts:115](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L115) |
55
- | `size.x` | `number` | Half-extent along X. | [components/Physics.ts:117](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L117) |
56
- | `size.y` | `number` | Half-extent along Y. | [components/Physics.ts:119](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L119) |
57
- | `size.z` | `number` | Half-extent along Z. | [components/Physics.ts:121](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L121) |
58
- | <a id="radius"></a> `radius` | `number` | Radius for `ball`, `capsule`, and `cylinder` shapes. | [components/Physics.ts:124](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L124) |
59
- | <a id="height"></a> `height` | `number` | Height for `capsule` (segment length between caps) and `cylinder`. | [components/Physics.ts:126](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L126) |
60
- | <a id="restitution"></a> `restitution` | `number` | Bounciness in `[0, 1]`. `0` is no bounce; `1` is perfectly elastic. | [components/Physics.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L128) |
61
- | <a id="friction"></a> `friction` | `number` | Surface friction coefficient. `0` is frictionless. | [components/Physics.ts:130](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L130) |
62
- | <a id="issensor"></a> `isSensor` | `boolean` | When `true`, the collider reports overlaps but does not generate contact responses. | [components/Physics.ts:132](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L132) |
44
+ | <a id="enabled"></a> `enabled` | `boolean` | When `false`, the collider is removed from physics simulation but kept in state. | [components/Physics.ts:93](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L93) |
45
+ | <a id="shape"></a> `shape` | [`ColliderShape`](ColliderShape.md) | Collider primitive shape. | [components/Physics.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L95) |
46
+ | <a id="offsetposition"></a> `offsetPosition` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Local offset of the collider relative to the entity's transform, in world units. | [components/Physics.ts:97](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L97) |
47
+ | `offsetPosition.x` | `number` | Offset along local X. | [components/Physics.ts:99](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L99) |
48
+ | `offsetPosition.y` | `number` | Offset along local Y. | [components/Physics.ts:101](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L101) |
49
+ | `offsetPosition.z` | `number` | Offset along local Z. | [components/Physics.ts:103](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L103) |
50
+ | <a id="offsetrotation"></a> `offsetRotation` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Local rotation offset in **radians** (Euler XYZ). | [components/Physics.ts:106](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L106) |
51
+ | `offsetRotation.x` | `number` | Rotation around local X (radians). | [components/Physics.ts:108](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L108) |
52
+ | `offsetRotation.y` | `number` | Rotation around local Y (radians). | [components/Physics.ts:110](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L110) |
53
+ | `offsetRotation.z` | `number` | Rotation around local Z (radians). | [components/Physics.ts:112](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L112) |
54
+ | <a id="size"></a> `size` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | FULL edge lengths for `cuboid` shape (NOT half-extents), in unscaled local units — multiplied by the entity world scale at collider build time. | [components/Physics.ts:115](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L115) |
55
+ | `size.x` | `number` | Half-extent along X. | [components/Physics.ts:117](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L117) |
56
+ | `size.y` | `number` | Half-extent along Y. | [components/Physics.ts:119](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L119) |
57
+ | `size.z` | `number` | Half-extent along Z. | [components/Physics.ts:121](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L121) |
58
+ | <a id="radius"></a> `radius` | `number` | Radius for `ball`, `capsule`, and `cylinder` shapes. | [components/Physics.ts:124](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L124) |
59
+ | <a id="height"></a> `height` | `number` | Height for `capsule` (segment length between caps) and `cylinder`. | [components/Physics.ts:126](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L126) |
60
+ | <a id="restitution"></a> `restitution` | `number` | Bounciness in `[0, 1]`. `0` is no bounce; `1` is perfectly elastic. | [components/Physics.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L128) |
61
+ | <a id="friction"></a> `friction` | `number` | Surface friction coefficient. `0` is frictionless. | [components/Physics.ts:130](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L130) |
62
+ | <a id="issensor"></a> `isSensor` | `boolean` | When `true`, the collider reports overlaps but does not generate contact responses. | [components/Physics.ts:132](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Physics.ts#L132) |
@@ -14,7 +14,7 @@ type CubeMeshParameters = {
14
14
  };
15
15
  ```
16
16
 
17
- Defined in: [components/MeshGeometry.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L15)
17
+ Defined in: [components/MeshGeometry.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/MeshGeometry.ts#L15)
18
18
 
19
19
  Box geometry parameters in world units.
20
20
 
@@ -22,6 +22,6 @@ Box geometry parameters in world units.
22
22
 
23
23
  | Property | Type | Description | Defined in |
24
24
  | ------ | ------ | ------ | ------ |
25
- | <a id="width"></a> `width` | `number` | Box width along X. | [components/MeshGeometry.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L17) |
26
- | <a id="height"></a> `height` | `number` | Box height along Y. | [components/MeshGeometry.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L19) |
27
- | <a id="depth"></a> `depth` | `number` | Box depth along Z. | [components/MeshGeometry.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L21) |
25
+ | <a id="width"></a> `width` | `number` | Box width along X. | [components/MeshGeometry.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/MeshGeometry.ts#L17) |
26
+ | <a id="height"></a> `height` | `number` | Box height along Y. | [components/MeshGeometry.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/MeshGeometry.ts#L19) |
27
+ | <a id="depth"></a> `depth` | `number` | Box depth along Z. | [components/MeshGeometry.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/MeshGeometry.ts#L21) |
@@ -10,6 +10,6 @@
10
10
  type EditableMeshObjectKind = "capsule" | "cube" | "cylinder" | "model" | "plane" | "sphere";
11
11
  ```
12
12
 
13
- Defined in: [components/MeshGeometry.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L6)
13
+ Defined in: [components/MeshGeometry.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/MeshGeometry.ts#L6)
14
14
 
15
15
  Editable primitive kinds the mesh-geometry system can rebuild on the fly. `model` is a passthrough placeholder for entities that own a loaded GLTF/GLB instead.
@@ -20,7 +20,7 @@ type EnvironmentFogState = {
20
20
  };
21
21
  ```
22
22
 
23
- Defined in: [components/Environment.ts:28](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L28)
23
+ Defined in: [components/Environment.ts:28](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L28)
24
24
 
25
25
  Fog configuration. Mirrors three.js `Fog` / `FogExp2`.
26
26
 
@@ -28,10 +28,10 @@ Fog configuration. Mirrors three.js `Fog` / `FogExp2`.
28
28
 
29
29
  | Property | Type | Description | Defined in |
30
30
  | ------ | ------ | ------ | ------ |
31
- | <a id="type"></a> `type` | [`EnvironmentFogType`](EnvironmentFogType.md) | Active fog model. | [components/Environment.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L30) |
32
- | <a id="color"></a> `color` | `string` | Fog color as `#rrggbb`. | [components/Environment.ts:32](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L32) |
33
- | <a id="linear"></a> `linear` | \{ `near`: `number`; `far`: `number`; \} | Linear-fog parameters used when [type](#type) is `"linear"`. | [components/Environment.ts:34](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L34) |
34
- | `linear.near` | `number` | Distance at which fog begins to take effect. | [components/Environment.ts:36](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L36) |
35
- | `linear.far` | `number` | Distance at which fog reaches full opacity. | [components/Environment.ts:38](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L38) |
36
- | <a id="exponential"></a> `exponential` | \{ `density`: `number`; \} | Exponential-fog parameters used when [type](#type) is `"exponential"`. | [components/Environment.ts:41](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L41) |
37
- | `exponential.density` | `number` | Density coefficient. Higher values produce thicker fog. | [components/Environment.ts:43](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L43) |
31
+ | <a id="type"></a> `type` | [`EnvironmentFogType`](EnvironmentFogType.md) | Active fog model. | [components/Environment.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L30) |
32
+ | <a id="color"></a> `color` | `string` | Fog color as `#rrggbb`. | [components/Environment.ts:32](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L32) |
33
+ | <a id="linear"></a> `linear` | \{ `near`: `number`; `far`: `number`; \} | Linear-fog parameters used when [type](#type) is `"linear"`. | [components/Environment.ts:34](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L34) |
34
+ | `linear.near` | `number` | Distance at which fog begins to take effect. | [components/Environment.ts:36](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L36) |
35
+ | `linear.far` | `number` | Distance at which fog reaches full opacity. | [components/Environment.ts:38](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L38) |
36
+ | <a id="exponential"></a> `exponential` | \{ `density`: `number`; \} | Exponential-fog parameters used when [type](#type) is `"exponential"`. | [components/Environment.ts:41](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L41) |
37
+ | `exponential.density` | `number` | Density coefficient. Higher values produce thicker fog. | [components/Environment.ts:43](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L43) |
@@ -10,6 +10,6 @@
10
10
  type EnvironmentFogType = "linear" | "exponential" | "none";
11
11
  ```
12
12
 
13
- Defined in: [components/Environment.ts:8](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L8)
13
+ Defined in: [components/Environment.ts:8](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L8)
14
14
 
15
15
  Fog distance models. `none` disables fog.
@@ -10,6 +10,6 @@
10
10
  type EnvironmentGradientEffect = "radial" | "linear" | "angular";
11
11
  ```
12
12
 
13
- Defined in: [components/Environment.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Environment.ts#L6)
13
+ Defined in: [components/Environment.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/components/Environment.ts#L6)
14
14
 
15
15
  Gradient distribution applied when [EnvironmentSkyboxState.type](EnvironmentSkyboxState.md#type) is `"gradient"`.