@aura3d/engine 3.0.0 → 3.0.1

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 (349) hide show
  1. package/README.md +24 -5
  2. package/dist/animation/AnimationMixer.d.ts +4 -1
  3. package/dist/animation/AnimationMixer.d.ts.map +1 -1
  4. package/dist/animation/AnimationMixer.js +36 -29
  5. package/dist/animation/AnimationMixer.js.map +1 -1
  6. package/dist/animation/FootIk.d.ts +9 -0
  7. package/dist/animation/FootIk.d.ts.map +1 -1
  8. package/dist/animation/FootIk.js +22 -8
  9. package/dist/animation/FootIk.js.map +1 -1
  10. package/dist/animation/HumanoidRetargeting.d.ts +6 -2
  11. package/dist/animation/HumanoidRetargeting.d.ts.map +1 -1
  12. package/dist/animation/HumanoidRetargeting.js +18 -8
  13. package/dist/animation/HumanoidRetargeting.js.map +1 -1
  14. package/dist/animation/LocomotionEvidence.d.ts +34 -0
  15. package/dist/animation/LocomotionEvidence.d.ts.map +1 -0
  16. package/dist/animation/LocomotionEvidence.js +48 -0
  17. package/dist/animation/LocomotionEvidence.js.map +1 -0
  18. package/dist/animation/RootMotion.d.ts +13 -4
  19. package/dist/animation/RootMotion.d.ts.map +1 -1
  20. package/dist/animation/RootMotion.js +21 -1
  21. package/dist/animation/RootMotion.js.map +1 -1
  22. package/dist/animation/index.d.ts +1 -0
  23. package/dist/animation/index.d.ts.map +1 -1
  24. package/dist/animation/index.js +1 -0
  25. package/dist/animation/index.js.map +1 -1
  26. package/dist/assets/GLTFAnimationRuntime.d.ts +84 -4
  27. package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
  28. package/dist/assets/GLTFAnimationRuntime.js +308 -23
  29. package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
  30. package/dist/assets/GLTFCompressionDecoders.d.ts +1 -0
  31. package/dist/assets/GLTFCompressionDecoders.d.ts.map +1 -1
  32. package/dist/assets/GLTFCompressionDecoders.js +20 -5
  33. package/dist/assets/GLTFCompressionDecoders.js.map +1 -1
  34. package/dist/assets/GLTFLoader.d.ts.map +1 -1
  35. package/dist/assets/GLTFLoader.js +21 -7
  36. package/dist/assets/GLTFLoader.js.map +1 -1
  37. package/dist/assets/KTX2BasisTextureTranscoder.d.ts.map +1 -1
  38. package/dist/assets/KTX2BasisTextureTranscoder.js +8 -0
  39. package/dist/assets/KTX2BasisTextureTranscoder.js.map +1 -1
  40. package/dist/controls/MapControls.d.ts +1 -1
  41. package/dist/controls/MapControls.d.ts.map +1 -1
  42. package/dist/controls/MapControls.js +3 -3
  43. package/dist/controls/MapControls.js.map +1 -1
  44. package/dist/controls/OrbitControls.d.ts +17 -3
  45. package/dist/controls/OrbitControls.d.ts.map +1 -1
  46. package/dist/controls/OrbitControls.js +24 -7
  47. package/dist/controls/OrbitControls.js.map +1 -1
  48. package/dist/controls/TrackballControls.d.ts.map +1 -1
  49. package/dist/controls/TrackballControls.js +2 -0
  50. package/dist/controls/TrackballControls.js.map +1 -1
  51. package/dist/create-aura3d/index.js +1 -1
  52. package/dist/engine/agent-api/AnimationController.d.ts +5 -1
  53. package/dist/engine/agent-api/AnimationController.d.ts.map +1 -1
  54. package/dist/engine/agent-api/AnimationController.js +5 -0
  55. package/dist/engine/agent-api/AnimationController.js.map +1 -1
  56. package/dist/engine/agent-api/CameraProjection.d.ts +2 -0
  57. package/dist/engine/agent-api/CameraProjection.d.ts.map +1 -0
  58. package/dist/engine/agent-api/CameraProjection.js +2 -0
  59. package/dist/engine/agent-api/CameraProjection.js.map +1 -0
  60. package/dist/engine/agent-api/DeferredFrameResources.d.ts +2 -0
  61. package/dist/engine/agent-api/DeferredFrameResources.d.ts.map +1 -0
  62. package/dist/engine/agent-api/DeferredFrameResources.js +2 -0
  63. package/dist/engine/agent-api/DeferredFrameResources.js.map +1 -0
  64. package/dist/engine/agent-api/FootPlanting.d.ts +6 -0
  65. package/dist/engine/agent-api/FootPlanting.d.ts.map +1 -1
  66. package/dist/engine/agent-api/FootPlanting.js +2 -1
  67. package/dist/engine/agent-api/FootPlanting.js.map +1 -1
  68. package/dist/engine/agent-api/GameCameraRigs.d.ts.map +1 -1
  69. package/dist/engine/agent-api/GameCameraRigs.js +7 -2
  70. package/dist/engine/agent-api/GameCameraRigs.js.map +1 -1
  71. package/dist/engine/agent-api/LabelTelemetry.d.ts +8 -2
  72. package/dist/engine/agent-api/LabelTelemetry.d.ts.map +1 -1
  73. package/dist/engine/agent-api/LabelTelemetry.js +18 -4
  74. package/dist/engine/agent-api/LabelTelemetry.js.map +1 -1
  75. package/dist/engine/agent-api/ModelInstanceMatrices.d.ts +2 -0
  76. package/dist/engine/agent-api/ModelInstanceMatrices.d.ts.map +1 -0
  77. package/dist/engine/agent-api/ModelInstanceMatrices.js +2 -0
  78. package/dist/engine/agent-api/ModelInstanceMatrices.js.map +1 -0
  79. package/dist/engine/agent-api/NavigationCrowds.d.ts +28 -0
  80. package/dist/engine/agent-api/NavigationCrowds.d.ts.map +1 -1
  81. package/dist/engine/agent-api/NavigationCrowds.js +73 -1
  82. package/dist/engine/agent-api/NavigationCrowds.js.map +1 -1
  83. package/dist/engine/agent-api/PngTexturePixels.d.ts +9 -0
  84. package/dist/engine/agent-api/PngTexturePixels.d.ts.map +1 -0
  85. package/dist/engine/agent-api/PngTexturePixels.js +53 -0
  86. package/dist/engine/agent-api/PngTexturePixels.js.map +1 -0
  87. package/dist/engine/agent-api/RootDiagnosticSnapshot.d.ts +2 -0
  88. package/dist/engine/agent-api/RootDiagnosticSnapshot.d.ts.map +1 -0
  89. package/dist/engine/agent-api/RootDiagnosticSnapshot.js +2 -0
  90. package/dist/engine/agent-api/RootDiagnosticSnapshot.js.map +1 -0
  91. package/dist/engine/agent-api/RootFrameClock.d.ts +2 -0
  92. package/dist/engine/agent-api/RootFrameClock.d.ts.map +1 -0
  93. package/dist/engine/agent-api/RootFrameClock.js +2 -0
  94. package/dist/engine/agent-api/RootFrameClock.js.map +1 -0
  95. package/dist/engine/agent-api/RootPerformanceQuality.d.ts +2 -0
  96. package/dist/engine/agent-api/RootPerformanceQuality.d.ts.map +1 -0
  97. package/dist/engine/agent-api/RootPerformanceQuality.js +2 -0
  98. package/dist/engine/agent-api/RootPerformanceQuality.js.map +1 -0
  99. package/dist/engine/agent-api/RootRuntimeSupport.d.ts +61 -0
  100. package/dist/engine/agent-api/RootRuntimeSupport.d.ts.map +1 -0
  101. package/dist/engine/agent-api/RootRuntimeSupport.js +127 -0
  102. package/dist/engine/agent-api/RootRuntimeSupport.js.map +1 -0
  103. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +22 -0
  104. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
  105. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
  106. package/dist/engine/agent-api/WorldLabelRenderer.d.ts +13 -2
  107. package/dist/engine/agent-api/WorldLabelRenderer.d.ts.map +1 -1
  108. package/dist/engine/agent-api/WorldLabelRenderer.js +58 -26
  109. package/dist/engine/agent-api/WorldLabelRenderer.js.map +1 -1
  110. package/dist/engine/agent-api/index.d.ts +103 -8
  111. package/dist/engine/agent-api/index.d.ts.map +1 -1
  112. package/dist/engine/agent-api/index.js +750 -242
  113. package/dist/engine/agent-api/index.js.map +1 -1
  114. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  115. package/dist/engine/production-runtime/RootGpuParticleWorkload.d.ts +34 -0
  116. package/dist/engine/production-runtime/RootGpuParticleWorkload.d.ts.map +1 -0
  117. package/dist/engine/production-runtime/RootGpuParticleWorkload.js +117 -0
  118. package/dist/engine/production-runtime/RootGpuParticleWorkload.js.map +1 -0
  119. package/dist/engine/production-runtime/RootRenderSourceBridge.d.ts +2 -0
  120. package/dist/engine/production-runtime/RootRenderSourceBridge.d.ts.map +1 -0
  121. package/dist/engine/production-runtime/RootRenderSourceBridge.js +2 -0
  122. package/dist/engine/production-runtime/RootRenderSourceBridge.js.map +1 -0
  123. package/dist/engine/production-runtime/TypedGLBActor.d.ts +6 -0
  124. package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
  125. package/dist/engine/production-runtime/TypedGLBActor.js +13 -0
  126. package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
  127. package/dist/engine/production-runtime/index.d.ts +2 -0
  128. package/dist/engine/production-runtime/index.d.ts.map +1 -1
  129. package/dist/engine/production-runtime/index.js +2 -0
  130. package/dist/engine/production-runtime/index.js.map +1 -1
  131. package/dist/input/Haptics.d.ts +1 -1
  132. package/dist/input/Haptics.js +1 -1
  133. package/dist/input/InputSystem.d.ts.map +1 -1
  134. package/dist/input/InputSystem.js +1 -0
  135. package/dist/input/InputSystem.js.map +1 -1
  136. package/dist/input/PointerDevice.d.ts +1 -0
  137. package/dist/input/PointerDevice.d.ts.map +1 -1
  138. package/dist/input/PointerDevice.js +1 -1
  139. package/dist/input/PointerDevice.js.map +1 -1
  140. package/dist/input/controls/OrbitControls.d.ts +44 -1
  141. package/dist/input/controls/OrbitControls.d.ts.map +1 -1
  142. package/dist/input/controls/OrbitControls.js +151 -12
  143. package/dist/input/controls/OrbitControls.js.map +1 -1
  144. package/dist/lean/base.d.ts +1 -1
  145. package/dist/lean/base.d.ts.map +1 -1
  146. package/dist/lean/base.js +1 -1
  147. package/dist/lean/base.js.map +1 -1
  148. package/dist/lean/index.js +1 -1
  149. package/dist/lean/index.js.map +1 -1
  150. package/dist/navigation-recast/index.d.ts +116 -0
  151. package/dist/navigation-recast/index.d.ts.map +1 -0
  152. package/dist/navigation-recast/index.js +247 -0
  153. package/dist/navigation-recast/index.js.map +1 -0
  154. package/dist/physics-rapier/HeightfieldLayout.d.ts +12 -0
  155. package/dist/physics-rapier/HeightfieldLayout.d.ts.map +1 -0
  156. package/dist/physics-rapier/HeightfieldLayout.js +19 -0
  157. package/dist/physics-rapier/HeightfieldLayout.js.map +1 -0
  158. package/dist/physics-rapier/index.d.ts.map +1 -1
  159. package/dist/physics-rapier/index.js +2 -1
  160. package/dist/physics-rapier/index.js.map +1 -1
  161. package/dist/rendering/CascadedShadowMaps.d.ts.map +1 -1
  162. package/dist/rendering/CascadedShadowMaps.js +3 -1
  163. package/dist/rendering/CascadedShadowMaps.js.map +1 -1
  164. package/dist/rendering/ExtensionScalarAtlas.d.ts +18 -0
  165. package/dist/rendering/ExtensionScalarAtlas.d.ts.map +1 -0
  166. package/dist/rendering/ExtensionScalarAtlas.js +107 -0
  167. package/dist/rendering/ExtensionScalarAtlas.js.map +1 -0
  168. package/dist/rendering/LeanWebGL2Device.d.ts +265 -0
  169. package/dist/rendering/LeanWebGL2Device.d.ts.map +1 -0
  170. package/dist/rendering/LeanWebGL2Device.js +4001 -0
  171. package/dist/rendering/LeanWebGL2Device.js.map +1 -0
  172. package/dist/rendering/MaterialBinding.js +1 -1
  173. package/dist/rendering/MaterialBinding.js.map +1 -1
  174. package/dist/rendering/PlanarReflection.d.ts +2 -2
  175. package/dist/rendering/PlanarReflection.js +3 -3
  176. package/dist/rendering/PlanarReflection.js.map +1 -1
  177. package/dist/rendering/PostProcessPass.d.ts +19 -0
  178. package/dist/rendering/PostProcessPass.d.ts.map +1 -1
  179. package/dist/rendering/PostProcessPass.js +64 -32
  180. package/dist/rendering/PostProcessPass.js.map +1 -1
  181. package/dist/rendering/ProjectionMath.d.ts +3 -0
  182. package/dist/rendering/ProjectionMath.d.ts.map +1 -0
  183. package/dist/rendering/ProjectionMath.js +26 -0
  184. package/dist/rendering/ProjectionMath.js.map +1 -0
  185. package/dist/rendering/ReflectionSurfaces.d.ts +4 -1
  186. package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
  187. package/dist/rendering/ReflectionSurfaces.js +10 -1
  188. package/dist/rendering/ReflectionSurfaces.js.map +1 -1
  189. package/dist/rendering/RenderDevice.d.ts +5 -0
  190. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  191. package/dist/rendering/RenderDevice.js.map +1 -1
  192. package/dist/rendering/Renderer.d.ts +9 -0
  193. package/dist/rendering/Renderer.d.ts.map +1 -1
  194. package/dist/rendering/Renderer.js +94 -8
  195. package/dist/rendering/Renderer.js.map +1 -1
  196. package/dist/rendering/RendererPostprocessPlan.d.ts +16 -3
  197. package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
  198. package/dist/rendering/RendererPostprocessPlan.js +16 -2
  199. package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
  200. package/dist/rendering/ScreenSpaceReflectionPass.d.ts +43 -0
  201. package/dist/rendering/ScreenSpaceReflectionPass.d.ts.map +1 -0
  202. package/dist/rendering/ScreenSpaceReflectionPass.js +58 -0
  203. package/dist/rendering/ScreenSpaceReflectionPass.js.map +1 -0
  204. package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
  205. package/dist/rendering/ShaderLibrary.js +168 -197
  206. package/dist/rendering/ShaderLibrary.js.map +1 -1
  207. package/dist/rendering/ShaderLibraryCore.d.ts +3 -0
  208. package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
  209. package/dist/rendering/ShaderLibraryCore.js +3 -0
  210. package/dist/rendering/ShaderLibraryCore.js.map +1 -1
  211. package/dist/rendering/TemporalHistory.d.ts +37 -0
  212. package/dist/rendering/TemporalHistory.d.ts.map +1 -0
  213. package/dist/rendering/TemporalHistory.js +135 -0
  214. package/dist/rendering/TemporalHistory.js.map +1 -0
  215. package/dist/rendering/TemporalMath.d.ts +3 -0
  216. package/dist/rendering/TemporalMath.d.ts.map +1 -0
  217. package/dist/rendering/TemporalMath.js +9 -0
  218. package/dist/rendering/TemporalMath.js.map +1 -0
  219. package/dist/rendering/TexturedPBRMaterial.d.ts +3 -0
  220. package/dist/rendering/TexturedPBRMaterial.d.ts.map +1 -1
  221. package/dist/rendering/TexturedPBRMaterial.js +65 -3
  222. package/dist/rendering/TexturedPBRMaterial.js.map +1 -1
  223. package/dist/rendering/WebGL2Device.d.ts +15 -0
  224. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  225. package/dist/rendering/WebGL2Device.js +328 -90
  226. package/dist/rendering/WebGL2Device.js.map +1 -1
  227. package/dist/rendering/WebGPUDevice.d.ts +16 -5
  228. package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
  229. package/dist/rendering/WebGPUDevice.js +357 -58
  230. package/dist/rendering/WebGPUDevice.js.map +1 -1
  231. package/dist/rendering/WebGPUExtensionAtlas.d.ts +6 -0
  232. package/dist/rendering/WebGPUExtensionAtlas.d.ts.map +1 -0
  233. package/dist/rendering/WebGPUExtensionAtlas.js +225 -0
  234. package/dist/rendering/WebGPUExtensionAtlas.js.map +1 -0
  235. package/dist/rendering/effects/GPUParticleBackend.d.ts +4 -2
  236. package/dist/rendering/effects/GPUParticleBackend.d.ts.map +1 -1
  237. package/dist/rendering/effects/GPUParticleBackend.js +20 -2
  238. package/dist/rendering/effects/GPUParticleBackend.js.map +1 -1
  239. package/dist/rendering/effects/ResidentGPUParticleRenderer.d.ts +158 -0
  240. package/dist/rendering/effects/ResidentGPUParticleRenderer.d.ts.map +1 -0
  241. package/dist/rendering/effects/ResidentGPUParticleRenderer.js +576 -0
  242. package/dist/rendering/effects/ResidentGPUParticleRenderer.js.map +1 -0
  243. package/dist/rendering/extension-scalar-atlas.d.ts +3 -0
  244. package/dist/rendering/extension-scalar-atlas.d.ts.map +1 -0
  245. package/dist/rendering/extension-scalar-atlas.js +2 -0
  246. package/dist/rendering/extension-scalar-atlas.js.map +1 -0
  247. package/dist/rendering/index.d.ts +1 -0
  248. package/dist/rendering/index.d.ts.map +1 -1
  249. package/dist/rendering/index.js +1 -0
  250. package/dist/rendering/index.js.map +1 -1
  251. package/dist/rendering/lean/LeanProductionRenderer.d.ts.map +1 -1
  252. package/dist/rendering/lean/LeanProductionRenderer.js +2 -2
  253. package/dist/rendering/lean/LeanProductionRenderer.js.map +1 -1
  254. package/dist/rendering/lean-core-runtime.d.ts +13 -0
  255. package/dist/rendering/lean-core-runtime.d.ts.map +1 -0
  256. package/dist/rendering/lean-core-runtime.js +10 -0
  257. package/dist/rendering/lean-core-runtime.js.map +1 -0
  258. package/dist/rendering/postprocess/NativeBloomPyramid.d.ts +17 -1
  259. package/dist/rendering/postprocess/NativeBloomPyramid.d.ts.map +1 -1
  260. package/dist/rendering/postprocess/NativeBloomPyramid.js +31 -1
  261. package/dist/rendering/postprocess/NativeBloomPyramid.js.map +1 -1
  262. package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts +1 -0
  263. package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
  264. package/dist/rendering/production-runtime/ProductionRendererTypes.js.map +1 -1
  265. package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts +3 -0
  266. package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts.map +1 -1
  267. package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js +8 -1
  268. package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js.map +1 -1
  269. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts +4 -0
  270. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
  271. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +15 -0
  272. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
  273. package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts +7 -1
  274. package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
  275. package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +28 -2
  276. package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
  277. package/dist/rendering/production-runtime/framegraph/FrameGraph.d.ts +4 -2
  278. package/dist/rendering/production-runtime/framegraph/FrameGraph.d.ts.map +1 -1
  279. package/dist/rendering/production-runtime/framegraph/FrameGraph.js +62 -4
  280. package/dist/rendering/production-runtime/framegraph/FrameGraph.js.map +1 -1
  281. package/dist/rendering/production-runtime/framegraph/NativeFrameGraphBindings.d.ts +32 -0
  282. package/dist/rendering/production-runtime/framegraph/NativeFrameGraphBindings.d.ts.map +1 -0
  283. package/dist/rendering/production-runtime/framegraph/NativeFrameGraphBindings.js +111 -0
  284. package/dist/rendering/production-runtime/framegraph/NativeFrameGraphBindings.js.map +1 -0
  285. package/dist/rendering/production-runtime/framegraph/RenderPass.d.ts +23 -0
  286. package/dist/rendering/production-runtime/framegraph/RenderPass.d.ts.map +1 -1
  287. package/dist/rendering/production-runtime/framegraph/RenderPass.js +87 -1
  288. package/dist/rendering/production-runtime/framegraph/RenderPass.js.map +1 -1
  289. package/dist/rendering/production-runtime/index.d.ts +2 -0
  290. package/dist/rendering/production-runtime/index.d.ts.map +1 -1
  291. package/dist/rendering/production-runtime/index.js +1 -0
  292. package/dist/rendering/production-runtime/index.js.map +1 -1
  293. package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts +4 -12
  294. package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
  295. package/dist/rendering/production-runtime/passes/DepthPrepass.js +3 -11
  296. package/dist/rendering/production-runtime/passes/DepthPrepass.js.map +1 -1
  297. package/dist/rendering/production-runtime/passes/FramegraphTopology.js +1 -1
  298. package/dist/rendering/production-runtime/passes/FramegraphTopology.js.map +1 -1
  299. package/dist/rendering/production-runtime/passes/OpaquePass.d.ts +3 -8
  300. package/dist/rendering/production-runtime/passes/OpaquePass.d.ts.map +1 -1
  301. package/dist/rendering/production-runtime/passes/OpaquePass.js +3 -1
  302. package/dist/rendering/production-runtime/passes/OpaquePass.js.map +1 -1
  303. package/dist/rendering/production-runtime/passes/ShadowPass.d.ts +3 -8
  304. package/dist/rendering/production-runtime/passes/ShadowPass.d.ts.map +1 -1
  305. package/dist/rendering/production-runtime/passes/ShadowPass.js +2 -0
  306. package/dist/rendering/production-runtime/passes/ShadowPass.js.map +1 -1
  307. package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts +3 -7
  308. package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
  309. package/dist/rendering/production-runtime/passes/SkyboxPass.js +2 -0
  310. package/dist/rendering/production-runtime/passes/SkyboxPass.js.map +1 -1
  311. package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts +7 -10
  312. package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
  313. package/dist/rendering/production-runtime/passes/ToneMappingPass.js +9 -0
  314. package/dist/rendering/production-runtime/passes/ToneMappingPass.js.map +1 -1
  315. package/dist/rendering/production-runtime/passes/TransparentPass.d.ts +4 -9
  316. package/dist/rendering/production-runtime/passes/TransparentPass.d.ts.map +1 -1
  317. package/dist/rendering/production-runtime/passes/TransparentPass.js +6 -1
  318. package/dist/rendering/production-runtime/passes/TransparentPass.js.map +1 -1
  319. package/dist/rendering/reflection-surfaces.d.ts +5 -0
  320. package/dist/rendering/reflection-surfaces.d.ts.map +1 -0
  321. package/dist/rendering/reflection-surfaces.js +3 -0
  322. package/dist/rendering/reflection-surfaces.js.map +1 -0
  323. package/dist/rendering/webgpu/WebGPUPostShaders.d.ts +2 -3
  324. package/dist/rendering/webgpu/WebGPUPostShaders.d.ts.map +1 -1
  325. package/dist/rendering/webgpu/WebGPUPostShaders.js +2 -3
  326. package/dist/rendering/webgpu/WebGPUPostShaders.js.map +1 -1
  327. package/dist/rendering/webgpu/WebGPUTemporal.d.ts +17 -0
  328. package/dist/rendering/webgpu/WebGPUTemporal.d.ts.map +1 -0
  329. package/dist/rendering/webgpu/WebGPUTemporal.js +64 -0
  330. package/dist/rendering/webgpu/WebGPUTemporal.js.map +1 -0
  331. package/dist/rendering/webgpu.d.ts +6 -0
  332. package/dist/rendering/webgpu.d.ts.map +1 -1
  333. package/dist/rendering/webgpu.js +4 -0
  334. package/dist/rendering/webgpu.js.map +1 -1
  335. package/package.json +37 -24
  336. package/templates/cinematic-scene/package.json +2 -2
  337. package/templates/cinematic-scene/src/main.ts +14 -2
  338. package/templates/mini-game/package.json +2 -2
  339. package/templates/product-viewer/package.json +2 -2
  340. package/templates/production-asset-inspector/package.json +1 -1
  341. package/templates/production-material-studio/package.json +1 -1
  342. package/templates/production-product-configurator/package.json +1 -1
  343. package/templates/production-product-viewer/package.json +1 -1
  344. package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +0 -8
  345. package/templates/cinematic-scene/node_modules/.vite/deps/package.json +0 -3
  346. package/templates/cinematic-scene/test-results/.last-run.json +0 -6
  347. package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +0 -64
  348. package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +0 -8
  349. package/templates/product-viewer/node_modules/.vite/deps/package.json +0 -3
@@ -11,7 +11,7 @@ import {} from "./MorphTarget.js";
11
11
  import { computeSkinnedGeometryBounds, computeSkinnedMorphTargetWeightedBounds } from "./SkinningBounds.js";
12
12
  import { RenderGraph } from "./RenderGraph.js";
13
13
  import { BloomPass, FXAAPass, ToneMappingPass, bloomFloatPixels, bloomPixels, chromaticAberrationPixels, colorGradePixels, contactShadowPixels, createDepthTextureBinding, depthOfFieldPixels, filmGrainPixels, fusedLdrPostprocessPixels, fxaaPixels, motionBlurPixels, outlinePixels, ssaoPixels, ssrPixels, taaPixels, toneMapFloatPixels, toneMapPixels, volumetricLightPixels, writePostProcessPixels } from "./PostProcessPass.js";
14
- import { createRendererPostprocessPasses, createRendererPostprocessPlanDiagnostics } from "./RendererPostprocessPlan.js";
14
+ import { bindRendererSsrProjection, createRendererPostprocessPasses, createRendererPostprocessPlanDiagnostics } from "./RendererPostprocessPlan.js";
15
15
  import { ShadowMap } from "./ShadowMap.js";
16
16
  import { ShadowPass } from "./ShadowPass.js";
17
17
  import { Sampler } from "./Sampler.js";
@@ -78,6 +78,10 @@ export class Renderer {
78
78
  * still reallocates exactly once.
79
79
  */
80
80
  shadowDepthTarget = null;
81
+ lastShadowEvidence = null;
82
+ submittedShadowFrameId = 0;
83
+ /** Actual shadow resources selected for the most recent submitted forward pass. */
84
+ getShadowEvidence() { return this.lastShadowEvidence; }
81
85
  /**
82
86
  * Forward-color target reused by the postprocess path across frames.
83
87
  *
@@ -94,8 +98,10 @@ export class Renderer {
94
98
  disposed = false;
95
99
  animationLoop = null;
96
100
  fusedLdrPostprocessScratch = {};
97
- constructor(device, options) {
101
+ constructor(device, options, temporalHistory) {
98
102
  this.device = device;
103
+ this.temporalHistory = temporalHistory;
104
+ this.unsubscribeTemporalDeviceLoss = device.onDeviceLost?.(() => this.temporalHistory.dispose());
99
105
  this.canvas = options.canvas;
100
106
  this.width = options.width ?? inferInitialCanvasDimension(options.canvas, "width");
101
107
  this.height = options.height ?? inferInitialCanvasDimension(options.canvas, "height");
@@ -110,7 +116,11 @@ export class Renderer {
110
116
  }
111
117
  const shaderLibrary = options.shaderLibrary
112
118
  ?? (await import("./ShaderLibrary.js")).createDefaultShaderLibrary();
113
- return new Renderer(device, { ...options, shaderLibrary });
119
+ // Temporal history is an optional runtime subsystem. Keep it behind the
120
+ // asynchronous renderer factory so non-temporal apps do not place its
121
+ // shaders, materials, and target owner on their critical download path.
122
+ const { TemporalHistory } = await import("./TemporalHistory.js");
123
+ return new Renderer(device, { ...options, shaderLibrary }, new TemporalHistory());
114
124
  }
115
125
  getFeatureReport() {
116
126
  return createRendererFeatureReport(this.device);
@@ -120,6 +130,8 @@ export class Renderer {
120
130
  if (width <= 0 || height <= 0 || !Number.isInteger(width) || !Number.isInteger(height)) {
121
131
  throw new RenderDeviceError("Renderer dimensions must be positive integers", "INVALID_FRAME_SIZE", { width, height });
122
132
  }
133
+ if (this.width !== width || this.height !== height)
134
+ this.temporalHistory.dispose();
123
135
  this.width = width;
124
136
  this.height = height;
125
137
  this.resizeCanvas(width, height);
@@ -155,6 +167,9 @@ export class Renderer {
155
167
  loop.start();
156
168
  return loop;
157
169
  }
170
+ temporalHistory;
171
+ unsubscribeTemporalDeviceLoss;
172
+ resetTemporalHistory(_reason = "explicit-reset") { this.temporalHistory.reset(); }
158
173
  render(sourceOrInput, camera) {
159
174
  this.assertAlive();
160
175
  const { source, camera: inputCamera } = normalizeRendererInput(sourceOrInput, camera);
@@ -190,7 +205,9 @@ export class Renderer {
190
205
  cameraPosition = sourceCameraPosition ?? autoFrame.cameraPosition;
191
206
  }
192
207
  }
193
- const postprocess = collectPostprocess(source);
208
+ let postprocess = collectPostprocess(source);
209
+ if (!postprocess?.temporal || (!postprocess.motionBlur && !postprocess.taa))
210
+ this.temporalHistory.reset();
194
211
  const ownedTargets = [];
195
212
  const ownedShadowPasses = [];
196
213
  this.graph.clear();
@@ -221,7 +238,10 @@ export class Renderer {
221
238
  backend: this.device.kind
222
239
  });
223
240
  }
224
- const sampleCount = postprocess.sampleCount ?? (this.device.kind === "webgpu" && requiresDepthTexture ? 1 : 4);
241
+ // Temporal AA owns subpixel coverage. Pre-resolving MSAA before tone
242
+ // mapping gives it nonlinear mixed-coverage colors while velocity remains
243
+ // single-sample, biasing moving silhouettes and filtering them twice.
244
+ const sampleCount = postprocess.sampleCount ?? (postprocess.taa && postprocess.temporal ? 1 : this.device.kind === "webgpu" && requiresDepthTexture ? 1 : 4);
225
245
  // Reused across frames. It still occupies `ownedTargets[0]`, because the postprocess chain and
226
246
  // the diagnostics builder both read the forward target from that slot; the end-of-frame
227
247
  // disposal loop skips it via `isReusedTarget` so the reuse is safe.
@@ -231,6 +251,7 @@ export class Renderer {
231
251
  }
232
252
  this.device.beginFrame(this.width, this.height);
233
253
  try {
254
+ this.lastShadowEvidence = null;
234
255
  const rendererShadowMap = explicitShadowMap ?? this.executeRendererShadowMap({
235
256
  shadowOptions,
236
257
  source,
@@ -240,6 +261,14 @@ export class Renderer {
240
261
  ownedShadowPasses,
241
262
  camera: resolvedCamera?.camera
242
263
  });
264
+ this.lastShadowEvidence = rendererShadowMap ? {
265
+ lightMatrix: Array.from(rendererShadowMap.lightMatrix),
266
+ cascades: rendererShadowMap.cascades?.map(c => ({ index: c.index, near: c.near, far: c.far, lightMatrix: Array.from(c.shadowMap.lightMatrix) })) ?? [],
267
+ pointFaceMatrices: rendererShadowMap.pointLight ? Array.from(rendererShadowMap.pointLight.faceMatrices) : [],
268
+ pointFaceRects: rendererShadowMap.pointLight ? Array.from(rendererShadowMap.pointLight.faceRects) : [],
269
+ stabilize: shadowOptions?.stabilize !== false,
270
+ shadowRenderTargetsAllocated: this.device.getDiagnostics().shadowRenderTargetsAllocated ?? null,
271
+ } : null;
243
272
  if (postprocess) {
244
273
  const forwardTarget = ownedTargets[0];
245
274
  if (!forwardTarget) {
@@ -259,6 +288,14 @@ export class Renderer {
259
288
  shaderLibrary: this.shaderLibrary
260
289
  }));
261
290
  }
291
+ if (postprocess?.temporal && (postprocess.motionBlur || postprocess.taa)) {
292
+ if (postprocess.execution === "cpu-deterministic" || !this.device.presentLdrPostprocess)
293
+ throw new RenderDeviceError("Renderer temporal effects require native GPU presentation", "TEMPORAL_NATIVE_REQUIRED");
294
+ const temporal = this.temporalHistory.prepare(this.device, this.width, this.height, items, cameraViewProjection, { ...postprocess.temporal, jitter: Boolean(postprocess.taa) });
295
+ items = this.temporalHistory.renderItems;
296
+ postprocess = { ...postprocess, ...(postprocess.motionBlur ? { motionBlur: { ...postprocess.motionBlur, temporal } } : {}), ...(postprocess.taa ? { taa: { ...postprocess.taa, temporal } } : {}) };
297
+ this.device.setRenderTarget(ownedTargets[0]);
298
+ }
262
299
  this.graph.addPass(new ForwardPass({
263
300
  items,
264
301
  lights,
@@ -274,9 +311,18 @@ export class Renderer {
274
311
  }));
275
312
  this.graph.execute({ device: this.device, width: this.width, height: this.height });
276
313
  if (postprocess) {
314
+ postprocess = bindRendererSsrProjection(postprocess, cameraViewProjection ?? identityMat4());
277
315
  this.executePostprocess(postprocess, ownedTargets, explicitRenderTarget);
316
+ if (postprocess.temporal && (postprocess.motionBlur || postprocess.taa))
317
+ this.temporalHistory.commit();
278
318
  }
279
319
  }
320
+ catch (error) {
321
+ this.lastShadowEvidence = null;
322
+ if (postprocess?.temporal)
323
+ this.temporalHistory.reset();
324
+ throw error;
325
+ }
280
326
  finally {
281
327
  this.device.endFrame();
282
328
  for (const shadowPass of ownedShadowPasses) {
@@ -290,6 +336,9 @@ export class Renderer {
290
336
  target.dispose();
291
337
  }
292
338
  }
339
+ this.submittedShadowFrameId += 1;
340
+ if (this.lastShadowEvidence)
341
+ this.lastShadowEvidence = { ...this.lastShadowEvidence, submissionFrameId: this.submittedShadowFrameId };
293
342
  return withRendererFrameDiagnostics(this.device.getDiagnostics(), collectionDiagnostics, createPostprocessDiagnostics(postprocess, ownedTargets, this.width, this.height, {
294
343
  targetFormat: postprocessTargetFormat,
295
344
  nativeLdrPostprocess: Boolean(this.device.presentLdrPostprocess),
@@ -331,7 +380,9 @@ export class Renderer {
331
380
  cameraPosition = sourceCameraPosition ?? autoFrame.cameraPosition;
332
381
  }
333
382
  }
334
- const postprocess = collectPostprocess(source);
383
+ let postprocess = collectPostprocess(source);
384
+ if (!postprocess?.temporal || (!postprocess.motionBlur && !postprocess.taa))
385
+ this.temporalHistory.reset();
335
386
  const ownedTargets = [];
336
387
  const ownedShadowPasses = [];
337
388
  this.graph.clear();
@@ -362,7 +413,10 @@ export class Renderer {
362
413
  backend: this.device.kind
363
414
  });
364
415
  }
365
- const sampleCount = postprocess.sampleCount ?? (this.device.kind === "webgpu" && requiresDepthTexture ? 1 : 4);
416
+ // Temporal AA owns subpixel coverage. Pre-resolving MSAA before tone
417
+ // mapping gives it nonlinear mixed-coverage colors while velocity remains
418
+ // single-sample, biasing moving silhouettes and filtering them twice.
419
+ const sampleCount = postprocess.sampleCount ?? (postprocess.taa && postprocess.temporal ? 1 : this.device.kind === "webgpu" && requiresDepthTexture ? 1 : 4);
366
420
  // Reused across frames. It still occupies `ownedTargets[0]`, because the postprocess chain and
367
421
  // the diagnostics builder both read the forward target from that slot; the end-of-frame
368
422
  // disposal loop skips it via `isReusedTarget` so the reuse is safe.
@@ -372,6 +426,7 @@ export class Renderer {
372
426
  }
373
427
  this.device.beginFrame(this.width, this.height);
374
428
  try {
429
+ this.lastShadowEvidence = null;
375
430
  const rendererShadowMap = explicitShadowMap ?? this.executeRendererShadowMap({
376
431
  shadowOptions,
377
432
  source,
@@ -381,6 +436,14 @@ export class Renderer {
381
436
  ownedShadowPasses,
382
437
  camera: resolvedCamera?.camera
383
438
  });
439
+ this.lastShadowEvidence = rendererShadowMap ? {
440
+ lightMatrix: Array.from(rendererShadowMap.lightMatrix),
441
+ cascades: rendererShadowMap.cascades?.map(c => ({ index: c.index, near: c.near, far: c.far, lightMatrix: Array.from(c.shadowMap.lightMatrix) })) ?? [],
442
+ pointFaceMatrices: rendererShadowMap.pointLight ? Array.from(rendererShadowMap.pointLight.faceMatrices) : [],
443
+ pointFaceRects: rendererShadowMap.pointLight ? Array.from(rendererShadowMap.pointLight.faceRects) : [],
444
+ stabilize: shadowOptions?.stabilize !== false,
445
+ shadowRenderTargetsAllocated: this.device.getDiagnostics().shadowRenderTargetsAllocated ?? null,
446
+ } : null;
384
447
  if (postprocess) {
385
448
  const forwardTarget = ownedTargets[0];
386
449
  if (!forwardTarget) {
@@ -400,6 +463,14 @@ export class Renderer {
400
463
  shaderLibrary: this.shaderLibrary
401
464
  }));
402
465
  }
466
+ if (postprocess?.temporal && (postprocess.motionBlur || postprocess.taa)) {
467
+ if (postprocess.execution === "cpu-deterministic" || !this.device.presentLdrPostprocess)
468
+ throw new RenderDeviceError("Renderer temporal effects require native GPU presentation", "TEMPORAL_NATIVE_REQUIRED");
469
+ const temporal = this.temporalHistory.prepare(this.device, this.width, this.height, items, cameraViewProjection, { ...postprocess.temporal, jitter: Boolean(postprocess.taa) });
470
+ items = this.temporalHistory.renderItems;
471
+ postprocess = { ...postprocess, ...(postprocess.motionBlur ? { motionBlur: { ...postprocess.motionBlur, temporal } } : {}), ...(postprocess.taa ? { taa: { ...postprocess.taa, temporal } } : {}) };
472
+ this.device.setRenderTarget(ownedTargets[0]);
473
+ }
403
474
  this.graph.addPass(new ForwardPass({
404
475
  items,
405
476
  lights,
@@ -415,9 +486,18 @@ export class Renderer {
415
486
  }));
416
487
  this.graph.execute({ device: this.device, width: this.width, height: this.height });
417
488
  if (postprocess) {
489
+ postprocess = bindRendererSsrProjection(postprocess, cameraViewProjection ?? identityMat4());
418
490
  await this.executePostprocessAsync(postprocess, ownedTargets, explicitRenderTarget);
491
+ if (postprocess.temporal && (postprocess.motionBlur || postprocess.taa))
492
+ this.temporalHistory.commit();
419
493
  }
420
494
  }
495
+ catch (error) {
496
+ this.lastShadowEvidence = null;
497
+ if (postprocess?.temporal)
498
+ this.temporalHistory.reset();
499
+ throw error;
500
+ }
421
501
  finally {
422
502
  this.device.endFrame();
423
503
  for (const shadowPass of ownedShadowPasses) {
@@ -431,6 +511,9 @@ export class Renderer {
431
511
  target.dispose();
432
512
  }
433
513
  }
514
+ this.submittedShadowFrameId += 1;
515
+ if (this.lastShadowEvidence)
516
+ this.lastShadowEvidence = { ...this.lastShadowEvidence, submissionFrameId: this.submittedShadowFrameId };
434
517
  return withRendererFrameDiagnostics(this.device.getDiagnostics(), collectionDiagnostics, createPostprocessDiagnostics(postprocess, ownedTargets, this.width, this.height, {
435
518
  targetFormat: postprocessTargetFormat,
436
519
  nativeLdrPostprocess: Boolean(this.device.presentLdrPostprocess),
@@ -465,12 +548,15 @@ export class Renderer {
465
548
  return this.device.getDiagnostics();
466
549
  }
467
550
  dispose() {
551
+ this.lastShadowEvidence = null;
468
552
  this.animationLoop?.stop();
469
553
  this.animationLoop = null;
470
554
  this.shadowDepthTarget?.dispose();
471
555
  this.shadowDepthTarget = null;
472
556
  this.forwardColorTarget?.target.dispose();
473
557
  this.forwardColorTarget = null;
558
+ this.unsubscribeTemporalDeviceLoss?.();
559
+ this.temporalHistory.dispose();
474
560
  this.device.dispose();
475
561
  this.disposed = true;
476
562
  }
@@ -990,7 +1076,7 @@ export class Renderer {
990
1076
  casters: [],
991
1077
  receivers: [],
992
1078
  padding: options.shadowOptions.cascadePadding ?? 0.25,
993
- stabilize: true
1079
+ stabilize: options.shadowOptions.stabilize !== false
994
1080
  });
995
1081
  const lightMatrices = fits.map(shadowCameraFitViewProjectionMatrix);
996
1082
  const cascadePass = new CascadedShadowPass({