@iwsdk/core 0.4.1 → 0.5.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 (407) hide show
  1. package/README.md +4 -7
  2. package/dist/asset/asset-manager.d.ts +137 -9
  3. package/dist/asset/asset-manager.d.ts.map +1 -1
  4. package/dist/asset/asset-manager.js +491 -47
  5. package/dist/asset/asset-manager.js.map +1 -1
  6. package/dist/asset/cache-manager.d.ts +4 -2
  7. package/dist/asset/cache-manager.d.ts.map +1 -1
  8. package/dist/asset/cache-manager.js +10 -3
  9. package/dist/asset/cache-manager.js.map +1 -1
  10. package/dist/asset/loaders/audio-loader.d.ts +1 -1
  11. package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
  12. package/dist/asset/loaders/audio-loader.js +8 -26
  13. package/dist/asset/loaders/audio-loader.js.map +1 -1
  14. package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
  15. package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
  16. package/dist/asset/loaders/cached-asset-load.js +100 -0
  17. package/dist/asset/loaders/cached-asset-load.js.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.d.ts +28 -1
  19. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
  20. package/dist/asset/loaders/gltf-loader.js +254 -33
  21. package/dist/asset/loaders/gltf-loader.js.map +1 -1
  22. package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
  23. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
  24. package/dist/asset/loaders/hdr-texture-loader.js +19 -29
  25. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
  26. package/dist/asset/loaders/texture-loader.d.ts +1 -1
  27. package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
  28. package/dist/asset/loaders/texture-loader.js +9 -26
  29. package/dist/asset/loaders/texture-loader.js.map +1 -1
  30. package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
  31. package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
  32. package/dist/asset/loaders/uikitml-loader.js +44 -0
  33. package/dist/asset/loaders/uikitml-loader.js.map +1 -0
  34. package/dist/audio/audio-pool.d.ts +7 -0
  35. package/dist/audio/audio-pool.d.ts.map +1 -1
  36. package/dist/audio/audio-pool.js.map +1 -1
  37. package/dist/audio/audio-system.d.ts +3 -2
  38. package/dist/audio/audio-system.d.ts.map +1 -1
  39. package/dist/audio/audio-system.js +17 -6
  40. package/dist/audio/audio-system.js.map +1 -1
  41. package/dist/audio/audio-utils.d.ts +2 -2
  42. package/dist/audio/audio-utils.d.ts.map +1 -1
  43. package/dist/audio/audio.d.ts +1 -1
  44. package/dist/audio/audio.d.ts.map +1 -1
  45. package/dist/audio/audio.js +2 -4
  46. package/dist/audio/audio.js.map +1 -1
  47. package/dist/camera/camera-source.d.ts +1 -1
  48. package/dist/camera/camera-source.d.ts.map +1 -1
  49. package/dist/camera/camera-source.js +0 -4
  50. package/dist/camera/camera-source.js.map +1 -1
  51. package/dist/camera/camera-system.d.ts +18 -18
  52. package/dist/camera/camera-system.d.ts.map +1 -1
  53. package/dist/camera/camera-system.js +5 -6
  54. package/dist/camera/camera-system.js.map +1 -1
  55. package/dist/camera/camera-utils.d.ts +1 -1
  56. package/dist/camera/camera-utils.d.ts.map +1 -1
  57. package/dist/depth/depth-occludable.d.ts +1 -1
  58. package/dist/depth/depth-occludable.d.ts.map +1 -1
  59. package/dist/depth/depth-occludable.js +0 -4
  60. package/dist/depth/depth-occludable.js.map +1 -1
  61. package/dist/depth/depth-sensing-system.d.ts +2 -2
  62. package/dist/depth/depth-sensing-system.d.ts.map +1 -1
  63. package/dist/depth/depth-sensing-system.js +31 -13
  64. package/dist/depth/depth-sensing-system.js.map +1 -1
  65. package/dist/ecs/builtin-components.d.ts +1239 -0
  66. package/dist/ecs/builtin-components.d.ts.map +1 -0
  67. package/dist/ecs/builtin-components.js +87 -0
  68. package/dist/ecs/builtin-components.js.map +1 -0
  69. package/dist/ecs/component-editor-metadata.d.ts +19 -0
  70. package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
  71. package/dist/ecs/component-editor-metadata.js +19 -0
  72. package/dist/ecs/component-editor-metadata.js.map +1 -0
  73. package/dist/ecs/component-manifest.d.ts +24 -0
  74. package/dist/ecs/component-manifest.d.ts.map +1 -0
  75. package/dist/ecs/component-manifest.js +121 -0
  76. package/dist/ecs/component-manifest.js.map +1 -0
  77. package/dist/ecs/component.d.ts +1 -0
  78. package/dist/ecs/component.d.ts.map +1 -1
  79. package/dist/ecs/entity.d.ts +20 -2
  80. package/dist/ecs/entity.d.ts.map +1 -1
  81. package/dist/ecs/entity.js +59 -3
  82. package/dist/ecs/entity.js.map +1 -1
  83. package/dist/ecs/index.d.ts +3 -1
  84. package/dist/ecs/index.d.ts.map +1 -1
  85. package/dist/ecs/system.d.ts +9 -0
  86. package/dist/ecs/system.d.ts.map +1 -1
  87. package/dist/ecs/system.js.map +1 -1
  88. package/dist/ecs/world.d.ts +160 -5
  89. package/dist/ecs/world.d.ts.map +1 -1
  90. package/dist/ecs/world.js +306 -19
  91. package/dist/ecs/world.js.map +1 -1
  92. package/dist/environment/dome-gradient.d.ts +3 -2
  93. package/dist/environment/dome-gradient.d.ts.map +1 -1
  94. package/dist/environment/dome-gradient.js +2 -5
  95. package/dist/environment/dome-gradient.js.map +1 -1
  96. package/dist/environment/dome-texture.d.ts +1 -1
  97. package/dist/environment/dome-texture.d.ts.map +1 -1
  98. package/dist/environment/dome-texture.js +0 -4
  99. package/dist/environment/dome-texture.js.map +1 -1
  100. package/dist/environment/environment-system.d.ts +20 -4
  101. package/dist/environment/environment-system.d.ts.map +1 -1
  102. package/dist/environment/environment-system.js +79 -61
  103. package/dist/environment/environment-system.js.map +1 -1
  104. package/dist/environment/gradient-environment.d.ts.map +1 -1
  105. package/dist/environment/gradient-environment.js +13 -7
  106. package/dist/environment/gradient-environment.js.map +1 -1
  107. package/dist/environment/ibl-gradient.d.ts +1 -1
  108. package/dist/environment/ibl-gradient.d.ts.map +1 -1
  109. package/dist/environment/ibl-gradient.js +0 -4
  110. package/dist/environment/ibl-gradient.js.map +1 -1
  111. package/dist/environment/ibl-texture.d.ts +1 -1
  112. package/dist/environment/ibl-texture.d.ts.map +1 -1
  113. package/dist/environment/ibl-texture.js +0 -4
  114. package/dist/environment/ibl-texture.js.map +1 -1
  115. package/dist/environment/scene-ar-environment.d.ts +39 -0
  116. package/dist/environment/scene-ar-environment.d.ts.map +1 -0
  117. package/dist/environment/scene-ar-environment.js +93 -0
  118. package/dist/environment/scene-ar-environment.js.map +1 -0
  119. package/dist/environment-raycast/environment-raycast.d.ts +21 -21
  120. package/dist/environment-raycast/environment-raycast.d.ts.map +1 -1
  121. package/dist/environment-raycast/environment-raycast.js +0 -4
  122. package/dist/environment-raycast/environment-raycast.js.map +1 -1
  123. package/dist/environment-raycast/raycast-target.d.ts +1 -1
  124. package/dist/environment-raycast/raycast-target.d.ts.map +1 -1
  125. package/dist/environment-raycast/raycast-target.js +0 -4
  126. package/dist/environment-raycast/raycast-target.js.map +1 -1
  127. package/dist/grab/distance-grabbable.d.ts +1 -1
  128. package/dist/grab/distance-grabbable.d.ts.map +1 -1
  129. package/dist/grab/distance-grabbable.js +0 -4
  130. package/dist/grab/distance-grabbable.js.map +1 -1
  131. package/dist/grab/grab-helpers.d.ts +39 -0
  132. package/dist/grab/grab-helpers.d.ts.map +1 -0
  133. package/dist/grab/grab-helpers.js +59 -0
  134. package/dist/grab/grab-helpers.js.map +1 -0
  135. package/dist/grab/grab-system.d.ts +47 -2
  136. package/dist/grab/grab-system.d.ts.map +1 -1
  137. package/dist/grab/grab-system.js +67 -8
  138. package/dist/grab/grab-system.js.map +1 -1
  139. package/dist/grab/grab-warnings.d.ts +14 -0
  140. package/dist/grab/grab-warnings.d.ts.map +1 -0
  141. package/dist/grab/grab-warnings.js +53 -0
  142. package/dist/grab/grab-warnings.js.map +1 -0
  143. package/dist/grab/grabbed.d.ts.map +1 -1
  144. package/dist/grab/grabbed.js +0 -4
  145. package/dist/grab/grabbed.js.map +1 -1
  146. package/dist/grab/handles.d.ts +1 -1
  147. package/dist/grab/handles.d.ts.map +1 -1
  148. package/dist/grab/handles.js +8 -7
  149. package/dist/grab/handles.js.map +1 -1
  150. package/dist/grab/one-hand-grabbable.d.ts +1 -1
  151. package/dist/grab/one-hand-grabbable.d.ts.map +1 -1
  152. package/dist/grab/one-hand-grabbable.js +0 -4
  153. package/dist/grab/one-hand-grabbable.js.map +1 -1
  154. package/dist/grab/two-hands-grabbable.d.ts +1 -1
  155. package/dist/grab/two-hands-grabbable.d.ts.map +1 -1
  156. package/dist/grab/two-hands-grabbable.js +0 -4
  157. package/dist/grab/two-hands-grabbable.js.map +1 -1
  158. package/dist/index.d.ts +4 -0
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +42 -16
  161. package/dist/index.js.map +1 -1
  162. package/dist/init/world-initializer.d.ts +12 -8
  163. package/dist/init/world-initializer.d.ts.map +1 -1
  164. package/dist/init/world-initializer.js +127 -67
  165. package/dist/init/world-initializer.js.map +1 -1
  166. package/dist/init/xr.d.ts +1 -2
  167. package/dist/init/xr.d.ts.map +1 -1
  168. package/dist/init/xr.js +12 -3
  169. package/dist/init/xr.js.map +1 -1
  170. package/dist/input/input-system.d.ts +59 -59
  171. package/dist/input/input-system.d.ts.map +1 -1
  172. package/dist/input/input-system.js +26 -13
  173. package/dist/input/input-system.js.map +1 -1
  174. package/dist/input/state-tags.d.ts.map +1 -1
  175. package/dist/input/state-tags.js +0 -4
  176. package/dist/input/state-tags.js.map +1 -1
  177. package/dist/layers/xr-cylinder-layer.d.ts +1 -1
  178. package/dist/layers/xr-cylinder-layer.d.ts.map +1 -1
  179. package/dist/layers/xr-cylinder-layer.js +0 -4
  180. package/dist/layers/xr-cylinder-layer.js.map +1 -1
  181. package/dist/layers/xr-layer-state.d.ts +47 -0
  182. package/dist/layers/xr-layer-state.d.ts.map +1 -0
  183. package/dist/layers/xr-layer-state.js +23 -0
  184. package/dist/layers/xr-layer-state.js.map +1 -0
  185. package/dist/layers/xr-layer-system.d.ts +46 -94
  186. package/dist/layers/xr-layer-system.d.ts.map +1 -1
  187. package/dist/layers/xr-layer-system.js +4 -28
  188. package/dist/layers/xr-layer-system.js.map +1 -1
  189. package/dist/layers/xr-quad-layer.d.ts +1 -1
  190. package/dist/layers/xr-quad-layer.d.ts.map +1 -1
  191. package/dist/layers/xr-quad-layer.js +0 -4
  192. package/dist/layers/xr-quad-layer.js.map +1 -1
  193. package/dist/level/index.d.ts +6 -2
  194. package/dist/level/index.d.ts.map +1 -1
  195. package/dist/level/level-component-applier.d.ts +24 -0
  196. package/dist/level/level-component-applier.d.ts.map +1 -0
  197. package/dist/level/level-component-applier.js +199 -0
  198. package/dist/level/level-component-applier.js.map +1 -0
  199. package/dist/level/level-player-rig.d.ts +17 -0
  200. package/dist/level/level-player-rig.d.ts.map +1 -0
  201. package/dist/level/level-player-rig.js +113 -0
  202. package/dist/level/level-player-rig.js.map +1 -0
  203. package/dist/level/level-root.d.ts.map +1 -1
  204. package/dist/level/level-root.js +0 -4
  205. package/dist/level/level-root.js.map +1 -1
  206. package/dist/level/level-scene-environment.d.ts +28 -0
  207. package/dist/level/level-scene-environment.d.ts.map +1 -0
  208. package/dist/level/level-scene-environment.js +121 -0
  209. package/dist/level/level-scene-environment.js.map +1 -0
  210. package/dist/level/level-scene-json-importer.d.ts +53 -0
  211. package/dist/level/level-scene-json-importer.d.ts.map +1 -0
  212. package/dist/level/level-scene-json-importer.js +256 -0
  213. package/dist/level/level-scene-json-importer.js.map +1 -0
  214. package/dist/level/level-scene-material.d.ts +22 -0
  215. package/dist/level/level-scene-material.d.ts.map +1 -0
  216. package/dist/level/level-scene-material.js +231 -0
  217. package/dist/level/level-scene-material.js.map +1 -0
  218. package/dist/level/level-scene-object.d.ts +49 -0
  219. package/dist/level/level-scene-object.d.ts.map +1 -0
  220. package/dist/level/level-scene-object.js +396 -0
  221. package/dist/level/level-scene-object.js.map +1 -0
  222. package/dist/level/level-scene-primitive.d.ts +21 -0
  223. package/dist/level/level-scene-primitive.d.ts.map +1 -0
  224. package/dist/level/level-scene-primitive.js +159 -0
  225. package/dist/level/level-scene-primitive.js.map +1 -0
  226. package/dist/level/level-system.d.ts +14 -20
  227. package/dist/level/level-system.d.ts.map +1 -1
  228. package/dist/level/level-system.js +114 -52
  229. package/dist/level/level-system.js.map +1 -1
  230. package/dist/level/level-tag.d.ts +1 -1
  231. package/dist/level/level-tag.d.ts.map +1 -1
  232. package/dist/level/level-tag.js +0 -4
  233. package/dist/level/level-tag.js.map +1 -1
  234. package/dist/lighting/index.d.ts +10 -0
  235. package/dist/lighting/index.d.ts.map +1 -0
  236. package/dist/lighting/index.js +4 -0
  237. package/dist/lighting/index.js.map +1 -0
  238. package/dist/lighting/light-binding.d.ts +76 -0
  239. package/dist/lighting/light-binding.d.ts.map +1 -0
  240. package/dist/lighting/light-binding.js +229 -0
  241. package/dist/lighting/light-binding.js.map +1 -0
  242. package/dist/lighting/light-components.d.ts +885 -0
  243. package/dist/lighting/light-components.d.ts.map +1 -0
  244. package/dist/lighting/light-components.js +146 -0
  245. package/dist/lighting/light-components.js.map +1 -0
  246. package/dist/lighting/light-system.d.ts +919 -0
  247. package/dist/lighting/light-system.d.ts.map +1 -0
  248. package/dist/lighting/light-system.js +244 -0
  249. package/dist/lighting/light-system.js.map +1 -0
  250. package/dist/locomotion/locomotion-environment.d.ts +27 -0
  251. package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
  252. package/dist/locomotion/locomotion-environment.js +22 -0
  253. package/dist/locomotion/locomotion-environment.js.map +1 -0
  254. package/dist/locomotion/locomotion-input-provider.d.ts +1 -1
  255. package/dist/locomotion/locomotion.d.ts +5 -34
  256. package/dist/locomotion/locomotion.d.ts.map +1 -1
  257. package/dist/locomotion/locomotion.js +33 -31
  258. package/dist/locomotion/locomotion.js.map +1 -1
  259. package/dist/locomotion/materials/line.js +1 -1
  260. package/dist/locomotion/slide.d.ts +2 -2
  261. package/dist/locomotion/slide.d.ts.map +1 -1
  262. package/dist/locomotion/slide.js +3 -6
  263. package/dist/locomotion/slide.js.map +1 -1
  264. package/dist/locomotion/teleport.d.ts +2 -2
  265. package/dist/locomotion/teleport.d.ts.map +1 -1
  266. package/dist/locomotion/teleport.js +1 -4
  267. package/dist/locomotion/teleport.js.map +1 -1
  268. package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
  269. package/dist/mcp/ecs-debug-tools.js +10 -2
  270. package/dist/mcp/ecs-debug-tools.js.map +1 -1
  271. package/dist/mcp/mcp-runtime.d.ts.map +1 -1
  272. package/dist/mcp/mcp-runtime.js +4 -1
  273. package/dist/mcp/mcp-runtime.js.map +1 -1
  274. package/dist/mcp/scene-tools.d.ts +152 -1
  275. package/dist/mcp/scene-tools.d.ts.map +1 -1
  276. package/dist/mcp/scene-tools.js +538 -8
  277. package/dist/mcp/scene-tools.js.map +1 -1
  278. package/dist/physics/index.js +12 -0
  279. package/dist/physics/index.js.map +1 -0
  280. package/dist/physics/physics-system.d.ts +704 -11
  281. package/dist/physics/physics-system.d.ts.map +1 -1
  282. package/dist/physics/physics-system.js +310 -29
  283. package/dist/physics/physics-system.js.map +1 -1
  284. package/dist/physics/physicsBody.d.ts +40 -1
  285. package/dist/physics/physicsBody.d.ts.map +1 -1
  286. package/dist/physics/physicsBody.js +39 -1
  287. package/dist/physics/physicsBody.js.map +1 -1
  288. package/dist/physics/physicsManipulation.d.ts +1 -1
  289. package/dist/physics/physicsManipulation.d.ts.map +1 -1
  290. package/dist/physics/physicsManipulation.js +0 -1
  291. package/dist/physics/physicsManipulation.js.map +1 -1
  292. package/dist/physics/physicsShape.d.ts +5 -3
  293. package/dist/physics/physicsShape.d.ts.map +1 -1
  294. package/dist/physics/physicsShape.js +2 -2
  295. package/dist/physics/physicsShape.js.map +1 -1
  296. package/dist/physics/utils.d.ts +10 -0
  297. package/dist/physics/utils.d.ts.map +1 -1
  298. package/dist/physics/utils.js +82 -48
  299. package/dist/physics/utils.js.map +1 -1
  300. package/dist/project/index.d.ts +11 -0
  301. package/dist/project/index.d.ts.map +1 -0
  302. package/dist/project/index.js +5 -0
  303. package/dist/project/index.js.map +1 -0
  304. package/dist/project/normalize.d.ts +19 -0
  305. package/dist/project/normalize.d.ts.map +1 -0
  306. package/dist/project/normalize.js +206 -0
  307. package/dist/project/normalize.js.map +1 -0
  308. package/dist/project/paths.d.ts +21 -0
  309. package/dist/project/paths.d.ts.map +1 -0
  310. package/dist/project/paths.js +75 -0
  311. package/dist/project/paths.js.map +1 -0
  312. package/dist/project/types.d.ts +159 -0
  313. package/dist/project/types.d.ts.map +1 -0
  314. package/dist/project/types.js +11 -0
  315. package/dist/project/types.js.map +1 -0
  316. package/dist/project/validation.d.ts +17 -0
  317. package/dist/project/validation.d.ts.map +1 -0
  318. package/dist/project/validation.js +501 -0
  319. package/dist/project/validation.js.map +1 -0
  320. package/dist/scene-understanding/anchor.d.ts +1 -1
  321. package/dist/scene-understanding/anchor.d.ts.map +1 -1
  322. package/dist/scene-understanding/anchor.js +0 -4
  323. package/dist/scene-understanding/anchor.js.map +1 -1
  324. package/dist/scene-understanding/mesh.d.ts +1 -1
  325. package/dist/scene-understanding/mesh.d.ts.map +1 -1
  326. package/dist/scene-understanding/mesh.js +0 -4
  327. package/dist/scene-understanding/mesh.js.map +1 -1
  328. package/dist/scene-understanding/plane.d.ts +1 -1
  329. package/dist/scene-understanding/plane.d.ts.map +1 -1
  330. package/dist/scene-understanding/plane.js +0 -4
  331. package/dist/scene-understanding/plane.js.map +1 -1
  332. package/dist/scene-understanding/scene-understanding-system.d.ts +25 -4
  333. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
  334. package/dist/scene-understanding/scene-understanding-system.js +76 -57
  335. package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
  336. package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
  337. package/dist/transform/transform-component.d.ts +32 -0
  338. package/dist/transform/transform-component.d.ts.map +1 -0
  339. package/dist/transform/transform-component.js +24 -0
  340. package/dist/transform/transform-component.js.map +1 -0
  341. package/dist/transform/transform.d.ts +10 -43
  342. package/dist/transform/transform.d.ts.map +1 -1
  343. package/dist/transform/transform.js +9 -28
  344. package/dist/transform/transform.js.map +1 -1
  345. package/dist/ui/document.d.ts +9 -2
  346. package/dist/ui/document.d.ts.map +1 -1
  347. package/dist/ui/document.js +30 -5
  348. package/dist/ui/document.js.map +1 -1
  349. package/dist/ui/follow-component.d.ts +57 -0
  350. package/dist/ui/follow-component.d.ts.map +1 -0
  351. package/dist/ui/follow-component.js +38 -0
  352. package/dist/ui/follow-component.js.map +1 -0
  353. package/dist/ui/follow.d.ts +29 -103
  354. package/dist/ui/follow.d.ts.map +1 -1
  355. package/dist/ui/follow.js +10 -51
  356. package/dist/ui/follow.js.map +1 -1
  357. package/dist/ui/index.d.ts +3 -0
  358. package/dist/ui/index.d.ts.map +1 -1
  359. package/dist/ui/panel-components.d.ts +29 -0
  360. package/dist/ui/panel-components.d.ts.map +1 -0
  361. package/dist/ui/panel-components.js +22 -0
  362. package/dist/ui/panel-components.js.map +1 -0
  363. package/dist/ui/screenspace-component.d.ts +39 -0
  364. package/dist/ui/screenspace-component.d.ts.map +1 -0
  365. package/dist/ui/screenspace-component.js +21 -0
  366. package/dist/ui/screenspace-component.js.map +1 -0
  367. package/dist/ui/screenspace.d.ts +47 -135
  368. package/dist/ui/screenspace.d.ts.map +1 -1
  369. package/dist/ui/screenspace.js +127 -65
  370. package/dist/ui/screenspace.js.map +1 -1
  371. package/dist/ui/ui.d.ts +20 -122
  372. package/dist/ui/ui.d.ts.map +1 -1
  373. package/dist/ui/ui.js +44 -107
  374. package/dist/ui/ui.js.map +1 -1
  375. package/dist/ui/uikitml-asset.d.ts +25 -0
  376. package/dist/ui/uikitml-asset.d.ts.map +1 -0
  377. package/dist/ui/uikitml-asset.js +56 -0
  378. package/dist/ui/uikitml-asset.js.map +1 -0
  379. package/dist/ui/uikitml.d.ts +41 -0
  380. package/dist/ui/uikitml.d.ts.map +1 -0
  381. package/dist/ui/uikitml.js +119 -0
  382. package/dist/ui/uikitml.js.map +1 -0
  383. package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
  384. package/dist/version.d.ts +1 -1
  385. package/dist/version.js +1 -1
  386. package/dist/visibility/visibility-component.d.ts +14 -0
  387. package/dist/visibility/visibility-component.d.ts.map +1 -0
  388. package/dist/visibility/visibility-component.js +15 -0
  389. package/dist/visibility/visibility-component.js.map +1 -0
  390. package/dist/visibility/visibility.d.ts +4 -11
  391. package/dist/visibility/visibility.d.ts.map +1 -1
  392. package/dist/visibility/visibility.js +9 -15
  393. package/dist/visibility/visibility.js.map +1 -1
  394. package/package.json +71 -19
  395. package/LICENSE +0 -21
  396. package/dist/ecs/component-registry.d.ts +0 -54
  397. package/dist/ecs/component-registry.d.ts.map +0 -1
  398. package/dist/ecs/component-registry.js +0 -86
  399. package/dist/ecs/component-registry.js.map +0 -1
  400. package/dist/level/level-entity-creator.d.ts +0 -27
  401. package/dist/level/level-entity-creator.d.ts.map +0 -1
  402. package/dist/level/level-entity-creator.js +0 -111
  403. package/dist/level/level-entity-creator.js.map +0 -1
  404. package/dist/level/level-glxf-importer.d.ts +0 -22
  405. package/dist/level/level-glxf-importer.d.ts.map +0 -1
  406. package/dist/level/level-glxf-importer.js +0 -40
  407. package/dist/level/level-glxf-importer.js.map +0 -1
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { Types } from '../ecs/index.js';
7
+ import { Types } from '../ecs/component.js';
8
8
  declare const SceneUnderstandingSystem_base: import("elics").SystemConstructor<{
9
9
  showWireFrame: {
10
10
  type: Types.Boolean;
@@ -55,7 +55,7 @@ declare const SceneUnderstandingSystem_base: import("elics").SystemConstructor<{
55
55
  };
56
56
  }>[];
57
57
  };
58
- }, import("../ecs/world.js").World, import("../ecs/system.js").System<{
58
+ }, import("../index.js").World, import("../ecs/system.js").System<{
59
59
  showWireFrame: {
60
60
  type: Types.Boolean;
61
61
  default: false;
@@ -177,6 +177,12 @@ export declare class SceneUnderstandingSystem extends SceneUnderstandingSystem_b
177
177
  private static readonly ANCHOR_UUID_STORAGE_KEY;
178
178
  init(): void;
179
179
  update(_delta: number, _time: number): void;
180
+ /**
181
+ * Dispose only the per-object geometry for a plane/mesh entity being removed.
182
+ * The plane/mesh materials are shared singletons (`planeMaterial` /
183
+ * `meshMaterial`), so they must NOT be disposed here.
184
+ */
185
+ private disposeEntityGeometry;
180
186
  private updatePlanes;
181
187
  private updateMeshes;
182
188
  private updateEnabledFeatures;
@@ -202,8 +208,23 @@ export declare class SceneUnderstandingSystem extends SceneUnderstandingSystem_b
202
208
  */
203
209
  private createAnchor;
204
210
  private updateAnchoredObject;
205
- private flatToVec3Array;
206
- private findMinMaxEntries;
207
211
  }
212
+ type Vec3 = {
213
+ x: number;
214
+ y: number;
215
+ z: number;
216
+ };
217
+ /**
218
+ * From a flat `[x,y,z, x,y,z, ...]` vertex buffer, return the vertices with the
219
+ * smallest and largest coordinate sum (`x + y + z`).
220
+ *
221
+ * Equivalent to the previous `flatToVec3Array(...)` -> `findMinMaxEntries(...)`
222
+ * pipeline, but it scans the typed array directly and allocates only the two
223
+ * result objects instead of one object per vertex (thousands per mesh).
224
+ */
225
+ export declare function findExtremeVertices(arr: Float32Array): {
226
+ minEntry: Vec3;
227
+ maxEntry: Vec3;
228
+ };
208
229
  export {};
209
230
  //# sourceMappingURL=scene-understanding-system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene-understanding-system.d.ts","sourceRoot":"","sources":["../../src/scene-understanding/scene-understanding-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,EAAE,MAAM,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAc9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,wBAAyB,SAAQ,6BAS7C;IACC,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,oBAAoB,CAAsB;IAElD,6FAA6F;IAC7F,OAAO,CAAC,eAAe,CAAkB;IAEzC,gHAAgH;IAChH,OAAO,CAAC,QAAQ,CAAuB;IAEvC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAA6B;IAElD,2FAA2F;IAC3F,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,YAAY,CAAiB;IAErC,yDAAyD;IACzD,OAAO,CAAC,aAAa,CAAqB;IAE1C,wDAAwD;IACxD,OAAO,CAAC,YAAY,CAAqB;IAEzC,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAA6B;IAE5E,IAAI,IAAI,IAAI;IAkFZ,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAyC3C,OAAO,CAAC,YAAY;IAkEpB,OAAO,CAAC,YAAY;IA0EpB,OAAO,CAAC,qBAAqB;IAgC7B;;;;;;;;;;OAUG;YACW,0BAA0B;IAsCxC;;;;;;;OAOG;YACW,YAAY;IAiC1B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,iBAAiB;CAkB1B"}
1
+ {"version":3,"file":"scene-understanding-system.d.ts","sourceRoot":"","sources":["../../src/scene-understanding/scene-understanding-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgB5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,wBAAyB,SAAQ,6BAS7C;IACC,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,oBAAoB,CAAsB;IAElD,6FAA6F;IAC7F,OAAO,CAAC,eAAe,CAAkB;IAEzC,gHAAgH;IAChH,OAAO,CAAC,QAAQ,CAAuB;IAEvC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAA6B;IAElD,2FAA2F;IAC3F,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,YAAY,CAAiB;IAErC,yDAAyD;IACzD,OAAO,CAAC,aAAa,CAAqB;IAE1C,wDAAwD;IACxD,OAAO,CAAC,YAAY,CAAqB;IAEzC,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAA6B;IAE5E,IAAI,IAAI,IAAI;IAsFZ,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAyC3C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,YAAY;IAsEpB,OAAO,CAAC,YAAY;IA6EpB,OAAO,CAAC,qBAAqB;IAgC7B;;;;;;;;;;OAUG;YACW,0BAA0B;IAsCxC;;;;;;;OAOG;YACW,YAAY;IAiC1B,OAAO,CAAC,oBAAoB;CAS7B;AAED,KAAK,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG;IACtD,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;CAChB,CAuBA"}
@@ -1,8 +1,5 @@
1
- import { createSystem } from '../ecs/system.js';
2
- import '../ecs/world.js';
3
1
  import { Types } from 'elics';
4
- import '../ecs/entity.js';
5
- import '../ecs/component-registry.js';
2
+ import { createSystem } from '../ecs/system.js';
6
3
  import '../runtime/three.js';
7
4
  import { XRAnchor } from './anchor.js';
8
5
  import { XRMesh } from './mesh.js';
@@ -120,9 +117,11 @@ class SceneUnderstandingSystem extends createSystem({
120
117
  // XRSession and become invalid when the session ends. Using them with a new session's
121
118
  // XRFrame will cause "XRSpace and XRFrame sessions do not match" errors.
122
119
  this.queries.planeEntities.entities.forEach((entity) => {
120
+ this.disposeEntityGeometry(entity);
123
121
  entity.destroy();
124
122
  });
125
123
  this.queries.meshEntities.entities.forEach((entity) => {
124
+ this.disposeEntityGeometry(entity);
126
125
  entity.destroy();
127
126
  });
128
127
  // Clear session-specific state to prevent stale references
@@ -139,7 +138,7 @@ class SceneUnderstandingSystem extends createSystem({
139
138
  parent: this.world.sceneEntity,
140
139
  persistent: true,
141
140
  });
142
- this.config.showWireFrame.subscribe((value) => {
141
+ this.cleanupFuncs.push(this.config.showWireFrame.subscribe((value) => {
143
142
  this.queries.planeEntities.entities.forEach((planeEntity) => {
144
143
  const planeObject = planeEntity.object3D;
145
144
  if (planeObject instanceof Mesh) {
@@ -152,7 +151,7 @@ class SceneUnderstandingSystem extends createSystem({
152
151
  meshObject.visible = value;
153
152
  }
154
153
  });
155
- });
154
+ }));
156
155
  }
157
156
  update(_delta, _time) {
158
157
  var _a;
@@ -182,6 +181,17 @@ class SceneUnderstandingSystem extends createSystem({
182
181
  }
183
182
  }
184
183
  }
184
+ /**
185
+ * Dispose only the per-object geometry for a plane/mesh entity being removed.
186
+ * The plane/mesh materials are shared singletons (`planeMaterial` /
187
+ * `meshMaterial`), so they must NOT be disposed here.
188
+ */
189
+ disposeEntityGeometry(entity) {
190
+ const object3D = entity.object3D;
191
+ if (object3D instanceof Mesh) {
192
+ object3D.geometry.dispose();
193
+ }
194
+ }
185
195
  updatePlanes(planes, referenceSpace) {
186
196
  this.currentPlanes.clear();
187
197
  this.queries.planeEntities.entities.forEach((planeEntity) => {
@@ -189,6 +199,7 @@ class SceneUnderstandingSystem extends createSystem({
189
199
  this.currentPlanes.set(planeEntity.getValue(XRPlane, '_plane'), planeEntity);
190
200
  }
191
201
  else {
202
+ this.disposeEntityGeometry(planeEntity);
192
203
  planeEntity.destroy();
193
204
  }
194
205
  });
@@ -203,21 +214,25 @@ class SceneUnderstandingSystem extends createSystem({
203
214
  return;
204
215
  }
205
216
  this.matrixBuffer.fromArray(pose.transform.matrix);
206
- const polygon = plane.polygon;
207
- let minX = Number.MAX_SAFE_INTEGER;
208
- let maxX = Number.MIN_SAFE_INTEGER;
209
- let minZ = Number.MAX_SAFE_INTEGER;
210
- let maxZ = Number.MIN_SAFE_INTEGER;
211
- for (const point of polygon) {
212
- minX = Math.min(minX, point.x);
213
- maxX = Math.max(maxX, point.x);
214
- minZ = Math.min(minZ, point.z);
215
- maxZ = Math.max(maxZ, point.z);
216
- }
217
- const width = maxX - minX;
218
- const height = maxZ - minZ;
219
- const geometry = new BoxGeometry(width, 0.001, height);
220
217
  if (this.currentPlanes.has(plane) === false) {
218
+ // Only build geometry for newly-seen planes. Doing it every frame
219
+ // for every plane allocated a BoxGeometry that was then discarded
220
+ // (without dispose) for already-tracked planes — a per-frame GPU
221
+ // leak. Existing planes only need their transform refreshed below.
222
+ const polygon = plane.polygon;
223
+ let minX = Number.MAX_SAFE_INTEGER;
224
+ let maxX = Number.MIN_SAFE_INTEGER;
225
+ let minZ = Number.MAX_SAFE_INTEGER;
226
+ let maxZ = Number.MIN_SAFE_INTEGER;
227
+ for (const point of polygon) {
228
+ minX = Math.min(minX, point.x);
229
+ maxX = Math.max(maxX, point.x);
230
+ minZ = Math.min(minZ, point.z);
231
+ maxZ = Math.max(maxZ, point.z);
232
+ }
233
+ const width = maxX - minX;
234
+ const height = maxZ - minZ;
235
+ const geometry = new BoxGeometry(width, 0.001, height);
221
236
  const mesh = new Mesh(geometry, this.planeMaterial);
222
237
  mesh.visible = this.config.showWireFrame.value;
223
238
  mesh.position.setFromMatrixPosition(this.matrixBuffer);
@@ -244,6 +259,7 @@ class SceneUnderstandingSystem extends createSystem({
244
259
  this.currentMeshes.set(meshEntity.getValue(XRMesh, '_mesh'), meshEntity);
245
260
  }
246
261
  else {
262
+ this.disposeEntityGeometry(meshEntity);
247
263
  meshEntity.destroy();
248
264
  }
249
265
  });
@@ -258,10 +274,14 @@ class SceneUnderstandingSystem extends createSystem({
258
274
  return;
259
275
  }
260
276
  this.matrixBuffer.fromArray(pose.transform.matrix);
261
- const geometry = new BufferGeometry();
262
- geometry.setAttribute('position', new BufferAttribute(mesh.vertices, 3));
263
- geometry.setIndex(new BufferAttribute(mesh.indices, 1));
264
277
  if (this.currentMeshes.has(mesh) === false) {
278
+ // Only build geometry for newly-seen meshes. Building a
279
+ // BufferGeometry every frame for every mesh and discarding it
280
+ // (without dispose) for already-tracked meshes was a per-frame GPU
281
+ // leak. Existing meshes only need their transform refreshed below.
282
+ const geometry = new BufferGeometry();
283
+ geometry.setAttribute('position', new BufferAttribute(mesh.vertices, 3));
284
+ geometry.setIndex(new BufferAttribute(mesh.indices, 1));
265
285
  const threeMesh = new Mesh(geometry, this.meshMaterial);
266
286
  threeMesh.visible = this.config.showWireFrame.value;
267
287
  this.scene.add(threeMesh);
@@ -275,7 +295,7 @@ class SceneUnderstandingSystem extends createSystem({
275
295
  });
276
296
  }
277
297
  else {
278
- const { minEntry, maxEntry } = this.findMinMaxEntries(this.flatToVec3Array(mesh.vertices));
298
+ const { minEntry, maxEntry } = findExtremeVertices(mesh.vertices);
279
299
  meshEntity.addComponent(XRMesh, {
280
300
  _mesh: mesh,
281
301
  isBounded3D: true,
@@ -401,42 +421,41 @@ class SceneUnderstandingSystem extends createSystem({
401
421
  }
402
422
  });
403
423
  }
404
- flatToVec3Array(arr) {
405
- if (!arr || arr.length % 3 !== 0) {
406
- throw new Error('Array length must be a multiple of 3.');
407
- }
408
- const result = [];
409
- for (let i = 0; i < arr.length; i += 3) {
410
- const obj = {
411
- x: arr[i],
412
- y: arr[i + 1],
413
- z: arr[i + 2],
414
- };
415
- result.push(obj);
416
- }
417
- return result;
424
+ }
425
+ /** localStorage key for storing the persistent anchor UUID */
426
+ SceneUnderstandingSystem.ANCHOR_UUID_STORAGE_KEY = 'iwsdk_scene_anchor_uuid';
427
+ /**
428
+ * From a flat `[x,y,z, x,y,z, ...]` vertex buffer, return the vertices with the
429
+ * smallest and largest coordinate sum (`x + y + z`).
430
+ *
431
+ * Equivalent to the previous `flatToVec3Array(...)` -> `findMinMaxEntries(...)`
432
+ * pipeline, but it scans the typed array directly and allocates only the two
433
+ * result objects instead of one object per vertex (thousands per mesh).
434
+ */
435
+ function findExtremeVertices(arr) {
436
+ if (!arr || arr.length === 0 || arr.length % 3 !== 0) {
437
+ throw new Error('Array length must be a positive multiple of 3.');
418
438
  }
419
- findMinMaxEntries(arr) {
420
- let minEntry = arr[0];
421
- let maxEntry = arr[0];
422
- let minSum = arr[0].x + arr[0].y + arr[0].z;
423
- let maxSum = arr[0].x + arr[0].y + arr[0].z;
424
- for (let i = 1; i < arr.length; i++) {
425
- const currentSum = arr[i].x + arr[i].y + arr[i].z;
426
- if (currentSum < minSum) {
427
- minSum = currentSum;
428
- minEntry = arr[i];
429
- }
430
- if (currentSum > maxSum) {
431
- maxSum = currentSum;
432
- maxEntry = arr[i];
433
- }
439
+ let minIndex = 0;
440
+ let maxIndex = 0;
441
+ let minSum = arr[0] + arr[1] + arr[2];
442
+ let maxSum = minSum;
443
+ for (let i = 3; i < arr.length; i += 3) {
444
+ const sum = arr[i] + arr[i + 1] + arr[i + 2];
445
+ if (sum < minSum) {
446
+ minSum = sum;
447
+ minIndex = i;
448
+ }
449
+ if (sum > maxSum) {
450
+ maxSum = sum;
451
+ maxIndex = i;
434
452
  }
435
- return { minEntry, maxEntry };
436
453
  }
454
+ return {
455
+ minEntry: { x: arr[minIndex], y: arr[minIndex + 1], z: arr[minIndex + 2] },
456
+ maxEntry: { x: arr[maxIndex], y: arr[maxIndex + 1], z: arr[maxIndex + 2] },
457
+ };
437
458
  }
438
- /** localStorage key for storing the persistent anchor UUID */
439
- SceneUnderstandingSystem.ANCHOR_UUID_STORAGE_KEY = 'iwsdk_scene_anchor_uuid';
440
459
 
441
- export { SceneUnderstandingSystem };
460
+ export { SceneUnderstandingSystem, findExtremeVertices };
442
461
  //# sourceMappingURL=scene-understanding-system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene-understanding-system.js","sources":["../../src/scene-understanding/scene-understanding-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene-understanding-system.js","sources":["../../src/scene-understanding/scene-understanding-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,305 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://iwsdk.dev/schemas/iwsdk-project.v1.schema.json",
4
+ "title": "IWSDK Project Manifest v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["version", "scene", "world"],
8
+ "properties": {
9
+ "$schema": { "type": "string" },
10
+ "version": { "const": "iwsdk.project.v1" },
11
+ "scene": {
12
+ "type": "string",
13
+ "pattern": "^(?:\\./)?public/scenes/(?!\\.\\.?/)(?!.*(?:/\\.\\.?/|//))[^?#\\\\]+\\.iwsdk\\.scene\\.json$"
14
+ },
15
+ "assets": { "$ref": "#/$defs/moduleDeclaration" },
16
+ "components": { "$ref": "#/$defs/moduleDeclaration" },
17
+ "world": { "$ref": "#/$defs/world" },
18
+ "dev": { "$ref": "#/$defs/dev" }
19
+ },
20
+ "$defs": {
21
+ "moduleDeclaration": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": ["module"],
25
+ "properties": {
26
+ "module": {
27
+ "type": "string",
28
+ "pattern": "^(?!\\s)(?!.*\\s$)(?:\\./)?(?!\\.\\.?/)(?!.*(?:/\\.\\.?/|//|[?#\\\\]))(?:[^/]+/)*[^/.]+$"
29
+ }
30
+ }
31
+ },
32
+ "vec3": {
33
+ "type": "array",
34
+ "minItems": 3,
35
+ "maxItems": 3,
36
+ "items": { "type": "number" }
37
+ },
38
+ "vec4": {
39
+ "type": "array",
40
+ "minItems": 4,
41
+ "maxItems": 4,
42
+ "items": { "type": "number" }
43
+ },
44
+ "featureFlag": {
45
+ "oneOf": [
46
+ { "type": "boolean" },
47
+ {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "properties": { "required": { "type": "boolean" } }
51
+ }
52
+ ]
53
+ },
54
+ "depthSensing": {
55
+ "oneOf": [
56
+ { "type": "boolean" },
57
+ {
58
+ "type": "object",
59
+ "additionalProperties": false,
60
+ "properties": {
61
+ "required": { "type": "boolean" },
62
+ "usage": {
63
+ "enum": ["cpu-optimized", "gpu-optimized"]
64
+ },
65
+ "format": {
66
+ "enum": ["luminance-alpha", "float32"]
67
+ }
68
+ }
69
+ }
70
+ ]
71
+ },
72
+ "referenceSpaceType": {
73
+ "enum": ["bounded-floor", "local", "local-floor", "unbounded", "viewer"]
74
+ },
75
+ "referenceSpace": {
76
+ "oneOf": [
77
+ { "$ref": "#/$defs/referenceSpaceType" },
78
+ {
79
+ "type": "object",
80
+ "additionalProperties": false,
81
+ "properties": {
82
+ "type": { "$ref": "#/$defs/referenceSpaceType" },
83
+ "required": { "type": "boolean" },
84
+ "fallbackOrder": {
85
+ "type": "array",
86
+ "items": { "$ref": "#/$defs/referenceSpaceType" }
87
+ }
88
+ }
89
+ }
90
+ ]
91
+ },
92
+ "xrFeatures": {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "properties": {
96
+ "handTracking": { "$ref": "#/$defs/featureFlag" },
97
+ "anchors": { "$ref": "#/$defs/featureFlag" },
98
+ "hitTest": { "$ref": "#/$defs/featureFlag" },
99
+ "planeDetection": { "$ref": "#/$defs/featureFlag" },
100
+ "meshDetection": { "$ref": "#/$defs/featureFlag" },
101
+ "depthSensing": { "$ref": "#/$defs/depthSensing" },
102
+ "layers": { "$ref": "#/$defs/featureFlag" },
103
+ "unbounded": { "$ref": "#/$defs/featureFlag" }
104
+ }
105
+ },
106
+ "xr": {
107
+ "oneOf": [
108
+ { "const": false },
109
+ {
110
+ "type": "object",
111
+ "additionalProperties": false,
112
+ "required": ["mode"],
113
+ "properties": {
114
+ "mode": { "enum": ["vr", "ar"] },
115
+ "offer": { "enum": ["none", "once", "always"] },
116
+ "referenceSpace": { "$ref": "#/$defs/referenceSpace" },
117
+ "restoreCameraOnExit": { "type": "boolean" },
118
+ "features": { "$ref": "#/$defs/xrFeatures" }
119
+ }
120
+ }
121
+ ]
122
+ },
123
+ "camera": {
124
+ "type": "object",
125
+ "additionalProperties": false,
126
+ "properties": {
127
+ "position": { "$ref": "#/$defs/vec3" },
128
+ "rotation": { "$ref": "#/$defs/vec3" },
129
+ "quaternion": { "$ref": "#/$defs/vec4" },
130
+ "lookAt": { "$ref": "#/$defs/vec3" }
131
+ }
132
+ },
133
+ "render": {
134
+ "type": "object",
135
+ "additionalProperties": false,
136
+ "properties": {
137
+ "fov": { "type": "number" },
138
+ "near": { "type": "number" },
139
+ "far": { "type": "number" },
140
+ "stencil": { "type": "boolean" },
141
+ "camera": { "$ref": "#/$defs/camera" }
142
+ }
143
+ },
144
+ "canvasPointerEvents": {
145
+ "oneOf": [
146
+ { "type": "boolean" },
147
+ {
148
+ "type": "object",
149
+ "additionalProperties": false,
150
+ "properties": {
151
+ "enabled": { "type": "boolean" },
152
+ "activeDuringXR": { "type": "boolean" }
153
+ }
154
+ }
155
+ ]
156
+ },
157
+ "input": {
158
+ "type": "object",
159
+ "additionalProperties": false,
160
+ "properties": {
161
+ "canvasPointerEvents": {
162
+ "$ref": "#/$defs/canvasPointerEvents"
163
+ }
164
+ }
165
+ },
166
+ "browserControls": {
167
+ "oneOf": [
168
+ { "type": "boolean" },
169
+ {
170
+ "type": "object",
171
+ "additionalProperties": false,
172
+ "properties": {
173
+ "keyboard": { "type": "boolean" },
174
+ "gamepad": { "type": "boolean" }
175
+ }
176
+ }
177
+ ]
178
+ },
179
+ "locomotion": {
180
+ "oneOf": [
181
+ { "type": "boolean" },
182
+ {
183
+ "type": "object",
184
+ "additionalProperties": false,
185
+ "properties": {
186
+ "useWorker": { "type": "boolean" },
187
+ "initialPlayerPosition": { "$ref": "#/$defs/vec3" },
188
+ "comfortAssistLevel": { "type": "number" },
189
+ "turningMethod": { "enum": ["snap", "smooth"] },
190
+ "enableJumping": { "type": "boolean" },
191
+ "browserControls": { "$ref": "#/$defs/browserControls" }
192
+ }
193
+ }
194
+ ]
195
+ },
196
+ "grabbing": {
197
+ "oneOf": [
198
+ { "type": "boolean" },
199
+ {
200
+ "type": "object",
201
+ "additionalProperties": false,
202
+ "properties": {
203
+ "useHandPinchForGrab": { "type": "boolean" }
204
+ }
205
+ }
206
+ ]
207
+ },
208
+ "sceneUnderstanding": {
209
+ "oneOf": [
210
+ { "type": "boolean" },
211
+ {
212
+ "type": "object",
213
+ "additionalProperties": false,
214
+ "properties": { "showWireFrame": { "type": "boolean" } }
215
+ }
216
+ ]
217
+ },
218
+ "spatialUI": {
219
+ "oneOf": [
220
+ { "type": "boolean" },
221
+ {
222
+ "type": "object",
223
+ "additionalProperties": false,
224
+ "properties": {
225
+ "forwardHtmlEvents": { "type": "boolean" },
226
+ "kit": { "enum": ["default", "horizon"] },
227
+ "preferredColorScheme": {
228
+ "enum": ["system", "light", "dark"]
229
+ }
230
+ }
231
+ }
232
+ ]
233
+ },
234
+ "features": {
235
+ "type": "object",
236
+ "additionalProperties": false,
237
+ "properties": {
238
+ "locomotion": { "$ref": "#/$defs/locomotion" },
239
+ "grabbing": { "$ref": "#/$defs/grabbing" },
240
+ "physics": { "type": "boolean" },
241
+ "sceneUnderstanding": { "$ref": "#/$defs/sceneUnderstanding" },
242
+ "environmentRaycast": { "type": "boolean" },
243
+ "camera": { "type": "boolean" },
244
+ "spatialUI": { "$ref": "#/$defs/spatialUI" }
245
+ }
246
+ },
247
+ "world": {
248
+ "type": "object",
249
+ "additionalProperties": false,
250
+ "required": ["xr"],
251
+ "properties": {
252
+ "xr": { "$ref": "#/$defs/xr" },
253
+ "input": { "$ref": "#/$defs/input" },
254
+ "render": { "$ref": "#/$defs/render" },
255
+ "features": { "$ref": "#/$defs/features" }
256
+ }
257
+ },
258
+ "regex": {
259
+ "type": "object",
260
+ "additionalProperties": false,
261
+ "required": ["source"],
262
+ "properties": {
263
+ "source": { "type": "string", "minLength": 1 },
264
+ "flags": {
265
+ "type": "string",
266
+ "pattern": "^(?!.*d.*d)(?!.*g.*g)(?!.*i.*i)(?!.*m.*m)(?!.*s.*s)(?!.*u.*u)(?!.*v.*v)(?!.*y.*y)(?!.*u.*v)(?!.*v.*u)[dgimsuvy]*$"
267
+ }
268
+ }
269
+ },
270
+ "emulator": {
271
+ "type": "object",
272
+ "additionalProperties": false,
273
+ "properties": {
274
+ "device": {
275
+ "enum": ["metaQuest2", "metaQuest3", "metaQuestPro", "oculusQuest1"]
276
+ },
277
+ "iwer": { "type": "boolean" },
278
+ "environment": {
279
+ "enum": [
280
+ "living_room",
281
+ "meeting_room",
282
+ "music_room",
283
+ "office_large",
284
+ "office_small"
285
+ ]
286
+ },
287
+ "activation": {
288
+ "oneOf": [
289
+ { "enum": ["localhost", "always"] },
290
+ { "$ref": "#/$defs/regex" }
291
+ ]
292
+ },
293
+ "injectOnBuild": { "type": "boolean" },
294
+ "userAgentException": { "$ref": "#/$defs/regex" }
295
+ }
296
+ },
297
+ "dev": {
298
+ "type": "object",
299
+ "additionalProperties": false,
300
+ "properties": {
301
+ "emulator": { "$ref": "#/$defs/emulator" }
302
+ }
303
+ }
304
+ }
305
+ }