@iwsdk/core 0.1.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 (326) hide show
  1. package/LICENSE +21 -0
  2. package/dist/asset/asset-manager.d.ts +72 -0
  3. package/dist/asset/asset-manager.d.ts.map +1 -0
  4. package/dist/asset/asset-manager.js +138 -0
  5. package/dist/asset/asset-manager.js.map +1 -0
  6. package/dist/asset/cache-manager.d.ts +44 -0
  7. package/dist/asset/cache-manager.d.ts.map +1 -0
  8. package/dist/asset/cache-manager.js +80 -0
  9. package/dist/asset/cache-manager.js.map +1 -0
  10. package/dist/asset/index.d.ts +9 -0
  11. package/dist/asset/index.d.ts.map +1 -0
  12. package/dist/asset/loaders/audio-loader.d.ts +21 -0
  13. package/dist/asset/loaders/audio-loader.d.ts.map +1 -0
  14. package/dist/asset/loaders/audio-loader.js +57 -0
  15. package/dist/asset/loaders/audio-loader.js.map +1 -0
  16. package/dist/asset/loaders/gltf-loader.d.ts +33 -0
  17. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.js +79 -0
  19. package/dist/asset/loaders/gltf-loader.js.map +1 -0
  20. package/dist/asset/loaders/hdr-texture-loader.d.ts +18 -0
  21. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -0
  22. package/dist/asset/loaders/hdr-texture-loader.js +65 -0
  23. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -0
  24. package/dist/asset/loaders/texture-loader.d.ts +21 -0
  25. package/dist/asset/loaders/texture-loader.d.ts.map +1 -0
  26. package/dist/asset/loaders/texture-loader.js +57 -0
  27. package/dist/asset/loaders/texture-loader.js.map +1 -0
  28. package/dist/audio/audio-pool.d.ts +59 -0
  29. package/dist/audio/audio-pool.d.ts.map +1 -0
  30. package/dist/audio/audio-pool.js +105 -0
  31. package/dist/audio/audio-pool.js.map +1 -0
  32. package/dist/audio/audio-system.d.ts +326 -0
  33. package/dist/audio/audio-system.d.ts.map +1 -0
  34. package/dist/audio/audio-system.js +478 -0
  35. package/dist/audio/audio-system.js.map +1 -0
  36. package/dist/audio/audio-utils.d.ts +71 -0
  37. package/dist/audio/audio-utils.d.ts.map +1 -0
  38. package/dist/audio/audio-utils.js +145 -0
  39. package/dist/audio/audio-utils.js.map +1 -0
  40. package/dist/audio/audio.d.ts +178 -0
  41. package/dist/audio/audio.d.ts.map +1 -0
  42. package/dist/audio/audio.js +104 -0
  43. package/dist/audio/audio.js.map +1 -0
  44. package/dist/audio/index.d.ts +11 -0
  45. package/dist/audio/index.d.ts.map +1 -0
  46. package/dist/ecs/component-registry.d.ts +54 -0
  47. package/dist/ecs/component-registry.d.ts.map +1 -0
  48. package/dist/ecs/component-registry.js +86 -0
  49. package/dist/ecs/component-registry.js.map +1 -0
  50. package/dist/ecs/component.d.ts +12 -0
  51. package/dist/ecs/component.d.ts.map +1 -0
  52. package/dist/ecs/entity.d.ts +17 -0
  53. package/dist/ecs/entity.d.ts.map +1 -0
  54. package/dist/ecs/entity.js +13 -0
  55. package/dist/ecs/entity.js.map +1 -0
  56. package/dist/ecs/index.d.ts +12 -0
  57. package/dist/ecs/index.d.ts.map +1 -0
  58. package/dist/ecs/system.d.ts +70 -0
  59. package/dist/ecs/system.d.ts.map +1 -0
  60. package/dist/ecs/system.js +79 -0
  61. package/dist/ecs/system.js.map +1 -0
  62. package/dist/ecs/world.d.ts +101 -0
  63. package/dist/ecs/world.d.ts.map +1 -0
  64. package/dist/ecs/world.js +165 -0
  65. package/dist/ecs/world.js.map +1 -0
  66. package/dist/environment/dome-gradient.d.ts +39 -0
  67. package/dist/environment/dome-gradient.d.ts.map +1 -0
  68. package/dist/environment/dome-gradient.js +30 -0
  69. package/dist/environment/dome-gradient.js.map +1 -0
  70. package/dist/environment/dome-texture.d.ts +39 -0
  71. package/dist/environment/dome-texture.d.ts.map +1 -0
  72. package/dist/environment/dome-texture.js +30 -0
  73. package/dist/environment/dome-texture.js.map +1 -0
  74. package/dist/environment/environment-system.d.ts +82 -0
  75. package/dist/environment/environment-system.d.ts.map +1 -0
  76. package/dist/environment/environment-system.js +389 -0
  77. package/dist/environment/environment-system.js.map +1 -0
  78. package/dist/environment/gradient-environment.d.ts +37 -0
  79. package/dist/environment/gradient-environment.d.ts.map +1 -0
  80. package/dist/environment/gradient-environment.js +99 -0
  81. package/dist/environment/gradient-environment.js.map +1 -0
  82. package/dist/environment/ibl-gradient.d.ts +38 -0
  83. package/dist/environment/ibl-gradient.d.ts.map +1 -0
  84. package/dist/environment/ibl-gradient.js +29 -0
  85. package/dist/environment/ibl-gradient.js.map +1 -0
  86. package/dist/environment/ibl-texture.d.ts +36 -0
  87. package/dist/environment/ibl-texture.d.ts.map +1 -0
  88. package/dist/environment/ibl-texture.js +30 -0
  89. package/dist/environment/ibl-texture.js.map +1 -0
  90. package/dist/environment/index.d.ts +12 -0
  91. package/dist/environment/index.d.ts.map +1 -0
  92. package/dist/grab/distance-grabbable.d.ts +115 -0
  93. package/dist/grab/distance-grabbable.d.ts.map +1 -0
  94. package/dist/grab/distance-grabbable.js +102 -0
  95. package/dist/grab/distance-grabbable.js.map +1 -0
  96. package/dist/grab/grab-system.d.ts +320 -0
  97. package/dist/grab/grab-system.d.ts.map +1 -0
  98. package/dist/grab/grab-system.js +239 -0
  99. package/dist/grab/grab-system.js.map +1 -0
  100. package/dist/grab/handles.d.ts +43 -0
  101. package/dist/grab/handles.d.ts.map +1 -0
  102. package/dist/grab/handles.js +132 -0
  103. package/dist/grab/handles.js.map +1 -0
  104. package/dist/grab/index.d.ts +13 -0
  105. package/dist/grab/index.d.ts.map +1 -0
  106. package/dist/grab/index.js +23 -0
  107. package/dist/grab/index.js.map +1 -0
  108. package/dist/grab/one-hand-grabbable.d.ts +80 -0
  109. package/dist/grab/one-hand-grabbable.d.ts.map +1 -0
  110. package/dist/grab/one-hand-grabbable.js +80 -0
  111. package/dist/grab/one-hand-grabbable.js.map +1 -0
  112. package/dist/grab/pointer-events-patch.d.ts +16 -0
  113. package/dist/grab/pointer-events-patch.d.ts.map +1 -0
  114. package/dist/grab/pointer-events-patch.js +223 -0
  115. package/dist/grab/pointer-events-patch.js.map +1 -0
  116. package/dist/grab/two-hands-grabbable.d.ts +103 -0
  117. package/dist/grab/two-hands-grabbable.d.ts.map +1 -0
  118. package/dist/grab/two-hands-grabbable.js +100 -0
  119. package/dist/grab/two-hands-grabbable.js.map +1 -0
  120. package/dist/index.d.ts +27 -0
  121. package/dist/index.d.ts.map +1 -0
  122. package/dist/index.js +82 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/init/index.d.ts +9 -0
  125. package/dist/init/index.d.ts.map +1 -0
  126. package/dist/init/world-initializer.d.ts +76 -0
  127. package/dist/init/world-initializer.d.ts.map +1 -0
  128. package/dist/init/world-initializer.js +403 -0
  129. package/dist/init/world-initializer.js.map +1 -0
  130. package/dist/init/xr.d.ts +87 -0
  131. package/dist/init/xr.d.ts.map +1 -0
  132. package/dist/init/xr.js +193 -0
  133. package/dist/init/xr.js.map +1 -0
  134. package/dist/input/index.d.ts +9 -0
  135. package/dist/input/index.d.ts.map +1 -0
  136. package/dist/input/input-system.d.ts +52 -0
  137. package/dist/input/input-system.d.ts.map +1 -0
  138. package/dist/input/input-system.js +176 -0
  139. package/dist/input/input-system.js.map +1 -0
  140. package/dist/input/state-tags.d.ts +56 -0
  141. package/dist/input/state-tags.d.ts.map +1 -0
  142. package/dist/input/state-tags.js +63 -0
  143. package/dist/input/state-tags.js.map +1 -0
  144. package/dist/level/index.d.ts +12 -0
  145. package/dist/level/index.d.ts.map +1 -0
  146. package/dist/level/level-entity-creator.d.ts +27 -0
  147. package/dist/level/level-entity-creator.d.ts.map +1 -0
  148. package/dist/level/level-entity-creator.js +110 -0
  149. package/dist/level/level-entity-creator.js.map +1 -0
  150. package/dist/level/level-glxf-importer.d.ts +22 -0
  151. package/dist/level/level-glxf-importer.d.ts.map +1 -0
  152. package/dist/level/level-glxf-importer.js +40 -0
  153. package/dist/level/level-glxf-importer.js.map +1 -0
  154. package/dist/level/level-root.d.ts +18 -0
  155. package/dist/level/level-root.d.ts.map +1 -0
  156. package/dist/level/level-root.js +25 -0
  157. package/dist/level/level-root.js.map +1 -0
  158. package/dist/level/level-system.d.ts +54 -0
  159. package/dist/level/level-system.d.ts.map +1 -0
  160. package/dist/level/level-system.js +134 -0
  161. package/dist/level/level-system.js.map +1 -0
  162. package/dist/level/level-tag.d.ts +25 -0
  163. package/dist/level/level-tag.d.ts.map +1 -0
  164. package/dist/level/level-tag.js +28 -0
  165. package/dist/level/level-tag.js.map +1 -0
  166. package/dist/locomotion/geometries/beveled-cylinder.d.ts +12 -0
  167. package/dist/locomotion/geometries/beveled-cylinder.d.ts.map +1 -0
  168. package/dist/locomotion/geometries/beveled-cylinder.js +64 -0
  169. package/dist/locomotion/geometries/beveled-cylinder.js.map +1 -0
  170. package/dist/locomotion/index.d.ts +11 -0
  171. package/dist/locomotion/index.d.ts.map +1 -0
  172. package/dist/locomotion/locomotion.d.ts +239 -0
  173. package/dist/locomotion/locomotion.d.ts.map +1 -0
  174. package/dist/locomotion/locomotion.js +256 -0
  175. package/dist/locomotion/locomotion.js.map +1 -0
  176. package/dist/locomotion/materials/line.d.ts +24 -0
  177. package/dist/locomotion/materials/line.d.ts.map +1 -0
  178. package/dist/locomotion/materials/line.js +307 -0
  179. package/dist/locomotion/materials/line.js.map +1 -0
  180. package/dist/locomotion/slide.d.ts +76 -0
  181. package/dist/locomotion/slide.d.ts.map +1 -0
  182. package/dist/locomotion/slide.js +131 -0
  183. package/dist/locomotion/slide.js.map +1 -0
  184. package/dist/locomotion/teleport.d.ts +68 -0
  185. package/dist/locomotion/teleport.d.ts.map +1 -0
  186. package/dist/locomotion/teleport.js +150 -0
  187. package/dist/locomotion/teleport.js.map +1 -0
  188. package/dist/locomotion/turn.d.ts +77 -0
  189. package/dist/locomotion/turn.d.ts.map +1 -0
  190. package/dist/locomotion/turn.js +126 -0
  191. package/dist/locomotion/turn.js.map +1 -0
  192. package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js +13 -0
  193. package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js.map +1 -0
  194. package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js +154 -0
  195. package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js.map +1 -0
  196. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js +66 -0
  197. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js.map +1 -0
  198. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js +162 -0
  199. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js.map +1 -0
  200. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js +519 -0
  201. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js.map +1 -0
  202. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js +15 -0
  203. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js.map +1 -0
  204. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js +32 -0
  205. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js.map +1 -0
  206. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js +10 -0
  207. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js.map +1 -0
  208. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js +41 -0
  209. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js.map +1 -0
  210. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js +35 -0
  211. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js.map +1 -0
  212. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js +24 -0
  213. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js.map +1 -0
  214. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js +92 -0
  215. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js.map +1 -0
  216. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js +382 -0
  217. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js.map +1 -0
  218. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js +2587 -0
  219. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js.map +1 -0
  220. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js +477 -0
  221. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js.map +1 -0
  222. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js +17 -0
  223. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js.map +1 -0
  224. package/dist/physics/index.d.ts +11 -0
  225. package/dist/physics/index.d.ts.map +1 -0
  226. package/dist/physics/physics-system.d.ts +314 -0
  227. package/dist/physics/physics-system.d.ts.map +1 -0
  228. package/dist/physics/physics-system.js +419 -0
  229. package/dist/physics/physics-system.js.map +1 -0
  230. package/dist/physics/physicsBody.d.ts +83 -0
  231. package/dist/physics/physicsBody.d.ts.map +1 -0
  232. package/dist/physics/physicsBody.js +60 -0
  233. package/dist/physics/physicsBody.js.map +1 -0
  234. package/dist/physics/physicsManipulation.d.ts +51 -0
  235. package/dist/physics/physicsManipulation.d.ts.map +1 -0
  236. package/dist/physics/physicsManipulation.js +46 -0
  237. package/dist/physics/physicsManipulation.js.map +1 -0
  238. package/dist/physics/physicsShape.d.ts +133 -0
  239. package/dist/physics/physicsShape.d.ts.map +1 -0
  240. package/dist/physics/physicsShape.js +97 -0
  241. package/dist/physics/physicsShape.js.map +1 -0
  242. package/dist/physics/utils.d.ts +21 -0
  243. package/dist/physics/utils.d.ts.map +1 -0
  244. package/dist/physics/utils.js +130 -0
  245. package/dist/physics/utils.js.map +1 -0
  246. package/dist/runtime/index.d.ts +8 -0
  247. package/dist/runtime/index.d.ts.map +1 -0
  248. package/dist/runtime/three.d.ts +8 -0
  249. package/dist/runtime/three.d.ts.map +1 -0
  250. package/dist/runtime/three.js +18 -0
  251. package/dist/runtime/three.js.map +1 -0
  252. package/dist/scene-understanding/anchor.d.ts +42 -0
  253. package/dist/scene-understanding/anchor.d.ts.map +1 -0
  254. package/dist/scene-understanding/anchor.js +45 -0
  255. package/dist/scene-understanding/anchor.js.map +1 -0
  256. package/dist/scene-understanding/index.d.ts +11 -0
  257. package/dist/scene-understanding/index.d.ts.map +1 -0
  258. package/dist/scene-understanding/mesh.d.ts +67 -0
  259. package/dist/scene-understanding/mesh.d.ts.map +1 -0
  260. package/dist/scene-understanding/mesh.js +55 -0
  261. package/dist/scene-understanding/mesh.js.map +1 -0
  262. package/dist/scene-understanding/plane.d.ts +39 -0
  263. package/dist/scene-understanding/plane.d.ts.map +1 -0
  264. package/dist/scene-understanding/plane.js +42 -0
  265. package/dist/scene-understanding/plane.js.map +1 -0
  266. package/dist/scene-understanding/scene-understanding-system.d.ts +180 -0
  267. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -0
  268. package/dist/scene-understanding/scene-understanding-system.js +342 -0
  269. package/dist/scene-understanding/scene-understanding-system.js.map +1 -0
  270. package/dist/transform/index.d.ts +10 -0
  271. package/dist/transform/index.d.ts.map +1 -0
  272. package/dist/transform/synced-quaternion.d.ts +35 -0
  273. package/dist/transform/synced-quaternion.d.ts.map +1 -0
  274. package/dist/transform/synced-quaternion.js +128 -0
  275. package/dist/transform/synced-quaternion.js.map +1 -0
  276. package/dist/transform/synced-vector3.d.ts +34 -0
  277. package/dist/transform/synced-vector3.d.ts.map +1 -0
  278. package/dist/transform/synced-vector3.js +106 -0
  279. package/dist/transform/synced-vector3.js.map +1 -0
  280. package/dist/transform/transform.d.ts +100 -0
  281. package/dist/transform/transform.d.ts.map +1 -0
  282. package/dist/transform/transform.js +194 -0
  283. package/dist/transform/transform.js.map +1 -0
  284. package/dist/types/webxr-augmentations.d.ts +23 -0
  285. package/dist/types/webxr-augmentations.d.ts.map +1 -0
  286. package/dist/ui/document.d.ts +112 -0
  287. package/dist/ui/document.d.ts.map +1 -0
  288. package/dist/ui/document.js +298 -0
  289. package/dist/ui/document.js.map +1 -0
  290. package/dist/ui/follow.d.ts +197 -0
  291. package/dist/ui/follow.d.ts.map +1 -0
  292. package/dist/ui/follow.js +143 -0
  293. package/dist/ui/follow.js.map +1 -0
  294. package/dist/ui/index.d.ts +18 -0
  295. package/dist/ui/index.d.ts.map +1 -0
  296. package/dist/ui/screenspace.d.ts +219 -0
  297. package/dist/ui/screenspace.d.ts.map +1 -0
  298. package/dist/ui/screenspace.js +215 -0
  299. package/dist/ui/screenspace.js.map +1 -0
  300. package/dist/ui/ui.d.ts +209 -0
  301. package/dist/ui/ui.d.ts.map +1 -0
  302. package/dist/ui/ui.js +185 -0
  303. package/dist/ui/ui.js.map +1 -0
  304. package/dist/vendor/basis/README.md +46 -0
  305. package/dist/vendor/basis/basis_transcoder.js +19 -0
  306. package/dist/vendor/basis/basis_transcoder.wasm +0 -0
  307. package/dist/vendor/draco/README.md +32 -0
  308. package/dist/vendor/draco/draco_decoder.js +34 -0
  309. package/dist/vendor/draco/draco_decoder.wasm +0 -0
  310. package/dist/vendor/draco/draco_encoder.js +33 -0
  311. package/dist/vendor/draco/draco_wasm_wrapper.js +117 -0
  312. package/dist/vendor/draco/gltf/draco_decoder.js +33 -0
  313. package/dist/vendor/draco/gltf/draco_decoder.wasm +0 -0
  314. package/dist/vendor/draco/gltf/draco_encoder.js +33 -0
  315. package/dist/vendor/draco/gltf/draco_wasm_wrapper.js +116 -0
  316. package/dist/version.d.ts +2 -0
  317. package/dist/version.d.ts.map +1 -0
  318. package/dist/version.js +4 -0
  319. package/dist/version.js.map +1 -0
  320. package/dist/visibility/index.d.ts +8 -0
  321. package/dist/visibility/index.d.ts.map +1 -0
  322. package/dist/visibility/visibility.d.ts +37 -0
  323. package/dist/visibility/visibility.d.ts.map +1 -0
  324. package/dist/visibility/visibility.js +52 -0
  325. package/dist/visibility/visibility.js.map +1 -0
  326. package/package.json +46 -0
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { Types } from '../ecs/index.js';
8
+ /**
9
+ * Component representing detected real‑world 3D mesh geometry in AR/VR environments. This component
10
+ * should be attached to entities by the SceneUnderstandingSystem and be queried by custom systems.
11
+ *
12
+ * @remarks
13
+ * - Automatically created by {@link SceneUnderstandingSystem} when meshes are detected.
14
+ * - Represents complex 3D geometry like furniture, objects, and room structure.
15
+ * - Supports both bounded 3D objects (furniture, objects) and global mesh (room structure).
16
+ * - Bounded meshes include semantic labels, bounding boxes, and calculated dimensions.
17
+ * - Global meshes represent overall room structure without semantic classification.
18
+ * - Entities are destroyed when the corresponding real‑world mesh is no longer detected.
19
+ * - Requires WebXR session with 'mesh‑detection' feature enabled.
20
+ * - Users should not manually create entities with this component and let the scene understanding
21
+ * system manage them.
22
+ *
23
+ * @example React to detected meshes
24
+ * ```ts
25
+ * your-system.query({ required: [XRMesh] }).subscribe('qualify', (entity) => {
26
+ * const isBounded = entity.getValue(XRMesh, 'isBounded3D')
27
+ * const semanticLabel = entity.getValue(XRMesh, 'semanticLabel')
28
+ *
29
+ * if (isBounded && semanticLabel === 'table') {
30
+ * console.log('Table detected!')
31
+ * const dimensions = entity.getValue(XRMesh, 'dimensions')
32
+ * console.log('Table size:', dimensions)
33
+ * }
34
+ * })
35
+ * ```
36
+ *
37
+ * @category Scene Understanding
38
+ * @see {@link SceneUnderstandingSystem}
39
+ * @see {@link XRPlane}
40
+ */
41
+ export declare const XRMesh: import("elics").Component<{
42
+ _mesh: {
43
+ type: Types.Object;
44
+ default: undefined;
45
+ };
46
+ isBounded3D: {
47
+ type: Types.Boolean;
48
+ default: false;
49
+ };
50
+ semanticLabel: {
51
+ type: Types.String;
52
+ default: string;
53
+ };
54
+ min: {
55
+ type: Types.Vec3;
56
+ default: [number, number, number];
57
+ };
58
+ max: {
59
+ type: Types.Vec3;
60
+ default: [number, number, number];
61
+ };
62
+ dimensions: {
63
+ type: Types.Vec3;
64
+ default: [number, number, number];
65
+ };
66
+ }>;
67
+ //# sourceMappingURL=mesh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../src/scene-understanding/mesh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;EAWlB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import '@preact/signals-core';
2
+ import '../ecs/world.js';
3
+ import { createComponent, Types } from 'elics';
4
+ import '../ecs/component-registry.js';
5
+
6
+ /**
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ /**
13
+ * Component representing detected real‑world 3D mesh geometry in AR/VR environments. This component
14
+ * should be attached to entities by the SceneUnderstandingSystem and be queried by custom systems.
15
+ *
16
+ * @remarks
17
+ * - Automatically created by {@link SceneUnderstandingSystem} when meshes are detected.
18
+ * - Represents complex 3D geometry like furniture, objects, and room structure.
19
+ * - Supports both bounded 3D objects (furniture, objects) and global mesh (room structure).
20
+ * - Bounded meshes include semantic labels, bounding boxes, and calculated dimensions.
21
+ * - Global meshes represent overall room structure without semantic classification.
22
+ * - Entities are destroyed when the corresponding real‑world mesh is no longer detected.
23
+ * - Requires WebXR session with 'mesh‑detection' feature enabled.
24
+ * - Users should not manually create entities with this component and let the scene understanding
25
+ * system manage them.
26
+ *
27
+ * @example React to detected meshes
28
+ * ```ts
29
+ * your-system.query({ required: [XRMesh] }).subscribe('qualify', (entity) => {
30
+ * const isBounded = entity.getValue(XRMesh, 'isBounded3D')
31
+ * const semanticLabel = entity.getValue(XRMesh, 'semanticLabel')
32
+ *
33
+ * if (isBounded && semanticLabel === 'table') {
34
+ * console.log('Table detected!')
35
+ * const dimensions = entity.getValue(XRMesh, 'dimensions')
36
+ * console.log('Table size:', dimensions)
37
+ * }
38
+ * })
39
+ * ```
40
+ *
41
+ * @category Scene Understanding
42
+ * @see {@link SceneUnderstandingSystem}
43
+ * @see {@link XRPlane}
44
+ */
45
+ const XRMesh = createComponent('XRMesh', {
46
+ _mesh: { type: Types.Object, default: undefined },
47
+ isBounded3D: { type: Types.Boolean, default: false },
48
+ semanticLabel: { type: Types.String, default: '' },
49
+ min: { type: Types.Vec3, default: [0, 0, 0] },
50
+ max: { type: Types.Vec3, default: [0, 0, 0] },
51
+ dimensions: { type: Types.Vec3, default: [0, 0, 0] },
52
+ }, 'Component for managing 3D meshes in the scene');
53
+
54
+ export { XRMesh };
55
+ //# sourceMappingURL=mesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh.js","sources":["../../src/scene-understanding/mesh.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;AAEI,MAAM,MAAM,GAAG,eAAe,CACnC,QAAQ,EACR;IACE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;IACjD,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACpD,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AAClD,IAAA,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC7C,IAAA,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC7C,IAAA,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;CACrD,EACD,+CAA+C;;;;"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { Types } from '../ecs/index.js';
8
+ /**
9
+ * Component representing a detected real‑world plane surface in AR/VR environments. This component
10
+ * should be attached to entities by the SceneUnderstandingSystem and be queried by custom systems.
11
+ *
12
+ * @remarks
13
+ * - Automatically created by {@link SceneUnderstandingSystem} when planes are detected.
14
+ * - Represents flat surfaces like floors, walls, and ceilings in the real world.
15
+ * - Entities are destroyed when the corresponding real‑world plane is no longer detected.
16
+ * - Requires WebXR session with 'plane‑detection' feature enabled.
17
+ * - Users should not manually create entities with this component and let the scene understanding
18
+ * system manage them.
19
+ *
20
+ * @example React to detected planes
21
+ * ```ts
22
+ * your-system.query({ required: [XRPlane] }).subscribe('qualify', (entity) => {
23
+ * const plane = entity.getValue(XRPlane, 'plane')
24
+ * console.log('Detected plane orientation:', plane.orientation)
25
+ * console.log('Plane position:', entity.object3D?.position)
26
+ * })
27
+ * ```
28
+ *
29
+ * @category Scene Understanding
30
+ * @see {@link SceneUnderstandingSystem}
31
+ * @see {@link XRMesh}
32
+ */
33
+ export declare const XRPlane: import("elics").Component<{
34
+ _plane: {
35
+ type: Types.Object;
36
+ default: undefined;
37
+ };
38
+ }>;
39
+ //# sourceMappingURL=plane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plane.d.ts","sourceRoot":"","sources":["../../src/scene-understanding/plane.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,eAAO,MAAM,OAAO;;;;;EAMnB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import '@preact/signals-core';
2
+ import '../ecs/world.js';
3
+ import { createComponent, Types } from 'elics';
4
+ import '../ecs/component-registry.js';
5
+
6
+ /**
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ /**
13
+ * Component representing a detected real‑world plane surface in AR/VR environments. This component
14
+ * should be attached to entities by the SceneUnderstandingSystem and be queried by custom systems.
15
+ *
16
+ * @remarks
17
+ * - Automatically created by {@link SceneUnderstandingSystem} when planes are detected.
18
+ * - Represents flat surfaces like floors, walls, and ceilings in the real world.
19
+ * - Entities are destroyed when the corresponding real‑world plane is no longer detected.
20
+ * - Requires WebXR session with 'plane‑detection' feature enabled.
21
+ * - Users should not manually create entities with this component and let the scene understanding
22
+ * system manage them.
23
+ *
24
+ * @example React to detected planes
25
+ * ```ts
26
+ * your-system.query({ required: [XRPlane] }).subscribe('qualify', (entity) => {
27
+ * const plane = entity.getValue(XRPlane, 'plane')
28
+ * console.log('Detected plane orientation:', plane.orientation)
29
+ * console.log('Plane position:', entity.object3D?.position)
30
+ * })
31
+ * ```
32
+ *
33
+ * @category Scene Understanding
34
+ * @see {@link SceneUnderstandingSystem}
35
+ * @see {@link XRMesh}
36
+ */
37
+ const XRPlane = createComponent('XRPlane', {
38
+ _plane: { type: Types.Object, default: undefined },
39
+ }, 'Component for managing 3D planes in the scene');
40
+
41
+ export { XRPlane };
42
+ //# sourceMappingURL=plane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plane.js","sources":["../../src/scene-understanding/plane.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AAEI,MAAM,OAAO,GAAG,eAAe,CACpC,SAAS,EACT;IACE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;CACnD,EACD,+CAA+C;;;;"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { Types } from '../ecs/index.js';
8
+ declare const SceneUnderstandingSystem_base: import("elics").SystemConstructor<{
9
+ showWireFrame: {
10
+ type: Types.Boolean;
11
+ default: false;
12
+ };
13
+ }, {
14
+ planeEntities: {
15
+ required: import("elics").Component<{
16
+ _plane: {
17
+ type: Types.Object;
18
+ default: undefined;
19
+ };
20
+ }>[];
21
+ };
22
+ meshEntities: {
23
+ required: import("elics").Component<{
24
+ _mesh: {
25
+ type: Types.Object;
26
+ default: undefined;
27
+ };
28
+ isBounded3D: {
29
+ type: Types.Boolean;
30
+ default: false;
31
+ };
32
+ semanticLabel: {
33
+ type: Types.String;
34
+ default: string;
35
+ };
36
+ min: {
37
+ type: Types.Vec3;
38
+ default: [number, number, number];
39
+ };
40
+ max: {
41
+ type: Types.Vec3;
42
+ default: [number, number, number];
43
+ };
44
+ dimensions: {
45
+ type: Types.Vec3;
46
+ default: [number, number, number];
47
+ };
48
+ }>[];
49
+ };
50
+ anchoredEntities: {
51
+ required: import("elics").Component<{
52
+ attached: {
53
+ type: Types.Boolean;
54
+ default: false;
55
+ };
56
+ }>[];
57
+ };
58
+ }, import("../ecs/world.js").World, import("../ecs/system.js").System<{
59
+ showWireFrame: {
60
+ type: Types.Boolean;
61
+ default: false;
62
+ };
63
+ }, {
64
+ planeEntities: {
65
+ required: import("elics").Component<{
66
+ _plane: {
67
+ type: Types.Object;
68
+ default: undefined;
69
+ };
70
+ }>[];
71
+ };
72
+ meshEntities: {
73
+ required: import("elics").Component<{
74
+ _mesh: {
75
+ type: Types.Object;
76
+ default: undefined;
77
+ };
78
+ isBounded3D: {
79
+ type: Types.Boolean;
80
+ default: false;
81
+ };
82
+ semanticLabel: {
83
+ type: Types.String;
84
+ default: string;
85
+ };
86
+ min: {
87
+ type: Types.Vec3;
88
+ default: [number, number, number];
89
+ };
90
+ max: {
91
+ type: Types.Vec3;
92
+ default: [number, number, number];
93
+ };
94
+ dimensions: {
95
+ type: Types.Vec3;
96
+ default: [number, number, number];
97
+ };
98
+ }>[];
99
+ };
100
+ anchoredEntities: {
101
+ required: import("elics").Component<{
102
+ attached: {
103
+ type: Types.Boolean;
104
+ default: false;
105
+ };
106
+ }>[];
107
+ };
108
+ }>>;
109
+ /**
110
+ * Manages WebXR scene understanding features including plane detection, mesh detection, and anchoring.
111
+ *
112
+ * @remarks
113
+ * - Automatically detects and visualizes real‑world planes and meshes in AR/VR environments.
114
+ * - Creates entities with {@link XRPlane} components for detected planes (floors, walls, ceilings).
115
+ * - Creates entities with {@link XRMesh} components for detected 3D geometry.
116
+ * - Supports anchoring objects to real‑world positions using {@link XRAnchor} components.
117
+ * - Requires WebXR session features: 'plane‑detection', 'mesh‑detection', 'anchor' when using the related features.
118
+ * - Automatically manages entity lifecycle as real‑world geometry changes.
119
+ * - Provides optional visual feedback with wireframe meshes for detected geometry.
120
+ * - Objects with {@link XRAnchor} are automatically attached to a stable world‑anchored group.
121
+ *
122
+ * @example Basic scene understanding setup
123
+ * ```ts
124
+ * // WebXR session must request required features
125
+ * World.create(document.getElementById('scene-container'), {
126
+ * assets,
127
+ * xr: {
128
+ * sessionMode: SessionMode.ImmersiveAR,
129
+ * features: { planeDetection: true, meshDetection: true, anchors: true },
130
+ * }
131
+ * })
132
+ *
133
+ * // Add to your world to enable scene understanding
134
+ * world.addSystem(SceneUnderstandingSystem)
135
+ *
136
+
137
+ * ```
138
+ *
139
+ * @example Create an anchored object
140
+ * ```ts
141
+ * const cube = world.createTransformEntity(cubeObject)
142
+ * cube.addComponent(XRAnchor) // Will be anchored to real-world position
143
+ * ```
144
+ *
145
+ * @example React to detected planes
146
+ * ```ts
147
+ * // Planes are automatically created as entities with XRPlane component
148
+ * system.query({ required: [XRPlane] }).subscribe('qualify', (entity) => {
149
+ * const plane = entity.getValue(XRPlane, '_plane')
150
+ * console.log('New plane detected:', plane.orientation)
151
+ * })
152
+ * ```
153
+ *
154
+ * @category Scene Understanding
155
+ * @see {@link XRPlane}
156
+ * @see {@link XRMesh}
157
+ * @see {@link XRAnchor}
158
+ */
159
+ export declare class SceneUnderstandingSystem extends SceneUnderstandingSystem_base {
160
+ private planeFeatureEnabled;
161
+ private meshFeatureEnabled;
162
+ private anchorFeatureEnabled;
163
+ private anchorRequested;
164
+ private xrAnchor;
165
+ private currentPlanes;
166
+ private currentMeshes;
167
+ private anchoredGroup;
168
+ private matrixBuffer;
169
+ init(): void;
170
+ update(_delta: number, _time: number): void;
171
+ private updatePlanes;
172
+ private updateMeshes;
173
+ private updateEnabledFeatures;
174
+ private createAnchor;
175
+ private updateAnchoredObject;
176
+ private flatToVec3Array;
177
+ private findMinMaxEntries;
178
+ }
179
+ export {};
180
+ //# sourceMappingURL=scene-understanding-system.d.ts.map
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAe9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,wBAAyB,SAAQ,6BAS7C;IACC,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,YAAY,CAAiB;IAErC,IAAI,IAAI,IAAI;IAkCZ,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAuC3C,OAAO,CAAC,YAAY;IAqEpB,OAAO,CAAC,YAAY;IA6EpB,OAAO,CAAC,qBAAqB;YAgCf,YAAY;IAoB1B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,iBAAiB;CAkB1B"}