@aura3d/engine 4.0.2 → 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 (1045) hide show
  1. package/README.md +13 -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/AnimationController.d.ts +8 -0
  7. package/dist/animation/AnimationController.d.ts.map +1 -1
  8. package/dist/animation/AnimationController.js.map +1 -1
  9. package/dist/animation/AnimationEvents.d.ts +1 -1
  10. package/dist/animation/AnimationEvents.d.ts.map +1 -1
  11. package/dist/animation/AnimationEvents.js +33 -14
  12. package/dist/animation/AnimationEvents.js.map +1 -1
  13. package/dist/animation/AnimationMixer.d.ts +35 -0
  14. package/dist/animation/AnimationMixer.d.ts.map +1 -1
  15. package/dist/animation/AnimationMixer.js +60 -10
  16. package/dist/animation/AnimationMixer.js.map +1 -1
  17. package/dist/animation/AnimationObjectGroup.d.ts +28 -0
  18. package/dist/animation/AnimationObjectGroup.d.ts.map +1 -0
  19. package/dist/animation/AnimationObjectGroup.js +242 -0
  20. package/dist/animation/AnimationObjectGroup.js.map +1 -0
  21. package/dist/animation/AnimationTrack.d.ts +18 -2
  22. package/dist/animation/AnimationTrack.d.ts.map +1 -1
  23. package/dist/animation/AnimationTrack.js +62 -0
  24. package/dist/animation/AnimationTrack.js.map +1 -1
  25. package/dist/animation/AnimationUtils.d.ts +56 -0
  26. package/dist/animation/AnimationUtils.d.ts.map +1 -0
  27. package/dist/animation/AnimationUtils.js +202 -0
  28. package/dist/animation/AnimationUtils.js.map +1 -0
  29. package/dist/animation/PropertyBinding.d.ts +93 -0
  30. package/dist/animation/PropertyBinding.d.ts.map +1 -0
  31. package/dist/animation/PropertyBinding.js +393 -0
  32. package/dist/animation/PropertyBinding.js.map +1 -0
  33. package/dist/animation/SceneAnimationBridge.d.ts +23 -1
  34. package/dist/animation/SceneAnimationBridge.d.ts.map +1 -1
  35. package/dist/animation/SceneAnimationBridge.js +152 -14
  36. package/dist/animation/SceneAnimationBridge.js.map +1 -1
  37. package/dist/animation/browser-index.d.ts +3 -0
  38. package/dist/animation/browser-index.d.ts.map +1 -1
  39. package/dist/animation/browser-index.js +3 -0
  40. package/dist/animation/browser-index.js.map +1 -1
  41. package/dist/animation/index.d.ts +3 -0
  42. package/dist/animation/index.d.ts.map +1 -1
  43. package/dist/animation/index.js +3 -0
  44. package/dist/animation/index.js.map +1 -1
  45. package/dist/animation/pose/blendKernels.d.ts +1 -1
  46. package/dist/animation/pose/blendKernels.d.ts.map +1 -1
  47. package/dist/animation/pose/blendKernels.js +3 -3
  48. package/dist/animation/pose/blendKernels.js.map +1 -1
  49. package/dist/assets/DataTextureLoader.d.ts +16 -0
  50. package/dist/assets/DataTextureLoader.d.ts.map +1 -0
  51. package/dist/assets/DataTextureLoader.js +29 -0
  52. package/dist/assets/DataTextureLoader.js.map +1 -0
  53. package/dist/assets/EXRLoader.d.ts +78 -0
  54. package/dist/assets/EXRLoader.d.ts.map +1 -0
  55. package/dist/assets/EXRLoader.js +1398 -0
  56. package/dist/assets/EXRLoader.js.map +1 -0
  57. package/dist/assets/FileLoader.d.ts +32 -0
  58. package/dist/assets/FileLoader.d.ts.map +1 -0
  59. package/dist/assets/FileLoader.js +79 -0
  60. package/dist/assets/FileLoader.js.map +1 -0
  61. package/dist/assets/GLTFRenderResources.d.ts +9 -0
  62. package/dist/assets/GLTFRenderResources.d.ts.map +1 -1
  63. package/dist/assets/GLTFRenderResources.js +47 -4
  64. package/dist/assets/GLTFRenderResources.js.map +1 -1
  65. package/dist/assets/GLTFSharedTextureCache.d.ts +40 -0
  66. package/dist/assets/GLTFSharedTextureCache.d.ts.map +1 -0
  67. package/dist/assets/GLTFSharedTextureCache.js +68 -0
  68. package/dist/assets/GLTFSharedTextureCache.js.map +1 -0
  69. package/dist/assets/ImageBitmapLoader.d.ts +27 -0
  70. package/dist/assets/ImageBitmapLoader.d.ts.map +1 -0
  71. package/dist/assets/ImageBitmapLoader.js +51 -0
  72. package/dist/assets/ImageBitmapLoader.js.map +1 -0
  73. package/dist/assets/ImageLoader.d.ts.map +1 -1
  74. package/dist/assets/ImageLoader.js +12 -5
  75. package/dist/assets/ImageLoader.js.map +1 -1
  76. package/dist/assets/LoadContext.d.ts +4 -1
  77. package/dist/assets/LoadContext.d.ts.map +1 -1
  78. package/dist/assets/LoadContext.js +7 -2
  79. package/dist/assets/LoadContext.js.map +1 -1
  80. package/dist/assets/LoaderFetch.d.ts +12 -0
  81. package/dist/assets/LoaderFetch.d.ts.map +1 -0
  82. package/dist/assets/LoaderFetch.js +54 -0
  83. package/dist/assets/LoaderFetch.js.map +1 -0
  84. package/dist/assets/TextureLoader.d.ts.map +1 -1
  85. package/dist/assets/TextureLoader.js +3 -1
  86. package/dist/assets/TextureLoader.js.map +1 -1
  87. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +6 -0
  88. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -1
  89. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js +2 -1
  90. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -1
  91. package/dist/assets/browser-index.d.ts +9 -0
  92. package/dist/assets/browser-index.d.ts.map +1 -1
  93. package/dist/assets/browser-index.js +5 -0
  94. package/dist/assets/browser-index.js.map +1 -1
  95. package/dist/assets/gltf-runtime.d.ts +2 -0
  96. package/dist/assets/gltf-runtime.d.ts.map +1 -1
  97. package/dist/assets/gltf-runtime.js +1 -0
  98. package/dist/assets/gltf-runtime.js.map +1 -1
  99. package/dist/assets/index.d.ts +11 -0
  100. package/dist/assets/index.d.ts.map +1 -1
  101. package/dist/assets/index.js +7 -0
  102. package/dist/assets/index.js.map +1 -1
  103. package/dist/assets/loaders/TextureLoader.d.ts +27 -1
  104. package/dist/assets/loaders/TextureLoader.d.ts.map +1 -1
  105. package/dist/assets/loaders/TextureLoader.js +62 -4
  106. package/dist/assets/loaders/TextureLoader.js.map +1 -1
  107. package/dist/audio/AudioAnalyser.d.ts +42 -0
  108. package/dist/audio/AudioAnalyser.d.ts.map +1 -0
  109. package/dist/audio/AudioAnalyser.js +75 -0
  110. package/dist/audio/AudioAnalyser.js.map +1 -0
  111. package/dist/audio/AudioContextManager.d.ts +6 -0
  112. package/dist/audio/AudioContextManager.d.ts.map +1 -1
  113. package/dist/audio/AudioContextManager.js.map +1 -1
  114. package/dist/audio/AudioListener.d.ts +27 -0
  115. package/dist/audio/AudioListener.d.ts.map +1 -1
  116. package/dist/audio/AudioListener.js +34 -0
  117. package/dist/audio/AudioListener.js.map +1 -1
  118. package/dist/audio/PositionalEmitter.d.ts +58 -2
  119. package/dist/audio/PositionalEmitter.d.ts.map +1 -1
  120. package/dist/audio/PositionalEmitter.js +111 -12
  121. package/dist/audio/PositionalEmitter.js.map +1 -1
  122. package/dist/audio/SpatialAudio.d.ts +24 -0
  123. package/dist/audio/SpatialAudio.d.ts.map +1 -1
  124. package/dist/audio/SpatialAudio.js +31 -2
  125. package/dist/audio/SpatialAudio.js.map +1 -1
  126. package/dist/audio/game-sound/SpatialVoice.d.ts +2 -2
  127. package/dist/audio/game-sound/SpatialVoice.d.ts.map +1 -1
  128. package/dist/audio/game-sound/SpatialVoice.js +1 -1
  129. package/dist/audio/index.d.ts +5 -3
  130. package/dist/audio/index.d.ts.map +1 -1
  131. package/dist/audio/index.js +2 -1
  132. package/dist/audio/index.js.map +1 -1
  133. package/dist/aura3d-cli/codemods/camera-cast.d.ts +34 -0
  134. package/dist/aura3d-cli/codemods/camera-cast.d.ts.map +1 -0
  135. package/dist/aura3d-cli/codemods/camera-cast.js +259 -0
  136. package/dist/aura3d-cli/codemods/camera-cast.js.map +1 -0
  137. package/dist/aura3d-cli/codemods/core-v2.d.ts +55 -0
  138. package/dist/aura3d-cli/codemods/core-v2.d.ts.map +1 -0
  139. package/dist/aura3d-cli/codemods/core-v2.js +371 -0
  140. package/dist/aura3d-cli/codemods/core-v2.js.map +1 -0
  141. package/dist/aura3d-cli/codemods/engine-entry-imports.js +3 -3
  142. package/dist/aura3d-cli/codemods/engine-entry-imports.js.map +1 -1
  143. package/dist/aura3d-cli/codemods/post-v2.d.ts +88 -0
  144. package/dist/aura3d-cli/codemods/post-v2.d.ts.map +1 -0
  145. package/dist/aura3d-cli/codemods/post-v2.js +379 -0
  146. package/dist/aura3d-cli/codemods/post-v2.js.map +1 -0
  147. package/dist/aura3d-cli/commands/prd01/index.js +1 -1
  148. package/dist/aura3d-cli/commands/prd01/index.js.map +1 -1
  149. package/dist/aura3d-cli/commands/prd02/environmentsBake.d.ts.map +1 -1
  150. package/dist/aura3d-cli/commands/prd02/environmentsBake.js +1 -1
  151. package/dist/aura3d-cli/commands/prd02/environmentsBake.js.map +1 -1
  152. package/dist/aura3d-cli/commands/prd03/index.d.ts +4 -2
  153. package/dist/aura3d-cli/commands/prd03/index.d.ts.map +1 -1
  154. package/dist/aura3d-cli/commands/prd03/index.js +4 -2
  155. package/dist/aura3d-cli/commands/prd03/index.js.map +1 -1
  156. package/dist/aura3d-cli/commands/prd08/feelLint.js +1 -1
  157. package/dist/aura3d-cli/commands/prd08/feelLint.js.map +1 -1
  158. package/dist/aura3d-cli/commands/prd08/index.js +1 -1
  159. package/dist/aura3d-cli/commands/prd08/index.js.map +1 -1
  160. package/dist/aura3d-cli/commands/prd10/index.js +8 -1
  161. package/dist/aura3d-cli/commands/prd10/index.js.map +1 -1
  162. package/dist/aura3d-cli/lint/feelSourceScan.d.ts +20 -0
  163. package/dist/aura3d-cli/lint/feelSourceScan.d.ts.map +1 -0
  164. package/dist/aura3d-cli/lint/feelSourceScan.js +91 -0
  165. package/dist/aura3d-cli/lint/feelSourceScan.js.map +1 -0
  166. package/dist/aura3d-cli/look/lint-static.js +1 -1
  167. package/dist/aura3d-cli/look/lint-static.js.map +1 -1
  168. package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.d.ts.map +1 -1
  169. package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.js +57 -12
  170. package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.js.map +1 -1
  171. package/dist/aura3d-cli/migrate-three/ImportMap.d.ts +36 -12
  172. package/dist/aura3d-cli/migrate-three/ImportMap.d.ts.map +1 -1
  173. package/dist/aura3d-cli/migrate-three/ImportMap.js +120 -22
  174. package/dist/aura3d-cli/migrate-three/ImportMap.js.map +1 -1
  175. package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.d.ts.map +1 -1
  176. package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.js +3 -1
  177. package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.js.map +1 -1
  178. package/dist/aura3d-cli/migrate-three/emit.d.ts +14 -1
  179. package/dist/aura3d-cli/migrate-three/emit.d.ts.map +1 -1
  180. package/dist/aura3d-cli/migrate-three/emit.js +670 -23
  181. package/dist/aura3d-cli/migrate-three/emit.js.map +1 -1
  182. package/dist/aura3d-cli/migrate-three/mappings.d.ts +24 -2
  183. package/dist/aura3d-cli/migrate-three/mappings.d.ts.map +1 -1
  184. package/dist/aura3d-cli/migrate-three/mappings.js +259 -12
  185. package/dist/aura3d-cli/migrate-three/mappings.js.map +1 -1
  186. package/dist/aura3d-cli/migrate-three/parse.d.ts +2 -0
  187. package/dist/aura3d-cli/migrate-three/parse.d.ts.map +1 -1
  188. package/dist/aura3d-cli/migrate-three/parse.js +134 -19
  189. package/dist/aura3d-cli/migrate-three/parse.js.map +1 -1
  190. package/dist/aura3d-cli/migrate-three/report.d.ts +1 -0
  191. package/dist/aura3d-cli/migrate-three/report.d.ts.map +1 -1
  192. package/dist/aura3d-cli/migrate-three/report.js +1 -1
  193. package/dist/aura3d-cli/migrate-three/report.js.map +1 -1
  194. package/dist/create-aura3d/index.js +1 -1
  195. package/dist/create-aura3d/showcase-spec-artifacts.d.ts +1 -1
  196. package/dist/engine/agent-api/AnimationMixerBuilders.d.ts +4 -0
  197. package/dist/engine/agent-api/AnimationMixerBuilders.d.ts.map +1 -1
  198. package/dist/engine/agent-api/AnimationMixerBuilders.js +17 -7
  199. package/dist/engine/agent-api/AnimationMixerBuilders.js.map +1 -1
  200. package/dist/engine/agent-api/Clock.d.ts +37 -0
  201. package/dist/engine/agent-api/Clock.d.ts.map +1 -0
  202. package/dist/engine/agent-api/Clock.js +67 -0
  203. package/dist/engine/agent-api/Clock.js.map +1 -0
  204. package/dist/engine/agent-api/RootGeometry.d.ts +124 -4
  205. package/dist/engine/agent-api/RootGeometry.d.ts.map +1 -1
  206. package/dist/engine/agent-api/RootGeometry.js +426 -19
  207. package/dist/engine/agent-api/RootGeometry.js.map +1 -1
  208. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +14 -0
  209. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
  210. package/dist/engine/agent-api/RuntimeNodeHandle.js +22 -0
  211. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
  212. package/dist/engine/agent-api/SceneQueries.d.ts +67 -1
  213. package/dist/engine/agent-api/SceneQueries.d.ts.map +1 -1
  214. package/dist/engine/agent-api/SceneQueries.js +211 -5
  215. package/dist/engine/agent-api/SceneQueries.js.map +1 -1
  216. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +44 -0
  217. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  218. package/dist/engine/agent-api/app/actorAnimationHandle.js +98 -0
  219. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  220. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  221. package/dist/engine/agent-api/app/createAuraApp.js +93 -0
  222. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  223. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  224. package/dist/engine/agent-api/app/frameLoop.js +4 -0
  225. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  226. package/dist/engine/agent-api/app/routeState.d.ts +1 -0
  227. package/dist/engine/agent-api/app/routeState.d.ts.map +1 -1
  228. package/dist/engine/agent-api/app/routeState.js +14 -0
  229. package/dist/engine/agent-api/app/routeState.js.map +1 -1
  230. package/dist/engine/agent-api/app/runtimeNodes.d.ts +7 -0
  231. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  232. package/dist/engine/agent-api/app/runtimeNodes.js +340 -12
  233. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  234. package/dist/engine/agent-api/assetEvents.d.ts +25 -0
  235. package/dist/engine/agent-api/assetEvents.d.ts.map +1 -0
  236. package/dist/engine/agent-api/assetEvents.js +36 -0
  237. package/dist/engine/agent-api/assetEvents.js.map +1 -0
  238. package/dist/engine/agent-api/camera/Spline.d.ts +10 -4
  239. package/dist/engine/agent-api/camera/Spline.d.ts.map +1 -1
  240. package/dist/engine/agent-api/camera/Spline.js +28 -101
  241. package/dist/engine/agent-api/camera/Spline.js.map +1 -1
  242. package/dist/engine/agent-api/characters/clone.d.ts +55 -0
  243. package/dist/engine/agent-api/characters/clone.d.ts.map +1 -0
  244. package/dist/engine/agent-api/characters/clone.js +99 -0
  245. package/dist/engine/agent-api/characters/clone.js.map +1 -0
  246. package/dist/engine/agent-api/color.d.ts.map +1 -1
  247. package/dist/engine/agent-api/color.js +4 -18
  248. package/dist/engine/agent-api/color.js.map +1 -1
  249. package/dist/engine/agent-api/compiler/actors.d.ts.map +1 -1
  250. package/dist/engine/agent-api/compiler/actors.js +19 -7
  251. package/dist/engine/agent-api/compiler/actors.js.map +1 -1
  252. package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
  253. package/dist/engine/agent-api/compiler/animation.js +8 -1
  254. package/dist/engine/agent-api/compiler/animation.js.map +1 -1
  255. package/dist/engine/agent-api/compiler/backgroundImage.d.ts +24 -0
  256. package/dist/engine/agent-api/compiler/backgroundImage.d.ts.map +1 -0
  257. package/dist/engine/agent-api/compiler/backgroundImage.js +134 -0
  258. package/dist/engine/agent-api/compiler/backgroundImage.js.map +1 -0
  259. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  260. package/dist/engine/agent-api/compiler/compileScene.js +7 -2
  261. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  262. package/dist/engine/agent-api/compiler/customMaterial.d.ts +80 -0
  263. package/dist/engine/agent-api/compiler/customMaterial.d.ts.map +1 -0
  264. package/dist/engine/agent-api/compiler/customMaterial.js +628 -0
  265. package/dist/engine/agent-api/compiler/customMaterial.js.map +1 -0
  266. package/dist/engine/agent-api/compiler/environment.d.ts +1 -1
  267. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  268. package/dist/engine/agent-api/compiler/environment.js +10 -5
  269. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  270. package/dist/engine/agent-api/compiler/environmentSourcesState.d.ts +15 -0
  271. package/dist/engine/agent-api/compiler/environmentSourcesState.d.ts.map +1 -0
  272. package/dist/engine/agent-api/compiler/environmentSourcesState.js +13 -0
  273. package/dist/engine/agent-api/compiler/environmentSourcesState.js.map +1 -0
  274. package/dist/engine/agent-api/compiler/errors.d.ts +1 -1
  275. package/dist/engine/agent-api/compiler/errors.d.ts.map +1 -1
  276. package/dist/engine/agent-api/compiler/errors.js.map +1 -1
  277. package/dist/engine/agent-api/compiler/geometry.d.ts +20 -5
  278. package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
  279. package/dist/engine/agent-api/compiler/geometry.js +34 -8
  280. package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
  281. package/dist/engine/agent-api/compiler/handlers.d.ts.map +1 -1
  282. package/dist/engine/agent-api/compiler/handlers.js +35 -1
  283. package/dist/engine/agent-api/compiler/handlers.js.map +1 -1
  284. package/dist/engine/agent-api/compiler/lensFlare.d.ts +21 -0
  285. package/dist/engine/agent-api/compiler/lensFlare.d.ts.map +1 -0
  286. package/dist/engine/agent-api/compiler/lensFlare.js +173 -0
  287. package/dist/engine/agent-api/compiler/lensFlare.js.map +1 -0
  288. package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
  289. package/dist/engine/agent-api/compiler/lights.js +23 -0
  290. package/dist/engine/agent-api/compiler/lights.js.map +1 -1
  291. package/dist/engine/agent-api/compiler/lines.d.ts +23 -0
  292. package/dist/engine/agent-api/compiler/lines.d.ts.map +1 -0
  293. package/dist/engine/agent-api/compiler/lines.js +520 -0
  294. package/dist/engine/agent-api/compiler/lines.js.map +1 -0
  295. package/dist/engine/agent-api/compiler/modelMaterials.d.ts.map +1 -1
  296. package/dist/engine/agent-api/compiler/modelMaterials.js +11 -0
  297. package/dist/engine/agent-api/compiler/modelMaterials.js.map +1 -1
  298. package/dist/engine/agent-api/compiler/observations.d.ts +7 -0
  299. package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
  300. package/dist/engine/agent-api/compiler/observations.js +33 -1
  301. package/dist/engine/agent-api/compiler/observations.js.map +1 -1
  302. package/dist/engine/agent-api/compiler/paritySurfaces.d.ts +37 -0
  303. package/dist/engine/agent-api/compiler/paritySurfaces.d.ts.map +1 -0
  304. package/dist/engine/agent-api/compiler/paritySurfaces.js +310 -0
  305. package/dist/engine/agent-api/compiler/paritySurfaces.js.map +1 -0
  306. package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
  307. package/dist/engine/agent-api/compiler/postprocess.js +6 -3
  308. package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
  309. package/dist/engine/agent-api/compiler/primitives.d.ts +22 -3
  310. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  311. package/dist/engine/agent-api/compiler/primitives.js +320 -57
  312. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  313. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  314. package/dist/engine/agent-api/compiler/renderInput.js +42 -5
  315. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  316. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  317. package/dist/engine/agent-api/compiler/renderer.js +44 -6
  318. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  319. package/dist/engine/agent-api/compiler/textures.d.ts +64 -2
  320. package/dist/engine/agent-api/compiler/textures.d.ts.map +1 -1
  321. package/dist/engine/agent-api/compiler/textures.js +257 -21
  322. package/dist/engine/agent-api/compiler/textures.js.map +1 -1
  323. package/dist/engine/agent-api/devtools/routeHealth.d.ts +12 -1
  324. package/dist/engine/agent-api/devtools/routeHealth.d.ts.map +1 -1
  325. package/dist/engine/agent-api/devtools/routeHealth.js +3 -3
  326. package/dist/engine/agent-api/devtools/routeHealth.js.map +1 -1
  327. package/dist/engine/agent-api/index.d.ts +33 -5
  328. package/dist/engine/agent-api/index.d.ts.map +1 -1
  329. package/dist/engine/agent-api/index.js +19 -3
  330. package/dist/engine/agent-api/index.js.map +1 -1
  331. package/dist/engine/agent-api/lodMarkers.d.ts +23 -0
  332. package/dist/engine/agent-api/lodMarkers.d.ts.map +1 -0
  333. package/dist/engine/agent-api/lodMarkers.js +33 -0
  334. package/dist/engine/agent-api/lodMarkers.js.map +1 -0
  335. package/dist/engine/agent-api/nodes/batched.d.ts +96 -0
  336. package/dist/engine/agent-api/nodes/batched.d.ts.map +1 -0
  337. package/dist/engine/agent-api/nodes/batched.js +456 -0
  338. package/dist/engine/agent-api/nodes/batched.js.map +1 -0
  339. package/dist/engine/agent-api/nodes/batchedState.d.ts +137 -0
  340. package/dist/engine/agent-api/nodes/batchedState.d.ts.map +1 -0
  341. package/dist/engine/agent-api/nodes/batchedState.js +435 -0
  342. package/dist/engine/agent-api/nodes/batchedState.js.map +1 -0
  343. package/dist/engine/agent-api/nodes/builder.d.ts.map +1 -1
  344. package/dist/engine/agent-api/nodes/builder.js +0 -3
  345. package/dist/engine/agent-api/nodes/builder.js.map +1 -1
  346. package/dist/engine/agent-api/nodes/camera.d.ts.map +1 -1
  347. package/dist/engine/agent-api/nodes/camera.js +2 -1
  348. package/dist/engine/agent-api/nodes/camera.js.map +1 -1
  349. package/dist/engine/agent-api/nodes/cameras.d.ts +114 -0
  350. package/dist/engine/agent-api/nodes/cameras.d.ts.map +1 -0
  351. package/dist/engine/agent-api/nodes/cameras.js +107 -0
  352. package/dist/engine/agent-api/nodes/cameras.js.map +1 -0
  353. package/dist/engine/agent-api/nodes/compute.d.ts +48 -0
  354. package/dist/engine/agent-api/nodes/compute.d.ts.map +1 -0
  355. package/dist/engine/agent-api/nodes/compute.js +73 -0
  356. package/dist/engine/agent-api/nodes/compute.js.map +1 -0
  357. package/dist/engine/agent-api/nodes/effects.composite.d.ts +3 -2
  358. package/dist/engine/agent-api/nodes/effects.composite.d.ts.map +1 -1
  359. package/dist/engine/agent-api/nodes/effects.post.d.ts +35 -0
  360. package/dist/engine/agent-api/nodes/effects.post.d.ts.map +1 -1
  361. package/dist/engine/agent-api/nodes/effects.post.js +69 -0
  362. package/dist/engine/agent-api/nodes/effects.post.js.map +1 -1
  363. package/dist/engine/agent-api/nodes/environments.composite.d.ts.map +1 -1
  364. package/dist/engine/agent-api/nodes/environments.d.ts +1 -1
  365. package/dist/engine/agent-api/nodes/environments.js +1 -1
  366. package/dist/engine/agent-api/nodes/environments.js.map +1 -1
  367. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts +19 -6
  368. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts.map +1 -1
  369. package/dist/engine/agent-api/nodes/game/instanceTransforms.js +31 -9
  370. package/dist/engine/agent-api/nodes/game/instanceTransforms.js.map +1 -1
  371. package/dist/engine/agent-api/nodes/geometry.d.ts +28 -1
  372. package/dist/engine/agent-api/nodes/geometry.d.ts.map +1 -1
  373. package/dist/engine/agent-api/nodes/geometry.js +62 -2
  374. package/dist/engine/agent-api/nodes/geometry.js.map +1 -1
  375. package/dist/engine/agent-api/nodes/groups.d.ts +8 -1
  376. package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
  377. package/dist/engine/agent-api/nodes/groups.js +28 -0
  378. package/dist/engine/agent-api/nodes/groups.js.map +1 -1
  379. package/dist/engine/agent-api/nodes/helpers.d.ts +100 -0
  380. package/dist/engine/agent-api/nodes/helpers.d.ts.map +1 -0
  381. package/dist/engine/agent-api/nodes/helpers.js +254 -0
  382. package/dist/engine/agent-api/nodes/helpers.js.map +1 -0
  383. package/dist/engine/agent-api/nodes/instancedMesh.d.ts +87 -0
  384. package/dist/engine/agent-api/nodes/instancedMesh.d.ts.map +1 -0
  385. package/dist/engine/agent-api/nodes/instancedMesh.js +156 -0
  386. package/dist/engine/agent-api/nodes/instancedMesh.js.map +1 -0
  387. package/dist/engine/agent-api/nodes/instances.d.ts +49 -1
  388. package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
  389. package/dist/engine/agent-api/nodes/instances.js +21 -0
  390. package/dist/engine/agent-api/nodes/instances.js.map +1 -1
  391. package/dist/engine/agent-api/nodes/lensFlare.d.ts +126 -0
  392. package/dist/engine/agent-api/nodes/lensFlare.d.ts.map +1 -0
  393. package/dist/engine/agent-api/nodes/lensFlare.js +184 -0
  394. package/dist/engine/agent-api/nodes/lensFlare.js.map +1 -0
  395. package/dist/engine/agent-api/nodes/lights.d.ts +34 -0
  396. package/dist/engine/agent-api/nodes/lights.d.ts.map +1 -1
  397. package/dist/engine/agent-api/nodes/lights.js +27 -0
  398. package/dist/engine/agent-api/nodes/lights.js.map +1 -1
  399. package/dist/engine/agent-api/nodes/lines.d.ts +69 -0
  400. package/dist/engine/agent-api/nodes/lines.d.ts.map +1 -0
  401. package/dist/engine/agent-api/nodes/lines.js +136 -0
  402. package/dist/engine/agent-api/nodes/lines.js.map +1 -0
  403. package/dist/engine/agent-api/nodes/material.d.ts +9 -1
  404. package/dist/engine/agent-api/nodes/material.d.ts.map +1 -1
  405. package/dist/engine/agent-api/nodes/material.js +12 -0
  406. package/dist/engine/agent-api/nodes/material.js.map +1 -1
  407. package/dist/engine/agent-api/nodes/overrideMaterial.d.ts +18 -0
  408. package/dist/engine/agent-api/nodes/overrideMaterial.d.ts.map +1 -0
  409. package/dist/engine/agent-api/nodes/overrideMaterial.js +43 -0
  410. package/dist/engine/agent-api/nodes/overrideMaterial.js.map +1 -0
  411. package/dist/engine/agent-api/nodes/points.d.ts +29 -0
  412. package/dist/engine/agent-api/nodes/points.d.ts.map +1 -0
  413. package/dist/engine/agent-api/nodes/points.js +34 -0
  414. package/dist/engine/agent-api/nodes/points.js.map +1 -0
  415. package/dist/engine/agent-api/nodes/primitives.d.ts +11 -0
  416. package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
  417. package/dist/engine/agent-api/nodes/primitives.js +55 -1
  418. package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
  419. package/dist/engine/agent-api/nodes/prompt/promptPlanV2.d.ts.map +1 -1
  420. package/dist/engine/agent-api/nodes/prompt/promptPlanV2.js +6 -2
  421. package/dist/engine/agent-api/nodes/prompt/promptPlanV2.js.map +1 -1
  422. package/dist/engine/agent-api/nodes/prompt/promptRecipes.d.ts.map +1 -1
  423. package/dist/engine/agent-api/nodes/prompt/promptRecipes.js +7 -1
  424. package/dist/engine/agent-api/nodes/prompt/promptRecipes.js.map +1 -1
  425. package/dist/engine/agent-api/nodes/scene.d.ts +22 -3
  426. package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
  427. package/dist/engine/agent-api/nodes/scene.js +41 -2
  428. package/dist/engine/agent-api/nodes/scene.js.map +1 -1
  429. package/dist/engine/agent-api/nodes/sprites.d.ts +29 -0
  430. package/dist/engine/agent-api/nodes/sprites.d.ts.map +1 -0
  431. package/dist/engine/agent-api/nodes/sprites.js +43 -0
  432. package/dist/engine/agent-api/nodes/sprites.js.map +1 -0
  433. package/dist/engine/agent-api/nodes/surfaces.d.ts +48 -0
  434. package/dist/engine/agent-api/nodes/surfaces.d.ts.map +1 -0
  435. package/dist/engine/agent-api/nodes/surfaces.js +32 -0
  436. package/dist/engine/agent-api/nodes/surfaces.js.map +1 -0
  437. package/dist/engine/agent-api/nodes/texture.d.ts +114 -0
  438. package/dist/engine/agent-api/nodes/texture.d.ts.map +1 -0
  439. package/dist/engine/agent-api/nodes/texture.js +590 -0
  440. package/dist/engine/agent-api/nodes/texture.js.map +1 -0
  441. package/dist/engine/agent-api/nodes/types/runtime.d.ts +91 -4
  442. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  443. package/dist/engine/agent-api/nodes/types.d.ts +387 -4
  444. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  445. package/dist/engine/agent-api/postBridge.d.ts +7 -0
  446. package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
  447. package/dist/engine/agent-api/postBridge.js +63 -5
  448. package/dist/engine/agent-api/postBridge.js.map +1 -1
  449. package/dist/engine/agent-api/public/devtools.d.ts +1 -0
  450. package/dist/engine/agent-api/public/devtools.d.ts.map +1 -1
  451. package/dist/engine/agent-api/public/devtools.js.map +1 -1
  452. package/dist/engine/agent-api/publishedUnion.d.ts +137 -1
  453. package/dist/engine/agent-api/publishedUnion.d.ts.map +1 -1
  454. package/dist/engine/agent-api/publishedUnion.js +109 -0
  455. package/dist/engine/agent-api/publishedUnion.js.map +1 -1
  456. package/dist/engine/agent-api/runtimeEvidence.d.ts +10 -0
  457. package/dist/engine/agent-api/runtimeEvidence.d.ts.map +1 -1
  458. package/dist/engine/agent-api/runtimeEvidence.js +18 -1
  459. package/dist/engine/agent-api/runtimeEvidence.js.map +1 -1
  460. package/dist/engine/agent-api/sceneMath.d.ts +2 -2
  461. package/dist/engine/agent-api/sceneMath.d.ts.map +1 -1
  462. package/dist/engine/agent-api/sceneMath.js +8 -5
  463. package/dist/engine/agent-api/sceneMath.js.map +1 -1
  464. package/dist/engine/agent-api/sceneMath.lookLowering.d.ts +14 -0
  465. package/dist/engine/agent-api/sceneMath.lookLowering.d.ts.map +1 -0
  466. package/dist/engine/agent-api/sceneMath.lookLowering.js +8 -0
  467. package/dist/engine/agent-api/sceneMath.lookLowering.js.map +1 -0
  468. package/dist/engine/agent-api/stereoMath.d.ts +45 -0
  469. package/dist/engine/agent-api/stereoMath.d.ts.map +1 -0
  470. package/dist/engine/agent-api/stereoMath.js +78 -0
  471. package/dist/engine/agent-api/stereoMath.js.map +1 -0
  472. package/dist/engine/agent-api/vfx/atmosphere-api.d.ts +13 -0
  473. package/dist/engine/agent-api/vfx/atmosphere-api.d.ts.map +1 -1
  474. package/dist/engine/agent-api/vfx/atmosphere-api.js +19 -0
  475. package/dist/engine/agent-api/vfx/atmosphere-api.js.map +1 -1
  476. package/dist/engine/agent-api/world/kits.d.ts +1 -1
  477. package/dist/engine/agent-api/world/placement.js.map +1 -1
  478. package/dist/engine/agent-api/world/spline.d.ts +7 -22
  479. package/dist/engine/agent-api/world/spline.d.ts.map +1 -1
  480. package/dist/engine/agent-api/world/spline.js +30 -24
  481. package/dist/engine/agent-api/world/spline.js.map +1 -1
  482. package/dist/engine/agent-api/xr/index.d.ts +18 -0
  483. package/dist/engine/agent-api/xr/index.d.ts.map +1 -0
  484. package/dist/engine/agent-api/xr/index.js +15 -0
  485. package/dist/engine/agent-api/xr/index.js.map +1 -0
  486. package/dist/engine/agent-api/xr/types.d.ts +85 -0
  487. package/dist/engine/agent-api/xr/types.d.ts.map +1 -0
  488. package/dist/engine/agent-api/xr/types.js +2 -0
  489. package/dist/engine/agent-api/xr/types.js.map +1 -0
  490. package/dist/engine/agent-api/xr/xrButton.d.ts +50 -0
  491. package/dist/engine/agent-api/xr/xrButton.d.ts.map +1 -0
  492. package/dist/engine/agent-api/xr/xrButton.js +93 -0
  493. package/dist/engine/agent-api/xr/xrButton.js.map +1 -0
  494. package/dist/engine/agent-api/xr/xrRuntime.d.ts +40 -0
  495. package/dist/engine/agent-api/xr/xrRuntime.d.ts.map +1 -0
  496. package/dist/engine/agent-api/xr/xrRuntime.js +236 -0
  497. package/dist/engine/agent-api/xr/xrRuntime.js.map +1 -0
  498. package/dist/engine/agent-api/xr/xrViewOverride.d.ts +35 -0
  499. package/dist/engine/agent-api/xr/xrViewOverride.d.ts.map +1 -0
  500. package/dist/engine/agent-api/xr/xrViewOverride.js +99 -0
  501. package/dist/engine/agent-api/xr/xrViewOverride.js.map +1 -0
  502. package/dist/engine/contracts/animation.d.ts +18 -0
  503. package/dist/engine/contracts/animation.d.ts.map +1 -1
  504. package/dist/engine/contracts/animation.js +4 -1
  505. package/dist/engine/contracts/animation.js.map +1 -1
  506. package/dist/engine/contracts/compiler.d.ts +5 -0
  507. package/dist/engine/contracts/compiler.d.ts.map +1 -1
  508. package/dist/engine/contracts/compiler.js.map +1 -1
  509. package/dist/engine/contracts/flags.d.ts.map +1 -1
  510. package/dist/engine/contracts/flags.js +19 -2
  511. package/dist/engine/contracts/flags.js.map +1 -1
  512. package/dist/engine/contracts/post.d.ts +12 -0
  513. package/dist/engine/contracts/post.d.ts.map +1 -1
  514. package/dist/engine/contracts/post.js.map +1 -1
  515. package/dist/engine/index.d.ts +1 -0
  516. package/dist/engine/index.d.ts.map +1 -1
  517. package/dist/engine/index.js +5 -0
  518. package/dist/engine/index.js.map +1 -1
  519. package/dist/engine/lanes/prd02.d.ts +1 -0
  520. package/dist/engine/lanes/prd02.d.ts.map +1 -1
  521. package/dist/engine/lanes/prd02.js +15 -0
  522. package/dist/engine/lanes/prd02.js.map +1 -1
  523. package/dist/engine/lanes/prd06.d.ts.map +1 -1
  524. package/dist/engine/lanes/prd06.js +21 -2
  525. package/dist/engine/lanes/prd06.js.map +1 -1
  526. package/dist/engine/lanes/prd13.d.ts.map +1 -1
  527. package/dist/engine/lanes/prd13.js +4 -1
  528. package/dist/engine/lanes/prd13.js.map +1 -1
  529. package/dist/engine/production-runtime/TypedGLBActor.d.ts +8 -1
  530. package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
  531. package/dist/engine/production-runtime/TypedGLBActor.js +4 -3
  532. package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
  533. package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.d.ts +5 -1
  534. package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.d.ts.map +1 -1
  535. package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.js +10 -6
  536. package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.js.map +1 -1
  537. package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts +19 -1
  538. package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts.map +1 -1
  539. package/dist/engine/production-runtime/effects/EffectNodeLowering.js +39 -25
  540. package/dist/engine/production-runtime/effects/EffectNodeLowering.js.map +1 -1
  541. package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts +5 -0
  542. package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts.map +1 -1
  543. package/dist/engine/production-runtime/effects/ProductionEffectSystem.js +79 -8
  544. package/dist/engine/production-runtime/effects/ProductionEffectSystem.js.map +1 -1
  545. package/dist/engine/public/index.d.ts +6 -2
  546. package/dist/engine/public/index.d.ts.map +1 -1
  547. package/dist/engine/public/index.js +5 -1
  548. package/dist/engine/public/index.js.map +1 -1
  549. package/dist/engine/public/renderTarget.d.ts +14 -0
  550. package/dist/engine/public/renderTarget.d.ts.map +1 -0
  551. package/dist/engine/public/renderTarget.js +13 -0
  552. package/dist/engine/public/renderTarget.js.map +1 -0
  553. package/dist/engine/public/renderer.d.ts +4 -0
  554. package/dist/engine/public/renderer.d.ts.map +1 -1
  555. package/dist/engine/public/renderer.js +8 -0
  556. package/dist/engine/public/renderer.js.map +1 -1
  557. package/dist/input/WebXRSessionController.d.ts +43 -0
  558. package/dist/input/WebXRSessionController.d.ts.map +1 -1
  559. package/dist/input/WebXRSessionController.js +8 -0
  560. package/dist/input/WebXRSessionController.js.map +1 -1
  561. package/dist/input/index.d.ts +1 -15
  562. package/dist/input/index.d.ts.map +1 -1
  563. package/dist/input/index.js +0 -7
  564. package/dist/input/index.js.map +1 -1
  565. package/dist/math/Box3.d.ts +50 -0
  566. package/dist/math/Box3.d.ts.map +1 -1
  567. package/dist/math/Box3.js +177 -6
  568. package/dist/math/Box3.js.map +1 -1
  569. package/dist/math/Capsule.d.ts +25 -0
  570. package/dist/math/Capsule.d.ts.map +1 -0
  571. package/dist/math/Capsule.js +54 -0
  572. package/dist/math/Capsule.js.map +1 -0
  573. package/dist/math/Color.d.ts +27 -0
  574. package/dist/math/Color.d.ts.map +1 -1
  575. package/dist/math/Color.js +87 -0
  576. package/dist/math/Color.js.map +1 -1
  577. package/dist/math/ConvexHull.d.ts +100 -0
  578. package/dist/math/ConvexHull.d.ts.map +1 -0
  579. package/dist/math/ConvexHull.js +578 -0
  580. package/dist/math/ConvexHull.js.map +1 -0
  581. package/dist/math/Curves.d.ts +59 -18
  582. package/dist/math/Curves.d.ts.map +1 -1
  583. package/dist/math/Curves.js +15 -73
  584. package/dist/math/Curves.js.map +1 -1
  585. package/dist/math/Cylindrical.d.ts +19 -0
  586. package/dist/math/Cylindrical.d.ts.map +1 -0
  587. package/dist/math/Cylindrical.js +40 -0
  588. package/dist/math/Cylindrical.js.map +1 -0
  589. package/dist/math/Euler.d.ts +24 -0
  590. package/dist/math/Euler.d.ts.map +1 -1
  591. package/dist/math/Euler.js +126 -2
  592. package/dist/math/Euler.js.map +1 -1
  593. package/dist/math/Frustum.d.ts +18 -0
  594. package/dist/math/Frustum.d.ts.map +1 -1
  595. package/dist/math/Frustum.js +62 -12
  596. package/dist/math/Frustum.js.map +1 -1
  597. package/dist/math/Line3.d.ts +38 -0
  598. package/dist/math/Line3.d.ts.map +1 -0
  599. package/dist/math/Line3.js +122 -0
  600. package/dist/math/Line3.js.map +1 -0
  601. package/dist/math/MathUtils.d.ts +37 -0
  602. package/dist/math/MathUtils.d.ts.map +1 -0
  603. package/dist/math/MathUtils.js +105 -0
  604. package/dist/math/MathUtils.js.map +1 -0
  605. package/dist/math/Matrix3.d.ts +23 -2
  606. package/dist/math/Matrix3.d.ts.map +1 -1
  607. package/dist/math/Matrix3.js +90 -0
  608. package/dist/math/Matrix3.js.map +1 -1
  609. package/dist/math/Matrix4.d.ts +3 -0
  610. package/dist/math/Matrix4.d.ts.map +1 -1
  611. package/dist/math/Matrix4.js +17 -0
  612. package/dist/math/Matrix4.js.map +1 -1
  613. package/dist/math/OBB.d.ts +44 -0
  614. package/dist/math/OBB.d.ts.map +1 -0
  615. package/dist/math/OBB.js +214 -0
  616. package/dist/math/OBB.js.map +1 -0
  617. package/dist/math/Octree.d.ts +72 -0
  618. package/dist/math/Octree.d.ts.map +1 -0
  619. package/dist/math/Octree.js +385 -0
  620. package/dist/math/Octree.js.map +1 -0
  621. package/dist/math/Plane.d.ts +42 -0
  622. package/dist/math/Plane.d.ts.map +1 -1
  623. package/dist/math/Plane.js +79 -3
  624. package/dist/math/Plane.js.map +1 -1
  625. package/dist/math/Quaternion.d.ts +6 -1
  626. package/dist/math/Quaternion.d.ts.map +1 -1
  627. package/dist/math/Quaternion.js +28 -3
  628. package/dist/math/Quaternion.js.map +1 -1
  629. package/dist/math/Ray.d.ts +42 -2
  630. package/dist/math/Ray.d.ts.map +1 -1
  631. package/dist/math/Ray.js +202 -9
  632. package/dist/math/Ray.js.map +1 -1
  633. package/dist/math/ShapeUtils.d.ts +28 -0
  634. package/dist/math/ShapeUtils.d.ts.map +1 -0
  635. package/dist/math/ShapeUtils.js +551 -0
  636. package/dist/math/ShapeUtils.js.map +1 -0
  637. package/dist/math/Sphere.d.ts +32 -0
  638. package/dist/math/Sphere.d.ts.map +1 -1
  639. package/dist/math/Sphere.js +122 -4
  640. package/dist/math/Sphere.js.map +1 -1
  641. package/dist/math/Spherical.d.ts +21 -0
  642. package/dist/math/Spherical.d.ts.map +1 -0
  643. package/dist/math/Spherical.js +50 -0
  644. package/dist/math/Spherical.js.map +1 -0
  645. package/dist/math/SphericalHarmonics3.d.ts +35 -0
  646. package/dist/math/SphericalHarmonics3.d.ts.map +1 -0
  647. package/dist/math/SphericalHarmonics3.js +115 -0
  648. package/dist/math/SphericalHarmonics3.js.map +1 -0
  649. package/dist/math/Triangle.d.ts +45 -0
  650. package/dist/math/Triangle.d.ts.map +1 -0
  651. package/dist/math/Triangle.js +160 -0
  652. package/dist/math/Triangle.js.map +1 -0
  653. package/dist/math/Vector2.d.ts +7 -0
  654. package/dist/math/Vector2.d.ts.map +1 -1
  655. package/dist/math/Vector2.js +17 -0
  656. package/dist/math/Vector2.js.map +1 -1
  657. package/dist/math/Vector3.d.ts +16 -0
  658. package/dist/math/Vector3.d.ts.map +1 -1
  659. package/dist/math/Vector3.js +35 -0
  660. package/dist/math/Vector3.js.map +1 -1
  661. package/dist/math/curves/ArcCurve.d.ts +7 -0
  662. package/dist/math/curves/ArcCurve.d.ts.map +1 -0
  663. package/dist/math/curves/ArcCurve.js +9 -0
  664. package/dist/math/curves/ArcCurve.js.map +1 -0
  665. package/dist/math/curves/CatmullRomCurve3.d.ts +39 -0
  666. package/dist/math/curves/CatmullRomCurve3.d.ts.map +1 -0
  667. package/dist/math/curves/CatmullRomCurve3.js +176 -0
  668. package/dist/math/curves/CatmullRomCurve3.js.map +1 -0
  669. package/dist/math/curves/ClampedCatmullRomCurve3.d.ts +26 -0
  670. package/dist/math/curves/ClampedCatmullRomCurve3.d.ts.map +1 -0
  671. package/dist/math/curves/ClampedCatmullRomCurve3.js +48 -0
  672. package/dist/math/curves/ClampedCatmullRomCurve3.js.map +1 -0
  673. package/dist/math/curves/CubicBezierCurve.d.ts +14 -0
  674. package/dist/math/curves/CubicBezierCurve.d.ts.map +1 -0
  675. package/dist/math/curves/CubicBezierCurve.js +25 -0
  676. package/dist/math/curves/CubicBezierCurve.js.map +1 -0
  677. package/dist/math/curves/CubicBezierCurve3.d.ts +14 -0
  678. package/dist/math/curves/CubicBezierCurve3.d.ts.map +1 -0
  679. package/dist/math/curves/CubicBezierCurve3.js +25 -0
  680. package/dist/math/curves/CubicBezierCurve3.js.map +1 -0
  681. package/dist/math/curves/CurveBase.d.ts +49 -0
  682. package/dist/math/curves/CurveBase.d.ts.map +1 -0
  683. package/dist/math/curves/CurveBase.js +199 -0
  684. package/dist/math/curves/CurveBase.js.map +1 -0
  685. package/dist/math/curves/CurvePath.d.ts +34 -0
  686. package/dist/math/curves/CurvePath.d.ts.map +1 -0
  687. package/dist/math/curves/CurvePath.js +135 -0
  688. package/dist/math/curves/CurvePath.js.map +1 -0
  689. package/dist/math/curves/EllipseCurve.d.ts +18 -0
  690. package/dist/math/curves/EllipseCurve.d.ts.map +1 -0
  691. package/dist/math/curves/EllipseCurve.js +67 -0
  692. package/dist/math/curves/EllipseCurve.js.map +1 -0
  693. package/dist/math/curves/Interpolations.d.ts +9 -0
  694. package/dist/math/curves/Interpolations.d.ts.map +1 -0
  695. package/dist/math/curves/Interpolations.js +21 -0
  696. package/dist/math/curves/Interpolations.js.map +1 -0
  697. package/dist/math/curves/LineCurve.d.ts +16 -0
  698. package/dist/math/curves/LineCurve.d.ts.map +1 -0
  699. package/dist/math/curves/LineCurve.js +32 -0
  700. package/dist/math/curves/LineCurve.js.map +1 -0
  701. package/dist/math/curves/LineCurve3.d.ts +16 -0
  702. package/dist/math/curves/LineCurve3.d.ts.map +1 -0
  703. package/dist/math/curves/LineCurve3.js +32 -0
  704. package/dist/math/curves/LineCurve3.js.map +1 -0
  705. package/dist/math/curves/Path.d.ts +23 -0
  706. package/dist/math/curves/Path.d.ts.map +1 -0
  707. package/dist/math/curves/Path.js +94 -0
  708. package/dist/math/curves/Path.js.map +1 -0
  709. package/dist/math/curves/QuadraticBezierCurve.d.ts +13 -0
  710. package/dist/math/curves/QuadraticBezierCurve.d.ts.map +1 -0
  711. package/dist/math/curves/QuadraticBezierCurve.js +23 -0
  712. package/dist/math/curves/QuadraticBezierCurve.js.map +1 -0
  713. package/dist/math/curves/QuadraticBezierCurve3.d.ts +13 -0
  714. package/dist/math/curves/QuadraticBezierCurve3.d.ts.map +1 -0
  715. package/dist/math/curves/QuadraticBezierCurve3.js +23 -0
  716. package/dist/math/curves/QuadraticBezierCurve3.js.map +1 -0
  717. package/dist/math/curves/Shape.d.ts +15 -0
  718. package/dist/math/curves/Shape.d.ts.map +1 -0
  719. package/dist/math/curves/Shape.js +26 -0
  720. package/dist/math/curves/Shape.js.map +1 -0
  721. package/dist/math/curves/SplineCurve.d.ts +11 -0
  722. package/dist/math/curves/SplineCurve.d.ts.map +1 -0
  723. package/dist/math/curves/SplineCurve.js +27 -0
  724. package/dist/math/curves/SplineCurve.js.map +1 -0
  725. package/dist/math/index.d.ts +12 -0
  726. package/dist/math/index.d.ts.map +1 -1
  727. package/dist/math/index.js +16 -0
  728. package/dist/math/index.js.map +1 -1
  729. package/dist/physics-rapier/index.d.ts.map +1 -1
  730. package/dist/physics-rapier/index.js +20 -5
  731. package/dist/physics-rapier/index.js.map +1 -1
  732. package/dist/rendering/EnvironmentPlatform.d.ts.map +1 -1
  733. package/dist/rendering/EnvironmentPlatform.js +6 -2
  734. package/dist/rendering/EnvironmentPlatform.js.map +1 -1
  735. package/dist/rendering/ForwardPass.d.ts +2 -0
  736. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  737. package/dist/rendering/ForwardPass.js +70 -5
  738. package/dist/rendering/ForwardPass.js.map +1 -1
  739. package/dist/rendering/Geometry.d.ts +40 -0
  740. package/dist/rendering/Geometry.d.ts.map +1 -1
  741. package/dist/rendering/Geometry.js +39 -2
  742. package/dist/rendering/Geometry.js.map +1 -1
  743. package/dist/rendering/IndexBuffer.d.ts +16 -1
  744. package/dist/rendering/IndexBuffer.d.ts.map +1 -1
  745. package/dist/rendering/IndexBuffer.js +46 -1
  746. package/dist/rendering/IndexBuffer.js.map +1 -1
  747. package/dist/rendering/InstancedPBRMaterial.d.ts +2 -0
  748. package/dist/rendering/InstancedPBRMaterial.d.ts.map +1 -1
  749. package/dist/rendering/InstancedPBRMaterial.js +1 -0
  750. package/dist/rendering/InstancedPBRMaterial.js.map +1 -1
  751. package/dist/rendering/Material.d.ts +9 -0
  752. package/dist/rendering/Material.d.ts.map +1 -1
  753. package/dist/rendering/Material.js +3 -0
  754. package/dist/rendering/Material.js.map +1 -1
  755. package/dist/rendering/PBRMaterial.d.ts +2 -0
  756. package/dist/rendering/PBRMaterial.d.ts.map +1 -1
  757. package/dist/rendering/PBRMaterial.js +1 -0
  758. package/dist/rendering/PBRMaterial.js.map +1 -1
  759. package/dist/rendering/PortableShaderMaterial.d.ts +13 -3
  760. package/dist/rendering/PortableShaderMaterial.d.ts.map +1 -1
  761. package/dist/rendering/PortableShaderMaterial.js +24 -12
  762. package/dist/rendering/PortableShaderMaterial.js.map +1 -1
  763. package/dist/rendering/RenderDevice.d.ts +98 -0
  764. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  765. package/dist/rendering/RenderDevice.js +129 -0
  766. package/dist/rendering/RenderDevice.js.map +1 -1
  767. package/dist/rendering/Renderer.d.ts +94 -0
  768. package/dist/rendering/Renderer.d.ts.map +1 -1
  769. package/dist/rendering/Renderer.js +321 -26
  770. package/dist/rendering/Renderer.js.map +1 -1
  771. package/dist/rendering/Sampler.d.ts +35 -0
  772. package/dist/rendering/Sampler.d.ts.map +1 -1
  773. package/dist/rendering/Sampler.js +96 -0
  774. package/dist/rendering/Sampler.js.map +1 -1
  775. package/dist/rendering/ShaderLibraryCore.d.ts +14 -0
  776. package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
  777. package/dist/rendering/ShaderLibraryCore.js +94 -4
  778. package/dist/rendering/ShaderLibraryCore.js.map +1 -1
  779. package/dist/rendering/Texture.d.ts +53 -1
  780. package/dist/rendering/Texture.d.ts.map +1 -1
  781. package/dist/rendering/Texture.js +53 -2
  782. package/dist/rendering/Texture.js.map +1 -1
  783. package/dist/rendering/UnlitMaterial.d.ts +46 -0
  784. package/dist/rendering/UnlitMaterial.d.ts.map +1 -1
  785. package/dist/rendering/UnlitMaterial.js +32 -3
  786. package/dist/rendering/UnlitMaterial.js.map +1 -1
  787. package/dist/rendering/VertexFormat.d.ts +19 -1
  788. package/dist/rendering/VertexFormat.d.ts.map +1 -1
  789. package/dist/rendering/VertexFormat.js +40 -1
  790. package/dist/rendering/VertexFormat.js.map +1 -1
  791. package/dist/rendering/WebGL2Device.d.ts +16 -0
  792. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  793. package/dist/rendering/WebGL2Device.js +31 -6
  794. package/dist/rendering/WebGL2Device.js.map +1 -1
  795. package/dist/rendering/WebGPUDevice.d.ts +92 -1
  796. package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
  797. package/dist/rendering/WebGPUDevice.js +417 -44
  798. package/dist/rendering/WebGPUDevice.js.map +1 -1
  799. package/dist/rendering/batching/BatchedGeometryPool.d.ts +22 -1
  800. package/dist/rendering/batching/BatchedGeometryPool.d.ts.map +1 -1
  801. package/dist/rendering/batching/BatchedGeometryPool.js +50 -2
  802. package/dist/rendering/batching/BatchedGeometryPool.js.map +1 -1
  803. package/dist/rendering/batching/DrawDataTexture.d.ts +21 -1
  804. package/dist/rendering/batching/DrawDataTexture.d.ts.map +1 -1
  805. package/dist/rendering/batching/DrawDataTexture.js +30 -4
  806. package/dist/rendering/batching/DrawDataTexture.js.map +1 -1
  807. package/dist/rendering/batching/MultiDrawBatch.d.ts +26 -0
  808. package/dist/rendering/batching/MultiDrawBatch.d.ts.map +1 -1
  809. package/dist/rendering/batching/MultiDrawBatch.js +64 -2
  810. package/dist/rendering/batching/MultiDrawBatch.js.map +1 -1
  811. package/dist/rendering/batching/index.d.ts +2 -2
  812. package/dist/rendering/batching/index.d.ts.map +1 -1
  813. package/dist/rendering/batching/index.js +2 -2
  814. package/dist/rendering/batching/index.js.map +1 -1
  815. package/dist/rendering/compute/ComputeContext.d.ts +84 -0
  816. package/dist/rendering/compute/ComputeContext.d.ts.map +1 -0
  817. package/dist/rendering/compute/ComputeContext.js +371 -0
  818. package/dist/rendering/compute/ComputeContext.js.map +1 -0
  819. package/dist/rendering/compute/index.d.ts +4 -0
  820. package/dist/rendering/compute/index.d.ts.map +1 -0
  821. package/dist/rendering/compute/index.js +3 -0
  822. package/dist/rendering/compute/index.js.map +1 -0
  823. package/dist/rendering/compute/types.d.ts +108 -0
  824. package/dist/rendering/compute/types.d.ts.map +1 -0
  825. package/dist/rendering/compute/types.js +25 -0
  826. package/dist/rendering/compute/types.js.map +1 -0
  827. package/dist/rendering/contracts/core.d.ts +1 -1
  828. package/dist/rendering/contracts/core.d.ts.map +1 -1
  829. package/dist/rendering/contracts/core.js.map +1 -1
  830. package/dist/rendering/contracts/flags.state.d.ts.map +1 -1
  831. package/dist/rendering/contracts/flags.state.js +20 -1
  832. package/dist/rendering/contracts/flags.state.js.map +1 -1
  833. package/dist/rendering/contracts/output.d.ts +1 -1
  834. package/dist/rendering/contracts/output.d.ts.map +1 -1
  835. package/dist/rendering/contracts/output.js.map +1 -1
  836. package/dist/rendering/contracts/post.d.ts +7 -0
  837. package/dist/rendering/contracts/post.d.ts.map +1 -1
  838. package/dist/rendering/contracts/post.js.map +1 -1
  839. package/dist/rendering/contracts/renderItem.d.ts +15 -0
  840. package/dist/rendering/contracts/renderItem.d.ts.map +1 -1
  841. package/dist/rendering/contracts/renderSource.d.ts +3 -1
  842. package/dist/rendering/contracts/renderSource.d.ts.map +1 -1
  843. package/dist/rendering/contracts/sampling.d.ts +23 -0
  844. package/dist/rendering/contracts/sampling.d.ts.map +1 -1
  845. package/dist/rendering/contracts/sampling.js.map +1 -1
  846. package/dist/rendering/environment/EnvironmentCache.d.ts.map +1 -1
  847. package/dist/rendering/environment/EnvironmentCache.js +7 -3
  848. package/dist/rendering/environment/EnvironmentCache.js.map +1 -1
  849. package/dist/rendering/environment/RoomEnvironmentScene.d.ts +2 -2
  850. package/dist/rendering/environment/RoomEnvironmentScene.d.ts.map +1 -1
  851. package/dist/rendering/environment/RoomEnvironmentScene.js.map +1 -1
  852. package/dist/rendering/geometry/Circle.d.ts +14 -0
  853. package/dist/rendering/geometry/Circle.d.ts.map +1 -0
  854. package/dist/rendering/geometry/Circle.js +31 -0
  855. package/dist/rendering/geometry/Circle.js.map +1 -0
  856. package/dist/rendering/geometry/Cone.d.ts +37 -0
  857. package/dist/rendering/geometry/Cone.d.ts.map +1 -0
  858. package/dist/rendering/geometry/Cone.js +129 -0
  859. package/dist/rendering/geometry/Cone.js.map +1 -0
  860. package/dist/rendering/geometry/Convex.d.ts +19 -0
  861. package/dist/rendering/geometry/Convex.d.ts.map +1 -0
  862. package/dist/rendering/geometry/Convex.js +27 -0
  863. package/dist/rendering/geometry/Convex.js.map +1 -0
  864. package/dist/rendering/geometry/Edges.d.ts +15 -0
  865. package/dist/rendering/geometry/Edges.d.ts.map +1 -0
  866. package/dist/rendering/geometry/Edges.js +98 -0
  867. package/dist/rendering/geometry/Edges.js.map +1 -0
  868. package/dist/rendering/geometry/Extrude.d.ts +29 -0
  869. package/dist/rendering/geometry/Extrude.d.ts.map +1 -0
  870. package/dist/rendering/geometry/Extrude.js +403 -0
  871. package/dist/rendering/geometry/Extrude.js.map +1 -0
  872. package/dist/rendering/geometry/Lathe.d.ts +20 -0
  873. package/dist/rendering/geometry/Lathe.d.ts.map +1 -0
  874. package/dist/rendering/geometry/Lathe.js +94 -0
  875. package/dist/rendering/geometry/Lathe.js.map +1 -0
  876. package/dist/rendering/geometry/Polyhedron.d.ts +21 -0
  877. package/dist/rendering/geometry/Polyhedron.d.ts.map +1 -0
  878. package/dist/rendering/geometry/Polyhedron.js +201 -0
  879. package/dist/rendering/geometry/Polyhedron.js.map +1 -0
  880. package/dist/rendering/geometry/Primitives.d.ts +38 -2
  881. package/dist/rendering/geometry/Primitives.d.ts.map +1 -1
  882. package/dist/rendering/geometry/Primitives.js +114 -0
  883. package/dist/rendering/geometry/Primitives.js.map +1 -1
  884. package/dist/rendering/geometry/Ring.d.ts +16 -0
  885. package/dist/rendering/geometry/Ring.d.ts.map +1 -0
  886. package/dist/rendering/geometry/Ring.js +44 -0
  887. package/dist/rendering/geometry/Ring.js.map +1 -0
  888. package/dist/rendering/geometry/RoundedBox.d.ts +22 -0
  889. package/dist/rendering/geometry/RoundedBox.d.ts.map +1 -0
  890. package/dist/rendering/geometry/RoundedBox.js +191 -0
  891. package/dist/rendering/geometry/RoundedBox.js.map +1 -0
  892. package/dist/rendering/geometry/Shape.d.ts +15 -0
  893. package/dist/rendering/geometry/Shape.d.ts.map +1 -0
  894. package/dist/rendering/geometry/Shape.js +44 -0
  895. package/dist/rendering/geometry/Shape.js.map +1 -0
  896. package/dist/rendering/geometry/Support.d.ts +137 -0
  897. package/dist/rendering/geometry/Support.d.ts.map +1 -0
  898. package/dist/rendering/geometry/Support.js +1066 -0
  899. package/dist/rendering/geometry/Support.js.map +1 -0
  900. package/dist/rendering/geometry/TorusKnot.d.ts +18 -0
  901. package/dist/rendering/geometry/TorusKnot.d.ts.map +1 -0
  902. package/dist/rendering/geometry/TorusKnot.js +83 -0
  903. package/dist/rendering/geometry/TorusKnot.js.map +1 -0
  904. package/dist/rendering/geometry/Tube.d.ts +19 -0
  905. package/dist/rendering/geometry/Tube.d.ts.map +1 -0
  906. package/dist/rendering/geometry/Tube.js +70 -0
  907. package/dist/rendering/geometry/Tube.js.map +1 -0
  908. package/dist/rendering/geometry/Wireframe.d.ts +19 -0
  909. package/dist/rendering/geometry/Wireframe.d.ts.map +1 -0
  910. package/dist/rendering/geometry/Wireframe.js +63 -0
  911. package/dist/rendering/geometry/Wireframe.js.map +1 -0
  912. package/dist/rendering/index.d.ts +38 -7
  913. package/dist/rendering/index.d.ts.map +1 -1
  914. package/dist/rendering/index.js +25 -3
  915. package/dist/rendering/index.js.map +1 -1
  916. package/dist/rendering/lanes/prd11.js +1 -1
  917. package/dist/rendering/lanes/prd11.js.map +1 -1
  918. package/dist/rendering/output/ToneMappingOperators.glsl.d.ts +1 -1
  919. package/dist/rendering/output/ToneMappingOperators.glsl.d.ts.map +1 -1
  920. package/dist/rendering/output/ToneMappingOperators.glsl.js +9 -1
  921. package/dist/rendering/output/ToneMappingOperators.glsl.js.map +1 -1
  922. package/dist/rendering/post/v2Entry.d.ts +1 -0
  923. package/dist/rendering/post/v2Entry.d.ts.map +1 -1
  924. package/dist/rendering/post/v2Entry.js.map +1 -1
  925. package/dist/rendering/post/v2Stages.d.ts +30 -1
  926. package/dist/rendering/post/v2Stages.d.ts.map +1 -1
  927. package/dist/rendering/post/v2Stages.js +87 -21
  928. package/dist/rendering/post/v2Stages.js.map +1 -1
  929. package/dist/rendering/program/ProgramCache.d.ts.map +1 -1
  930. package/dist/rendering/program/ProgramCache.js +12 -0
  931. package/dist/rendering/program/ProgramCache.js.map +1 -1
  932. package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
  933. package/dist/rendering/program/ProgramGenerator.js +3 -0
  934. package/dist/rendering/program/ProgramGenerator.js.map +1 -1
  935. package/dist/rendering/reference/PostProcessPass.d.ts +1 -1
  936. package/dist/rendering/reference/PostProcessPass.d.ts.map +1 -1
  937. package/dist/rendering/reference/PostProcessPass.js +8 -1
  938. package/dist/rendering/reference/PostProcessPass.js.map +1 -1
  939. package/dist/rendering/renderer/CullingBatching.d.ts +44 -2
  940. package/dist/rendering/renderer/CullingBatching.d.ts.map +1 -1
  941. package/dist/rendering/renderer/CullingBatching.js +66 -11
  942. package/dist/rendering/renderer/CullingBatching.js.map +1 -1
  943. package/dist/rendering/shaders/chunks/lighting_mirrors.d.ts +2 -2
  944. package/dist/rendering/shaders/chunks/lighting_mirrors.d.ts.map +1 -1
  945. package/dist/rendering/shaders/chunks/lighting_mirrors.js.map +1 -1
  946. package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts +8 -8
  947. package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts.map +1 -1
  948. package/dist/rendering/shadows/DirectionalCascadeFitter.js.map +1 -1
  949. package/dist/rendering/shadows/ShadowAtlas.d.ts +5 -5
  950. package/dist/rendering/shadows/ShadowAtlas.d.ts.map +1 -1
  951. package/dist/rendering/shadows/ShadowAtlas.js.map +1 -1
  952. package/dist/rendering/vfx/ProceduralVolumeEmitter.d.ts +11 -0
  953. package/dist/rendering/vfx/ProceduralVolumeEmitter.d.ts.map +1 -1
  954. package/dist/rendering/vfx/ProceduralVolumeEmitter.js +20 -6
  955. package/dist/rendering/vfx/ProceduralVolumeEmitter.js.map +1 -1
  956. package/dist/rendering/webgl2/ContextLifecycle.d.ts +36 -0
  957. package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
  958. package/dist/rendering/webgl2/ContextLifecycle.js +110 -2
  959. package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
  960. package/dist/rendering/webgl2/LegacyPost.d.ts +16 -1
  961. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  962. package/dist/rendering/webgl2/LegacyPost.js +49 -16
  963. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  964. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  965. package/dist/rendering/webgl2/MultiDraw.js +42 -2
  966. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  967. package/dist/rendering/webgl2/TextureUpload.d.ts +7 -0
  968. package/dist/rendering/webgl2/TextureUpload.d.ts.map +1 -1
  969. package/dist/rendering/webgl2/TextureUpload.js +54 -10
  970. package/dist/rendering/webgl2/TextureUpload.js.map +1 -1
  971. package/dist/scene/Layers.d.ts +5 -0
  972. package/dist/scene/Layers.d.ts.map +1 -1
  973. package/dist/scene/Layers.js +13 -0
  974. package/dist/scene/Layers.js.map +1 -1
  975. package/dist/scene/SceneNode.d.ts +27 -1
  976. package/dist/scene/SceneNode.d.ts.map +1 -1
  977. package/dist/scene/SceneNode.js +33 -1
  978. package/dist/scene/SceneNode.js.map +1 -1
  979. package/package.json +77 -32
  980. package/templates/cinematic-scene/index.html +2 -28
  981. package/templates/cinematic-scene/package.json +2 -1
  982. package/templates/cinematic-scene/src/main.ts +3 -3
  983. package/templates/cinematic-scene/tests/look-floor.ts +73 -3
  984. package/templates/cinematic-scene/tests/route-health.spec.ts +1 -1
  985. package/templates/cinematic-scene/tests/screenshot.spec.ts +12 -2
  986. package/templates/cinematic-scene/vite.config.ts +7 -0
  987. package/templates/mini-game/index.html +1 -27
  988. package/templates/mini-game/package-lock.json +1312 -0
  989. package/templates/mini-game/package.json +2 -1
  990. package/templates/mini-game/src/main.ts +1 -1
  991. package/templates/mini-game/tests/certified-rig.spec.ts +1 -1
  992. package/templates/mini-game/tests/look-floor.ts +73 -3
  993. package/templates/mini-game/tests/playable.spec.ts +57 -12
  994. package/templates/mini-game/tests/screenshot.spec.ts +12 -2
  995. package/templates/mini-game/vite.config.ts +7 -0
  996. package/templates/product-viewer/index.html +2 -27
  997. package/templates/product-viewer/package.json +2 -1
  998. package/templates/product-viewer/tests/look-floor.ts +73 -3
  999. package/templates/product-viewer/tests/screenshot.spec.ts +13 -4
  1000. package/templates/product-viewer/vite.config.ts +7 -0
  1001. package/templates/production-asset-inspector/package.json +1 -1
  1002. package/templates/production-material-studio/package.json +1 -1
  1003. package/templates/production-product-configurator/package.json +1 -1
  1004. package/templates/production-product-viewer/package.json +1 -1
  1005. package/dist/input/controls/CameraRig.d.ts +0 -3
  1006. package/dist/input/controls/CameraRig.d.ts.map +0 -1
  1007. package/dist/input/controls/CameraRig.js +0 -3
  1008. package/dist/input/controls/CameraRig.js.map +0 -1
  1009. package/dist/input/controls/ControlTypes.d.ts +0 -3
  1010. package/dist/input/controls/ControlTypes.d.ts.map +0 -1
  1011. package/dist/input/controls/ControlTypes.js +0 -3
  1012. package/dist/input/controls/ControlTypes.js.map +0 -1
  1013. package/dist/input/controls/EditorFlyControls.d.ts +0 -3
  1014. package/dist/input/controls/EditorFlyControls.d.ts.map +0 -1
  1015. package/dist/input/controls/EditorFlyControls.js +0 -3
  1016. package/dist/input/controls/EditorFlyControls.js.map +0 -1
  1017. package/dist/input/controls/FirstPersonControls.d.ts +0 -3
  1018. package/dist/input/controls/FirstPersonControls.d.ts.map +0 -1
  1019. package/dist/input/controls/FirstPersonControls.js +0 -3
  1020. package/dist/input/controls/FirstPersonControls.js.map +0 -1
  1021. package/dist/input/controls/OrbitControls.d.ts +0 -3
  1022. package/dist/input/controls/OrbitControls.d.ts.map +0 -1
  1023. package/dist/input/controls/OrbitControls.js +0 -3
  1024. package/dist/input/controls/OrbitControls.js.map +0 -1
  1025. package/dist/input/controls/PointerLockControls.d.ts +0 -2
  1026. package/dist/input/controls/PointerLockControls.d.ts.map +0 -1
  1027. package/dist/input/controls/PointerLockControls.js +0 -3
  1028. package/dist/input/controls/PointerLockControls.js.map +0 -1
  1029. package/dist/input/controls/SceneCameraAdapter.d.ts +0 -3
  1030. package/dist/input/controls/SceneCameraAdapter.d.ts.map +0 -1
  1031. package/dist/input/controls/SceneCameraAdapter.js +0 -3
  1032. package/dist/input/controls/SceneCameraAdapter.js.map +0 -1
  1033. package/dist/input/controls/ThirdPersonFollowControls.d.ts +0 -3
  1034. package/dist/input/controls/ThirdPersonFollowControls.d.ts.map +0 -1
  1035. package/dist/input/controls/ThirdPersonFollowControls.js +0 -3
  1036. package/dist/input/controls/ThirdPersonFollowControls.js.map +0 -1
  1037. package/templates/cinematic-scene/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  1038. package/templates/cinematic-scene/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  1039. package/templates/cinematic-scene/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  1040. package/templates/mini-game/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  1041. package/templates/mini-game/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  1042. package/templates/mini-game/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  1043. package/templates/product-viewer/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  1044. package/templates/product-viewer/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  1045. package/templates/product-viewer/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
@@ -11,7 +11,8 @@
11
11
  "test": "playwright test tests/route-health.spec.ts tests/playable.spec.ts tests/screenshot.spec.ts tests/certified-rig.spec.ts --workers=1"
12
12
  },
13
13
  "dependencies": {
14
- "@aura3d/engine": "4.0.1"
14
+ "@aura3d/engine": "4.0.4",
15
+ "@aura3d/assets": "4.0.4"
15
16
  },
16
17
  "devDependencies": {
17
18
  "@playwright/test": "1.59.1",
@@ -316,7 +316,7 @@ function movingLiftY(time: number): number {
316
316
  function createHud(): HTMLElement {
317
317
  const root = document.createElement("aside");
318
318
  root.id = "mini-game-hud";
319
- root.style.cssText = "position:absolute;left:16px;top:16px;z-index:5;min-width:260px;font:500 13px/1.35 Graphik,system-ui,sans-serif;color:#1c2530;background:rgba(255,255,255,.92);border:1px solid rgba(28,37,48,.18);border-radius:8px;padding:12px;pointer-events:none";
319
+ root.style.cssText = "position:absolute;left:16px;top:16px;z-index:5;min-width:260px;font:600 13px/1.35 Inter,system-ui,sans-serif;color:#f5fbff;background:rgba(6,18,26,.66);border:1px solid rgba(160,210,240,.34);border-radius:8px;padding:12px;pointer-events:none";
320
320
  document.body.append(root);
321
321
  return root;
322
322
  }
@@ -17,7 +17,7 @@ test.setTimeout(240_000);
17
17
  * No raw GLB URL literal lives in this file (public-example-boundary): the
18
18
  * expected url is read from the template's own generated typed assets.
19
19
  */
20
- const CERTIFIED_ROSTER = ["showcaseKenneyOobiPlatformerHero"] as const;
20
+ const CERTIFIED_ROSTER = ["kaykitBarbarian", "showcaseKenneyOobiPlatformerHero"] as const;
21
21
  function certifiedHeroFromTypedAssets(): { assetId: string; url: string } {
22
22
  const source = readFileSync(join(dirname(fileURLToPath(import.meta.url)), "..", "src", "aura-assets.ts"), "utf8");
23
23
  for (const assetId of CERTIFIED_ROSTER) {
@@ -50,6 +50,14 @@ export interface LookFloorReport {
50
50
  readonly sampledPixels: number;
51
51
  readonly brightPixels: number;
52
52
  readonly uniqueBuckets: number;
53
+ /**
54
+ * Scene-class pixel counts from the same readback — consumed by the
55
+ * package-clean-install `sceneProfilePass` gate via the template's
56
+ * `screenshot.json` (`{ profile }`). Counts are a fixed superset across
57
+ * templates: each gated template's harness thresholds pick the classes
58
+ * that scene's prompt should produce; ungated classes are report-only.
59
+ */
60
+ readonly profile: Record<string, number>;
53
61
  readonly subjectBounds: LookFloorSubjectBounds | null;
54
62
  readonly appliedLook: {
55
63
  readonly specularIntensity: number;
@@ -92,6 +100,7 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
92
100
  sampledPixels: 0,
93
101
  brightPixels: 0,
94
102
  uniqueBuckets: 0,
103
+ profile: {},
95
104
  subjectBounds: null,
96
105
  appliedLook: null,
97
106
  lookLintErrors: [code],
@@ -166,7 +175,20 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
166
175
  * run in the same task as the stepped render, before compositing clears the
167
176
  * drawing buffer. That also removes the composited element screenshot that
168
177
  * software-GL runners could not produce inside a test timeout.
178
+ *
179
+ * The final settle frame is therefore a *synchronous* step with no await
180
+ * between it and readPixels: an awaited stepAsync can resume in a fresh
181
+ * task — after compositing has already cleared the drawing buffer — and
182
+ * read back an all-black canvas on an otherwise correctly rendered scene.
169
183
  */
184
+ for (const app of apps) {
185
+ try {
186
+ app.step?.(0);
187
+ } catch {
188
+ // A synchronous step may reject while async work settles; the awaited
189
+ // stepAsync settle above already produced a best-effort frame.
190
+ }
191
+ }
170
192
  const target = [...document.querySelectorAll("canvas")]
171
193
  .map((element) => ({
172
194
  element,
@@ -191,7 +213,22 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
191
213
  const stride = 4; // pixels — 16×16 sample grid
192
214
  let sampled = 0;
193
215
  let bright = 0;
194
- const buckets = new Set<number>();
216
+ const bucketCounts = new Map<number, number>();
217
+ // Scene-class counters for the harness's `sceneProfilePass` gate. The
218
+ // bottom-right quadrant is blind (HUD watermark zone — matches the
219
+ // calibrated thresholds from when these classifiers were spec-authored).
220
+ let metalPixels = 0;
221
+ let warmAccentPixels = 0;
222
+ let centerObjectPixels = 0;
223
+ let saturatedStudioPixels = 0;
224
+ let cyanPixels = 0;
225
+ let amberPixels = 0;
226
+ let rainPixels = 0;
227
+ let wetReflectionPixels = 0;
228
+ let centerHeroPixels = 0;
229
+ let darkAlleyPixels = 0;
230
+ let warmPixels = 0;
231
+ let redPixels = 0;
195
232
  // Central-region lit-pixel bbox: edges carry floor/backdrop, the subject
196
233
  // mass is what every §6.4 template frames mid-frame.
197
234
  const x0 = Math.floor(width * 0.1);
@@ -209,8 +246,25 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
209
246
  const g = pixels[offset + 1] ?? 0;
210
247
  const b = pixels[offset + 2] ?? 0;
211
248
  sampled += 1;
212
- buckets.add(((r >> 4) << 8) | ((g >> 4) << 4) | (b >> 4));
249
+ const bucket = ((r >> 4) << 8) | ((g >> 4) << 4) | (b >> 4);
250
+ bucketCounts.set(bucket, (bucketCounts.get(bucket) ?? 0) + 1);
213
251
  const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;
252
+ if (!(x > width * 0.76 && y > height * 0.74)) {
253
+ const inProductWindow = x > width * 0.34 && x < width * 0.68 && y > height * 0.24 && y < height * 0.78;
254
+ const inHeroWindow = x > width * 0.32 && x < width * 0.68 && y > height * 0.26 && y < height * 0.78;
255
+ if (inProductWindow && r > 145 && g > 145 && b > 138 && Math.abs(r - g) < 32 && Math.abs(g - b) < 40) metalPixels += 1;
256
+ if (r > 70 && g > 45 && b < 120 && r >= g && g >= b * 0.75) warmAccentPixels += 1;
257
+ if (inProductWindow && luma > 32) centerObjectPixels += 1;
258
+ if (Math.max(r, g, b) - Math.min(r, g, b) > 32 && luma > 38) saturatedStudioPixels += 1;
259
+ if (b > 110 && g > 90 && b > r * 1.22) cyanPixels += 1;
260
+ if (r > 160 && g > 105 && b < 125) amberPixels += 1;
261
+ if (r > 165 && g > 185 && b > 205) rainPixels += 1;
262
+ if (y < height * 0.36 && ((b > 95 && g > 65 && b > r * 1.12) || (r > 105 && g > 62 && b < 95))) wetReflectionPixels += 1;
263
+ if (inHeroWindow && luma > 75) centerHeroPixels += 1;
264
+ if (luma > 8 && luma < 36 && b >= r && x > width * 0.08 && x < width * 0.92) darkAlleyPixels += 1;
265
+ if (r > 130 && g > 105 && b < 155 && r >= g * 0.9) warmPixels += 1;
266
+ if (r > 120 && g < 150 && b < 180 && r > g * 1.03) redPixels += 1;
267
+ }
214
268
  if (luma > BRIGHT_LUMA) {
215
269
  bright += 1;
216
270
  if (x >= x0 && x <= x1 && y >= y0 && y <= y1) {
@@ -232,7 +286,23 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
232
286
  return {
233
287
  sampledPixels: sampled,
234
288
  brightPixels: bright,
235
- uniqueBuckets: buckets.size,
289
+ uniqueBuckets: bucketCounts.size,
290
+ profile: {
291
+ brightPixels: bright,
292
+ uniqueBuckets: bucketCounts.size,
293
+ metalPixels,
294
+ warmAccentPixels,
295
+ centerObjectPixels,
296
+ saturatedStudioPixels,
297
+ cyanPixels,
298
+ amberPixels,
299
+ rainPixels,
300
+ wetReflectionPixels,
301
+ centerHeroPixels,
302
+ darkAlleyPixels,
303
+ warmPixels,
304
+ redPixels
305
+ },
236
306
  subjectBounds,
237
307
  appliedLook,
238
308
  lookLintErrors,
@@ -28,10 +28,20 @@ test("Aura3D mini game responds to keyboard input, scoring, and reset", async ({
28
28
  expect(initial?.animation.clip).toBe("idle");
29
29
 
30
30
  await page.keyboard.down("ArrowRight");
31
- await page.waitForTimeout(650);
32
- await page.keyboard.up("ArrowRight");
33
-
31
+ // Hold ArrowRight until the hero actually crosses the threshold rather than
32
+ // a fixed wall-clock hold: under software-GL or load the frame loop ticks
33
+ // slower than real time (dt clamp), so a fixed hold is meaningless on slow
34
+ // runners. waitForFunction polls inside the page's own animation frame.
35
+ await page.waitForFunction(
36
+ (startX) => {
37
+ const state = (window as unknown as { readonly __AURA3D_MINI_GAME__?: MiniGameState }).__AURA3D_MINI_GAME__;
38
+ return (state?.player.x ?? 0) > startX + 1.2;
39
+ },
40
+ initial?.player.x ?? 0,
41
+ { timeout: 120_000 }
42
+ );
34
43
  const moved = await page.evaluate(readMiniGameState);
44
+ await page.keyboard.up("ArrowRight");
35
45
  expect(moved?.player.x ?? 0).toBeGreaterThan((initial?.player.x ?? 0) + 1.2);
36
46
  expect(["walk", "sprint"]).toContain(moved?.animation.clip);
37
47
  // Report-only while the C-19 handle is a stub: tracksApplied is read into the
@@ -40,29 +50,64 @@ test("Aura3D mini game responds to keyboard input, scoring, and reset", async ({
40
50
  console.log(`[mini-game] hero tracksApplied=${tracks} clip=${moved?.animation.clip}`);
41
51
 
42
52
  await page.keyboard.press("Space");
43
- await page.waitForTimeout(180);
44
- const jumped = await page.evaluate(readMiniGameState);
45
- expect(jumped?.player.y ?? 0).toBeGreaterThan(moved?.player.y ?? 0);
46
- expect(jumped?.animation.clip).toBe("jump");
53
+ // Wait for the jump CLIP while still airborne and capture the state inside
54
+ // the poll: y rises a frame before the clip flips, and a follow-up evaluate
55
+ // can land after the hero has already touched down (clip back to walk/idle).
56
+ const jumpHandle = await page.waitForFunction(
57
+ (baseY) => {
58
+ const state = (window as unknown as { readonly __AURA3D_MINI_GAME__?: MiniGameState }).__AURA3D_MINI_GAME__;
59
+ return (state?.player.y ?? 0) > baseY && state?.animation.clip === "jump" ? state : false;
60
+ },
61
+ moved?.player.y ?? 0,
62
+ { timeout: 60_000 }
63
+ );
64
+ const jumped = (await jumpHandle.jsonValue()) as MiniGameState;
65
+ expect(jumped.player.y).toBeGreaterThan(moved?.player.y ?? 0);
66
+ expect(jumped.animation.clip).toBe("jump");
47
67
 
48
68
  await page.keyboard.down("ArrowRight");
49
- await page.waitForTimeout(1600);
50
- await page.keyboard.up("ArrowRight");
69
+ await page.waitForFunction(
70
+ () => {
71
+ const state = (window as unknown as { readonly __AURA3D_MINI_GAME__?: MiniGameState }).__AURA3D_MINI_GAME__;
72
+ return (state?.score ?? 0) >= 50;
73
+ },
74
+ undefined,
75
+ { timeout: 120_000 }
76
+ );
51
77
  const progressed = await page.evaluate(readMiniGameState);
78
+ await page.keyboard.up("ArrowRight");
52
79
  expect(progressed?.score ?? 0).toBeGreaterThanOrEqual(50);
53
80
  expect(progressed?.events.length ?? 0).toBeGreaterThan(0);
54
81
 
55
82
  // Hazard death path: dash right into the spike lane resets position and
56
83
  // records a hazard/respawn event.
57
84
  await page.keyboard.down("ArrowRight");
58
- await page.waitForTimeout(2000);
59
- await page.keyboard.up("ArrowRight");
85
+ // Best-effort: the assertion below also accepts collect events, so a slow
86
+ // walk to the spike lane must not time out the spec outright.
87
+ await page
88
+ .waitForFunction(
89
+ () => {
90
+ const state = (window as unknown as { readonly __AURA3D_MINI_GAME__?: MiniGameState }).__AURA3D_MINI_GAME__;
91
+ return (state?.events ?? []).some((event) => event.includes("hazard") || event.includes("respawn"));
92
+ },
93
+ undefined,
94
+ { timeout: 90_000 }
95
+ )
96
+ .catch(() => undefined);
60
97
  const hazard = await page.evaluate(readMiniGameState);
98
+ await page.keyboard.up("ArrowRight");
61
99
  const deathsOrEvents = hazard?.events ?? [];
62
100
  expect(deathsOrEvents.some((event) => event.includes("hazard") || event.includes("respawn") || event.includes("collect"))).toBe(true);
63
101
 
64
102
  await page.keyboard.press("KeyR");
65
- await page.waitForTimeout(120);
103
+ await page.waitForFunction(
104
+ () => {
105
+ const state = (window as unknown as { readonly __AURA3D_MINI_GAME__?: MiniGameState }).__AURA3D_MINI_GAME__;
106
+ return (state?.events ?? []).some((event) => event.includes("reset"));
107
+ },
108
+ undefined,
109
+ { timeout: 60_000 }
110
+ );
66
111
  const reset = await page.evaluate(readMiniGameState);
67
112
  expect(reset?.player.x ?? 99).toBeLessThan(0.3);
68
113
  expect(reset?.events.some((event) => event.includes("reset"))).toBe(true);
@@ -26,7 +26,11 @@ test("Aura3D mini game screenshot clears the look floor", async ({ page }) => {
26
26
  );
27
27
  expect(state?.player?.x ?? 0).toBeGreaterThan(0.8);
28
28
  expect(state?.look?.id).toBe("outdoor-day");
29
- const floor = await assertTemplateLookFloor(page, { subject: { x: 0.05, y: 0.35, width: 0.9, height: 0.55 } });
29
+ // Subject bounds omitted: the outdoor-day look's bright sky reads above the
30
+ // luma floor across the whole central region, so the bright-pixel bound
31
+ // cannot isolate the platform mass — the color-class profile asserts the
32
+ // scene's alignment instead (bright/cyan/warm/red cues).
33
+ const floor = await assertTemplateLookFloor(page);
30
34
  // class-(b) readback: capture through the app (C-05) instead of the
31
35
  // compositor screenshot path — the output surface owns the frame.
32
36
  // `__AURA3D_LIVE_APPS__` is the live-app registry (not an array); `output`
@@ -54,6 +58,12 @@ test("Aura3D mini game screenshot clears the look floor", async ({ page }) => {
54
58
  const screenshot = Buffer.from(pngBase64, "base64");
55
59
  mkdirSync(resolve("tests/reports"), { recursive: true });
56
60
  writeFileSync(resolve("tests/reports/screenshot.png"), screenshot);
57
- writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength, floor }, null, 2)}\n`);
61
+ // The clean-install harness gates this template on its own scene classes
62
+ // (sceneProfilePass) and requires the starters' profiles to be distinct.
63
+ const profile = Object.fromEntries(
64
+ (["brightPixels", "cyanPixels", "warmPixels", "redPixels", "uniqueBuckets"] as const)
65
+ .map((key) => [key, floor.profile[key] ?? 0])
66
+ );
67
+ writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength, floor, profile }, null, 2)}\n`);
58
68
  expect(screenshot.byteLength).toBeGreaterThan(1000);
59
69
  });
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from "vite";
2
+ import { auraDecodersPlugin } from "@aura3d/assets/vite";
3
+
4
+ // F-05-04 (05-PKG): ship + serve the decoder vendor tree at /aura-decoders/
5
+ // so compressed (KTX2/draco/meshopt) GLBs decode same-origin with correct
6
+ // MIME in both `vite dev` and `vite preview`/deployed builds.
7
+ export default defineConfig({ plugins: [auraDecodersPlugin()] });
@@ -5,33 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Aura3D Product Viewer</title>
7
7
  <style>
8
- /* Licensed UI face, committed with the template (public/fonts/graphik). */
9
- @font-face {
10
- font-family: "Graphik";
11
- src: url("/fonts/graphik/Graphik-Regular-Web.woff2") format("woff2");
12
- font-weight: 400; font-style: normal; font-display: swap;
13
- }
14
- @font-face {
15
- font-family: "Graphik";
16
- src: url("/fonts/graphik/Graphik-RegularItalic-Web.woff2") format("woff2");
17
- font-weight: 400; font-style: italic; font-display: swap;
18
- }
19
- @font-face {
20
- font-family: "Graphik";
21
- src: url("/fonts/graphik/Graphik-Medium-Web.woff2") format("woff2");
22
- font-weight: 500; font-style: normal; font-display: swap;
23
- }
24
- :root { color-scheme: light; }
25
- html, body, #app { margin: 0; width: 100%; height: 100%; background: #f4f6f9; }
26
- /* Dark canvas backdrop is scene content; the page chrome is light. */
27
- #app canvas { background: #0d141b; }
28
- body {
29
- font-family: "Graphik", system-ui, -apple-system, sans-serif;
30
- font-synthesis: none;
31
- font-size: 13px;
32
- line-height: 1.45;
33
- color: #1c2530;
34
- }
8
+ html, body, #app { margin: 0; width: 100%; height: 100%; background: #080d15; }
9
+ body { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
35
10
  </style>
36
11
  </head>
37
12
  <body>
@@ -11,7 +11,8 @@
11
11
  "test": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
12
12
  },
13
13
  "dependencies": {
14
- "@aura3d/engine": "4.0.1"
14
+ "@aura3d/engine": "4.0.4",
15
+ "@aura3d/assets": "4.0.4"
15
16
  },
16
17
  "devDependencies": {
17
18
  "@playwright/test": "1.59.1",
@@ -50,6 +50,14 @@ export interface LookFloorReport {
50
50
  readonly sampledPixels: number;
51
51
  readonly brightPixels: number;
52
52
  readonly uniqueBuckets: number;
53
+ /**
54
+ * Scene-class pixel counts from the same readback — consumed by the
55
+ * package-clean-install `sceneProfilePass` gate via the template's
56
+ * `screenshot.json` (`{ profile }`). Counts are a fixed superset across
57
+ * templates: each gated template's harness thresholds pick the classes
58
+ * that scene's prompt should produce; ungated classes are report-only.
59
+ */
60
+ readonly profile: Record<string, number>;
53
61
  readonly subjectBounds: LookFloorSubjectBounds | null;
54
62
  readonly appliedLook: {
55
63
  readonly specularIntensity: number;
@@ -92,6 +100,7 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
92
100
  sampledPixels: 0,
93
101
  brightPixels: 0,
94
102
  uniqueBuckets: 0,
103
+ profile: {},
95
104
  subjectBounds: null,
96
105
  appliedLook: null,
97
106
  lookLintErrors: [code],
@@ -166,7 +175,20 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
166
175
  * run in the same task as the stepped render, before compositing clears the
167
176
  * drawing buffer. That also removes the composited element screenshot that
168
177
  * software-GL runners could not produce inside a test timeout.
178
+ *
179
+ * The final settle frame is therefore a *synchronous* step with no await
180
+ * between it and readPixels: an awaited stepAsync can resume in a fresh
181
+ * task — after compositing has already cleared the drawing buffer — and
182
+ * read back an all-black canvas on an otherwise correctly rendered scene.
169
183
  */
184
+ for (const app of apps) {
185
+ try {
186
+ app.step?.(0);
187
+ } catch {
188
+ // A synchronous step may reject while async work settles; the awaited
189
+ // stepAsync settle above already produced a best-effort frame.
190
+ }
191
+ }
170
192
  const target = [...document.querySelectorAll("canvas")]
171
193
  .map((element) => ({
172
194
  element,
@@ -191,7 +213,22 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
191
213
  const stride = 4; // pixels — 16×16 sample grid
192
214
  let sampled = 0;
193
215
  let bright = 0;
194
- const buckets = new Set<number>();
216
+ const bucketCounts = new Map<number, number>();
217
+ // Scene-class counters for the harness's `sceneProfilePass` gate. The
218
+ // bottom-right quadrant is blind (HUD watermark zone — matches the
219
+ // calibrated thresholds from when these classifiers were spec-authored).
220
+ let metalPixels = 0;
221
+ let warmAccentPixels = 0;
222
+ let centerObjectPixels = 0;
223
+ let saturatedStudioPixels = 0;
224
+ let cyanPixels = 0;
225
+ let amberPixels = 0;
226
+ let rainPixels = 0;
227
+ let wetReflectionPixels = 0;
228
+ let centerHeroPixels = 0;
229
+ let darkAlleyPixels = 0;
230
+ let warmPixels = 0;
231
+ let redPixels = 0;
195
232
  // Central-region lit-pixel bbox: edges carry floor/backdrop, the subject
196
233
  // mass is what every §6.4 template frames mid-frame.
197
234
  const x0 = Math.floor(width * 0.1);
@@ -209,8 +246,25 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
209
246
  const g = pixels[offset + 1] ?? 0;
210
247
  const b = pixels[offset + 2] ?? 0;
211
248
  sampled += 1;
212
- buckets.add(((r >> 4) << 8) | ((g >> 4) << 4) | (b >> 4));
249
+ const bucket = ((r >> 4) << 8) | ((g >> 4) << 4) | (b >> 4);
250
+ bucketCounts.set(bucket, (bucketCounts.get(bucket) ?? 0) + 1);
213
251
  const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;
252
+ if (!(x > width * 0.76 && y > height * 0.74)) {
253
+ const inProductWindow = x > width * 0.34 && x < width * 0.68 && y > height * 0.24 && y < height * 0.78;
254
+ const inHeroWindow = x > width * 0.32 && x < width * 0.68 && y > height * 0.26 && y < height * 0.78;
255
+ if (inProductWindow && r > 145 && g > 145 && b > 138 && Math.abs(r - g) < 32 && Math.abs(g - b) < 40) metalPixels += 1;
256
+ if (r > 70 && g > 45 && b < 120 && r >= g && g >= b * 0.75) warmAccentPixels += 1;
257
+ if (inProductWindow && luma > 32) centerObjectPixels += 1;
258
+ if (Math.max(r, g, b) - Math.min(r, g, b) > 32 && luma > 38) saturatedStudioPixels += 1;
259
+ if (b > 110 && g > 90 && b > r * 1.22) cyanPixels += 1;
260
+ if (r > 160 && g > 105 && b < 125) amberPixels += 1;
261
+ if (r > 165 && g > 185 && b > 205) rainPixels += 1;
262
+ if (y < height * 0.36 && ((b > 95 && g > 65 && b > r * 1.12) || (r > 105 && g > 62 && b < 95))) wetReflectionPixels += 1;
263
+ if (inHeroWindow && luma > 75) centerHeroPixels += 1;
264
+ if (luma > 8 && luma < 36 && b >= r && x > width * 0.08 && x < width * 0.92) darkAlleyPixels += 1;
265
+ if (r > 130 && g > 105 && b < 155 && r >= g * 0.9) warmPixels += 1;
266
+ if (r > 120 && g < 150 && b < 180 && r > g * 1.03) redPixels += 1;
267
+ }
214
268
  if (luma > BRIGHT_LUMA) {
215
269
  bright += 1;
216
270
  if (x >= x0 && x <= x1 && y >= y0 && y <= y1) {
@@ -232,7 +286,23 @@ export async function assertTemplateLookFloor(page: Page, options: LookFloorOpti
232
286
  return {
233
287
  sampledPixels: sampled,
234
288
  brightPixels: bright,
235
- uniqueBuckets: buckets.size,
289
+ uniqueBuckets: bucketCounts.size,
290
+ profile: {
291
+ brightPixels: bright,
292
+ uniqueBuckets: bucketCounts.size,
293
+ metalPixels,
294
+ warmAccentPixels,
295
+ centerObjectPixels,
296
+ saturatedStudioPixels,
297
+ cyanPixels,
298
+ amberPixels,
299
+ rainPixels,
300
+ wetReflectionPixels,
301
+ centerHeroPixels,
302
+ darkAlleyPixels,
303
+ warmPixels,
304
+ redPixels
305
+ },
236
306
  subjectBounds,
237
307
  appliedLook,
238
308
  lookLintErrors,
@@ -6,14 +6,17 @@ import { assertTemplateLookFloor } from "./look-floor";
6
6
  test.setTimeout(600_000);
7
7
 
8
8
  // PRD-13 T3.12 — look floor: non-blank, look.lint error-free, appliedLook
9
- // environment specular > 0, shadow strength >= 0.8, pixelRatio at tier cap,
10
- // subject bounds within ±10% — plus this template's bespoke assertions.
9
+ // environment specular > 0, shadow strength >= 0.8, pixelRatio at tier cap —
10
+ // plus this template's bespoke assertions. The subject-bounds check is
11
+ // omitted: the product-studio look's light backdrop and lit plinth read above
12
+ // the luma floor across the whole central region, so the bright-pixel bound
13
+ // cannot isolate the product mass.
11
14
  test("Aura3D product viewer screenshot clears the look floor", async ({ page }) => {
12
15
  await page.goto("/");
13
16
  await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 150_000 }).toBe("true");
14
17
  const proof = await page.evaluate(() => (window as unknown as { __AURA3D_PRODUCT_VIEWER__?: { look: { id: string } } }).__AURA3D_PRODUCT_VIEWER__);
15
18
  expect(proof?.look.id).toBe("product-studio");
16
- const floor = await assertTemplateLookFloor(page, { subject: { x: 0.3, y: 0.3, width: 0.4, height: 0.5 } });
19
+ const floor = await assertTemplateLookFloor(page);
17
20
  // class-(b) readback: capture through the app (C-05) instead of the
18
21
  // compositor screenshot path — the output surface owns the frame.
19
22
  // `__AURA3D_LIVE_APPS__` is the live-app registry (not an array); `output`
@@ -41,6 +44,12 @@ test("Aura3D product viewer screenshot clears the look floor", async ({ page })
41
44
  const screenshot = Buffer.from(pngBase64, "base64");
42
45
  mkdirSync(resolve("tests/reports"), { recursive: true });
43
46
  writeFileSync(resolve("tests/reports/screenshot.png"), screenshot);
44
- writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength, floor }, null, 2)}\n`);
47
+ // The clean-install harness gates this template on its own scene classes
48
+ // (sceneProfilePass) and requires the starters' profiles to be distinct.
49
+ const profile = Object.fromEntries(
50
+ (["metalPixels", "warmAccentPixels", "centerObjectPixels", "saturatedStudioPixels", "uniqueBuckets"] as const)
51
+ .map((key) => [key, floor.profile[key] ?? 0])
52
+ );
53
+ writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength, floor, profile }, null, 2)}\n`);
45
54
  expect(screenshot.byteLength).toBeGreaterThan(1000);
46
55
  });
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from "vite";
2
+ import { auraDecodersPlugin } from "@aura3d/assets/vite";
3
+
4
+ // F-05-04 (05-PKG): ship + serve the decoder vendor tree at /aura-decoders/
5
+ // so compressed (KTX2/draco/meshopt) GLBs decode same-origin with correct
6
+ // MIME in both `vite dev` and `vite preview`/deployed builds.
7
+ export default defineConfig({ plugins: [auraDecodersPlugin()] });
@@ -8,7 +8,7 @@
8
8
  "preview": "vite preview --host 127.0.0.1"
9
9
  },
10
10
  "dependencies": {
11
- "@aura3d/engine": "4.0.1"
11
+ "@aura3d/engine": "4.0.4"
12
12
  },
13
13
  "devDependencies": {
14
14
  "typescript": "^5.9.3",
@@ -8,7 +8,7 @@
8
8
  "preview": "vite preview --host 127.0.0.1"
9
9
  },
10
10
  "dependencies": {
11
- "@aura3d/engine": "4.0.1"
11
+ "@aura3d/engine": "4.0.4"
12
12
  },
13
13
  "devDependencies": {
14
14
  "typescript": "^5.9.3",
@@ -8,7 +8,7 @@
8
8
  "preview": "vite preview --host 127.0.0.1"
9
9
  },
10
10
  "dependencies": {
11
- "@aura3d/engine": "4.0.1"
11
+ "@aura3d/engine": "4.0.4"
12
12
  },
13
13
  "devDependencies": {
14
14
  "typescript": "^5.9.3",
@@ -8,7 +8,7 @@
8
8
  "preview": "vite preview --host 127.0.0.1"
9
9
  },
10
10
  "dependencies": {
11
- "@aura3d/engine": "4.0.1"
11
+ "@aura3d/engine": "4.0.4"
12
12
  },
13
13
  "devDependencies": {
14
14
  "typescript": "^5.9.3",
@@ -1,3 +0,0 @@
1
- export { CameraRig } from "../../controls/index.js";
2
- export type { CameraRigState } from "../../controls/index.js";
3
- //# sourceMappingURL=CameraRig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CameraRig.d.ts","sourceRoot":"","sources":["../../../../../packages/input/src/controls/CameraRig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- // Deprecated shim (PRD-15 T6.9): implementation lives in @aura3d/controls; remove in 4.0.0.
2
- export { CameraRig } from "../../controls/index.js";
3
- //# sourceMappingURL=CameraRig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CameraRig.js","sourceRoot":"","sources":["../../../../../packages/input/src/controls/CameraRig.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { clamp } from "../../controls/index.js";
2
- export type { CameraTransformLike, EulerLike, Vec3Like } from "../../controls/index.js";
3
- //# sourceMappingURL=ControlTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControlTypes.d.ts","sourceRoot":"","sources":["../../../../../packages/input/src/controls/ControlTypes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- // Deprecated shim (PRD-15 T6.9): implementation lives in @aura3d/controls; remove in 4.0.0.
2
- export { clamp } from "../../controls/index.js";
3
- //# sourceMappingURL=ControlTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControlTypes.js","sourceRoot":"","sources":["../../../../../packages/input/src/controls/ControlTypes.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { EditorFlyControls } from "../../controls/index.js";
2
- export type { EditorFlyControlsOptions } from "../../controls/index.js";
3
- //# sourceMappingURL=EditorFlyControls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorFlyControls.d.ts","sourceRoot":"","sources":["../../../../../packages/input/src/controls/EditorFlyControls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- // Deprecated shim (PRD-15 T6.9): implementation lives in @aura3d/controls; remove in 4.0.0.
2
- export { EditorFlyControls } from "../../controls/index.js";
3
- //# sourceMappingURL=EditorFlyControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorFlyControls.js","sourceRoot":"","sources":["../../../../../packages/input/src/controls/EditorFlyControls.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { FirstPersonControls } from "../../controls/index.js";
2
- export type { FirstPersonControlsOptions } from "../../controls/index.js";
3
- //# sourceMappingURL=FirstPersonControls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FirstPersonControls.d.ts","sourceRoot":"","sources":["../../../../../packages/input/src/controls/FirstPersonControls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- // Deprecated shim (PRD-15 T6.9): implementation lives in @aura3d/controls; remove in 4.0.0.
2
- export { FirstPersonControls } from "../../controls/index.js";
3
- //# sourceMappingURL=FirstPersonControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FirstPersonControls.js","sourceRoot":"","sources":["../../../../../packages/input/src/controls/FirstPersonControls.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { DEFAULT_ORBIT_MAX_POLAR, OrbitControls } from "../../controls/index.js";
2
- export type { OrbitCameraTransformLike, OrbitControlsOptions } from "../../controls/index.js";
3
- //# sourceMappingURL=OrbitControls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../../packages/input/src/controls/OrbitControls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- // Deprecated shim (PRD-15 T6.9): implementation lives in @aura3d/controls; remove in 4.0.0.
2
- export { DEFAULT_ORBIT_MAX_POLAR, OrbitControls } from "../../controls/index.js";
3
- //# sourceMappingURL=OrbitControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrbitControls.js","sourceRoot":"","sources":["../../../../../packages/input/src/controls/OrbitControls.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { PointerLockControls } from "../../controls/index.js";
2
- //# sourceMappingURL=PointerLockControls.d.ts.map