@aura3d/engine 4.0.3 → 4.0.4

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 (1028) hide show
  1. package/README.md +3 -3
  2. package/dist/animation/AnimationAction.d.ts +55 -1
  3. package/dist/animation/AnimationAction.d.ts.map +1 -1
  4. package/dist/animation/AnimationAction.js +156 -27
  5. package/dist/animation/AnimationAction.js.map +1 -1
  6. package/dist/animation/AnimationEvents.d.ts +1 -1
  7. package/dist/animation/AnimationEvents.d.ts.map +1 -1
  8. package/dist/animation/AnimationEvents.js +33 -14
  9. package/dist/animation/AnimationEvents.js.map +1 -1
  10. package/dist/animation/AnimationMixer.d.ts +35 -0
  11. package/dist/animation/AnimationMixer.d.ts.map +1 -1
  12. package/dist/animation/AnimationMixer.js +60 -10
  13. package/dist/animation/AnimationMixer.js.map +1 -1
  14. package/dist/animation/AnimationObjectGroup.d.ts +28 -0
  15. package/dist/animation/AnimationObjectGroup.d.ts.map +1 -0
  16. package/dist/animation/AnimationObjectGroup.js +242 -0
  17. package/dist/animation/AnimationObjectGroup.js.map +1 -0
  18. package/dist/animation/AnimationTrack.d.ts +18 -2
  19. package/dist/animation/AnimationTrack.d.ts.map +1 -1
  20. package/dist/animation/AnimationTrack.js +62 -0
  21. package/dist/animation/AnimationTrack.js.map +1 -1
  22. package/dist/animation/AnimationUtils.d.ts +56 -0
  23. package/dist/animation/AnimationUtils.d.ts.map +1 -0
  24. package/dist/animation/AnimationUtils.js +202 -0
  25. package/dist/animation/AnimationUtils.js.map +1 -0
  26. package/dist/animation/PropertyBinding.d.ts +93 -0
  27. package/dist/animation/PropertyBinding.d.ts.map +1 -0
  28. package/dist/animation/PropertyBinding.js +393 -0
  29. package/dist/animation/PropertyBinding.js.map +1 -0
  30. package/dist/animation/SceneAnimationBridge.d.ts +23 -1
  31. package/dist/animation/SceneAnimationBridge.d.ts.map +1 -1
  32. package/dist/animation/SceneAnimationBridge.js +152 -14
  33. package/dist/animation/SceneAnimationBridge.js.map +1 -1
  34. package/dist/animation/browser-index.d.ts +3 -0
  35. package/dist/animation/browser-index.d.ts.map +1 -1
  36. package/dist/animation/browser-index.js +3 -0
  37. package/dist/animation/browser-index.js.map +1 -1
  38. package/dist/animation/index.d.ts +3 -0
  39. package/dist/animation/index.d.ts.map +1 -1
  40. package/dist/animation/index.js +3 -0
  41. package/dist/animation/index.js.map +1 -1
  42. package/dist/animation/pose/blendKernels.d.ts +1 -1
  43. package/dist/animation/pose/blendKernels.d.ts.map +1 -1
  44. package/dist/animation/pose/blendKernels.js +3 -3
  45. package/dist/animation/pose/blendKernels.js.map +1 -1
  46. package/dist/assets/DataTextureLoader.d.ts +16 -0
  47. package/dist/assets/DataTextureLoader.d.ts.map +1 -0
  48. package/dist/assets/DataTextureLoader.js +29 -0
  49. package/dist/assets/DataTextureLoader.js.map +1 -0
  50. package/dist/assets/EXRLoader.d.ts +78 -0
  51. package/dist/assets/EXRLoader.d.ts.map +1 -0
  52. package/dist/assets/EXRLoader.js +1398 -0
  53. package/dist/assets/EXRLoader.js.map +1 -0
  54. package/dist/assets/FileLoader.d.ts +32 -0
  55. package/dist/assets/FileLoader.d.ts.map +1 -0
  56. package/dist/assets/FileLoader.js +79 -0
  57. package/dist/assets/FileLoader.js.map +1 -0
  58. package/dist/assets/GLTFRenderResources.d.ts +9 -0
  59. package/dist/assets/GLTFRenderResources.d.ts.map +1 -1
  60. package/dist/assets/GLTFRenderResources.js +47 -4
  61. package/dist/assets/GLTFRenderResources.js.map +1 -1
  62. package/dist/assets/GLTFSharedTextureCache.d.ts +40 -0
  63. package/dist/assets/GLTFSharedTextureCache.d.ts.map +1 -0
  64. package/dist/assets/GLTFSharedTextureCache.js +68 -0
  65. package/dist/assets/GLTFSharedTextureCache.js.map +1 -0
  66. package/dist/assets/ImageBitmapLoader.d.ts +27 -0
  67. package/dist/assets/ImageBitmapLoader.d.ts.map +1 -0
  68. package/dist/assets/ImageBitmapLoader.js +51 -0
  69. package/dist/assets/ImageBitmapLoader.js.map +1 -0
  70. package/dist/assets/ImageLoader.d.ts.map +1 -1
  71. package/dist/assets/ImageLoader.js +12 -5
  72. package/dist/assets/ImageLoader.js.map +1 -1
  73. package/dist/assets/LoadContext.d.ts +4 -1
  74. package/dist/assets/LoadContext.d.ts.map +1 -1
  75. package/dist/assets/LoadContext.js +7 -2
  76. package/dist/assets/LoadContext.js.map +1 -1
  77. package/dist/assets/LoaderFetch.d.ts +12 -0
  78. package/dist/assets/LoaderFetch.d.ts.map +1 -0
  79. package/dist/assets/LoaderFetch.js +54 -0
  80. package/dist/assets/LoaderFetch.js.map +1 -0
  81. package/dist/assets/TextureLoader.d.ts.map +1 -1
  82. package/dist/assets/TextureLoader.js +3 -1
  83. package/dist/assets/TextureLoader.js.map +1 -1
  84. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +6 -0
  85. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -1
  86. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js +2 -1
  87. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -1
  88. package/dist/assets/browser-index.d.ts +9 -0
  89. package/dist/assets/browser-index.d.ts.map +1 -1
  90. package/dist/assets/browser-index.js +5 -0
  91. package/dist/assets/browser-index.js.map +1 -1
  92. package/dist/assets/gltf-runtime.d.ts +2 -0
  93. package/dist/assets/gltf-runtime.d.ts.map +1 -1
  94. package/dist/assets/gltf-runtime.js +1 -0
  95. package/dist/assets/gltf-runtime.js.map +1 -1
  96. package/dist/assets/index.d.ts +11 -0
  97. package/dist/assets/index.d.ts.map +1 -1
  98. package/dist/assets/index.js +7 -0
  99. package/dist/assets/index.js.map +1 -1
  100. package/dist/assets/loaders/TextureLoader.d.ts +27 -1
  101. package/dist/assets/loaders/TextureLoader.d.ts.map +1 -1
  102. package/dist/assets/loaders/TextureLoader.js +62 -4
  103. package/dist/assets/loaders/TextureLoader.js.map +1 -1
  104. package/dist/audio/AudioAnalyser.d.ts +42 -0
  105. package/dist/audio/AudioAnalyser.d.ts.map +1 -0
  106. package/dist/audio/AudioAnalyser.js +75 -0
  107. package/dist/audio/AudioAnalyser.js.map +1 -0
  108. package/dist/audio/AudioContextManager.d.ts +6 -0
  109. package/dist/audio/AudioContextManager.d.ts.map +1 -1
  110. package/dist/audio/AudioContextManager.js.map +1 -1
  111. package/dist/audio/AudioListener.d.ts +27 -0
  112. package/dist/audio/AudioListener.d.ts.map +1 -1
  113. package/dist/audio/AudioListener.js +34 -0
  114. package/dist/audio/AudioListener.js.map +1 -1
  115. package/dist/audio/PositionalEmitter.d.ts +58 -2
  116. package/dist/audio/PositionalEmitter.d.ts.map +1 -1
  117. package/dist/audio/PositionalEmitter.js +111 -12
  118. package/dist/audio/PositionalEmitter.js.map +1 -1
  119. package/dist/audio/SpatialAudio.d.ts +24 -0
  120. package/dist/audio/SpatialAudio.d.ts.map +1 -1
  121. package/dist/audio/SpatialAudio.js +31 -2
  122. package/dist/audio/SpatialAudio.js.map +1 -1
  123. package/dist/audio/game-sound/SpatialVoice.d.ts +2 -2
  124. package/dist/audio/game-sound/SpatialVoice.d.ts.map +1 -1
  125. package/dist/audio/game-sound/SpatialVoice.js +1 -1
  126. package/dist/audio/index.d.ts +5 -3
  127. package/dist/audio/index.d.ts.map +1 -1
  128. package/dist/audio/index.js +2 -1
  129. package/dist/audio/index.js.map +1 -1
  130. package/dist/aura3d-cli/codemods/camera-cast.d.ts +34 -0
  131. package/dist/aura3d-cli/codemods/camera-cast.d.ts.map +1 -0
  132. package/dist/aura3d-cli/codemods/camera-cast.js +259 -0
  133. package/dist/aura3d-cli/codemods/camera-cast.js.map +1 -0
  134. package/dist/aura3d-cli/codemods/core-v2.d.ts +55 -0
  135. package/dist/aura3d-cli/codemods/core-v2.d.ts.map +1 -0
  136. package/dist/aura3d-cli/codemods/core-v2.js +371 -0
  137. package/dist/aura3d-cli/codemods/core-v2.js.map +1 -0
  138. package/dist/aura3d-cli/codemods/engine-entry-imports.js +3 -3
  139. package/dist/aura3d-cli/codemods/engine-entry-imports.js.map +1 -1
  140. package/dist/aura3d-cli/codemods/post-v2.d.ts +88 -0
  141. package/dist/aura3d-cli/codemods/post-v2.d.ts.map +1 -0
  142. package/dist/aura3d-cli/codemods/post-v2.js +379 -0
  143. package/dist/aura3d-cli/codemods/post-v2.js.map +1 -0
  144. package/dist/aura3d-cli/commands/prd01/index.js +1 -1
  145. package/dist/aura3d-cli/commands/prd01/index.js.map +1 -1
  146. package/dist/aura3d-cli/commands/prd02/environmentsBake.d.ts.map +1 -1
  147. package/dist/aura3d-cli/commands/prd02/environmentsBake.js +1 -1
  148. package/dist/aura3d-cli/commands/prd02/environmentsBake.js.map +1 -1
  149. package/dist/aura3d-cli/commands/prd03/index.d.ts +4 -2
  150. package/dist/aura3d-cli/commands/prd03/index.d.ts.map +1 -1
  151. package/dist/aura3d-cli/commands/prd03/index.js +4 -2
  152. package/dist/aura3d-cli/commands/prd03/index.js.map +1 -1
  153. package/dist/aura3d-cli/commands/prd08/feelLint.js +1 -1
  154. package/dist/aura3d-cli/commands/prd08/feelLint.js.map +1 -1
  155. package/dist/aura3d-cli/commands/prd08/index.js +1 -1
  156. package/dist/aura3d-cli/commands/prd08/index.js.map +1 -1
  157. package/dist/aura3d-cli/commands/prd10/index.js +8 -1
  158. package/dist/aura3d-cli/commands/prd10/index.js.map +1 -1
  159. package/dist/aura3d-cli/lint/feelSourceScan.d.ts +20 -0
  160. package/dist/aura3d-cli/lint/feelSourceScan.d.ts.map +1 -0
  161. package/dist/aura3d-cli/lint/feelSourceScan.js +91 -0
  162. package/dist/aura3d-cli/lint/feelSourceScan.js.map +1 -0
  163. package/dist/aura3d-cli/look/lint-static.js +1 -1
  164. package/dist/aura3d-cli/look/lint-static.js.map +1 -1
  165. package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.d.ts.map +1 -1
  166. package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.js +57 -12
  167. package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.js.map +1 -1
  168. package/dist/aura3d-cli/migrate-three/ImportMap.d.ts +36 -12
  169. package/dist/aura3d-cli/migrate-three/ImportMap.d.ts.map +1 -1
  170. package/dist/aura3d-cli/migrate-three/ImportMap.js +120 -22
  171. package/dist/aura3d-cli/migrate-three/ImportMap.js.map +1 -1
  172. package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.d.ts.map +1 -1
  173. package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.js +3 -1
  174. package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.js.map +1 -1
  175. package/dist/aura3d-cli/migrate-three/emit.d.ts +14 -1
  176. package/dist/aura3d-cli/migrate-three/emit.d.ts.map +1 -1
  177. package/dist/aura3d-cli/migrate-three/emit.js +670 -23
  178. package/dist/aura3d-cli/migrate-three/emit.js.map +1 -1
  179. package/dist/aura3d-cli/migrate-three/mappings.d.ts +24 -2
  180. package/dist/aura3d-cli/migrate-three/mappings.d.ts.map +1 -1
  181. package/dist/aura3d-cli/migrate-three/mappings.js +259 -12
  182. package/dist/aura3d-cli/migrate-three/mappings.js.map +1 -1
  183. package/dist/aura3d-cli/migrate-three/parse.d.ts +2 -0
  184. package/dist/aura3d-cli/migrate-three/parse.d.ts.map +1 -1
  185. package/dist/aura3d-cli/migrate-three/parse.js +134 -19
  186. package/dist/aura3d-cli/migrate-three/parse.js.map +1 -1
  187. package/dist/aura3d-cli/migrate-three/report.d.ts +1 -0
  188. package/dist/aura3d-cli/migrate-three/report.d.ts.map +1 -1
  189. package/dist/aura3d-cli/migrate-three/report.js +1 -1
  190. package/dist/aura3d-cli/migrate-three/report.js.map +1 -1
  191. package/dist/create-aura3d/index.js +1 -1
  192. package/dist/create-aura3d/showcase-spec-artifacts.d.ts +1 -1
  193. package/dist/engine/agent-api/AnimationMixerBuilders.d.ts +4 -0
  194. package/dist/engine/agent-api/AnimationMixerBuilders.d.ts.map +1 -1
  195. package/dist/engine/agent-api/AnimationMixerBuilders.js +17 -7
  196. package/dist/engine/agent-api/AnimationMixerBuilders.js.map +1 -1
  197. package/dist/engine/agent-api/Clock.d.ts +37 -0
  198. package/dist/engine/agent-api/Clock.d.ts.map +1 -0
  199. package/dist/engine/agent-api/Clock.js +67 -0
  200. package/dist/engine/agent-api/Clock.js.map +1 -0
  201. package/dist/engine/agent-api/RootGeometry.d.ts +124 -4
  202. package/dist/engine/agent-api/RootGeometry.d.ts.map +1 -1
  203. package/dist/engine/agent-api/RootGeometry.js +426 -19
  204. package/dist/engine/agent-api/RootGeometry.js.map +1 -1
  205. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +14 -0
  206. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
  207. package/dist/engine/agent-api/RuntimeNodeHandle.js +22 -0
  208. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
  209. package/dist/engine/agent-api/SceneQueries.d.ts +67 -1
  210. package/dist/engine/agent-api/SceneQueries.d.ts.map +1 -1
  211. package/dist/engine/agent-api/SceneQueries.js +211 -5
  212. package/dist/engine/agent-api/SceneQueries.js.map +1 -1
  213. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  214. package/dist/engine/agent-api/app/createAuraApp.js +93 -0
  215. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  216. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  217. package/dist/engine/agent-api/app/frameLoop.js +4 -0
  218. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  219. package/dist/engine/agent-api/app/routeState.d.ts +1 -0
  220. package/dist/engine/agent-api/app/routeState.d.ts.map +1 -1
  221. package/dist/engine/agent-api/app/routeState.js +14 -0
  222. package/dist/engine/agent-api/app/routeState.js.map +1 -1
  223. package/dist/engine/agent-api/app/runtimeNodes.d.ts +7 -0
  224. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  225. package/dist/engine/agent-api/app/runtimeNodes.js +340 -12
  226. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  227. package/dist/engine/agent-api/assetEvents.d.ts +25 -0
  228. package/dist/engine/agent-api/assetEvents.d.ts.map +1 -0
  229. package/dist/engine/agent-api/assetEvents.js +36 -0
  230. package/dist/engine/agent-api/assetEvents.js.map +1 -0
  231. package/dist/engine/agent-api/camera/Spline.d.ts +10 -4
  232. package/dist/engine/agent-api/camera/Spline.d.ts.map +1 -1
  233. package/dist/engine/agent-api/camera/Spline.js +28 -101
  234. package/dist/engine/agent-api/camera/Spline.js.map +1 -1
  235. package/dist/engine/agent-api/characters/clone.d.ts +55 -0
  236. package/dist/engine/agent-api/characters/clone.d.ts.map +1 -0
  237. package/dist/engine/agent-api/characters/clone.js +99 -0
  238. package/dist/engine/agent-api/characters/clone.js.map +1 -0
  239. package/dist/engine/agent-api/color.d.ts.map +1 -1
  240. package/dist/engine/agent-api/color.js +4 -18
  241. package/dist/engine/agent-api/color.js.map +1 -1
  242. package/dist/engine/agent-api/compiler/actors.d.ts.map +1 -1
  243. package/dist/engine/agent-api/compiler/actors.js +19 -7
  244. package/dist/engine/agent-api/compiler/actors.js.map +1 -1
  245. package/dist/engine/agent-api/compiler/backgroundImage.d.ts +24 -0
  246. package/dist/engine/agent-api/compiler/backgroundImage.d.ts.map +1 -0
  247. package/dist/engine/agent-api/compiler/backgroundImage.js +134 -0
  248. package/dist/engine/agent-api/compiler/backgroundImage.js.map +1 -0
  249. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  250. package/dist/engine/agent-api/compiler/compileScene.js +7 -2
  251. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  252. package/dist/engine/agent-api/compiler/customMaterial.d.ts +80 -0
  253. package/dist/engine/agent-api/compiler/customMaterial.d.ts.map +1 -0
  254. package/dist/engine/agent-api/compiler/customMaterial.js +628 -0
  255. package/dist/engine/agent-api/compiler/customMaterial.js.map +1 -0
  256. package/dist/engine/agent-api/compiler/environment.d.ts +1 -1
  257. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  258. package/dist/engine/agent-api/compiler/environment.js +10 -5
  259. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  260. package/dist/engine/agent-api/compiler/environmentSourcesState.d.ts +15 -0
  261. package/dist/engine/agent-api/compiler/environmentSourcesState.d.ts.map +1 -0
  262. package/dist/engine/agent-api/compiler/environmentSourcesState.js +13 -0
  263. package/dist/engine/agent-api/compiler/environmentSourcesState.js.map +1 -0
  264. package/dist/engine/agent-api/compiler/errors.d.ts +1 -1
  265. package/dist/engine/agent-api/compiler/errors.d.ts.map +1 -1
  266. package/dist/engine/agent-api/compiler/errors.js.map +1 -1
  267. package/dist/engine/agent-api/compiler/geometry.d.ts +20 -5
  268. package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
  269. package/dist/engine/agent-api/compiler/geometry.js +34 -8
  270. package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
  271. package/dist/engine/agent-api/compiler/handlers.d.ts.map +1 -1
  272. package/dist/engine/agent-api/compiler/handlers.js +35 -1
  273. package/dist/engine/agent-api/compiler/handlers.js.map +1 -1
  274. package/dist/engine/agent-api/compiler/lensFlare.d.ts +21 -0
  275. package/dist/engine/agent-api/compiler/lensFlare.d.ts.map +1 -0
  276. package/dist/engine/agent-api/compiler/lensFlare.js +173 -0
  277. package/dist/engine/agent-api/compiler/lensFlare.js.map +1 -0
  278. package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
  279. package/dist/engine/agent-api/compiler/lights.js +23 -0
  280. package/dist/engine/agent-api/compiler/lights.js.map +1 -1
  281. package/dist/engine/agent-api/compiler/lines.d.ts +23 -0
  282. package/dist/engine/agent-api/compiler/lines.d.ts.map +1 -0
  283. package/dist/engine/agent-api/compiler/lines.js +520 -0
  284. package/dist/engine/agent-api/compiler/lines.js.map +1 -0
  285. package/dist/engine/agent-api/compiler/modelMaterials.d.ts.map +1 -1
  286. package/dist/engine/agent-api/compiler/modelMaterials.js +11 -0
  287. package/dist/engine/agent-api/compiler/modelMaterials.js.map +1 -1
  288. package/dist/engine/agent-api/compiler/observations.d.ts +7 -0
  289. package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
  290. package/dist/engine/agent-api/compiler/observations.js +33 -1
  291. package/dist/engine/agent-api/compiler/observations.js.map +1 -1
  292. package/dist/engine/agent-api/compiler/paritySurfaces.d.ts +37 -0
  293. package/dist/engine/agent-api/compiler/paritySurfaces.d.ts.map +1 -0
  294. package/dist/engine/agent-api/compiler/paritySurfaces.js +310 -0
  295. package/dist/engine/agent-api/compiler/paritySurfaces.js.map +1 -0
  296. package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
  297. package/dist/engine/agent-api/compiler/postprocess.js +6 -3
  298. package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
  299. package/dist/engine/agent-api/compiler/primitives.d.ts +22 -3
  300. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  301. package/dist/engine/agent-api/compiler/primitives.js +320 -57
  302. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  303. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  304. package/dist/engine/agent-api/compiler/renderInput.js +21 -4
  305. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  306. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  307. package/dist/engine/agent-api/compiler/renderer.js +44 -6
  308. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  309. package/dist/engine/agent-api/compiler/textures.d.ts +64 -2
  310. package/dist/engine/agent-api/compiler/textures.d.ts.map +1 -1
  311. package/dist/engine/agent-api/compiler/textures.js +257 -21
  312. package/dist/engine/agent-api/compiler/textures.js.map +1 -1
  313. package/dist/engine/agent-api/devtools/routeHealth.d.ts +12 -1
  314. package/dist/engine/agent-api/devtools/routeHealth.d.ts.map +1 -1
  315. package/dist/engine/agent-api/devtools/routeHealth.js +3 -3
  316. package/dist/engine/agent-api/devtools/routeHealth.js.map +1 -1
  317. package/dist/engine/agent-api/index.d.ts +33 -5
  318. package/dist/engine/agent-api/index.d.ts.map +1 -1
  319. package/dist/engine/agent-api/index.js +19 -3
  320. package/dist/engine/agent-api/index.js.map +1 -1
  321. package/dist/engine/agent-api/lodMarkers.d.ts +23 -0
  322. package/dist/engine/agent-api/lodMarkers.d.ts.map +1 -0
  323. package/dist/engine/agent-api/lodMarkers.js +33 -0
  324. package/dist/engine/agent-api/lodMarkers.js.map +1 -0
  325. package/dist/engine/agent-api/nodes/batched.d.ts +96 -0
  326. package/dist/engine/agent-api/nodes/batched.d.ts.map +1 -0
  327. package/dist/engine/agent-api/nodes/batched.js +456 -0
  328. package/dist/engine/agent-api/nodes/batched.js.map +1 -0
  329. package/dist/engine/agent-api/nodes/batchedState.d.ts +137 -0
  330. package/dist/engine/agent-api/nodes/batchedState.d.ts.map +1 -0
  331. package/dist/engine/agent-api/nodes/batchedState.js +435 -0
  332. package/dist/engine/agent-api/nodes/batchedState.js.map +1 -0
  333. package/dist/engine/agent-api/nodes/builder.d.ts.map +1 -1
  334. package/dist/engine/agent-api/nodes/builder.js +0 -3
  335. package/dist/engine/agent-api/nodes/builder.js.map +1 -1
  336. package/dist/engine/agent-api/nodes/camera.d.ts.map +1 -1
  337. package/dist/engine/agent-api/nodes/camera.js +2 -1
  338. package/dist/engine/agent-api/nodes/camera.js.map +1 -1
  339. package/dist/engine/agent-api/nodes/cameras.d.ts +114 -0
  340. package/dist/engine/agent-api/nodes/cameras.d.ts.map +1 -0
  341. package/dist/engine/agent-api/nodes/cameras.js +107 -0
  342. package/dist/engine/agent-api/nodes/cameras.js.map +1 -0
  343. package/dist/engine/agent-api/nodes/compute.d.ts +48 -0
  344. package/dist/engine/agent-api/nodes/compute.d.ts.map +1 -0
  345. package/dist/engine/agent-api/nodes/compute.js +73 -0
  346. package/dist/engine/agent-api/nodes/compute.js.map +1 -0
  347. package/dist/engine/agent-api/nodes/effects.composite.d.ts +3 -2
  348. package/dist/engine/agent-api/nodes/effects.composite.d.ts.map +1 -1
  349. package/dist/engine/agent-api/nodes/effects.post.d.ts +35 -0
  350. package/dist/engine/agent-api/nodes/effects.post.d.ts.map +1 -1
  351. package/dist/engine/agent-api/nodes/effects.post.js +69 -0
  352. package/dist/engine/agent-api/nodes/effects.post.js.map +1 -1
  353. package/dist/engine/agent-api/nodes/environments.composite.d.ts.map +1 -1
  354. package/dist/engine/agent-api/nodes/environments.d.ts +1 -1
  355. package/dist/engine/agent-api/nodes/environments.js +1 -1
  356. package/dist/engine/agent-api/nodes/environments.js.map +1 -1
  357. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts +19 -6
  358. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts.map +1 -1
  359. package/dist/engine/agent-api/nodes/game/instanceTransforms.js +31 -9
  360. package/dist/engine/agent-api/nodes/game/instanceTransforms.js.map +1 -1
  361. package/dist/engine/agent-api/nodes/geometry.d.ts +28 -1
  362. package/dist/engine/agent-api/nodes/geometry.d.ts.map +1 -1
  363. package/dist/engine/agent-api/nodes/geometry.js +62 -2
  364. package/dist/engine/agent-api/nodes/geometry.js.map +1 -1
  365. package/dist/engine/agent-api/nodes/groups.d.ts +8 -1
  366. package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
  367. package/dist/engine/agent-api/nodes/groups.js +28 -0
  368. package/dist/engine/agent-api/nodes/groups.js.map +1 -1
  369. package/dist/engine/agent-api/nodes/helpers.d.ts +100 -0
  370. package/dist/engine/agent-api/nodes/helpers.d.ts.map +1 -0
  371. package/dist/engine/agent-api/nodes/helpers.js +254 -0
  372. package/dist/engine/agent-api/nodes/helpers.js.map +1 -0
  373. package/dist/engine/agent-api/nodes/instancedMesh.d.ts +87 -0
  374. package/dist/engine/agent-api/nodes/instancedMesh.d.ts.map +1 -0
  375. package/dist/engine/agent-api/nodes/instancedMesh.js +156 -0
  376. package/dist/engine/agent-api/nodes/instancedMesh.js.map +1 -0
  377. package/dist/engine/agent-api/nodes/instances.d.ts +49 -1
  378. package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
  379. package/dist/engine/agent-api/nodes/instances.js +21 -0
  380. package/dist/engine/agent-api/nodes/instances.js.map +1 -1
  381. package/dist/engine/agent-api/nodes/lensFlare.d.ts +126 -0
  382. package/dist/engine/agent-api/nodes/lensFlare.d.ts.map +1 -0
  383. package/dist/engine/agent-api/nodes/lensFlare.js +184 -0
  384. package/dist/engine/agent-api/nodes/lensFlare.js.map +1 -0
  385. package/dist/engine/agent-api/nodes/lights.d.ts +34 -0
  386. package/dist/engine/agent-api/nodes/lights.d.ts.map +1 -1
  387. package/dist/engine/agent-api/nodes/lights.js +27 -0
  388. package/dist/engine/agent-api/nodes/lights.js.map +1 -1
  389. package/dist/engine/agent-api/nodes/lines.d.ts +69 -0
  390. package/dist/engine/agent-api/nodes/lines.d.ts.map +1 -0
  391. package/dist/engine/agent-api/nodes/lines.js +136 -0
  392. package/dist/engine/agent-api/nodes/lines.js.map +1 -0
  393. package/dist/engine/agent-api/nodes/material.d.ts +9 -1
  394. package/dist/engine/agent-api/nodes/material.d.ts.map +1 -1
  395. package/dist/engine/agent-api/nodes/material.js +12 -0
  396. package/dist/engine/agent-api/nodes/material.js.map +1 -1
  397. package/dist/engine/agent-api/nodes/overrideMaterial.d.ts +18 -0
  398. package/dist/engine/agent-api/nodes/overrideMaterial.d.ts.map +1 -0
  399. package/dist/engine/agent-api/nodes/overrideMaterial.js +43 -0
  400. package/dist/engine/agent-api/nodes/overrideMaterial.js.map +1 -0
  401. package/dist/engine/agent-api/nodes/points.d.ts +29 -0
  402. package/dist/engine/agent-api/nodes/points.d.ts.map +1 -0
  403. package/dist/engine/agent-api/nodes/points.js +34 -0
  404. package/dist/engine/agent-api/nodes/points.js.map +1 -0
  405. package/dist/engine/agent-api/nodes/primitives.d.ts +11 -0
  406. package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
  407. package/dist/engine/agent-api/nodes/primitives.js +55 -1
  408. package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
  409. package/dist/engine/agent-api/nodes/prompt/promptPlanV2.d.ts.map +1 -1
  410. package/dist/engine/agent-api/nodes/prompt/promptPlanV2.js +6 -2
  411. package/dist/engine/agent-api/nodes/prompt/promptPlanV2.js.map +1 -1
  412. package/dist/engine/agent-api/nodes/prompt/promptRecipes.d.ts.map +1 -1
  413. package/dist/engine/agent-api/nodes/prompt/promptRecipes.js +7 -1
  414. package/dist/engine/agent-api/nodes/prompt/promptRecipes.js.map +1 -1
  415. package/dist/engine/agent-api/nodes/scene.d.ts +22 -3
  416. package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
  417. package/dist/engine/agent-api/nodes/scene.js +41 -2
  418. package/dist/engine/agent-api/nodes/scene.js.map +1 -1
  419. package/dist/engine/agent-api/nodes/sprites.d.ts +29 -0
  420. package/dist/engine/agent-api/nodes/sprites.d.ts.map +1 -0
  421. package/dist/engine/agent-api/nodes/sprites.js +43 -0
  422. package/dist/engine/agent-api/nodes/sprites.js.map +1 -0
  423. package/dist/engine/agent-api/nodes/surfaces.d.ts +48 -0
  424. package/dist/engine/agent-api/nodes/surfaces.d.ts.map +1 -0
  425. package/dist/engine/agent-api/nodes/surfaces.js +32 -0
  426. package/dist/engine/agent-api/nodes/surfaces.js.map +1 -0
  427. package/dist/engine/agent-api/nodes/texture.d.ts +114 -0
  428. package/dist/engine/agent-api/nodes/texture.d.ts.map +1 -0
  429. package/dist/engine/agent-api/nodes/texture.js +590 -0
  430. package/dist/engine/agent-api/nodes/texture.js.map +1 -0
  431. package/dist/engine/agent-api/nodes/types/runtime.d.ts +91 -4
  432. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  433. package/dist/engine/agent-api/nodes/types.d.ts +387 -4
  434. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  435. package/dist/engine/agent-api/postBridge.d.ts +7 -0
  436. package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
  437. package/dist/engine/agent-api/postBridge.js +63 -5
  438. package/dist/engine/agent-api/postBridge.js.map +1 -1
  439. package/dist/engine/agent-api/public/devtools.d.ts +1 -0
  440. package/dist/engine/agent-api/public/devtools.d.ts.map +1 -1
  441. package/dist/engine/agent-api/public/devtools.js.map +1 -1
  442. package/dist/engine/agent-api/publishedUnion.d.ts +136 -0
  443. package/dist/engine/agent-api/publishedUnion.d.ts.map +1 -1
  444. package/dist/engine/agent-api/publishedUnion.js +109 -0
  445. package/dist/engine/agent-api/publishedUnion.js.map +1 -1
  446. package/dist/engine/agent-api/runtimeEvidence.d.ts +10 -0
  447. package/dist/engine/agent-api/runtimeEvidence.d.ts.map +1 -1
  448. package/dist/engine/agent-api/runtimeEvidence.js +16 -0
  449. package/dist/engine/agent-api/runtimeEvidence.js.map +1 -1
  450. package/dist/engine/agent-api/sceneMath.d.ts +2 -2
  451. package/dist/engine/agent-api/sceneMath.d.ts.map +1 -1
  452. package/dist/engine/agent-api/sceneMath.js +8 -5
  453. package/dist/engine/agent-api/sceneMath.js.map +1 -1
  454. package/dist/engine/agent-api/sceneMath.lookLowering.d.ts +14 -0
  455. package/dist/engine/agent-api/sceneMath.lookLowering.d.ts.map +1 -0
  456. package/dist/engine/agent-api/sceneMath.lookLowering.js +8 -0
  457. package/dist/engine/agent-api/sceneMath.lookLowering.js.map +1 -0
  458. package/dist/engine/agent-api/stereoMath.d.ts +45 -0
  459. package/dist/engine/agent-api/stereoMath.d.ts.map +1 -0
  460. package/dist/engine/agent-api/stereoMath.js +78 -0
  461. package/dist/engine/agent-api/stereoMath.js.map +1 -0
  462. package/dist/engine/agent-api/vfx/atmosphere-api.d.ts +13 -0
  463. package/dist/engine/agent-api/vfx/atmosphere-api.d.ts.map +1 -1
  464. package/dist/engine/agent-api/vfx/atmosphere-api.js +19 -0
  465. package/dist/engine/agent-api/vfx/atmosphere-api.js.map +1 -1
  466. package/dist/engine/agent-api/world/kits.d.ts +1 -1
  467. package/dist/engine/agent-api/world/placement.js.map +1 -1
  468. package/dist/engine/agent-api/world/spline.d.ts +7 -22
  469. package/dist/engine/agent-api/world/spline.d.ts.map +1 -1
  470. package/dist/engine/agent-api/world/spline.js +30 -24
  471. package/dist/engine/agent-api/world/spline.js.map +1 -1
  472. package/dist/engine/agent-api/xr/index.d.ts +18 -0
  473. package/dist/engine/agent-api/xr/index.d.ts.map +1 -0
  474. package/dist/engine/agent-api/xr/index.js +15 -0
  475. package/dist/engine/agent-api/xr/index.js.map +1 -0
  476. package/dist/engine/agent-api/xr/types.d.ts +85 -0
  477. package/dist/engine/agent-api/xr/types.d.ts.map +1 -0
  478. package/dist/engine/agent-api/xr/types.js +2 -0
  479. package/dist/engine/agent-api/xr/types.js.map +1 -0
  480. package/dist/engine/agent-api/xr/xrButton.d.ts +50 -0
  481. package/dist/engine/agent-api/xr/xrButton.d.ts.map +1 -0
  482. package/dist/engine/agent-api/xr/xrButton.js +93 -0
  483. package/dist/engine/agent-api/xr/xrButton.js.map +1 -0
  484. package/dist/engine/agent-api/xr/xrRuntime.d.ts +40 -0
  485. package/dist/engine/agent-api/xr/xrRuntime.d.ts.map +1 -0
  486. package/dist/engine/agent-api/xr/xrRuntime.js +236 -0
  487. package/dist/engine/agent-api/xr/xrRuntime.js.map +1 -0
  488. package/dist/engine/agent-api/xr/xrViewOverride.d.ts +35 -0
  489. package/dist/engine/agent-api/xr/xrViewOverride.d.ts.map +1 -0
  490. package/dist/engine/agent-api/xr/xrViewOverride.js +99 -0
  491. package/dist/engine/agent-api/xr/xrViewOverride.js.map +1 -0
  492. package/dist/engine/contracts/compiler.d.ts +5 -0
  493. package/dist/engine/contracts/compiler.d.ts.map +1 -1
  494. package/dist/engine/contracts/compiler.js.map +1 -1
  495. package/dist/engine/contracts/flags.d.ts.map +1 -1
  496. package/dist/engine/contracts/flags.js +19 -2
  497. package/dist/engine/contracts/flags.js.map +1 -1
  498. package/dist/engine/contracts/post.d.ts +12 -0
  499. package/dist/engine/contracts/post.d.ts.map +1 -1
  500. package/dist/engine/contracts/post.js.map +1 -1
  501. package/dist/engine/index.d.ts +1 -0
  502. package/dist/engine/index.d.ts.map +1 -1
  503. package/dist/engine/index.js +5 -0
  504. package/dist/engine/index.js.map +1 -1
  505. package/dist/engine/lanes/prd02.d.ts +1 -0
  506. package/dist/engine/lanes/prd02.d.ts.map +1 -1
  507. package/dist/engine/lanes/prd02.js +15 -0
  508. package/dist/engine/lanes/prd02.js.map +1 -1
  509. package/dist/engine/lanes/prd13.d.ts.map +1 -1
  510. package/dist/engine/lanes/prd13.js +4 -1
  511. package/dist/engine/lanes/prd13.js.map +1 -1
  512. package/dist/engine/production-runtime/TypedGLBActor.d.ts +8 -1
  513. package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
  514. package/dist/engine/production-runtime/TypedGLBActor.js +4 -3
  515. package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
  516. package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.d.ts +5 -1
  517. package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.d.ts.map +1 -1
  518. package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.js +10 -6
  519. package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.js.map +1 -1
  520. package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts +19 -1
  521. package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts.map +1 -1
  522. package/dist/engine/production-runtime/effects/EffectNodeLowering.js +39 -25
  523. package/dist/engine/production-runtime/effects/EffectNodeLowering.js.map +1 -1
  524. package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts +5 -0
  525. package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts.map +1 -1
  526. package/dist/engine/production-runtime/effects/ProductionEffectSystem.js +79 -8
  527. package/dist/engine/production-runtime/effects/ProductionEffectSystem.js.map +1 -1
  528. package/dist/engine/public/index.d.ts +6 -2
  529. package/dist/engine/public/index.d.ts.map +1 -1
  530. package/dist/engine/public/index.js +5 -1
  531. package/dist/engine/public/index.js.map +1 -1
  532. package/dist/engine/public/renderTarget.d.ts +14 -0
  533. package/dist/engine/public/renderTarget.d.ts.map +1 -0
  534. package/dist/engine/public/renderTarget.js +13 -0
  535. package/dist/engine/public/renderTarget.js.map +1 -0
  536. package/dist/engine/public/renderer.d.ts +4 -0
  537. package/dist/engine/public/renderer.d.ts.map +1 -1
  538. package/dist/engine/public/renderer.js +8 -0
  539. package/dist/engine/public/renderer.js.map +1 -1
  540. package/dist/input/WebXRSessionController.d.ts +43 -0
  541. package/dist/input/WebXRSessionController.d.ts.map +1 -1
  542. package/dist/input/WebXRSessionController.js +8 -0
  543. package/dist/input/WebXRSessionController.js.map +1 -1
  544. package/dist/input/index.d.ts +1 -15
  545. package/dist/input/index.d.ts.map +1 -1
  546. package/dist/input/index.js +0 -7
  547. package/dist/input/index.js.map +1 -1
  548. package/dist/math/Box3.d.ts +50 -0
  549. package/dist/math/Box3.d.ts.map +1 -1
  550. package/dist/math/Box3.js +177 -6
  551. package/dist/math/Box3.js.map +1 -1
  552. package/dist/math/Capsule.d.ts +25 -0
  553. package/dist/math/Capsule.d.ts.map +1 -0
  554. package/dist/math/Capsule.js +54 -0
  555. package/dist/math/Capsule.js.map +1 -0
  556. package/dist/math/Color.d.ts +27 -0
  557. package/dist/math/Color.d.ts.map +1 -1
  558. package/dist/math/Color.js +87 -0
  559. package/dist/math/Color.js.map +1 -1
  560. package/dist/math/ConvexHull.d.ts +100 -0
  561. package/dist/math/ConvexHull.d.ts.map +1 -0
  562. package/dist/math/ConvexHull.js +578 -0
  563. package/dist/math/ConvexHull.js.map +1 -0
  564. package/dist/math/Curves.d.ts +59 -18
  565. package/dist/math/Curves.d.ts.map +1 -1
  566. package/dist/math/Curves.js +15 -73
  567. package/dist/math/Curves.js.map +1 -1
  568. package/dist/math/Cylindrical.d.ts +19 -0
  569. package/dist/math/Cylindrical.d.ts.map +1 -0
  570. package/dist/math/Cylindrical.js +40 -0
  571. package/dist/math/Cylindrical.js.map +1 -0
  572. package/dist/math/Euler.d.ts +24 -0
  573. package/dist/math/Euler.d.ts.map +1 -1
  574. package/dist/math/Euler.js +126 -2
  575. package/dist/math/Euler.js.map +1 -1
  576. package/dist/math/Frustum.d.ts +18 -0
  577. package/dist/math/Frustum.d.ts.map +1 -1
  578. package/dist/math/Frustum.js +62 -12
  579. package/dist/math/Frustum.js.map +1 -1
  580. package/dist/math/Line3.d.ts +38 -0
  581. package/dist/math/Line3.d.ts.map +1 -0
  582. package/dist/math/Line3.js +122 -0
  583. package/dist/math/Line3.js.map +1 -0
  584. package/dist/math/MathUtils.d.ts +37 -0
  585. package/dist/math/MathUtils.d.ts.map +1 -0
  586. package/dist/math/MathUtils.js +105 -0
  587. package/dist/math/MathUtils.js.map +1 -0
  588. package/dist/math/Matrix3.d.ts +23 -2
  589. package/dist/math/Matrix3.d.ts.map +1 -1
  590. package/dist/math/Matrix3.js +90 -0
  591. package/dist/math/Matrix3.js.map +1 -1
  592. package/dist/math/Matrix4.d.ts +3 -0
  593. package/dist/math/Matrix4.d.ts.map +1 -1
  594. package/dist/math/Matrix4.js +17 -0
  595. package/dist/math/Matrix4.js.map +1 -1
  596. package/dist/math/OBB.d.ts +44 -0
  597. package/dist/math/OBB.d.ts.map +1 -0
  598. package/dist/math/OBB.js +214 -0
  599. package/dist/math/OBB.js.map +1 -0
  600. package/dist/math/Octree.d.ts +72 -0
  601. package/dist/math/Octree.d.ts.map +1 -0
  602. package/dist/math/Octree.js +385 -0
  603. package/dist/math/Octree.js.map +1 -0
  604. package/dist/math/Plane.d.ts +42 -0
  605. package/dist/math/Plane.d.ts.map +1 -1
  606. package/dist/math/Plane.js +79 -3
  607. package/dist/math/Plane.js.map +1 -1
  608. package/dist/math/Quaternion.d.ts +6 -1
  609. package/dist/math/Quaternion.d.ts.map +1 -1
  610. package/dist/math/Quaternion.js +28 -3
  611. package/dist/math/Quaternion.js.map +1 -1
  612. package/dist/math/Ray.d.ts +42 -2
  613. package/dist/math/Ray.d.ts.map +1 -1
  614. package/dist/math/Ray.js +202 -9
  615. package/dist/math/Ray.js.map +1 -1
  616. package/dist/math/ShapeUtils.d.ts +28 -0
  617. package/dist/math/ShapeUtils.d.ts.map +1 -0
  618. package/dist/math/ShapeUtils.js +551 -0
  619. package/dist/math/ShapeUtils.js.map +1 -0
  620. package/dist/math/Sphere.d.ts +32 -0
  621. package/dist/math/Sphere.d.ts.map +1 -1
  622. package/dist/math/Sphere.js +122 -4
  623. package/dist/math/Sphere.js.map +1 -1
  624. package/dist/math/Spherical.d.ts +21 -0
  625. package/dist/math/Spherical.d.ts.map +1 -0
  626. package/dist/math/Spherical.js +50 -0
  627. package/dist/math/Spherical.js.map +1 -0
  628. package/dist/math/SphericalHarmonics3.d.ts +35 -0
  629. package/dist/math/SphericalHarmonics3.d.ts.map +1 -0
  630. package/dist/math/SphericalHarmonics3.js +115 -0
  631. package/dist/math/SphericalHarmonics3.js.map +1 -0
  632. package/dist/math/Triangle.d.ts +45 -0
  633. package/dist/math/Triangle.d.ts.map +1 -0
  634. package/dist/math/Triangle.js +160 -0
  635. package/dist/math/Triangle.js.map +1 -0
  636. package/dist/math/Vector2.d.ts +7 -0
  637. package/dist/math/Vector2.d.ts.map +1 -1
  638. package/dist/math/Vector2.js +17 -0
  639. package/dist/math/Vector2.js.map +1 -1
  640. package/dist/math/Vector3.d.ts +16 -0
  641. package/dist/math/Vector3.d.ts.map +1 -1
  642. package/dist/math/Vector3.js +35 -0
  643. package/dist/math/Vector3.js.map +1 -1
  644. package/dist/math/curves/ArcCurve.d.ts +7 -0
  645. package/dist/math/curves/ArcCurve.d.ts.map +1 -0
  646. package/dist/math/curves/ArcCurve.js +9 -0
  647. package/dist/math/curves/ArcCurve.js.map +1 -0
  648. package/dist/math/curves/CatmullRomCurve3.d.ts +39 -0
  649. package/dist/math/curves/CatmullRomCurve3.d.ts.map +1 -0
  650. package/dist/math/curves/CatmullRomCurve3.js +176 -0
  651. package/dist/math/curves/CatmullRomCurve3.js.map +1 -0
  652. package/dist/math/curves/ClampedCatmullRomCurve3.d.ts +26 -0
  653. package/dist/math/curves/ClampedCatmullRomCurve3.d.ts.map +1 -0
  654. package/dist/math/curves/ClampedCatmullRomCurve3.js +48 -0
  655. package/dist/math/curves/ClampedCatmullRomCurve3.js.map +1 -0
  656. package/dist/math/curves/CubicBezierCurve.d.ts +14 -0
  657. package/dist/math/curves/CubicBezierCurve.d.ts.map +1 -0
  658. package/dist/math/curves/CubicBezierCurve.js +25 -0
  659. package/dist/math/curves/CubicBezierCurve.js.map +1 -0
  660. package/dist/math/curves/CubicBezierCurve3.d.ts +14 -0
  661. package/dist/math/curves/CubicBezierCurve3.d.ts.map +1 -0
  662. package/dist/math/curves/CubicBezierCurve3.js +25 -0
  663. package/dist/math/curves/CubicBezierCurve3.js.map +1 -0
  664. package/dist/math/curves/CurveBase.d.ts +49 -0
  665. package/dist/math/curves/CurveBase.d.ts.map +1 -0
  666. package/dist/math/curves/CurveBase.js +199 -0
  667. package/dist/math/curves/CurveBase.js.map +1 -0
  668. package/dist/math/curves/CurvePath.d.ts +34 -0
  669. package/dist/math/curves/CurvePath.d.ts.map +1 -0
  670. package/dist/math/curves/CurvePath.js +135 -0
  671. package/dist/math/curves/CurvePath.js.map +1 -0
  672. package/dist/math/curves/EllipseCurve.d.ts +18 -0
  673. package/dist/math/curves/EllipseCurve.d.ts.map +1 -0
  674. package/dist/math/curves/EllipseCurve.js +67 -0
  675. package/dist/math/curves/EllipseCurve.js.map +1 -0
  676. package/dist/math/curves/Interpolations.d.ts +9 -0
  677. package/dist/math/curves/Interpolations.d.ts.map +1 -0
  678. package/dist/math/curves/Interpolations.js +21 -0
  679. package/dist/math/curves/Interpolations.js.map +1 -0
  680. package/dist/math/curves/LineCurve.d.ts +16 -0
  681. package/dist/math/curves/LineCurve.d.ts.map +1 -0
  682. package/dist/math/curves/LineCurve.js +32 -0
  683. package/dist/math/curves/LineCurve.js.map +1 -0
  684. package/dist/math/curves/LineCurve3.d.ts +16 -0
  685. package/dist/math/curves/LineCurve3.d.ts.map +1 -0
  686. package/dist/math/curves/LineCurve3.js +32 -0
  687. package/dist/math/curves/LineCurve3.js.map +1 -0
  688. package/dist/math/curves/Path.d.ts +23 -0
  689. package/dist/math/curves/Path.d.ts.map +1 -0
  690. package/dist/math/curves/Path.js +94 -0
  691. package/dist/math/curves/Path.js.map +1 -0
  692. package/dist/math/curves/QuadraticBezierCurve.d.ts +13 -0
  693. package/dist/math/curves/QuadraticBezierCurve.d.ts.map +1 -0
  694. package/dist/math/curves/QuadraticBezierCurve.js +23 -0
  695. package/dist/math/curves/QuadraticBezierCurve.js.map +1 -0
  696. package/dist/math/curves/QuadraticBezierCurve3.d.ts +13 -0
  697. package/dist/math/curves/QuadraticBezierCurve3.d.ts.map +1 -0
  698. package/dist/math/curves/QuadraticBezierCurve3.js +23 -0
  699. package/dist/math/curves/QuadraticBezierCurve3.js.map +1 -0
  700. package/dist/math/curves/Shape.d.ts +15 -0
  701. package/dist/math/curves/Shape.d.ts.map +1 -0
  702. package/dist/math/curves/Shape.js +26 -0
  703. package/dist/math/curves/Shape.js.map +1 -0
  704. package/dist/math/curves/SplineCurve.d.ts +11 -0
  705. package/dist/math/curves/SplineCurve.d.ts.map +1 -0
  706. package/dist/math/curves/SplineCurve.js +27 -0
  707. package/dist/math/curves/SplineCurve.js.map +1 -0
  708. package/dist/math/index.d.ts +12 -0
  709. package/dist/math/index.d.ts.map +1 -1
  710. package/dist/math/index.js +16 -0
  711. package/dist/math/index.js.map +1 -1
  712. package/dist/physics-rapier/index.d.ts.map +1 -1
  713. package/dist/physics-rapier/index.js +20 -5
  714. package/dist/physics-rapier/index.js.map +1 -1
  715. package/dist/rendering/EnvironmentPlatform.d.ts.map +1 -1
  716. package/dist/rendering/EnvironmentPlatform.js +6 -2
  717. package/dist/rendering/EnvironmentPlatform.js.map +1 -1
  718. package/dist/rendering/ForwardPass.d.ts +2 -0
  719. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  720. package/dist/rendering/ForwardPass.js +70 -5
  721. package/dist/rendering/ForwardPass.js.map +1 -1
  722. package/dist/rendering/Geometry.d.ts +40 -0
  723. package/dist/rendering/Geometry.d.ts.map +1 -1
  724. package/dist/rendering/Geometry.js +39 -2
  725. package/dist/rendering/Geometry.js.map +1 -1
  726. package/dist/rendering/IndexBuffer.d.ts +16 -1
  727. package/dist/rendering/IndexBuffer.d.ts.map +1 -1
  728. package/dist/rendering/IndexBuffer.js +46 -1
  729. package/dist/rendering/IndexBuffer.js.map +1 -1
  730. package/dist/rendering/InstancedPBRMaterial.d.ts +2 -0
  731. package/dist/rendering/InstancedPBRMaterial.d.ts.map +1 -1
  732. package/dist/rendering/InstancedPBRMaterial.js +1 -0
  733. package/dist/rendering/InstancedPBRMaterial.js.map +1 -1
  734. package/dist/rendering/Material.d.ts +9 -0
  735. package/dist/rendering/Material.d.ts.map +1 -1
  736. package/dist/rendering/Material.js +3 -0
  737. package/dist/rendering/Material.js.map +1 -1
  738. package/dist/rendering/PBRMaterial.d.ts +2 -0
  739. package/dist/rendering/PBRMaterial.d.ts.map +1 -1
  740. package/dist/rendering/PBRMaterial.js +1 -0
  741. package/dist/rendering/PBRMaterial.js.map +1 -1
  742. package/dist/rendering/PortableShaderMaterial.d.ts +13 -3
  743. package/dist/rendering/PortableShaderMaterial.d.ts.map +1 -1
  744. package/dist/rendering/PortableShaderMaterial.js +24 -12
  745. package/dist/rendering/PortableShaderMaterial.js.map +1 -1
  746. package/dist/rendering/RenderDevice.d.ts +98 -0
  747. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  748. package/dist/rendering/RenderDevice.js +129 -0
  749. package/dist/rendering/RenderDevice.js.map +1 -1
  750. package/dist/rendering/Renderer.d.ts +94 -0
  751. package/dist/rendering/Renderer.d.ts.map +1 -1
  752. package/dist/rendering/Renderer.js +321 -26
  753. package/dist/rendering/Renderer.js.map +1 -1
  754. package/dist/rendering/Sampler.d.ts +35 -0
  755. package/dist/rendering/Sampler.d.ts.map +1 -1
  756. package/dist/rendering/Sampler.js +96 -0
  757. package/dist/rendering/Sampler.js.map +1 -1
  758. package/dist/rendering/ShaderLibraryCore.d.ts +14 -0
  759. package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
  760. package/dist/rendering/ShaderLibraryCore.js +94 -4
  761. package/dist/rendering/ShaderLibraryCore.js.map +1 -1
  762. package/dist/rendering/Texture.d.ts +53 -1
  763. package/dist/rendering/Texture.d.ts.map +1 -1
  764. package/dist/rendering/Texture.js +53 -2
  765. package/dist/rendering/Texture.js.map +1 -1
  766. package/dist/rendering/UnlitMaterial.d.ts +46 -0
  767. package/dist/rendering/UnlitMaterial.d.ts.map +1 -1
  768. package/dist/rendering/UnlitMaterial.js +32 -3
  769. package/dist/rendering/UnlitMaterial.js.map +1 -1
  770. package/dist/rendering/VertexFormat.d.ts +19 -1
  771. package/dist/rendering/VertexFormat.d.ts.map +1 -1
  772. package/dist/rendering/VertexFormat.js +40 -1
  773. package/dist/rendering/VertexFormat.js.map +1 -1
  774. package/dist/rendering/WebGL2Device.d.ts +16 -0
  775. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  776. package/dist/rendering/WebGL2Device.js +31 -6
  777. package/dist/rendering/WebGL2Device.js.map +1 -1
  778. package/dist/rendering/WebGPUDevice.d.ts +92 -1
  779. package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
  780. package/dist/rendering/WebGPUDevice.js +417 -44
  781. package/dist/rendering/WebGPUDevice.js.map +1 -1
  782. package/dist/rendering/batching/BatchedGeometryPool.d.ts +22 -1
  783. package/dist/rendering/batching/BatchedGeometryPool.d.ts.map +1 -1
  784. package/dist/rendering/batching/BatchedGeometryPool.js +50 -2
  785. package/dist/rendering/batching/BatchedGeometryPool.js.map +1 -1
  786. package/dist/rendering/batching/DrawDataTexture.d.ts +21 -1
  787. package/dist/rendering/batching/DrawDataTexture.d.ts.map +1 -1
  788. package/dist/rendering/batching/DrawDataTexture.js +30 -4
  789. package/dist/rendering/batching/DrawDataTexture.js.map +1 -1
  790. package/dist/rendering/batching/MultiDrawBatch.d.ts +26 -0
  791. package/dist/rendering/batching/MultiDrawBatch.d.ts.map +1 -1
  792. package/dist/rendering/batching/MultiDrawBatch.js +64 -2
  793. package/dist/rendering/batching/MultiDrawBatch.js.map +1 -1
  794. package/dist/rendering/batching/index.d.ts +2 -2
  795. package/dist/rendering/batching/index.d.ts.map +1 -1
  796. package/dist/rendering/batching/index.js +2 -2
  797. package/dist/rendering/batching/index.js.map +1 -1
  798. package/dist/rendering/compute/ComputeContext.d.ts +84 -0
  799. package/dist/rendering/compute/ComputeContext.d.ts.map +1 -0
  800. package/dist/rendering/compute/ComputeContext.js +371 -0
  801. package/dist/rendering/compute/ComputeContext.js.map +1 -0
  802. package/dist/rendering/compute/index.d.ts +4 -0
  803. package/dist/rendering/compute/index.d.ts.map +1 -0
  804. package/dist/rendering/compute/index.js +3 -0
  805. package/dist/rendering/compute/index.js.map +1 -0
  806. package/dist/rendering/compute/types.d.ts +108 -0
  807. package/dist/rendering/compute/types.d.ts.map +1 -0
  808. package/dist/rendering/compute/types.js +25 -0
  809. package/dist/rendering/compute/types.js.map +1 -0
  810. package/dist/rendering/contracts/core.d.ts +1 -1
  811. package/dist/rendering/contracts/core.d.ts.map +1 -1
  812. package/dist/rendering/contracts/core.js.map +1 -1
  813. package/dist/rendering/contracts/flags.state.d.ts.map +1 -1
  814. package/dist/rendering/contracts/flags.state.js +20 -1
  815. package/dist/rendering/contracts/flags.state.js.map +1 -1
  816. package/dist/rendering/contracts/output.d.ts +1 -1
  817. package/dist/rendering/contracts/output.d.ts.map +1 -1
  818. package/dist/rendering/contracts/output.js.map +1 -1
  819. package/dist/rendering/contracts/post.d.ts +7 -0
  820. package/dist/rendering/contracts/post.d.ts.map +1 -1
  821. package/dist/rendering/contracts/post.js.map +1 -1
  822. package/dist/rendering/contracts/renderItem.d.ts +15 -0
  823. package/dist/rendering/contracts/renderItem.d.ts.map +1 -1
  824. package/dist/rendering/contracts/renderSource.d.ts +3 -1
  825. package/dist/rendering/contracts/renderSource.d.ts.map +1 -1
  826. package/dist/rendering/contracts/sampling.d.ts +23 -0
  827. package/dist/rendering/contracts/sampling.d.ts.map +1 -1
  828. package/dist/rendering/contracts/sampling.js.map +1 -1
  829. package/dist/rendering/environment/EnvironmentCache.d.ts.map +1 -1
  830. package/dist/rendering/environment/EnvironmentCache.js +7 -3
  831. package/dist/rendering/environment/EnvironmentCache.js.map +1 -1
  832. package/dist/rendering/environment/RoomEnvironmentScene.d.ts +2 -2
  833. package/dist/rendering/environment/RoomEnvironmentScene.d.ts.map +1 -1
  834. package/dist/rendering/environment/RoomEnvironmentScene.js.map +1 -1
  835. package/dist/rendering/geometry/Circle.d.ts +14 -0
  836. package/dist/rendering/geometry/Circle.d.ts.map +1 -0
  837. package/dist/rendering/geometry/Circle.js +31 -0
  838. package/dist/rendering/geometry/Circle.js.map +1 -0
  839. package/dist/rendering/geometry/Cone.d.ts +37 -0
  840. package/dist/rendering/geometry/Cone.d.ts.map +1 -0
  841. package/dist/rendering/geometry/Cone.js +129 -0
  842. package/dist/rendering/geometry/Cone.js.map +1 -0
  843. package/dist/rendering/geometry/Convex.d.ts +19 -0
  844. package/dist/rendering/geometry/Convex.d.ts.map +1 -0
  845. package/dist/rendering/geometry/Convex.js +27 -0
  846. package/dist/rendering/geometry/Convex.js.map +1 -0
  847. package/dist/rendering/geometry/Edges.d.ts +15 -0
  848. package/dist/rendering/geometry/Edges.d.ts.map +1 -0
  849. package/dist/rendering/geometry/Edges.js +98 -0
  850. package/dist/rendering/geometry/Edges.js.map +1 -0
  851. package/dist/rendering/geometry/Extrude.d.ts +29 -0
  852. package/dist/rendering/geometry/Extrude.d.ts.map +1 -0
  853. package/dist/rendering/geometry/Extrude.js +403 -0
  854. package/dist/rendering/geometry/Extrude.js.map +1 -0
  855. package/dist/rendering/geometry/Lathe.d.ts +20 -0
  856. package/dist/rendering/geometry/Lathe.d.ts.map +1 -0
  857. package/dist/rendering/geometry/Lathe.js +94 -0
  858. package/dist/rendering/geometry/Lathe.js.map +1 -0
  859. package/dist/rendering/geometry/Polyhedron.d.ts +21 -0
  860. package/dist/rendering/geometry/Polyhedron.d.ts.map +1 -0
  861. package/dist/rendering/geometry/Polyhedron.js +201 -0
  862. package/dist/rendering/geometry/Polyhedron.js.map +1 -0
  863. package/dist/rendering/geometry/Primitives.d.ts +38 -2
  864. package/dist/rendering/geometry/Primitives.d.ts.map +1 -1
  865. package/dist/rendering/geometry/Primitives.js +114 -0
  866. package/dist/rendering/geometry/Primitives.js.map +1 -1
  867. package/dist/rendering/geometry/Ring.d.ts +16 -0
  868. package/dist/rendering/geometry/Ring.d.ts.map +1 -0
  869. package/dist/rendering/geometry/Ring.js +44 -0
  870. package/dist/rendering/geometry/Ring.js.map +1 -0
  871. package/dist/rendering/geometry/RoundedBox.d.ts +22 -0
  872. package/dist/rendering/geometry/RoundedBox.d.ts.map +1 -0
  873. package/dist/rendering/geometry/RoundedBox.js +191 -0
  874. package/dist/rendering/geometry/RoundedBox.js.map +1 -0
  875. package/dist/rendering/geometry/Shape.d.ts +15 -0
  876. package/dist/rendering/geometry/Shape.d.ts.map +1 -0
  877. package/dist/rendering/geometry/Shape.js +44 -0
  878. package/dist/rendering/geometry/Shape.js.map +1 -0
  879. package/dist/rendering/geometry/Support.d.ts +137 -0
  880. package/dist/rendering/geometry/Support.d.ts.map +1 -0
  881. package/dist/rendering/geometry/Support.js +1066 -0
  882. package/dist/rendering/geometry/Support.js.map +1 -0
  883. package/dist/rendering/geometry/TorusKnot.d.ts +18 -0
  884. package/dist/rendering/geometry/TorusKnot.d.ts.map +1 -0
  885. package/dist/rendering/geometry/TorusKnot.js +83 -0
  886. package/dist/rendering/geometry/TorusKnot.js.map +1 -0
  887. package/dist/rendering/geometry/Tube.d.ts +19 -0
  888. package/dist/rendering/geometry/Tube.d.ts.map +1 -0
  889. package/dist/rendering/geometry/Tube.js +70 -0
  890. package/dist/rendering/geometry/Tube.js.map +1 -0
  891. package/dist/rendering/geometry/Wireframe.d.ts +19 -0
  892. package/dist/rendering/geometry/Wireframe.d.ts.map +1 -0
  893. package/dist/rendering/geometry/Wireframe.js +63 -0
  894. package/dist/rendering/geometry/Wireframe.js.map +1 -0
  895. package/dist/rendering/index.d.ts +38 -7
  896. package/dist/rendering/index.d.ts.map +1 -1
  897. package/dist/rendering/index.js +25 -3
  898. package/dist/rendering/index.js.map +1 -1
  899. package/dist/rendering/lanes/prd11.js +1 -1
  900. package/dist/rendering/lanes/prd11.js.map +1 -1
  901. package/dist/rendering/output/ToneMappingOperators.glsl.d.ts +1 -1
  902. package/dist/rendering/output/ToneMappingOperators.glsl.d.ts.map +1 -1
  903. package/dist/rendering/output/ToneMappingOperators.glsl.js +9 -1
  904. package/dist/rendering/output/ToneMappingOperators.glsl.js.map +1 -1
  905. package/dist/rendering/post/v2Entry.d.ts +1 -0
  906. package/dist/rendering/post/v2Entry.d.ts.map +1 -1
  907. package/dist/rendering/post/v2Entry.js.map +1 -1
  908. package/dist/rendering/post/v2Stages.d.ts +30 -1
  909. package/dist/rendering/post/v2Stages.d.ts.map +1 -1
  910. package/dist/rendering/post/v2Stages.js +87 -21
  911. package/dist/rendering/post/v2Stages.js.map +1 -1
  912. package/dist/rendering/program/ProgramCache.d.ts.map +1 -1
  913. package/dist/rendering/program/ProgramCache.js +12 -0
  914. package/dist/rendering/program/ProgramCache.js.map +1 -1
  915. package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
  916. package/dist/rendering/program/ProgramGenerator.js +3 -0
  917. package/dist/rendering/program/ProgramGenerator.js.map +1 -1
  918. package/dist/rendering/reference/PostProcessPass.d.ts +1 -1
  919. package/dist/rendering/reference/PostProcessPass.d.ts.map +1 -1
  920. package/dist/rendering/reference/PostProcessPass.js +8 -1
  921. package/dist/rendering/reference/PostProcessPass.js.map +1 -1
  922. package/dist/rendering/renderer/CullingBatching.d.ts +44 -2
  923. package/dist/rendering/renderer/CullingBatching.d.ts.map +1 -1
  924. package/dist/rendering/renderer/CullingBatching.js +66 -11
  925. package/dist/rendering/renderer/CullingBatching.js.map +1 -1
  926. package/dist/rendering/shaders/chunks/lighting_mirrors.d.ts +2 -2
  927. package/dist/rendering/shaders/chunks/lighting_mirrors.d.ts.map +1 -1
  928. package/dist/rendering/shaders/chunks/lighting_mirrors.js.map +1 -1
  929. package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts +8 -8
  930. package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts.map +1 -1
  931. package/dist/rendering/shadows/DirectionalCascadeFitter.js.map +1 -1
  932. package/dist/rendering/shadows/ShadowAtlas.d.ts +5 -5
  933. package/dist/rendering/shadows/ShadowAtlas.d.ts.map +1 -1
  934. package/dist/rendering/shadows/ShadowAtlas.js.map +1 -1
  935. package/dist/rendering/vfx/ProceduralVolumeEmitter.d.ts +11 -0
  936. package/dist/rendering/vfx/ProceduralVolumeEmitter.d.ts.map +1 -1
  937. package/dist/rendering/vfx/ProceduralVolumeEmitter.js +20 -6
  938. package/dist/rendering/vfx/ProceduralVolumeEmitter.js.map +1 -1
  939. package/dist/rendering/webgl2/ContextLifecycle.d.ts +36 -0
  940. package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
  941. package/dist/rendering/webgl2/ContextLifecycle.js +110 -2
  942. package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
  943. package/dist/rendering/webgl2/LegacyPost.d.ts +16 -1
  944. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  945. package/dist/rendering/webgl2/LegacyPost.js +49 -16
  946. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  947. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  948. package/dist/rendering/webgl2/MultiDraw.js +42 -2
  949. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  950. package/dist/rendering/webgl2/TextureUpload.d.ts +7 -0
  951. package/dist/rendering/webgl2/TextureUpload.d.ts.map +1 -1
  952. package/dist/rendering/webgl2/TextureUpload.js +54 -10
  953. package/dist/rendering/webgl2/TextureUpload.js.map +1 -1
  954. package/dist/scene/Layers.d.ts +5 -0
  955. package/dist/scene/Layers.d.ts.map +1 -1
  956. package/dist/scene/Layers.js +13 -0
  957. package/dist/scene/Layers.js.map +1 -1
  958. package/dist/scene/SceneNode.d.ts +27 -1
  959. package/dist/scene/SceneNode.d.ts.map +1 -1
  960. package/dist/scene/SceneNode.js +33 -1
  961. package/dist/scene/SceneNode.js.map +1 -1
  962. package/package.json +76 -31
  963. package/templates/cinematic-scene/index.html +2 -28
  964. package/templates/cinematic-scene/package.json +2 -1
  965. package/templates/cinematic-scene/src/main.ts +3 -3
  966. package/templates/cinematic-scene/tests/look-floor.ts +73 -3
  967. package/templates/cinematic-scene/tests/route-health.spec.ts +1 -1
  968. package/templates/cinematic-scene/tests/screenshot.spec.ts +12 -2
  969. package/templates/cinematic-scene/vite.config.ts +7 -0
  970. package/templates/mini-game/index.html +1 -27
  971. package/templates/mini-game/package-lock.json +1312 -0
  972. package/templates/mini-game/package.json +2 -1
  973. package/templates/mini-game/src/main.ts +1 -1
  974. package/templates/mini-game/tests/certified-rig.spec.ts +1 -1
  975. package/templates/mini-game/tests/look-floor.ts +73 -3
  976. package/templates/mini-game/tests/playable.spec.ts +57 -12
  977. package/templates/mini-game/tests/screenshot.spec.ts +12 -2
  978. package/templates/mini-game/vite.config.ts +7 -0
  979. package/templates/product-viewer/index.html +2 -27
  980. package/templates/product-viewer/package.json +2 -1
  981. package/templates/product-viewer/tests/look-floor.ts +73 -3
  982. package/templates/product-viewer/tests/screenshot.spec.ts +13 -4
  983. package/templates/product-viewer/vite.config.ts +7 -0
  984. package/templates/production-asset-inspector/package.json +1 -1
  985. package/templates/production-material-studio/package.json +1 -1
  986. package/templates/production-product-configurator/package.json +1 -1
  987. package/templates/production-product-viewer/package.json +1 -1
  988. package/dist/input/controls/CameraRig.d.ts +0 -3
  989. package/dist/input/controls/CameraRig.d.ts.map +0 -1
  990. package/dist/input/controls/CameraRig.js +0 -3
  991. package/dist/input/controls/CameraRig.js.map +0 -1
  992. package/dist/input/controls/ControlTypes.d.ts +0 -3
  993. package/dist/input/controls/ControlTypes.d.ts.map +0 -1
  994. package/dist/input/controls/ControlTypes.js +0 -3
  995. package/dist/input/controls/ControlTypes.js.map +0 -1
  996. package/dist/input/controls/EditorFlyControls.d.ts +0 -3
  997. package/dist/input/controls/EditorFlyControls.d.ts.map +0 -1
  998. package/dist/input/controls/EditorFlyControls.js +0 -3
  999. package/dist/input/controls/EditorFlyControls.js.map +0 -1
  1000. package/dist/input/controls/FirstPersonControls.d.ts +0 -3
  1001. package/dist/input/controls/FirstPersonControls.d.ts.map +0 -1
  1002. package/dist/input/controls/FirstPersonControls.js +0 -3
  1003. package/dist/input/controls/FirstPersonControls.js.map +0 -1
  1004. package/dist/input/controls/OrbitControls.d.ts +0 -3
  1005. package/dist/input/controls/OrbitControls.d.ts.map +0 -1
  1006. package/dist/input/controls/OrbitControls.js +0 -3
  1007. package/dist/input/controls/OrbitControls.js.map +0 -1
  1008. package/dist/input/controls/PointerLockControls.d.ts +0 -2
  1009. package/dist/input/controls/PointerLockControls.d.ts.map +0 -1
  1010. package/dist/input/controls/PointerLockControls.js +0 -3
  1011. package/dist/input/controls/PointerLockControls.js.map +0 -1
  1012. package/dist/input/controls/SceneCameraAdapter.d.ts +0 -3
  1013. package/dist/input/controls/SceneCameraAdapter.d.ts.map +0 -1
  1014. package/dist/input/controls/SceneCameraAdapter.js +0 -3
  1015. package/dist/input/controls/SceneCameraAdapter.js.map +0 -1
  1016. package/dist/input/controls/ThirdPersonFollowControls.d.ts +0 -3
  1017. package/dist/input/controls/ThirdPersonFollowControls.d.ts.map +0 -1
  1018. package/dist/input/controls/ThirdPersonFollowControls.js +0 -3
  1019. package/dist/input/controls/ThirdPersonFollowControls.js.map +0 -1
  1020. package/templates/cinematic-scene/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  1021. package/templates/cinematic-scene/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  1022. package/templates/cinematic-scene/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  1023. package/templates/mini-game/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  1024. package/templates/mini-game/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  1025. package/templates/mini-game/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  1026. package/templates/product-viewer/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  1027. package/templates/product-viewer/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  1028. package/templates/product-viewer/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
@@ -1,16 +1,62 @@
1
1
  import type { SdfTextStyle } from "../../rendering/index.js";
2
+ import type { AuraColor } from "./nodes/types.js";
2
3
  export type AuraRootVec3 = readonly [number, number, number];
4
+ /**
5
+ * SG-05 (threejs-parity L2): vertex data accepts the legacy tuple layout or a
6
+ * flat packed array (Float32Array or plain number[]). Tuple input keeps the
7
+ * pre-L2 `defineAuraCustomGeometry` shape bit-for-bit; flat input is the
8
+ * typed-array `geometry.dynamic` / `handle.setGeometry` path.
9
+ */
10
+ export type AuraVec3Attribute = readonly AuraRootVec3[] | Float32Array | readonly number[];
11
+ export type AuraVec2Attribute = readonly (readonly [number, number])[] | Float32Array | readonly number[];
12
+ export type AuraIndexAttribute = readonly number[] | Uint16Array | Uint32Array;
13
+ export interface AuraGeometryGroupSpec {
14
+ readonly start: number;
15
+ readonly count: number;
16
+ readonly materialIndex?: number;
17
+ }
18
+ export interface AuraGeometryDrawRangeSpec {
19
+ readonly start: number;
20
+ readonly count: number;
21
+ }
22
+ export interface AuraGeometryMorphTargetSpec {
23
+ readonly name?: string;
24
+ readonly positions: Float32Array | readonly number[];
25
+ }
26
+ /**
27
+ * R-23: one author-named per-vertex attribute (three's `setAttribute(name, new
28
+ * BufferAttribute(array, itemSize))`). `data.length` must equal
29
+ * `vertexCount * itemSize`; the vertex shader reads it as `in <type> <name>;`.
30
+ */
31
+ export interface AuraCustomVertexAttributeSpec {
32
+ readonly itemSize: 1 | 2 | 3 | 4;
33
+ readonly data: Float32Array | readonly number[];
34
+ }
3
35
  export interface AuraCustomGeometrySpec {
4
36
  readonly kind: "aura-custom-geometry";
5
- readonly positions: readonly AuraRootVec3[];
6
- readonly normals?: readonly AuraRootVec3[];
37
+ readonly positions: AuraVec3Attribute;
38
+ readonly normals?: AuraVec3Attribute;
7
39
  /** Optional UVs (one per position) — the decal batch path samples pages with them. */
8
- readonly uvs?: readonly (readonly [number, number])[];
9
- readonly indices: readonly number[];
40
+ readonly uvs?: AuraVec2Attribute;
41
+ /** SG-05: per-vertex RGBA colors (Float32Array or `[r,g,b,a]` tuples/`AuraColor` list). */
42
+ readonly colors?: Float32Array | readonly number[] | readonly AuraColor[];
43
+ readonly indices: AuraIndexAttribute;
44
+ /** R-23: author-named per-vertex attributes (max 11), bound by name in `material.custom` GLSL. */
45
+ readonly attributes?: Readonly<Record<string, AuraCustomVertexAttributeSpec>>;
10
46
  readonly bounds?: {
11
47
  readonly min: AuraRootVec3;
12
48
  readonly max: AuraRootVec3;
13
49
  };
50
+ /** SG-05: three's geometry.groups — material-index index ranges. */
51
+ readonly groups?: readonly AuraGeometryGroupSpec[];
52
+ /** SG-05: three's setDrawRange — only this index range draws. */
53
+ readonly drawRange?: AuraGeometryDrawRangeSpec;
54
+ /** SG-05: authored morph-target position arrays (absolute or delta per the morph pipeline). */
55
+ readonly morphTargets?: readonly AuraGeometryMorphTargetSpec[];
56
+ /** SG-05: `"lines"` produces line-segment topology (geometry.edges/wireframe). R-23: `"points"` draws one point per vertex (the vertex shader sets gl_PointSize). Default `"triangles"`. */
57
+ readonly topology?: "triangles" | "lines" | "points";
58
+ /** SG-05: set by `geometry.dynamic` — flags the spec as a `handle.setGeometry` target. */
59
+ readonly dynamic?: boolean;
14
60
  }
15
61
  export interface AuraText3DOptions {
16
62
  readonly size?: number;
@@ -48,6 +94,80 @@ export interface AuraRootLodSelection {
48
94
  /** Select a distance LOD while preserving the previous level inside a symmetric hysteresis band. */
49
95
  export declare function selectAuraRootLodLevel(distance: number, levels: readonly AuraRootLodThreshold[], previousLevelIndex?: number, hysteresis?: number): AuraRootLodSelection;
50
96
  export declare function defineAuraCustomGeometry(spec: Omit<AuraCustomGeometrySpec, "kind">): AuraCustomGeometrySpec;
97
+ export interface NormalizedCustomVertexAttribute {
98
+ readonly name: string;
99
+ readonly itemSize: 1 | 2 | 3 | 4;
100
+ readonly data: Float32Array;
101
+ }
102
+ export declare const MAX_CUSTOM_VERTEX_ATTRIBUTES = 11;
103
+ export declare function assertCustomAttributeName(name: string): void;
104
+ /** R-23: validate and flatten `spec.attributes`; entries come back sorted by name (the stable location order). */
105
+ export declare function normalizeCustomVertexAttributes(attributes: Readonly<Record<string, AuraCustomVertexAttributeSpec>> | undefined, vertexCount: number): readonly NormalizedCustomVertexAttribute[];
106
+ export interface NormalizedGeometryAttributes {
107
+ readonly positions: Float32Array;
108
+ readonly vertexCount: number;
109
+ readonly custom: readonly NormalizedCustomVertexAttribute[];
110
+ readonly normals?: Float32Array;
111
+ readonly uvs?: Float32Array;
112
+ readonly colors?: Float32Array;
113
+ readonly indices?: Uint16Array | Uint32Array;
114
+ }
115
+ /** True when `value` is a flat packed component array rather than a tuple list. */
116
+ export declare function isFlatAttributeArray(value: unknown): value is Float32Array | readonly number[];
117
+ /** Normalize every SG-05 attribute shape into flat Float32/Uint arrays for the buffer path. */
118
+ export declare function normalizeGeometryAttributes(spec: {
119
+ readonly positions: AuraVec3Attribute;
120
+ readonly normals?: AuraVec3Attribute;
121
+ readonly uvs?: AuraVec2Attribute;
122
+ readonly colors?: Float32Array | readonly number[] | readonly AuraColor[];
123
+ readonly indices?: AuraIndexAttribute;
124
+ readonly attributes?: Readonly<Record<string, AuraCustomVertexAttributeSpec>>;
125
+ }): NormalizedGeometryAttributes;
126
+ /** SG-05: `geometry.dynamic(spec)` — validate and tag the spec as a runtime-mutable target. */
127
+ export declare function defineAuraDynamicGeometry(spec: {
128
+ readonly positions: AuraVec3Attribute;
129
+ readonly normals?: AuraVec3Attribute;
130
+ readonly uvs?: AuraVec2Attribute;
131
+ readonly colors?: Float32Array | readonly number[] | readonly AuraColor[];
132
+ readonly indices?: AuraIndexAttribute;
133
+ readonly attributes?: Readonly<Record<string, AuraCustomVertexAttributeSpec>>;
134
+ readonly topology?: "triangles" | "points";
135
+ readonly groups?: readonly AuraGeometryGroupSpec[];
136
+ readonly drawRange?: AuraGeometryDrawRangeSpec;
137
+ readonly morphTargets?: readonly AuraGeometryMorphTargetSpec[];
138
+ readonly bounds?: {
139
+ readonly min: AuraRootVec3;
140
+ readonly max: AuraRootVec3;
141
+ };
142
+ }): AuraCustomGeometrySpec;
143
+ /** three's `BufferGeometry.computeVertexNormals` over an Aura spec — returns a fresh flat normal array. */
144
+ export declare function computeAuraGeometryNormals(spec: {
145
+ readonly positions: AuraVec3Attribute;
146
+ readonly indices?: AuraIndexAttribute;
147
+ }): Float32Array;
148
+ /** three's `BufferGeometry.computeBoundingBox` — finite min/max over positions. */
149
+ export declare function computeAuraGeometryBounds(spec: {
150
+ readonly positions: AuraVec3Attribute;
151
+ }): {
152
+ readonly min: AuraRootVec3;
153
+ readonly max: AuraRootVec3;
154
+ };
155
+ /**
156
+ * three's `BufferGeometry.applyMatrix4` — positions take the full column-major
157
+ * mat4; normals take the upper 3x3 (the three `normalMatrix` inverse-transpose
158
+ * reduces to the same rotation/scale here for rigid+scale matrices, matching
159
+ * the engine mergeGeometries convention) and are renormalized.
160
+ */
161
+ export declare function applyAuraGeometryMatrix4(spec: AuraCustomGeometrySpec, matrix: readonly number[]): AuraCustomGeometrySpec;
162
+ /** three's `BufferGeometryUtils.toNonIndexed` — one vertex per index, in index order. */
163
+ export declare function auraGeometryToNonIndexed(spec: AuraCustomGeometrySpec): AuraCustomGeometrySpec;
164
+ /**
165
+ * three's `BufferGeometryUtils.mergeGeometries` — concatenates specs (no
166
+ * transform baking; the R/MeshConsolidation merge bakes model matrices for
167
+ * the static path, while the authored merge keeps authored coordinates).
168
+ * Index-bearing specs share the index stream; attribute sets must match.
169
+ */
170
+ export declare function mergeAuraGeometries(specs: readonly AuraCustomGeometrySpec[]): AuraCustomGeometrySpec;
51
171
  /** Build depth-bearing triangle geometry; this is not a DOM label or canvas texture. */
52
172
  export declare function createAuraText3DGeometry(text: string, options?: AuraText3DOptions): AuraText3DGeometry;
53
173
  //# sourceMappingURL=RootGeometry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RootGeometry.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/RootGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,sFAAsF;IACtF,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;KAAE,CAAC;CAC9E;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,4BAA4B,GAAG,gBAAgB,CAAC;IACjE,yIAAyI;IACzI,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;CACpG;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,oBAAoB,EAAE,EACvC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,UAAU,SAAI,GACb,oBAAoB,CAuBtB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,sBAAsB,CAuB3G;AAED,wFAAwF;AACxF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,kBAAkB,CA+B1G"}
1
+ {"version":3,"file":"RootGeometry.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/RootGeometry.ts"],"names":[],"mappings":"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"}
@@ -32,21 +32,20 @@ export function selectAuraRootLodLevel(distance, levels, previousLevelIndex, hys
32
32
  return { levelIndex: selected, reason: "hysteresis-hold" };
33
33
  }
34
34
  export function defineAuraCustomGeometry(spec) {
35
- if (spec.positions.length < 3)
36
- throw new Error("Aura3D custom geometry requires at least three positions.");
37
- if (spec.indices.length < 3 || spec.indices.length % 3 !== 0)
38
- throw new Error("Aura3D custom triangle geometry indices must contain complete triangles.");
39
- for (const [index, position] of spec.positions.entries())
40
- validateVec3(position, `position ${index}`);
41
- for (const [index, value] of spec.indices.entries()) {
42
- if (!Number.isInteger(value) || value < 0 || value >= spec.positions.length)
43
- throw new Error(`Aura3D custom geometry index ${index} is outside the position buffer.`);
44
- }
45
- if (spec.normals && spec.normals.length !== spec.positions.length)
46
- throw new Error("Aura3D custom geometry normals must match the position count.");
47
- spec.normals?.forEach((normal, index) => validateVec3(normal, `normal ${index}`));
48
- if (spec.uvs && spec.uvs.length !== spec.positions.length)
49
- throw new Error("Aura3D custom geometry uvs must match the position count.");
35
+ const normalized = normalizeGeometryAttributes(spec);
36
+ const lines = spec.topology === "lines";
37
+ const points = spec.topology === "points";
38
+ if (points) {
39
+ if (normalized.vertexCount < 1)
40
+ throw new Error("Aura3D custom point geometry requires at least one position.");
41
+ }
42
+ else {
43
+ if (normalized.vertexCount < (lines ? 2 : 3))
44
+ throw new Error(`Aura3D custom ${lines ? "line" : "triangle"} geometry requires at least ${lines ? "two" : "three"} positions.`);
45
+ const indexCount = normalized.indices?.length ?? normalized.vertexCount;
46
+ if (lines ? indexCount % 2 !== 0 : indexCount % 3 !== 0)
47
+ throw new Error(`Aura3D custom ${lines ? "line" : "triangle"} geometry indices must contain complete ${lines ? "segments" : "triangles"}.`);
48
+ }
50
49
  if (spec.bounds) {
51
50
  validateVec3(spec.bounds.min, "bounds min");
52
51
  validateVec3(spec.bounds.max, "bounds max");
@@ -56,13 +55,421 @@ export function defineAuraCustomGeometry(spec) {
56
55
  }
57
56
  return {
58
57
  kind: "aura-custom-geometry",
59
- positions: spec.positions.map((value) => [...value]),
60
- ...(spec.normals ? { normals: spec.normals.map((value) => [...value]) } : {}),
61
- ...(spec.uvs ? { uvs: spec.uvs.map((value) => [...value]) } : {}),
62
- indices: [...spec.indices],
58
+ positions: spec.positions,
59
+ ...(spec.normals ? { normals: spec.normals } : {}),
60
+ ...(spec.uvs ? { uvs: spec.uvs } : {}),
61
+ ...(spec.colors ? { colors: spec.colors } : {}),
62
+ indices: spec.indices,
63
+ ...(normalized.custom.length > 0 ? { attributes: customAttributesRecord(normalized.custom) } : {}),
64
+ ...(spec.groups ? { groups: [...spec.groups] } : {}),
65
+ ...(spec.drawRange ? { drawRange: { ...spec.drawRange } } : {}),
66
+ ...(spec.morphTargets ? { morphTargets: spec.morphTargets.map((target) => ({ ...target })) } : {}),
67
+ ...(spec.topology ? { topology: spec.topology } : {}),
68
+ ...(spec.dynamic === true ? { dynamic: true } : {}),
63
69
  ...(spec.bounds ? { bounds: { min: [...spec.bounds.min], max: [...spec.bounds.max] } } : {})
64
70
  };
65
71
  }
72
+ function customAttributesRecord(custom) {
73
+ return Object.fromEntries(custom.map((entry) => [entry.name, { itemSize: entry.itemSize, data: entry.data }]));
74
+ }
75
+ /** R-23: names a custom attribute may not take — engine semantics, their updateAttribute aliases, and the `a_` engine prefix. */
76
+ const RESERVED_CUSTOM_ATTRIBUTE_NAMES = new Set([
77
+ "position", "positions", "normal", "normals", "uv", "uv0", "uvs", "uv1", "color", "colors", "tangent", "tangents",
78
+ "joints", "weights", "joints1", "weights1", "lineStart", "lineEnd", "lineCorner", "lineDistance", "index",
79
+ "instanceMatrix", "instanceColor"
80
+ ]);
81
+ export const MAX_CUSTOM_VERTEX_ATTRIBUTES = 11;
82
+ export function assertCustomAttributeName(name) {
83
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name))
84
+ throw new Error(`Aura3D custom vertex attribute name "${name}" must be a GLSL identifier ([A-Za-z_][A-Za-z0-9_]*).`);
85
+ if (name.startsWith("gl_") || name.includes("__"))
86
+ throw new Error(`Aura3D custom vertex attribute name "${name}" is reserved by GLSL (gl_ prefix or double underscore).`);
87
+ if (name.startsWith("a_") || name.startsWith("u_"))
88
+ throw new Error(`Aura3D custom vertex attribute name "${name}" uses a prefix reserved for engine attributes/uniforms (a_, u_).`);
89
+ if (RESERVED_CUSTOM_ATTRIBUTE_NAMES.has(name))
90
+ throw new Error(`Aura3D custom vertex attribute name "${name}" collides with a built-in vertex semantic.`);
91
+ }
92
+ /** R-23: validate and flatten `spec.attributes`; entries come back sorted by name (the stable location order). */
93
+ export function normalizeCustomVertexAttributes(attributes, vertexCount) {
94
+ if (attributes === undefined)
95
+ return [];
96
+ const names = Object.keys(attributes).sort();
97
+ if (names.length > MAX_CUSTOM_VERTEX_ATTRIBUTES) {
98
+ throw new Error(`Aura3D geometry supports at most ${MAX_CUSTOM_VERTEX_ATTRIBUTES} custom vertex attributes, got ${names.length}.`);
99
+ }
100
+ return names.map((name) => {
101
+ assertCustomAttributeName(name);
102
+ const entry = attributes[name];
103
+ const itemSize = entry?.itemSize;
104
+ if (itemSize !== 1 && itemSize !== 2 && itemSize !== 3 && itemSize !== 4)
105
+ throw new Error(`Aura3D custom vertex attribute "${name}" itemSize must be 1, 2, 3 or 4.`);
106
+ const raw = entry.data;
107
+ if (!(raw instanceof Float32Array) && !Array.isArray(raw))
108
+ throw new Error(`Aura3D custom vertex attribute "${name}" data must be a Float32Array or number[].`);
109
+ const data = raw instanceof Float32Array ? raw : Float32Array.from(raw);
110
+ if (data.length !== vertexCount * itemSize) {
111
+ throw new Error(`Aura3D custom vertex attribute "${name}" has ${data.length} values; expected ${vertexCount} vertices x ${itemSize} = ${vertexCount * itemSize}.`);
112
+ }
113
+ for (let i = 0; i < data.length; i += 1) {
114
+ if (!Number.isFinite(data[i]))
115
+ throw new Error(`Aura3D custom vertex attribute "${name}" value ${i} must be finite.`);
116
+ }
117
+ return { name, itemSize, data };
118
+ });
119
+ }
120
+ /** True when `value` is a flat packed component array rather than a tuple list. */
121
+ export function isFlatAttributeArray(value) {
122
+ return value instanceof Float32Array || (Array.isArray(value) && (value.length === 0 || typeof value[0] === "number"));
123
+ }
124
+ function readVec3Attribute(value, label) {
125
+ if (value === undefined)
126
+ return undefined;
127
+ if (isFlatAttributeArray(value)) {
128
+ const flat = value instanceof Float32Array ? value : Float32Array.from(value);
129
+ if (flat.length % 3 !== 0)
130
+ throw new Error(`Aura3D geometry ${label} array length must be a multiple of 3.`);
131
+ return flat;
132
+ }
133
+ const flat = new Float32Array(value.length * 3);
134
+ value.forEach((tuple, index) => {
135
+ validateVec3(tuple, `${label} ${index}`);
136
+ flat[index * 3] = tuple[0];
137
+ flat[index * 3 + 1] = tuple[1];
138
+ flat[index * 3 + 2] = tuple[2];
139
+ });
140
+ return flat;
141
+ }
142
+ function readVec2Attribute(value, label) {
143
+ if (value === undefined)
144
+ return undefined;
145
+ if (isFlatAttributeArray(value)) {
146
+ const flat = value instanceof Float32Array ? value : Float32Array.from(value);
147
+ if (flat.length % 2 !== 0)
148
+ throw new Error(`Aura3D geometry ${label} array length must be a multiple of 2.`);
149
+ return flat;
150
+ }
151
+ const flat = new Float32Array(value.length * 2);
152
+ value.forEach((tuple, index) => {
153
+ if (tuple.length !== 2 || !Number.isFinite(tuple[0]) || !Number.isFinite(tuple[1]))
154
+ throw new Error(`Aura3D geometry ${label} ${index} must be a finite vec2.`);
155
+ flat[index * 2] = tuple[0];
156
+ flat[index * 2 + 1] = tuple[1];
157
+ });
158
+ return flat;
159
+ }
160
+ /** Normalize every SG-05 attribute shape into flat Float32/Uint arrays for the buffer path. */
161
+ export function normalizeGeometryAttributes(spec) {
162
+ const positions = readVec3Attribute(spec.positions, "positions");
163
+ if (!positions)
164
+ throw new Error("Aura3D geometry requires positions.");
165
+ const vertexCount = positions.length / 3;
166
+ const normals = readVec3Attribute(spec.normals, "normals");
167
+ if (normals && normals.length !== positions.length)
168
+ throw new Error("Aura3D geometry normals must match the position count.");
169
+ const uvs = readVec2Attribute(spec.uvs, "uvs");
170
+ if (uvs && uvs.length !== vertexCount * 2)
171
+ throw new Error("Aura3D geometry uvs must match the position count.");
172
+ let colors;
173
+ if (spec.colors !== undefined) {
174
+ if (isFlatAttributeArray(spec.colors)) {
175
+ colors = spec.colors instanceof Float32Array ? spec.colors : Float32Array.from(spec.colors);
176
+ if (colors.length !== vertexCount * 4 && colors.length !== vertexCount * 3) {
177
+ throw new Error("Aura3D geometry colors must be 3 or 4 components per vertex.");
178
+ }
179
+ if (colors.length === vertexCount * 3) {
180
+ const rgba = new Float32Array(vertexCount * 4);
181
+ for (let i = 0; i < vertexCount; i += 1) {
182
+ rgba[i * 4] = colors[i * 3];
183
+ rgba[i * 4 + 1] = colors[i * 3 + 1];
184
+ rgba[i * 4 + 2] = colors[i * 3 + 2];
185
+ rgba[i * 4 + 3] = 1;
186
+ }
187
+ colors = rgba;
188
+ }
189
+ }
190
+ else {
191
+ colors = new Float32Array(vertexCount * 4);
192
+ spec.colors.forEach((color, index) => {
193
+ if (index >= vertexCount)
194
+ return;
195
+ const rgba = colorToFlatRgba(color);
196
+ colors[index * 4] = rgba[0];
197
+ colors[index * 4 + 1] = rgba[1];
198
+ colors[index * 4 + 2] = rgba[2];
199
+ colors[index * 4 + 3] = rgba[3];
200
+ });
201
+ }
202
+ }
203
+ let indices;
204
+ // An empty index list means "non-indexed" (sequential 0..n-1) — e.g. the
205
+ // edges/wireframe helpers emit line-vertex pairs with no index stream.
206
+ if (spec.indices !== undefined && spec.indices.length > 0) {
207
+ indices = spec.indices instanceof Uint16Array || spec.indices instanceof Uint32Array ? spec.indices : null;
208
+ if (!indices) {
209
+ const list = spec.indices;
210
+ let max = 0;
211
+ for (const value of list) {
212
+ if (!Number.isInteger(value) || value < 0)
213
+ throw new Error("Aura3D geometry indices must be non-negative integers.");
214
+ if (value > max)
215
+ max = value;
216
+ }
217
+ indices = max > 65535 ? Uint32Array.from(list) : Uint16Array.from(list);
218
+ }
219
+ for (const [offset, value] of indices.entries()) {
220
+ if (!Number.isInteger(value) || value < 0 || value >= vertexCount)
221
+ throw new Error(`Aura3D geometry index ${offset} is outside the position buffer.`);
222
+ }
223
+ }
224
+ return { positions, vertexCount, custom: normalizeCustomVertexAttributes(spec.attributes, vertexCount), normals, uvs, colors, indices };
225
+ }
226
+ function colorToFlatRgba(color) {
227
+ if (typeof color === "string") {
228
+ // Inline the hex grammar so RootGeometry stays dependency-light: #rgb/#rrggbb/#rrggbbaa.
229
+ const hex = color.trim().replace(/^#/, "");
230
+ const expand = (s) => (s.length === 3 || s.length === 4 ? s.split("").map((c) => c + c).join("") : s);
231
+ const full = expand(hex);
232
+ const r = parseInt(full.slice(0, 2), 16) / 255;
233
+ const g = parseInt(full.slice(2, 4), 16) / 255;
234
+ const b = parseInt(full.slice(4, 6), 16) / 255;
235
+ const a = full.length >= 8 ? parseInt(full.slice(6, 8), 16) / 255 : 1;
236
+ return [srgbToLinear(r), srgbToLinear(g), srgbToLinear(b), a];
237
+ }
238
+ if (Array.isArray(color)) {
239
+ const tuple = color;
240
+ return [srgbToLinear(tuple[0] ?? 0), srgbToLinear(tuple[1] ?? 0), srgbToLinear(tuple[2] ?? 0), tuple[3] ?? 1];
241
+ }
242
+ return [1, 1, 1, 1];
243
+ }
244
+ function srgbToLinear(value) {
245
+ return value <= 0.04045 ? value / 12.92 : Math.pow((value + 0.055) / 1.055, 2.4);
246
+ }
247
+ /** SG-05: `geometry.dynamic(spec)` — validate and tag the spec as a runtime-mutable target. */
248
+ export function defineAuraDynamicGeometry(spec) {
249
+ if (spec.topology !== undefined && spec.topology !== "triangles" && spec.topology !== "points") {
250
+ throw new Error(`Aura3D geometry.dynamic topology must be "triangles" or "points", got ${String(spec.topology)}.`);
251
+ }
252
+ const normalized = normalizeGeometryAttributes(spec);
253
+ if (normalized.vertexCount === 0)
254
+ throw new Error("Aura3D dynamic geometry requires at least one vertex.");
255
+ const indexCount = normalized.indices?.length ?? normalized.vertexCount;
256
+ if (indexCount === 0)
257
+ throw new Error("Aura3D dynamic geometry requires at least one index or vertex.");
258
+ return {
259
+ kind: "aura-custom-geometry",
260
+ positions: normalized.positions,
261
+ ...(spec.normals !== undefined ? { normals: normalized.normals } : {}),
262
+ ...(spec.uvs !== undefined ? { uvs: normalized.uvs } : {}),
263
+ ...(spec.colors !== undefined ? { colors: normalized.colors } : {}),
264
+ indices: normalized.indices ?? Uint16Array.from({ length: normalized.vertexCount }, (_, i) => i),
265
+ ...(normalized.custom.length > 0 ? { attributes: customAttributesRecord(normalized.custom) } : {}),
266
+ ...(spec.topology === "points" ? { topology: "points" } : {}),
267
+ ...(spec.groups ? { groups: [...spec.groups] } : {}),
268
+ ...(spec.drawRange ? { drawRange: { ...spec.drawRange } } : {}),
269
+ ...(spec.morphTargets ? { morphTargets: spec.morphTargets.map((target) => ({ ...target })) } : {}),
270
+ ...(spec.bounds ? { bounds: { min: [...spec.bounds.min], max: [...spec.bounds.max] } } : {}),
271
+ dynamic: true
272
+ };
273
+ }
274
+ // ── SG-05 helpers: three's BufferGeometryUtils equivalents (L2-05) ───────────
275
+ /** three's `BufferGeometry.computeVertexNormals` over an Aura spec — returns a fresh flat normal array. */
276
+ export function computeAuraGeometryNormals(spec) {
277
+ const positions = readVec3Attribute(spec.positions, "positions");
278
+ const count = positions.length / 3;
279
+ const normals = new Float32Array(positions.length);
280
+ const faceNormal = (ia, ib, ic) => {
281
+ const cbx = positions[ic * 3] - positions[ib * 3];
282
+ const cby = positions[ic * 3 + 1] - positions[ib * 3 + 1];
283
+ const cbz = positions[ic * 3 + 2] - positions[ib * 3 + 2];
284
+ const abx = positions[ia * 3] - positions[ib * 3];
285
+ const aby = positions[ia * 3 + 1] - positions[ib * 3 + 1];
286
+ const abz = positions[ia * 3 + 2] - positions[ib * 3 + 2];
287
+ let nx = cby * abz - cbz * aby;
288
+ let ny = cbz * abx - cbx * abz;
289
+ let nz = cbx * aby - cby * abx;
290
+ const len = Math.hypot(nx, ny, nz);
291
+ if (len > 0) {
292
+ nx /= len;
293
+ ny /= len;
294
+ nz /= len;
295
+ }
296
+ return [nx, ny, nz];
297
+ };
298
+ if (spec.indices && spec.indices.length > 0) {
299
+ for (let i = 0; i + 2 < spec.indices.length; i += 3) {
300
+ const ia = spec.indices[i];
301
+ const ib = spec.indices[i + 1];
302
+ const ic = spec.indices[i + 2];
303
+ const n = faceNormal(ia, ib, ic);
304
+ for (const v of [ia, ib, ic]) {
305
+ normals[v * 3] = normals[v * 3] + n[0];
306
+ normals[v * 3 + 1] = normals[v * 3 + 1] + n[1];
307
+ normals[v * 3 + 2] = normals[v * 3 + 2] + n[2];
308
+ }
309
+ }
310
+ for (let i = 0; i < count; i += 1) {
311
+ const len = Math.hypot(normals[i * 3], normals[i * 3 + 1], normals[i * 3 + 2]);
312
+ if (len > 0) {
313
+ normals[i * 3] = normals[i * 3] / len;
314
+ normals[i * 3 + 1] = normals[i * 3 + 1] / len;
315
+ normals[i * 3 + 2] = normals[i * 3 + 2] / len;
316
+ }
317
+ }
318
+ }
319
+ else {
320
+ for (let i = 0; i < count; i += 3) {
321
+ const n = faceNormal(i, i + 1, i + 2);
322
+ for (const v of [i, i + 1, i + 2]) {
323
+ normals[v * 3] = n[0];
324
+ normals[v * 3 + 1] = n[1];
325
+ normals[v * 3 + 2] = n[2];
326
+ }
327
+ }
328
+ }
329
+ return normals;
330
+ }
331
+ /** three's `BufferGeometry.computeBoundingBox` — finite min/max over positions. */
332
+ export function computeAuraGeometryBounds(spec) {
333
+ const positions = readVec3Attribute(spec.positions, "positions");
334
+ const min = [Infinity, Infinity, Infinity];
335
+ const max = [-Infinity, -Infinity, -Infinity];
336
+ for (let i = 0; i < positions.length; i += 3) {
337
+ for (let axis = 0; axis < 3; axis += 1) {
338
+ const v = positions[i + axis];
339
+ if (v < min[axis])
340
+ min[axis] = v;
341
+ if (v > max[axis])
342
+ max[axis] = v;
343
+ }
344
+ }
345
+ return { min, max };
346
+ }
347
+ /**
348
+ * three's `BufferGeometry.applyMatrix4` — positions take the full column-major
349
+ * mat4; normals take the upper 3x3 (the three `normalMatrix` inverse-transpose
350
+ * reduces to the same rotation/scale here for rigid+scale matrices, matching
351
+ * the engine mergeGeometries convention) and are renormalized.
352
+ */
353
+ export function applyAuraGeometryMatrix4(spec, matrix) {
354
+ if (matrix.length !== 16 || ![...matrix].every(Number.isFinite))
355
+ throw new Error("applyAuraGeometryMatrix4 requires a finite mat4.");
356
+ const positions = readVec3Attribute(spec.positions, "positions").slice();
357
+ for (let i = 0; i < positions.length; i += 3) {
358
+ const x = positions[i], y = positions[i + 1], z = positions[i + 2];
359
+ positions[i] = matrix[0] * x + matrix[4] * y + matrix[8] * z + matrix[12];
360
+ positions[i + 1] = matrix[1] * x + matrix[5] * y + matrix[9] * z + matrix[13];
361
+ positions[i + 2] = matrix[2] * x + matrix[6] * y + matrix[10] * z + matrix[14];
362
+ }
363
+ let normals;
364
+ if (spec.normals !== undefined) {
365
+ normals = readVec3Attribute(spec.normals, "normals").slice();
366
+ for (let i = 0; i < normals.length; i += 3) {
367
+ const x = normals[i], y = normals[i + 1], z = normals[i + 2];
368
+ const nx = matrix[0] * x + matrix[4] * y + matrix[8] * z;
369
+ const ny = matrix[1] * x + matrix[5] * y + matrix[9] * z;
370
+ const nz = matrix[2] * x + matrix[6] * y + matrix[10] * z;
371
+ const len = Math.hypot(nx, ny, nz) || 1;
372
+ normals[i] = nx / len;
373
+ normals[i + 1] = ny / len;
374
+ normals[i + 2] = nz / len;
375
+ }
376
+ }
377
+ return {
378
+ ...spec,
379
+ positions,
380
+ ...(normals ? { normals } : {}),
381
+ bounds: spec.bounds ? computeAuraGeometryBounds({ positions }) : undefined
382
+ };
383
+ }
384
+ /** three's `BufferGeometryUtils.toNonIndexed` — one vertex per index, in index order. */
385
+ export function auraGeometryToNonIndexed(spec) {
386
+ const positions = readVec3Attribute(spec.positions, "positions");
387
+ const normals = readVec3Attribute(spec.normals, "normals");
388
+ const uvs = readVec2Attribute(spec.uvs, "uvs");
389
+ const colors = spec.colors !== undefined ? normalizeGeometryAttributes({ positions: spec.positions, colors: spec.colors }).colors : undefined;
390
+ const indices = spec.indices;
391
+ if (!indices || indices.length === 0)
392
+ return spec;
393
+ const custom = normalizeCustomVertexAttributes(spec.attributes, positions.length / 3);
394
+ const expand = (source, components) => {
395
+ if (!source)
396
+ return undefined;
397
+ const out = new Float32Array(indices.length * components);
398
+ for (let i = 0; i < indices.length; i += 1) {
399
+ const v = indices[i];
400
+ for (let c = 0; c < components; c += 1)
401
+ out[i * components + c] = source[v * components + c];
402
+ }
403
+ return out;
404
+ };
405
+ return {
406
+ ...spec,
407
+ positions: expand(positions, 3),
408
+ ...(normals ? { normals: expand(normals, 3) } : {}),
409
+ ...(uvs ? { uvs: expand(uvs, 2) } : {}),
410
+ ...(colors ? { colors: expand(colors, 4) } : {}),
411
+ ...(custom.length > 0 ? { attributes: Object.fromEntries(custom.map((entry) => [entry.name, { itemSize: entry.itemSize, data: expand(entry.data, entry.itemSize) }])) } : {}),
412
+ indices: []
413
+ };
414
+ }
415
+ /**
416
+ * three's `BufferGeometryUtils.mergeGeometries` — concatenates specs (no
417
+ * transform baking; the R/MeshConsolidation merge bakes model matrices for
418
+ * the static path, while the authored merge keeps authored coordinates).
419
+ * Index-bearing specs share the index stream; attribute sets must match.
420
+ */
421
+ export function mergeAuraGeometries(specs) {
422
+ if (specs.length === 0)
423
+ throw new Error("mergeAuraGeometries requires at least one geometry spec.");
424
+ const normalized = specs.map((spec) => normalizeGeometryAttributes(spec));
425
+ const withUvs = normalized.every((entry) => entry.uvs !== undefined);
426
+ const withNormals = normalized.every((entry) => entry.normals !== undefined);
427
+ const withColors = normalized.every((entry) => entry.colors !== undefined);
428
+ const withIndex = normalized.every((entry) => entry.indices !== undefined && entry.indices.length > 0);
429
+ const customNames = normalized[0].custom.map((entry) => entry.name);
430
+ for (const entry of normalized) {
431
+ if (entry.custom.length !== customNames.length || entry.custom.some((attribute, i) => attribute.name !== customNames[i] || attribute.itemSize !== normalized[0].custom[i].itemSize)) {
432
+ throw new Error("mergeAuraGeometries requires every geometry to carry the same custom vertex attributes (names and itemSize), like three's mergeGeometries.");
433
+ }
434
+ }
435
+ const totalVertices = normalized.reduce((sum, entry) => sum + entry.vertexCount, 0);
436
+ const positions = new Float32Array(totalVertices * 3);
437
+ const normals = withNormals ? new Float32Array(totalVertices * 3) : undefined;
438
+ const uvs = withUvs ? new Float32Array(totalVertices * 2) : undefined;
439
+ const colors = withColors ? new Float32Array(totalVertices * 4) : undefined;
440
+ const customMerged = normalized[0].custom.map((attribute) => ({ name: attribute.name, itemSize: attribute.itemSize, data: new Float32Array(totalVertices * attribute.itemSize) }));
441
+ const indices = [];
442
+ const groups = [];
443
+ let cursor = 0;
444
+ for (const entry of normalized) {
445
+ entry.custom.forEach((attribute, i) => customMerged[i].data.set(attribute.data, cursor * attribute.itemSize));
446
+ positions.set(entry.positions, cursor * 3);
447
+ if (normals && entry.normals)
448
+ normals.set(entry.normals, cursor * 3);
449
+ if (uvs && entry.uvs)
450
+ uvs.set(entry.uvs, cursor * 2);
451
+ if (colors && entry.colors)
452
+ colors.set(entry.colors, cursor * 4);
453
+ if (withIndex) {
454
+ const source = entry.indices;
455
+ const start = indices.length;
456
+ for (let i = 0; i < source.length; i += 1)
457
+ indices.push(source[i] + cursor);
458
+ groups.push({ start, count: source.length });
459
+ }
460
+ cursor += entry.vertexCount;
461
+ }
462
+ return {
463
+ kind: "aura-custom-geometry",
464
+ positions,
465
+ ...(normals ? { normals } : {}),
466
+ ...(uvs ? { uvs } : {}),
467
+ ...(colors ? { colors } : {}),
468
+ ...(customMerged.length > 0 ? { attributes: customAttributesRecord(customMerged) } : {}),
469
+ indices,
470
+ ...(withIndex ? { groups } : {})
471
+ };
472
+ }
66
473
  /** Build depth-bearing triangle geometry; this is not a DOM label or canvas texture. */
67
474
  export function createAuraText3DGeometry(text, options = {}) {
68
475
  if (!text.length)