@aura3d/engine 2.0.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (651) hide show
  1. package/README.md +25 -10
  2. package/dist/animation/AnimationAction.d.ts.map +1 -1
  3. package/dist/animation/AnimationAction.js +20 -2
  4. package/dist/animation/AnimationAction.js.map +1 -1
  5. package/dist/animation/AnimationLayer.d.ts +1 -0
  6. package/dist/animation/AnimationLayer.d.ts.map +1 -1
  7. package/dist/animation/AnimationLayer.js +24 -3
  8. package/dist/animation/AnimationLayer.js.map +1 -1
  9. package/dist/animation/AnimationMixer.d.ts +3 -0
  10. package/dist/animation/AnimationMixer.d.ts.map +1 -1
  11. package/dist/animation/AnimationMixer.js +69 -5
  12. package/dist/animation/AnimationMixer.js.map +1 -1
  13. package/dist/animation/AnimationTrack.d.ts.map +1 -1
  14. package/dist/animation/AnimationTrack.js +13 -0
  15. package/dist/animation/AnimationTrack.js.map +1 -1
  16. package/dist/animation/FootIk.d.ts +10 -0
  17. package/dist/animation/FootIk.d.ts.map +1 -1
  18. package/dist/animation/FootIk.js +95 -3
  19. package/dist/animation/FootIk.js.map +1 -1
  20. package/dist/animation/HumanoidRetargeting.d.ts +29 -0
  21. package/dist/animation/HumanoidRetargeting.d.ts.map +1 -1
  22. package/dist/animation/HumanoidRetargeting.js +41 -1
  23. package/dist/animation/HumanoidRetargeting.js.map +1 -1
  24. package/dist/animation/LocomotionKit.d.ts +6 -0
  25. package/dist/animation/LocomotionKit.d.ts.map +1 -1
  26. package/dist/animation/LocomotionKit.js +6 -0
  27. package/dist/animation/LocomotionKit.js.map +1 -1
  28. package/dist/animation/RootMotion.d.ts +27 -0
  29. package/dist/animation/RootMotion.d.ts.map +1 -1
  30. package/dist/animation/RootMotion.js +38 -0
  31. package/dist/animation/RootMotion.js.map +1 -1
  32. package/dist/animation/SpringBones.d.ts +28 -0
  33. package/dist/animation/SpringBones.d.ts.map +1 -1
  34. package/dist/animation/SpringBones.js +24 -0
  35. package/dist/animation/SpringBones.js.map +1 -1
  36. package/dist/assets/GLTFAnimationRuntime.d.ts +95 -2
  37. package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
  38. package/dist/assets/GLTFAnimationRuntime.js +328 -3
  39. package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
  40. package/dist/assets/GLTFExtensionSupport.js +2 -2
  41. package/dist/assets/GLTFExtensionSupport.js.map +1 -1
  42. package/dist/assets/GLTFLoader.d.ts +360 -1
  43. package/dist/assets/GLTFLoader.d.ts.map +1 -1
  44. package/dist/assets/GLTFLoader.js +197 -1
  45. package/dist/assets/GLTFLoader.js.map +1 -1
  46. package/dist/assets/KTX2BasisTextureTranscoder.d.ts +39 -0
  47. package/dist/assets/KTX2BasisTextureTranscoder.d.ts.map +1 -1
  48. package/dist/assets/KTX2BasisTextureTranscoder.js +70 -0
  49. package/dist/assets/KTX2BasisTextureTranscoder.js.map +1 -1
  50. package/dist/assets/TexturePipeline.d.ts +20 -0
  51. package/dist/assets/TexturePipeline.d.ts.map +1 -1
  52. package/dist/assets/TexturePipeline.js +20 -0
  53. package/dist/assets/TexturePipeline.js.map +1 -1
  54. package/dist/assets/TextureStreaming.d.ts +30 -0
  55. package/dist/assets/TextureStreaming.d.ts.map +1 -1
  56. package/dist/assets/TextureStreaming.js +53 -0
  57. package/dist/assets/TextureStreaming.js.map +1 -1
  58. package/dist/assets/browser-index.d.ts +7 -3
  59. package/dist/assets/browser-index.d.ts.map +1 -1
  60. package/dist/assets/browser-index.js +3 -1
  61. package/dist/assets/browser-index.js.map +1 -1
  62. package/dist/assets/gltf-runtime.d.ts +1 -1
  63. package/dist/assets/gltf-runtime.d.ts.map +1 -1
  64. package/dist/assets/gltf-runtime.js.map +1 -1
  65. package/dist/assets/index.d.ts +7 -7
  66. package/dist/assets/index.d.ts.map +1 -1
  67. package/dist/assets/index.js +3 -3
  68. package/dist/assets/index.js.map +1 -1
  69. package/dist/assets/loaders/HDRLoader.d.ts +40 -0
  70. package/dist/assets/loaders/HDRLoader.d.ts.map +1 -1
  71. package/dist/assets/loaders/HDRLoader.js +158 -0
  72. package/dist/assets/loaders/HDRLoader.js.map +1 -1
  73. package/dist/audio/AudioSource.d.ts +2 -0
  74. package/dist/audio/AudioSource.d.ts.map +1 -1
  75. package/dist/audio/AudioSource.js +7 -0
  76. package/dist/audio/AudioSource.js.map +1 -1
  77. package/dist/audio/Footsteps.d.ts +47 -0
  78. package/dist/audio/Footsteps.d.ts.map +1 -0
  79. package/dist/audio/Footsteps.js +73 -0
  80. package/dist/audio/Footsteps.js.map +1 -0
  81. package/dist/audio/GameMixer.d.ts +69 -0
  82. package/dist/audio/GameMixer.d.ts.map +1 -0
  83. package/dist/audio/GameMixer.js +141 -0
  84. package/dist/audio/GameMixer.js.map +1 -0
  85. package/dist/audio/PositionalEmitter.d.ts +95 -0
  86. package/dist/audio/PositionalEmitter.d.ts.map +1 -0
  87. package/dist/audio/PositionalEmitter.js +199 -0
  88. package/dist/audio/PositionalEmitter.js.map +1 -0
  89. package/dist/audio/index.d.ts +6 -0
  90. package/dist/audio/index.d.ts.map +1 -1
  91. package/dist/audio/index.js +3 -0
  92. package/dist/audio/index.js.map +1 -1
  93. package/dist/aura3d-cli/pull-bridge/profiles.d.ts +12 -2
  94. package/dist/aura3d-cli/pull-bridge/profiles.d.ts.map +1 -1
  95. package/dist/aura3d-cli/pull-bridge/profiles.js +35 -4
  96. package/dist/aura3d-cli/pull-bridge/profiles.js.map +1 -1
  97. package/dist/aura3d-cli/pull-bridge/provenance.d.ts +15 -1
  98. package/dist/aura3d-cli/pull-bridge/provenance.d.ts.map +1 -1
  99. package/dist/aura3d-cli/pull-bridge/provenance.js +60 -1
  100. package/dist/aura3d-cli/pull-bridge/provenance.js.map +1 -1
  101. package/dist/aura3d-cli/pull-bridge/scoring.d.ts +10 -1
  102. package/dist/aura3d-cli/pull-bridge/scoring.d.ts.map +1 -1
  103. package/dist/aura3d-cli/pull-bridge/scoring.js +9 -1
  104. package/dist/aura3d-cli/pull-bridge/scoring.js.map +1 -1
  105. package/dist/aura3d-cli/pull-bridge/search.js +2 -2
  106. package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
  107. package/dist/aura3d-cli/pull-bridge.d.ts +15 -3
  108. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
  109. package/dist/aura3d-cli/pull-bridge.js +68 -5
  110. package/dist/aura3d-cli/pull-bridge.js.map +1 -1
  111. package/dist/controls/ArcballControls.d.ts +92 -0
  112. package/dist/controls/ArcballControls.d.ts.map +1 -0
  113. package/dist/controls/ArcballControls.js +286 -0
  114. package/dist/controls/ArcballControls.js.map +1 -0
  115. package/dist/controls/DragControls.d.ts +13 -0
  116. package/dist/controls/DragControls.d.ts.map +1 -1
  117. package/dist/controls/DragControls.js +24 -1
  118. package/dist/controls/DragControls.js.map +1 -1
  119. package/dist/controls/FlyControls.d.ts +9 -0
  120. package/dist/controls/FlyControls.d.ts.map +1 -1
  121. package/dist/controls/FlyControls.js +20 -2
  122. package/dist/controls/FlyControls.js.map +1 -1
  123. package/dist/controls/FocusFrame.d.ts +34 -0
  124. package/dist/controls/FocusFrame.d.ts.map +1 -0
  125. package/dist/controls/FocusFrame.js +82 -0
  126. package/dist/controls/FocusFrame.js.map +1 -0
  127. package/dist/controls/HoverOutline.d.ts +46 -0
  128. package/dist/controls/HoverOutline.d.ts.map +1 -0
  129. package/dist/controls/HoverOutline.js +87 -0
  130. package/dist/controls/HoverOutline.js.map +1 -0
  131. package/dist/controls/InteractionControls.d.ts +7 -0
  132. package/dist/controls/InteractionControls.d.ts.map +1 -1
  133. package/dist/controls/InteractionControls.js +12 -1
  134. package/dist/controls/InteractionControls.js.map +1 -1
  135. package/dist/controls/NativeControlTypes.d.ts +17 -0
  136. package/dist/controls/NativeControlTypes.d.ts.map +1 -1
  137. package/dist/controls/NativeControlTypes.js.map +1 -1
  138. package/dist/controls/OrbitControls.d.ts +9 -0
  139. package/dist/controls/OrbitControls.d.ts.map +1 -1
  140. package/dist/controls/OrbitControls.js +26 -6
  141. package/dist/controls/OrbitControls.js.map +1 -1
  142. package/dist/controls/Picking.d.ts +15 -0
  143. package/dist/controls/Picking.d.ts.map +1 -1
  144. package/dist/controls/Picking.js +62 -23
  145. package/dist/controls/Picking.js.map +1 -1
  146. package/dist/controls/PointerLockControls.d.ts.map +1 -1
  147. package/dist/controls/PointerLockControls.js +4 -0
  148. package/dist/controls/PointerLockControls.js.map +1 -1
  149. package/dist/controls/SelectionManager.d.ts +8 -0
  150. package/dist/controls/SelectionManager.d.ts.map +1 -1
  151. package/dist/controls/SelectionManager.js +11 -0
  152. package/dist/controls/SelectionManager.js.map +1 -1
  153. package/dist/controls/TrackballControls.d.ts +7 -0
  154. package/dist/controls/TrackballControls.d.ts.map +1 -1
  155. package/dist/controls/TrackballControls.js +19 -5
  156. package/dist/controls/TrackballControls.js.map +1 -1
  157. package/dist/controls/TransformControls.d.ts +8 -0
  158. package/dist/controls/TransformControls.d.ts.map +1 -1
  159. package/dist/controls/TransformControls.js +15 -2
  160. package/dist/controls/TransformControls.js.map +1 -1
  161. package/dist/controls/index.d.ts +6 -0
  162. package/dist/controls/index.d.ts.map +1 -1
  163. package/dist/controls/index.js +3 -0
  164. package/dist/controls/index.js.map +1 -1
  165. package/dist/create-aura3d/index.js +1 -1
  166. package/dist/editor-runtime/RootEditorSurface.d.ts +65 -0
  167. package/dist/editor-runtime/RootEditorSurface.d.ts.map +1 -0
  168. package/dist/editor-runtime/RootEditorSurface.js +62 -0
  169. package/dist/editor-runtime/RootEditorSurface.js.map +1 -0
  170. package/dist/editor-runtime/index.d.ts +2 -0
  171. package/dist/editor-runtime/index.d.ts.map +1 -1
  172. package/dist/editor-runtime/index.js +1 -0
  173. package/dist/editor-runtime/index.js.map +1 -1
  174. package/dist/engine/agent-api/AnimationController.d.ts +9 -1
  175. package/dist/engine/agent-api/AnimationController.d.ts.map +1 -1
  176. package/dist/engine/agent-api/AnimationController.js +5 -1
  177. package/dist/engine/agent-api/AnimationController.js.map +1 -1
  178. package/dist/engine/agent-api/AnimationDebugOverlay.d.ts +56 -0
  179. package/dist/engine/agent-api/AnimationDebugOverlay.d.ts.map +1 -0
  180. package/dist/engine/agent-api/AnimationDebugOverlay.js +148 -0
  181. package/dist/engine/agent-api/AnimationDebugOverlay.js.map +1 -0
  182. package/dist/engine/agent-api/AnimationMixerBuilders.d.ts +41 -0
  183. package/dist/engine/agent-api/AnimationMixerBuilders.d.ts.map +1 -0
  184. package/dist/engine/agent-api/AnimationMixerBuilders.js +146 -0
  185. package/dist/engine/agent-api/AnimationMixerBuilders.js.map +1 -0
  186. package/dist/engine/agent-api/AssetDecoders.d.ts +17 -0
  187. package/dist/engine/agent-api/AssetDecoders.d.ts.map +1 -0
  188. package/dist/engine/agent-api/AssetDecoders.js +18 -0
  189. package/dist/engine/agent-api/AssetDecoders.js.map +1 -0
  190. package/dist/engine/agent-api/Decals.d.ts +174 -0
  191. package/dist/engine/agent-api/Decals.d.ts.map +1 -0
  192. package/dist/engine/agent-api/Decals.js +350 -0
  193. package/dist/engine/agent-api/Decals.js.map +1 -0
  194. package/dist/engine/agent-api/FootPlanting.d.ts +75 -0
  195. package/dist/engine/agent-api/FootPlanting.d.ts.map +1 -0
  196. package/dist/engine/agent-api/FootPlanting.js +60 -0
  197. package/dist/engine/agent-api/FootPlanting.js.map +1 -0
  198. package/dist/engine/agent-api/GameAppRuntime.d.ts +19 -0
  199. package/dist/engine/agent-api/GameAppRuntime.d.ts.map +1 -1
  200. package/dist/engine/agent-api/GameAppRuntime.js +37 -1
  201. package/dist/engine/agent-api/GameAppRuntime.js.map +1 -1
  202. package/dist/engine/agent-api/GameCameraRigs.d.ts +185 -0
  203. package/dist/engine/agent-api/GameCameraRigs.d.ts.map +1 -0
  204. package/dist/engine/agent-api/GameCameraRigs.js +414 -0
  205. package/dist/engine/agent-api/GameCameraRigs.js.map +1 -0
  206. package/dist/engine/agent-api/GameFeel.d.ts +100 -0
  207. package/dist/engine/agent-api/GameFeel.d.ts.map +1 -0
  208. package/dist/engine/agent-api/GameFeel.js +226 -0
  209. package/dist/engine/agent-api/GameFeel.js.map +1 -0
  210. package/dist/engine/agent-api/LabelTelemetry.d.ts +108 -0
  211. package/dist/engine/agent-api/LabelTelemetry.d.ts.map +1 -0
  212. package/dist/engine/agent-api/LabelTelemetry.js +116 -0
  213. package/dist/engine/agent-api/LabelTelemetry.js.map +1 -0
  214. package/dist/engine/agent-api/NavigationCrowds.d.ts +146 -0
  215. package/dist/engine/agent-api/NavigationCrowds.d.ts.map +1 -0
  216. package/dist/engine/agent-api/NavigationCrowds.js +104 -0
  217. package/dist/engine/agent-api/NavigationCrowds.js.map +1 -0
  218. package/dist/engine/agent-api/PhysicsRuntime.d.ts +61 -5
  219. package/dist/engine/agent-api/PhysicsRuntime.d.ts.map +1 -1
  220. package/dist/engine/agent-api/PhysicsRuntime.js +53 -21
  221. package/dist/engine/agent-api/PhysicsRuntime.js.map +1 -1
  222. package/dist/engine/agent-api/RootGeometry.d.ts +16 -1
  223. package/dist/engine/agent-api/RootGeometry.d.ts.map +1 -1
  224. package/dist/engine/agent-api/RootGeometry.js.map +1 -1
  225. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +6 -0
  226. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
  227. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
  228. package/dist/engine/agent-api/Scatter.d.ts +18 -0
  229. package/dist/engine/agent-api/Scatter.d.ts.map +1 -0
  230. package/dist/engine/agent-api/Scatter.js +18 -0
  231. package/dist/engine/agent-api/Scatter.js.map +1 -0
  232. package/dist/engine/agent-api/TouchControlBinding.d.ts +32 -0
  233. package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -1
  234. package/dist/engine/agent-api/TouchControlBinding.js +36 -0
  235. package/dist/engine/agent-api/TouchControlBinding.js.map +1 -1
  236. package/dist/engine/agent-api/VehicleChassis.d.ts.map +1 -1
  237. package/dist/engine/agent-api/VehicleChassis.js +76 -13
  238. package/dist/engine/agent-api/VehicleChassis.js.map +1 -1
  239. package/dist/engine/agent-api/index.d.ts +708 -6
  240. package/dist/engine/agent-api/index.d.ts.map +1 -1
  241. package/dist/engine/agent-api/index.js +1757 -134
  242. package/dist/engine/agent-api/index.js.map +1 -1
  243. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  244. package/dist/engine/game/GameAudio.d.ts +66 -0
  245. package/dist/engine/game/GameAudio.d.ts.map +1 -1
  246. package/dist/engine/game/GameAudio.js +179 -44
  247. package/dist/engine/game/GameAudio.js.map +1 -1
  248. package/dist/engine/instances-model/InstancedModel.d.ts +111 -0
  249. package/dist/engine/instances-model/InstancedModel.d.ts.map +1 -0
  250. package/dist/engine/instances-model/InstancedModel.js +108 -0
  251. package/dist/engine/instances-model/InstancedModel.js.map +1 -0
  252. package/dist/engine/material-physical/PhysicalMaterialSpec.d.ts +72 -0
  253. package/dist/engine/material-physical/PhysicalMaterialSpec.d.ts.map +1 -0
  254. package/dist/engine/material-physical/PhysicalMaterialSpec.js +95 -0
  255. package/dist/engine/material-physical/PhysicalMaterialSpec.js.map +1 -0
  256. package/dist/engine/production-runtime/GameAppRuntime.d.ts +1 -1
  257. package/dist/engine/production-runtime/GameAppRuntime.d.ts.map +1 -1
  258. package/dist/engine/production-runtime/GameRenderPreset.d.ts +76 -0
  259. package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -1
  260. package/dist/engine/production-runtime/GameRenderPreset.js +167 -0
  261. package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -1
  262. package/dist/engine/production-runtime/TypedGLBActor.d.ts +22 -2
  263. package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
  264. package/dist/engine/production-runtime/TypedGLBActor.js +33 -1
  265. package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
  266. package/dist/engine/production-runtime/index.d.ts +4 -4
  267. package/dist/engine/production-runtime/index.d.ts.map +1 -1
  268. package/dist/engine/production-runtime/index.js +5 -3
  269. package/dist/engine/production-runtime/index.js.map +1 -1
  270. package/dist/input/ActionMap.d.ts +40 -0
  271. package/dist/input/ActionMap.d.ts.map +1 -1
  272. package/dist/input/ActionMap.js +179 -0
  273. package/dist/input/ActionMap.js.map +1 -1
  274. package/dist/input/ComboDetector.d.ts +49 -0
  275. package/dist/input/ComboDetector.d.ts.map +1 -0
  276. package/dist/input/ComboDetector.js +102 -0
  277. package/dist/input/ComboDetector.js.map +1 -0
  278. package/dist/input/Haptics.d.ts +46 -0
  279. package/dist/input/Haptics.d.ts.map +1 -0
  280. package/dist/input/Haptics.js +67 -0
  281. package/dist/input/Haptics.js.map +1 -0
  282. package/dist/input/TouchLayouts.d.ts +35 -0
  283. package/dist/input/TouchLayouts.d.ts.map +1 -0
  284. package/dist/input/TouchLayouts.js +88 -0
  285. package/dist/input/TouchLayouts.js.map +1 -0
  286. package/dist/input/WebXRSessionController.d.ts +53 -0
  287. package/dist/input/WebXRSessionController.d.ts.map +1 -1
  288. package/dist/input/WebXRSessionController.js +88 -2
  289. package/dist/input/WebXRSessionController.js.map +1 -1
  290. package/dist/input/index.d.ts +8 -2
  291. package/dist/input/index.d.ts.map +1 -1
  292. package/dist/input/index.js +3 -0
  293. package/dist/input/index.js.map +1 -1
  294. package/dist/lean/game.d.ts +98 -0
  295. package/dist/lean/game.d.ts.map +1 -1
  296. package/dist/lean/game.js +192 -0
  297. package/dist/lean/game.js.map +1 -1
  298. package/dist/materials/GameReadyMaterialLibrary.d.ts +39 -0
  299. package/dist/materials/GameReadyMaterialLibrary.d.ts.map +1 -0
  300. package/dist/materials/GameReadyMaterialLibrary.js +253 -0
  301. package/dist/materials/GameReadyMaterialLibrary.js.map +1 -0
  302. package/dist/materials/MaterialValidation.d.ts +21 -0
  303. package/dist/materials/MaterialValidation.d.ts.map +1 -1
  304. package/dist/materials/MaterialValidation.js +105 -0
  305. package/dist/materials/MaterialValidation.js.map +1 -1
  306. package/dist/materials/browser-index.d.ts +2 -0
  307. package/dist/materials/browser-index.d.ts.map +1 -1
  308. package/dist/materials/browser-index.js +1 -0
  309. package/dist/materials/browser-index.js.map +1 -1
  310. package/dist/materials/node.d.ts +2 -2
  311. package/dist/materials/node.d.ts.map +1 -1
  312. package/dist/materials/node.js +1 -1
  313. package/dist/materials/node.js.map +1 -1
  314. package/dist/physics/CollisionVolumes.d.ts +59 -0
  315. package/dist/physics/CollisionVolumes.d.ts.map +1 -1
  316. package/dist/physics/CollisionVolumes.js +87 -0
  317. package/dist/physics/CollisionVolumes.js.map +1 -1
  318. package/dist/physics/PhysicsDebugDraw.d.ts +37 -0
  319. package/dist/physics/PhysicsDebugDraw.d.ts.map +1 -1
  320. package/dist/physics/PhysicsDebugDraw.js +38 -1
  321. package/dist/physics/PhysicsDebugDraw.js.map +1 -1
  322. package/dist/physics/PhysicsWorld.d.ts +15 -0
  323. package/dist/physics/PhysicsWorld.d.ts.map +1 -1
  324. package/dist/physics/PhysicsWorld.js +8 -1
  325. package/dist/physics/PhysicsWorld.js.map +1 -1
  326. package/dist/physics/solverless.d.ts +1 -1
  327. package/dist/physics/solverless.d.ts.map +1 -1
  328. package/dist/physics/solverless.js.map +1 -1
  329. package/dist/physics-rapier/index.d.ts +7 -1
  330. package/dist/physics-rapier/index.d.ts.map +1 -1
  331. package/dist/physics-rapier/index.js +1 -1
  332. package/dist/physics-rapier/index.js.map +1 -1
  333. package/dist/react/index.d.ts +136 -2
  334. package/dist/react/index.d.ts.map +1 -1
  335. package/dist/react/index.js +251 -10
  336. package/dist/react/index.js.map +1 -1
  337. package/dist/rendering/AtmosphereWetness.d.ts +61 -0
  338. package/dist/rendering/AtmosphereWetness.d.ts.map +1 -0
  339. package/dist/rendering/AtmosphereWetness.js +99 -0
  340. package/dist/rendering/AtmosphereWetness.js.map +1 -0
  341. package/dist/rendering/ClusteredForwardLighting.d.ts +25 -1
  342. package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -1
  343. package/dist/rendering/ClusteredForwardLighting.js +80 -3
  344. package/dist/rendering/ClusteredForwardLighting.js.map +1 -1
  345. package/dist/rendering/DayNightSky.d.ts +63 -0
  346. package/dist/rendering/DayNightSky.d.ts.map +1 -0
  347. package/dist/rendering/DayNightSky.js +156 -0
  348. package/dist/rendering/DayNightSky.js.map +1 -0
  349. package/dist/rendering/EnvironmentPresetPack.d.ts +30 -0
  350. package/dist/rendering/EnvironmentPresetPack.d.ts.map +1 -0
  351. package/dist/rendering/EnvironmentPresetPack.js +49 -0
  352. package/dist/rendering/EnvironmentPresetPack.js.map +1 -0
  353. package/dist/rendering/ForwardPass.d.ts +65 -0
  354. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  355. package/dist/rendering/ForwardPass.js +196 -2
  356. package/dist/rendering/ForwardPass.js.map +1 -1
  357. package/dist/rendering/InstancedPBRMaterial.d.ts +1 -0
  358. package/dist/rendering/InstancedPBRMaterial.d.ts.map +1 -1
  359. package/dist/rendering/InstancedPBRMaterial.js +3 -0
  360. package/dist/rendering/InstancedPBRMaterial.js.map +1 -1
  361. package/dist/rendering/InstancingDiagnostics.d.ts +69 -0
  362. package/dist/rendering/InstancingDiagnostics.d.ts.map +1 -0
  363. package/dist/rendering/InstancingDiagnostics.js +98 -0
  364. package/dist/rendering/InstancingDiagnostics.js.map +1 -0
  365. package/dist/rendering/LightingRig.d.ts +19 -1
  366. package/dist/rendering/LightingRig.d.ts.map +1 -1
  367. package/dist/rendering/LightingRig.js +61 -1
  368. package/dist/rendering/LightingRig.js.map +1 -1
  369. package/dist/rendering/MeshConsolidation.d.ts +12 -0
  370. package/dist/rendering/MeshConsolidation.d.ts.map +1 -1
  371. package/dist/rendering/MeshConsolidation.js +28 -0
  372. package/dist/rendering/MeshConsolidation.js.map +1 -1
  373. package/dist/rendering/MorphTargetPlan.d.ts +29 -2
  374. package/dist/rendering/MorphTargetPlan.d.ts.map +1 -1
  375. package/dist/rendering/MorphTargetPlan.js +23 -4
  376. package/dist/rendering/MorphTargetPlan.js.map +1 -1
  377. package/dist/rendering/NormalMappedPBRMaterial.d.ts.map +1 -1
  378. package/dist/rendering/NormalMappedPBRMaterial.js +22 -2
  379. package/dist/rendering/NormalMappedPBRMaterial.js.map +1 -1
  380. package/dist/rendering/OceanSurface.d.ts +75 -0
  381. package/dist/rendering/OceanSurface.d.ts.map +1 -1
  382. package/dist/rendering/OceanSurface.js +211 -0
  383. package/dist/rendering/OceanSurface.js.map +1 -1
  384. package/dist/rendering/PBRMaterial.d.ts +1 -0
  385. package/dist/rendering/PBRMaterial.d.ts.map +1 -1
  386. package/dist/rendering/PBRMaterial.js +23 -2
  387. package/dist/rendering/PBRMaterial.js.map +1 -1
  388. package/dist/rendering/PbrReference.d.ts +48 -0
  389. package/dist/rendering/PbrReference.d.ts.map +1 -1
  390. package/dist/rendering/PbrReference.js +126 -0
  391. package/dist/rendering/PbrReference.js.map +1 -1
  392. package/dist/rendering/PlanarReflection.d.ts +221 -0
  393. package/dist/rendering/PlanarReflection.d.ts.map +1 -0
  394. package/dist/rendering/PlanarReflection.js +541 -0
  395. package/dist/rendering/PlanarReflection.js.map +1 -0
  396. package/dist/rendering/PostProcessPass.d.ts +13 -0
  397. package/dist/rendering/PostProcessPass.d.ts.map +1 -1
  398. package/dist/rendering/PostProcessPass.js +15 -4
  399. package/dist/rendering/PostProcessPass.js.map +1 -1
  400. package/dist/rendering/ReflectionSurfaces.d.ts +14 -0
  401. package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
  402. package/dist/rendering/ReflectionSurfaces.js +93 -0
  403. package/dist/rendering/ReflectionSurfaces.js.map +1 -1
  404. package/dist/rendering/RenderDevice.d.ts +87 -0
  405. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  406. package/dist/rendering/RenderDevice.js +85 -0
  407. package/dist/rendering/RenderDevice.js.map +1 -1
  408. package/dist/rendering/Renderer.js +3 -1
  409. package/dist/rendering/Renderer.js.map +1 -1
  410. package/dist/rendering/RendererPostprocessPlan.d.ts +48 -0
  411. package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
  412. package/dist/rendering/RendererPostprocessPlan.js +101 -11
  413. package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
  414. package/dist/rendering/RendererVisualPipelineReport.d.ts.map +1 -1
  415. package/dist/rendering/RendererVisualPipelineReport.js +3 -1
  416. package/dist/rendering/RendererVisualPipelineReport.js.map +1 -1
  417. package/dist/rendering/Sampler.d.ts +29 -0
  418. package/dist/rendering/Sampler.d.ts.map +1 -1
  419. package/dist/rendering/Sampler.js +47 -0
  420. package/dist/rendering/Sampler.js.map +1 -1
  421. package/dist/rendering/SdfText.d.ts +250 -0
  422. package/dist/rendering/SdfText.d.ts.map +1 -0
  423. package/dist/rendering/SdfText.js +551 -0
  424. package/dist/rendering/SdfText.js.map +1 -0
  425. package/dist/rendering/ShaderChunks.d.ts.map +1 -1
  426. package/dist/rendering/ShaderChunks.js +30 -12
  427. package/dist/rendering/ShaderChunks.js.map +1 -1
  428. package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
  429. package/dist/rendering/ShaderLibrary.js +478 -34
  430. package/dist/rendering/ShaderLibrary.js.map +1 -1
  431. package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
  432. package/dist/rendering/ShaderLibraryCore.js +70 -12
  433. package/dist/rendering/ShaderLibraryCore.js.map +1 -1
  434. package/dist/rendering/ShadowMap.d.ts +24 -0
  435. package/dist/rendering/ShadowMap.d.ts.map +1 -1
  436. package/dist/rendering/ShadowMap.js +43 -0
  437. package/dist/rendering/ShadowMap.js.map +1 -1
  438. package/dist/rendering/SkinnedLitMaterial.d.ts.map +1 -1
  439. package/dist/rendering/SkinnedLitMaterial.js +2 -0
  440. package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
  441. package/dist/rendering/SkinningBounds.d.ts +10 -0
  442. package/dist/rendering/SkinningBounds.d.ts.map +1 -1
  443. package/dist/rendering/SkinningBounds.js +27 -0
  444. package/dist/rendering/SkinningBounds.js.map +1 -1
  445. package/dist/rendering/SpriteFlipbook.d.ts +60 -0
  446. package/dist/rendering/SpriteFlipbook.d.ts.map +1 -0
  447. package/dist/rendering/SpriteFlipbook.js +128 -0
  448. package/dist/rendering/SpriteFlipbook.js.map +1 -0
  449. package/dist/rendering/TerrainTiles.d.ts +120 -0
  450. package/dist/rendering/TerrainTiles.d.ts.map +1 -0
  451. package/dist/rendering/TerrainTiles.js +221 -0
  452. package/dist/rendering/TerrainTiles.js.map +1 -0
  453. package/dist/rendering/TexturedPBRMaterial.d.ts +1 -0
  454. package/dist/rendering/TexturedPBRMaterial.d.ts.map +1 -1
  455. package/dist/rendering/TexturedPBRMaterial.js +23 -2
  456. package/dist/rendering/TexturedPBRMaterial.js.map +1 -1
  457. package/dist/rendering/TexturedUnlitMaterial.d.ts.map +1 -1
  458. package/dist/rendering/TexturedUnlitMaterial.js +20 -2
  459. package/dist/rendering/TexturedUnlitMaterial.js.map +1 -1
  460. package/dist/rendering/UnlitMaterial.d.ts.map +1 -1
  461. package/dist/rendering/UnlitMaterial.js +20 -2
  462. package/dist/rendering/UnlitMaterial.js.map +1 -1
  463. package/dist/rendering/VertexFormat.d.ts +6 -0
  464. package/dist/rendering/VertexFormat.d.ts.map +1 -1
  465. package/dist/rendering/VertexFormat.js +12 -0
  466. package/dist/rendering/VertexFormat.js.map +1 -1
  467. package/dist/rendering/VolumetricFog.d.ts +55 -0
  468. package/dist/rendering/VolumetricFog.d.ts.map +1 -0
  469. package/dist/rendering/VolumetricFog.js +91 -0
  470. package/dist/rendering/VolumetricFog.js.map +1 -0
  471. package/dist/rendering/WaterSurface.d.ts +77 -0
  472. package/dist/rendering/WaterSurface.d.ts.map +1 -0
  473. package/dist/rendering/WaterSurface.js +133 -0
  474. package/dist/rendering/WaterSurface.js.map +1 -0
  475. package/dist/rendering/WebGL2Device.d.ts +58 -0
  476. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  477. package/dist/rendering/WebGL2Device.js +536 -17
  478. package/dist/rendering/WebGL2Device.js.map +1 -1
  479. package/dist/rendering/WebGPUDevice.d.ts +50 -0
  480. package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
  481. package/dist/rendering/WebGPUDevice.js +504 -10
  482. package/dist/rendering/WebGPUDevice.js.map +1 -1
  483. package/dist/rendering/WebGPUSkinningLimits.d.ts +40 -0
  484. package/dist/rendering/WebGPUSkinningLimits.d.ts.map +1 -1
  485. package/dist/rendering/WebGPUSkinningLimits.js +32 -0
  486. package/dist/rendering/WebGPUSkinningLimits.js.map +1 -1
  487. package/dist/rendering/effects/CollisionModule.d.ts +9 -0
  488. package/dist/rendering/effects/CollisionModule.d.ts.map +1 -1
  489. package/dist/rendering/effects/CollisionModule.js +10 -0
  490. package/dist/rendering/effects/CollisionModule.js.map +1 -1
  491. package/dist/rendering/effects/ColorModule.d.ts +7 -0
  492. package/dist/rendering/effects/ColorModule.d.ts.map +1 -1
  493. package/dist/rendering/effects/ColorModule.js +23 -0
  494. package/dist/rendering/effects/ColorModule.js.map +1 -1
  495. package/dist/rendering/effects/ForceModule.d.ts +35 -0
  496. package/dist/rendering/effects/ForceModule.d.ts.map +1 -1
  497. package/dist/rendering/effects/ForceModule.js +49 -0
  498. package/dist/rendering/effects/ForceModule.js.map +1 -1
  499. package/dist/rendering/effects/GPUParticleBackend.d.ts +186 -0
  500. package/dist/rendering/effects/GPUParticleBackend.d.ts.map +1 -1
  501. package/dist/rendering/effects/GPUParticleBackend.js +692 -1
  502. package/dist/rendering/effects/GPUParticleBackend.js.map +1 -1
  503. package/dist/rendering/effects/HeightfieldModule.d.ts +58 -0
  504. package/dist/rendering/effects/HeightfieldModule.d.ts.map +1 -0
  505. package/dist/rendering/effects/HeightfieldModule.js +129 -0
  506. package/dist/rendering/effects/HeightfieldModule.js.map +1 -0
  507. package/dist/rendering/effects/LightingModule.d.ts +34 -0
  508. package/dist/rendering/effects/LightingModule.d.ts.map +1 -0
  509. package/dist/rendering/effects/LightingModule.js +54 -0
  510. package/dist/rendering/effects/LightingModule.js.map +1 -0
  511. package/dist/rendering/effects/ParticleDiagnostics.d.ts +8 -0
  512. package/dist/rendering/effects/ParticleDiagnostics.d.ts.map +1 -1
  513. package/dist/rendering/effects/ParticleDiagnostics.js +3 -0
  514. package/dist/rendering/effects/ParticleDiagnostics.js.map +1 -1
  515. package/dist/rendering/effects/ParticleModule.d.ts +8 -0
  516. package/dist/rendering/effects/ParticleModule.d.ts.map +1 -1
  517. package/dist/rendering/effects/ParticleModule.js.map +1 -1
  518. package/dist/rendering/effects/ParticleRenderer.d.ts +20 -0
  519. package/dist/rendering/effects/ParticleRenderer.d.ts.map +1 -1
  520. package/dist/rendering/effects/ParticleRenderer.js +57 -7
  521. package/dist/rendering/effects/ParticleRenderer.js.map +1 -1
  522. package/dist/rendering/effects/ParticleSystem.d.ts +45 -1
  523. package/dist/rendering/effects/ParticleSystem.d.ts.map +1 -1
  524. package/dist/rendering/effects/ParticleSystem.js +373 -4
  525. package/dist/rendering/effects/ParticleSystem.js.map +1 -1
  526. package/dist/rendering/effects/SizeModule.d.ts +4 -0
  527. package/dist/rendering/effects/SizeModule.d.ts.map +1 -1
  528. package/dist/rendering/effects/SizeModule.js +16 -0
  529. package/dist/rendering/effects/SizeModule.js.map +1 -1
  530. package/dist/rendering/effects/SubEmitterModule.d.ts +61 -0
  531. package/dist/rendering/effects/SubEmitterModule.d.ts.map +1 -0
  532. package/dist/rendering/effects/SubEmitterModule.js +119 -0
  533. package/dist/rendering/effects/SubEmitterModule.js.map +1 -0
  534. package/dist/rendering/effects/TrailModule.d.ts +38 -0
  535. package/dist/rendering/effects/TrailModule.d.ts.map +1 -1
  536. package/dist/rendering/effects/TrailModule.js +95 -2
  537. package/dist/rendering/effects/TrailModule.js.map +1 -1
  538. package/dist/rendering/effects/TurbulenceModule.d.ts +43 -0
  539. package/dist/rendering/effects/TurbulenceModule.d.ts.map +1 -0
  540. package/dist/rendering/effects/TurbulenceModule.js +130 -0
  541. package/dist/rendering/effects/TurbulenceModule.js.map +1 -0
  542. package/dist/rendering/effects/index.d.ts +4 -0
  543. package/dist/rendering/effects/index.d.ts.map +1 -1
  544. package/dist/rendering/effects/index.js +4 -0
  545. package/dist/rendering/effects/index.js.map +1 -1
  546. package/dist/rendering/index.d.ts +57 -19
  547. package/dist/rendering/index.d.ts.map +1 -1
  548. package/dist/rendering/index.js +31 -10
  549. package/dist/rendering/index.js.map +1 -1
  550. package/dist/rendering/materials/MaterialExtensions.js +3 -3
  551. package/dist/rendering/materials/MaterialExtensions.js.map +1 -1
  552. package/dist/rendering/postprocess/NativeBloomPyramid.d.ts +28 -0
  553. package/dist/rendering/postprocess/NativeBloomPyramid.d.ts.map +1 -0
  554. package/dist/rendering/postprocess/NativeBloomPyramid.js +54 -0
  555. package/dist/rendering/postprocess/NativeBloomPyramid.js.map +1 -0
  556. package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts +10 -1
  557. package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts.map +1 -1
  558. package/dist/rendering/postprocess/NativeLdrEffectLuts.js +19 -2
  559. package/dist/rendering/postprocess/NativeLdrEffectLuts.js.map +1 -1
  560. package/dist/rendering/postprocess/index.d.ts +2 -0
  561. package/dist/rendering/postprocess/index.d.ts.map +1 -1
  562. package/dist/rendering/postprocess/index.js +1 -0
  563. package/dist/rendering/postprocess/index.js.map +1 -1
  564. package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts +22 -0
  565. package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
  566. package/dist/rendering/production-runtime/PBRHDRPipeline.js +125 -0
  567. package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
  568. package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts +52 -0
  569. package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
  570. package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +101 -0
  571. package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
  572. package/dist/rendering/production-runtime/index.d.ts +5 -4
  573. package/dist/rendering/production-runtime/index.d.ts.map +1 -1
  574. package/dist/rendering/production-runtime/index.js +3 -2
  575. package/dist/rendering/production-runtime/index.js.map +1 -1
  576. package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts +26 -1
  577. package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
  578. package/dist/rendering/production-runtime/passes/DepthPrepass.js +49 -2
  579. package/dist/rendering/production-runtime/passes/DepthPrepass.js.map +1 -1
  580. package/dist/rendering/production-runtime/passes/FramegraphTopology.d.ts +13 -0
  581. package/dist/rendering/production-runtime/passes/FramegraphTopology.d.ts.map +1 -0
  582. package/dist/rendering/production-runtime/passes/FramegraphTopology.js +59 -0
  583. package/dist/rendering/production-runtime/passes/FramegraphTopology.js.map +1 -0
  584. package/dist/rendering/production-runtime/passes/OpaquePass.d.ts +24 -1
  585. package/dist/rendering/production-runtime/passes/OpaquePass.d.ts.map +1 -1
  586. package/dist/rendering/production-runtime/passes/OpaquePass.js +41 -2
  587. package/dist/rendering/production-runtime/passes/OpaquePass.js.map +1 -1
  588. package/dist/rendering/production-runtime/passes/ShadowPass.d.ts +24 -1
  589. package/dist/rendering/production-runtime/passes/ShadowPass.d.ts.map +1 -1
  590. package/dist/rendering/production-runtime/passes/ShadowPass.js +43 -2
  591. package/dist/rendering/production-runtime/passes/ShadowPass.js.map +1 -1
  592. package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts +21 -1
  593. package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
  594. package/dist/rendering/production-runtime/passes/SkyboxPass.js +39 -2
  595. package/dist/rendering/production-runtime/passes/SkyboxPass.js.map +1 -1
  596. package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts +29 -1
  597. package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
  598. package/dist/rendering/production-runtime/passes/ToneMappingPass.js +53 -2
  599. package/dist/rendering/production-runtime/passes/ToneMappingPass.js.map +1 -1
  600. package/dist/rendering/production-runtime/passes/TransparentPass.d.ts +24 -1
  601. package/dist/rendering/production-runtime/passes/TransparentPass.d.ts.map +1 -1
  602. package/dist/rendering/production-runtime/passes/TransparentPass.js +42 -2
  603. package/dist/rendering/production-runtime/passes/TransparentPass.js.map +1 -1
  604. package/dist/rendering/shadows/CascadeHysteresis.d.ts +67 -0
  605. package/dist/rendering/shadows/CascadeHysteresis.d.ts.map +1 -0
  606. package/dist/rendering/shadows/CascadeHysteresis.js +104 -0
  607. package/dist/rendering/shadows/CascadeHysteresis.js.map +1 -0
  608. package/dist/rendering/shadows/ContactShadows.d.ts +52 -0
  609. package/dist/rendering/shadows/ContactShadows.d.ts.map +1 -1
  610. package/dist/rendering/shadows/ContactShadows.js +122 -0
  611. package/dist/rendering/shadows/ContactShadows.js.map +1 -1
  612. package/dist/rendering/shadows/SpotShadowMaps.d.ts +77 -0
  613. package/dist/rendering/shadows/SpotShadowMaps.d.ts.map +1 -0
  614. package/dist/rendering/shadows/SpotShadowMaps.js +106 -0
  615. package/dist/rendering/shadows/SpotShadowMaps.js.map +1 -0
  616. package/dist/rendering/webgpu/WebGPUPostProcess.d.ts +2 -0
  617. package/dist/rendering/webgpu/WebGPUPostProcess.d.ts.map +1 -1
  618. package/dist/rendering/webgpu/WebGPUPostProcess.js +1 -0
  619. package/dist/rendering/webgpu/WebGPUPostProcess.js.map +1 -1
  620. package/dist/rendering/webgpu/WebGPUPostShaders.d.ts +78 -0
  621. package/dist/rendering/webgpu/WebGPUPostShaders.d.ts.map +1 -0
  622. package/dist/rendering/webgpu/WebGPUPostShaders.js +262 -0
  623. package/dist/rendering/webgpu/WebGPUPostShaders.js.map +1 -0
  624. package/dist/scene/Scene.d.ts +8 -1
  625. package/dist/scene/Scene.d.ts.map +1 -1
  626. package/dist/scene/Scene.js +12 -2
  627. package/dist/scene/Scene.js.map +1 -1
  628. package/dist/scripting/VisualGraphContext.d.ts +31 -0
  629. package/dist/scripting/VisualGraphContext.d.ts.map +1 -1
  630. package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
  631. package/dist/scripting/VisualGraphExecutor.js +110 -0
  632. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  633. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  634. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  635. package/dist/scripting/VisualNodeCatalog.js +20 -0
  636. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  637. package/dist/scripting/VisualScriptingRoot.d.ts +96 -0
  638. package/dist/scripting/VisualScriptingRoot.d.ts.map +1 -0
  639. package/dist/scripting/VisualScriptingRoot.js +150 -0
  640. package/dist/scripting/VisualScriptingRoot.js.map +1 -0
  641. package/dist/scripting/index.d.ts +3 -1
  642. package/dist/scripting/index.d.ts.map +1 -1
  643. package/dist/scripting/index.js +1 -0
  644. package/dist/scripting/index.js.map +1 -1
  645. package/package.json +24 -22
  646. package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +8 -0
  647. package/templates/cinematic-scene/node_modules/.vite/deps/package.json +3 -0
  648. package/templates/cinematic-scene/test-results/.last-run.json +6 -0
  649. package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +64 -0
  650. package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +8 -0
  651. package/templates/product-viewer/node_modules/.vite/deps/package.json +3 -0
@@ -1,22 +1,130 @@
1
- import { Children, createElement, isValidElement, useEffect, useMemo, useRef } from "react";
2
- import { camera, createAuraApp, effects, lights, model, scene } from "../engine/index.js";
1
+ import { Children, Suspense, createContext, createElement, isValidElement, useContext, useEffect, useMemo, useRef, useState } from "react";
2
+ import { camera, createAuraApp, effects, environments, interactions, lights, model, scene } from "../engine/index.js";
3
+ /**
4
+ * The mounted app, for `useAuraFrame` / `useAuraEvents`. Undefined until
5
+ * `AuraCanvas` mounts (and again after unmount). Components outside an
6
+ * `AuraCanvas` see undefined — they must handle that rather than assume an app.
7
+ */
8
+ export const AuraAppContext = createContext(undefined);
9
+ export function useAuraApp() {
10
+ return useContext(AuraAppContext);
11
+ }
12
+ let frameSubscriptionOrder = 0;
13
+ /**
14
+ * Priority-ordered fan-out over one host `onFrame` subscription (V1).
15
+ *
16
+ * Lower `priority` runs first; ties keep subscription order. One host
17
+ * subscription is shared no matter how many components subscribe, and it is
18
+ * released when the last subscriber leaves — that release is the tested
19
+ * unmount-cleanup half of the U1 mount/unmount/listener-clean policy.
20
+ * Pure except for the host calls, so it is unit-testable with a fake host.
21
+ */
22
+ export function createFrameScheduler(host) {
23
+ const entries = [];
24
+ let unsubscribe;
25
+ const dispatch = (frame) => {
26
+ const ordered = [...entries].sort((a, b) => a.priority - b.priority || a.order - b.order);
27
+ for (const entry of ordered)
28
+ entry.callback(frame);
29
+ };
30
+ return {
31
+ subscribe(callback, priority = 0) {
32
+ if (!Number.isFinite(priority))
33
+ throw new Error("Aura3D frame priority must be finite.");
34
+ const entry = { callback, priority, order: frameSubscriptionOrder++ };
35
+ entries.push(entry);
36
+ if (!unsubscribe)
37
+ unsubscribe = host.onFrame(dispatch);
38
+ let released = false;
39
+ return () => {
40
+ if (released)
41
+ return;
42
+ released = true;
43
+ const index = entries.indexOf(entry);
44
+ if (index !== -1)
45
+ entries.splice(index, 1);
46
+ if (entries.length === 0 && unsubscribe) {
47
+ unsubscribe();
48
+ unsubscribe = undefined;
49
+ }
50
+ };
51
+ },
52
+ subscriberCount() {
53
+ return entries.length;
54
+ }
55
+ };
56
+ }
57
+ const schedulers = new WeakMap();
58
+ function schedulerForApp(app) {
59
+ let scheduler = schedulers.get(app);
60
+ if (!scheduler) {
61
+ scheduler = createFrameScheduler(app);
62
+ schedulers.set(app, scheduler);
63
+ }
64
+ return scheduler;
65
+ }
66
+ export function useAuraFrame(callback, priority = 0) {
67
+ const app = useAuraApp();
68
+ const latest = useRef(callback);
69
+ latest.current = callback;
70
+ useEffect(() => {
71
+ if (!app)
72
+ return undefined;
73
+ return schedulerForApp(app).subscribe((frame) => latest.current(frame), priority);
74
+ }, [app, priority]);
75
+ }
76
+ /**
77
+ * Interaction nodes that engage the F4 picking stack for a target node.
78
+ * Add these to the scene alongside `AuraCanvas` event props: the props hear
79
+ * canvas-level DOM events, these nodes declare what the picking stack tracks.
80
+ */
81
+ export function eventInteractionNodes(target) {
82
+ return [
83
+ interactions.pointer(target ? { target } : {}),
84
+ interactions.hover(target ? { target } : {})
85
+ ];
86
+ }
3
87
  export function AuraCanvas(props) {
4
88
  const ref = useRef(null);
89
+ const [app, setApp] = useState(undefined);
5
90
  const builtScene = useMemo(() => buildSceneFromChildren(props.children), [props.children]);
91
+ const handlers = useMemo(() => ({
92
+ ...(props.onPointerDown ? { onPointerDown: props.onPointerDown } : {}),
93
+ ...(props.onPointerMove ? { onPointerMove: props.onPointerMove } : {}),
94
+ ...(props.onPointerUp ? { onPointerUp: props.onPointerUp } : {}),
95
+ ...(props.onHover ? { onHover: props.onHover } : {})
96
+ }), [props.onPointerDown, props.onPointerMove, props.onPointerUp, props.onHover]);
6
97
  useEffect(() => {
7
98
  if (!ref.current)
8
99
  return undefined;
9
- const app = createAuraApp(ref.current, {
100
+ const canvas = ref.current;
101
+ const created = createAuraApp(canvas, {
10
102
  scene: builtScene,
11
103
  diagnostics: props.diagnostics,
12
104
  pixelRatio: props.pixelRatio,
13
105
  autoStart: props.autoStart,
14
106
  resize: props.resize
15
107
  });
16
- props.onReady?.(app);
17
- return () => app.dispose();
18
- }, [builtScene, props.autoStart, props.diagnostics, props.onReady, props.pixelRatio, props.resize]);
19
- return createElement("canvas", {
108
+ setApp(created);
109
+ props.onReady?.(created);
110
+ const pointerDown = (event) => handlers.onPointerDown?.(event);
111
+ const pointerMove = (event) => {
112
+ handlers.onPointerMove?.(event);
113
+ handlers.onHover?.(event);
114
+ };
115
+ const pointerUp = (event) => handlers.onPointerUp?.(event);
116
+ canvas.addEventListener("pointerdown", pointerDown);
117
+ canvas.addEventListener("pointermove", pointerMove);
118
+ canvas.addEventListener("pointerup", pointerUp);
119
+ return () => {
120
+ canvas.removeEventListener("pointerdown", pointerDown);
121
+ canvas.removeEventListener("pointermove", pointerMove);
122
+ canvas.removeEventListener("pointerup", pointerUp);
123
+ created.dispose();
124
+ setApp(undefined);
125
+ };
126
+ }, [builtScene, props.autoStart, props.diagnostics, props.onReady, props.pixelRatio, props.resize, handlers]);
127
+ return createElement(AuraAppContext.Provider, { value: app }, createElement("canvas", {
20
128
  ref,
21
129
  className: props.className,
22
130
  style: {
@@ -25,13 +133,15 @@ export function AuraCanvas(props) {
25
133
  display: "block",
26
134
  ...(props.style ?? {})
27
135
  }
28
- });
136
+ }));
29
137
  }
30
138
  export function Scene(_props) {
31
139
  return null;
32
140
  }
33
- export function Model(_props) {
34
- return null;
141
+ export function Model(props) {
142
+ if (!props.suspendOnLoad || props.suspendOnLoad.length === 0)
143
+ return null;
144
+ return createElement(Suspense, { fallback: props.fallback ?? null }, createElement(ModelPreloader, { descriptors: props.suspendOnLoad, loader: props.loader }));
35
145
  }
36
146
  export function Camera(_props) {
37
147
  return null;
@@ -42,6 +152,137 @@ export function Lights(_props) {
42
152
  export function Effect(_props) {
43
153
  return null;
44
154
  }
155
+ async function fetchPreload(descriptors) {
156
+ const settled = await Promise.allSettled(descriptors.map(async (descriptor) => {
157
+ const response = await fetch(descriptor.url);
158
+ if (!response.ok)
159
+ throw new Error(`HTTP ${response.status} for ${descriptor.url}`);
160
+ await response.arrayBuffer();
161
+ return descriptor.id;
162
+ }));
163
+ const loaded = [];
164
+ const failed = [];
165
+ settled.forEach((result, index) => {
166
+ const id = descriptors[index]?.id ?? `asset-${index}`;
167
+ if (result.status === "fulfilled")
168
+ loaded.push(result.value);
169
+ else
170
+ failed.push({ id, message: result.reason instanceof Error ? result.reason.message : String(result.reason) });
171
+ });
172
+ return { ok: failed.length === 0, loaded, failed };
173
+ }
174
+ /**
175
+ * Suspense-compatible asset boundary over typed-asset preload (V1).
176
+ *
177
+ * `read()` throws the in-flight promise while pending (so `<Suspense>`
178
+ * shows the fallback), throws the failure once failed (so an error boundary
179
+ * hears it — preload failures are never silent), and returns evidence when
180
+ * ready. Consecutive `preload()` calls share one flight. Not a second loader:
181
+ * the default warms the HTTP cache the engine loader then reads, and apps
182
+ * that own an `AssetPreloader` pass its `preloadAll` as `loader`.
183
+ */
184
+ export function createAuraAssetResource(descriptors, loader = fetchPreload) {
185
+ if (descriptors.length === 0)
186
+ throw new Error("Aura3D asset preload requires at least one descriptor.");
187
+ const seen = new Set();
188
+ for (const descriptor of descriptors) {
189
+ if (!descriptor.id || !descriptor.url)
190
+ throw new Error("Aura3D asset descriptors require an id and a url.");
191
+ if (seen.has(descriptor.id))
192
+ throw new Error(`Duplicate Aura3D asset descriptor id "${descriptor.id}".`);
193
+ seen.add(descriptor.id);
194
+ }
195
+ let state;
196
+ const preload = () => {
197
+ if (state?.status === "ready")
198
+ return Promise.resolve(state.evidence);
199
+ if (state?.status === "pending")
200
+ return state.promise;
201
+ if (state?.status === "error")
202
+ return Promise.reject(state.error);
203
+ const promise = loader(descriptors).then((evidence) => {
204
+ state = { status: "ready", evidence };
205
+ return evidence;
206
+ }, (error) => {
207
+ state = { status: "error", error };
208
+ throw error;
209
+ });
210
+ state = { status: "pending", promise };
211
+ return promise;
212
+ };
213
+ return {
214
+ descriptors,
215
+ preload,
216
+ read() {
217
+ if (!state)
218
+ throw preload();
219
+ if (state.status === "pending")
220
+ throw state.promise;
221
+ if (state.status === "error")
222
+ throw state.error;
223
+ return state.evidence;
224
+ }
225
+ };
226
+ }
227
+ const resourceCache = new Map();
228
+ function resourceKey(descriptors) {
229
+ return [...descriptors].map((d) => `${d.id}@${d.url}`).sort().join("|");
230
+ }
231
+ /** Shared resource per descriptor set, so sibling `<Model>`s preload once. */
232
+ export function resourceForDescriptors(descriptors, loader) {
233
+ const key = resourceKey(descriptors);
234
+ let resource = resourceCache.get(key);
235
+ if (!resource) {
236
+ resource = createAuraAssetResource(descriptors, loader);
237
+ resourceCache.set(key, resource);
238
+ }
239
+ return resource;
240
+ }
241
+ /** Read preloaded asset evidence inside a `<Suspense>` boundary. Suspends while pending. */
242
+ export function useAuraAsset(resource) {
243
+ return resource.read();
244
+ }
245
+ function ModelPreloader(props) {
246
+ useAuraAsset(resourceForDescriptors(props.descriptors, props.loader));
247
+ return null;
248
+ }
249
+ /** Camera-controls binding (F1/N2): orbit camera plus an orbit interaction node. */
250
+ export function cameraControlsRecipe(options = {}) {
251
+ return (builder) => builder
252
+ .camera(camera.orbit(options.distance !== undefined ? { distance: options.distance } : {}))
253
+ .add(interactions.orbit(options.target ? { target: options.target } : {}));
254
+ }
255
+ /** Environment preset (M3/B3): one IBL environment node from the preset catalog. */
256
+ export function environmentPresetRecipe(preset = "studio") {
257
+ return (builder) => builder.add(environments[preset]());
258
+ }
259
+ /** Transform gizmo (F4/O3): drag-vector plus hover-select on a target node. */
260
+ export function transformGizmoRecipe(target) {
261
+ if (!target)
262
+ throw new Error("Aura3D transform gizmo recipe requires a target node name.");
263
+ return (builder) => builder.add(interactions.dragVector({ target })).add(interactions.hover({ target, selected: target }));
264
+ }
265
+ /**
266
+ * R3F → AuraCanvas mapping table (V1). Documents the manual mapping for
267
+ * importers; "R3F parity" wording is deliberately absent — these are the
268
+ * covered paths, not the whole library.
269
+ */
270
+ export const R3F_TO_AURA_MIGRATION_TABLE = [
271
+ { r3f: "<Canvas>", aura: "<AuraCanvas>", notes: "Mounts createAuraApp; diagnostics/pixelRatio/autoStart/resize map directly." },
272
+ { r3f: "<mesh> / <primitive>", aura: "<Model asset={...}>", notes: "Typed asset refs only (assets.*); no raw GLB URLs or guessed IDs." },
273
+ { r3f: "<ambientLight> / <pointLight>", aura: "<Lights>", notes: "Studio preset plus ambient/directional/point declarations." },
274
+ { r3f: "<PerspectiveCamera> / OrbitControls", aura: "<Camera> + cameraControlsRecipe", notes: "Orbit/dolly/follow/perspective declarations; recipe adds the orbit interaction node." },
275
+ { r3f: "<EffectComposer> effects", aura: "<Effect>", notes: "Fog/bloom/rain declarations; no postprocess parity beyond the covered set." },
276
+ { r3f: "useFrame(callback)", aura: "useAuraFrame(callback, priority?)", notes: "Priority-ordered fan-out over app.onFrame; cleanup on unmount." },
277
+ { r3f: "useThree((s) => s.gl)", aura: "useAuraApp()", notes: "Returns the mounted AuraApp or undefined before mount." },
278
+ { r3f: "useLoader + <Suspense>", aura: "<Model suspendOnLoad fallback> + useAuraAsset", notes: "preloadAll semantics with per-record ok/failed evidence; failures throw to an error boundary." },
279
+ { r3f: "onPointerOver / onClick on meshes", aura: "AuraCanvas event props + eventInteractionNodes", notes: "Props hear canvas-level DOM events; picking stays declarative via interaction nodes." },
280
+ { r3f: "drei <OrbitControls>", aura: "cameraControlsRecipe", notes: "Tested recipe, not a drei port." },
281
+ { r3f: "drei <Environment>", aura: "environmentPresetRecipe", notes: "IBL preset catalog node; HDRI probe stays on environments.hdri." },
282
+ { r3f: "drei <TransformControls>", aura: "transformGizmoRecipe", notes: "Drag-vector plus hover-select recipe; editor gizmos stay in editor-runtime." }
283
+ ];
284
+ /** Migration-table scope guard: the table maps covered paths, never claims R3F parity. */
285
+ export const R3F_MIGRATION_NOT_PARITY = "This table maps idiomatic R3F to the covered AuraCanvas surface. It is not an R3F-parity claim.";
45
286
  export function buildSceneFromChildren(children) {
46
287
  let builder = scene();
47
288
  const sceneElement = findFirstElementOfType(children, Scene);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * D3 wetness + lightning descriptors (PRD D3 box 2).
3
+ *
4
+ * Pure deterministic helpers driven by `createWeatherState`:
5
+ * - albedo darkening + roughness response for a wetness uniform in [0, 1],
6
+ * - puddle-mask sampling over `WeatherPuddlePatch` discs,
7
+ * - lightning-flash envelope for the thunderstorm light hook.
8
+ *
9
+ * The rendered wetness path applies these values to ordinary PBR material
10
+ * inputs (base color multiplied down, roughness scaled down); no new shader
11
+ * claim is made here.
12
+ */
13
+ import { type WeatherPuddlePatch, type WeatherState, type WeatherType } from "./Weather.js";
14
+ export interface WetnessMaterialResponse {
15
+ /** Wetness in [0, 1] taken from the weather state. */
16
+ readonly wetness: number;
17
+ /** Darkened base color hex. */
18
+ readonly albedoColor: string;
19
+ /** Roughness after the wet response (never above the dry input). */
20
+ readonly roughness: number;
21
+ /** Mean puddle-mask value over the sampled patches in [0, 1]. */
22
+ readonly puddleMask: number;
23
+ }
24
+ export interface LightningFlashSample {
25
+ readonly elapsedSeconds: number;
26
+ /** Flash intensity in [0, 1]; 0 unless the weather type is thunderstorm. */
27
+ readonly intensity: number;
28
+ }
29
+ export interface WetnessProbe {
30
+ readonly weather: WeatherState;
31
+ readonly response: WetnessMaterialResponse;
32
+ readonly flash: LightningFlashSample;
33
+ }
34
+ /**
35
+ * Describe the wet look for one ground material under a weather type.
36
+ * `dryColor` is a `#rrggbb` hex string; `dryRoughness` is in [0, 1].
37
+ */
38
+ export declare function describeWetMaterial(options: {
39
+ readonly type?: WeatherType;
40
+ readonly dryColor?: string;
41
+ readonly dryRoughness?: number;
42
+ readonly elapsedSeconds?: number;
43
+ readonly seed?: number;
44
+ }): WetnessProbe;
45
+ /** Multiply a hex albedo toward dark by up to 45% at full wetness. */
46
+ export declare function applyWetnessToColor(hex: string, wetness: number): string;
47
+ /** Scale roughness down by up to 55% at full wetness (never increases). */
48
+ export declare function applyWetnessToRoughness(dryRoughness: number, wetness: number): number;
49
+ /** Smooth puddle-mask falloff over patch discs at a ground sample point. */
50
+ export declare function samplePuddleMask(patches: readonly WeatherPuddlePatch[], x: number, z: number): number;
51
+ /**
52
+ * Deterministic lightning-flash envelope. Non-thunderstorm types always
53
+ * return 0; thunderstorms return sparse sub-second spikes usable as a light
54
+ * intensity hook.
55
+ */
56
+ export declare function sampleLightningFlash(options: {
57
+ readonly type: WeatherType;
58
+ readonly elapsedSeconds: number;
59
+ readonly seed?: number;
60
+ }): LightningFlashSample;
61
+ //# sourceMappingURL=AtmosphereWetness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtmosphereWetness.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/AtmosphereWetness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAsB,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7G,MAAM,WAAW,uBAAuB;IACtC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,YAAY,CAkBf;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrF;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQrG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,oBAAoB,CAUvB"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * D3 wetness + lightning descriptors (PRD D3 box 2).
3
+ *
4
+ * Pure deterministic helpers driven by `createWeatherState`:
5
+ * - albedo darkening + roughness response for a wetness uniform in [0, 1],
6
+ * - puddle-mask sampling over `WeatherPuddlePatch` discs,
7
+ * - lightning-flash envelope for the thunderstorm light hook.
8
+ *
9
+ * The rendered wetness path applies these values to ordinary PBR material
10
+ * inputs (base color multiplied down, roughness scaled down); no new shader
11
+ * claim is made here.
12
+ */
13
+ import { createWeatherState } from "./Weather.js";
14
+ /**
15
+ * Describe the wet look for one ground material under a weather type.
16
+ * `dryColor` is a `#rrggbb` hex string; `dryRoughness` is in [0, 1].
17
+ */
18
+ export function describeWetMaterial(options) {
19
+ const type = options.type ?? "rain";
20
+ const dryColor = options.dryColor ?? "#5b6b4f";
21
+ const dryRoughness = clamp(options.dryRoughness ?? 0.9, 0, 1);
22
+ const elapsedSeconds = Math.max(0, options.elapsedSeconds ?? 1);
23
+ const seed = Math.floor(options.seed ?? 0xd3e7);
24
+ const weather = createWeatherState({ type, elapsedSeconds, seed });
25
+ const albedoColor = applyWetnessToColor(dryColor, weather.wetness);
26
+ const roughness = applyWetnessToRoughness(dryRoughness, weather.wetness);
27
+ const puddleMask = weather.puddlePatches.length === 0
28
+ ? 0
29
+ : Number((weather.puddlePatches.reduce((sum, patch) => sum + Math.min(1, patch.depth * 2), 0) /
30
+ weather.puddlePatches.length).toFixed(4));
31
+ return {
32
+ weather,
33
+ response: { wetness: weather.wetness, albedoColor, roughness, puddleMask },
34
+ flash: sampleLightningFlash({ type, elapsedSeconds, seed })
35
+ };
36
+ }
37
+ /** Multiply a hex albedo toward dark by up to 45% at full wetness. */
38
+ export function applyWetnessToColor(hex, wetness) {
39
+ const wet = clamp(wetness, 0, 1);
40
+ const rgb = parseHex(hex);
41
+ const factor = 1 - 0.45 * wet;
42
+ return rgbToHex([rgb[0] * factor, rgb[1] * factor, rgb[2] * factor]);
43
+ }
44
+ /** Scale roughness down by up to 55% at full wetness (never increases). */
45
+ export function applyWetnessToRoughness(dryRoughness, wetness) {
46
+ const wet = clamp(wetness, 0, 1);
47
+ return Number((clamp(dryRoughness, 0, 1) * (1 - 0.55 * wet)).toFixed(4));
48
+ }
49
+ /** Smooth puddle-mask falloff over patch discs at a ground sample point. */
50
+ export function samplePuddleMask(patches, x, z) {
51
+ let mask = 0;
52
+ for (const patch of patches) {
53
+ const distance = Math.hypot(x - patch.x, z - patch.z);
54
+ const t = 1 - distance / Math.max(1e-6, patch.radius * 1.6);
55
+ if (t > 0)
56
+ mask = Math.max(mask, t * t * (3 - 2 * t));
57
+ }
58
+ return Number(clamp(mask, 0, 1).toFixed(4));
59
+ }
60
+ /**
61
+ * Deterministic lightning-flash envelope. Non-thunderstorm types always
62
+ * return 0; thunderstorms return sparse sub-second spikes usable as a light
63
+ * intensity hook.
64
+ */
65
+ export function sampleLightningFlash(options) {
66
+ const elapsedSeconds = Math.max(0, options.elapsedSeconds);
67
+ if (options.type !== "thunderstorm")
68
+ return { elapsedSeconds, intensity: 0 };
69
+ const seed = Math.floor(options.seed ?? 0xd3e7);
70
+ const windowIndex = Math.floor(elapsedSeconds * 2);
71
+ const strike = seeded01(seed ^ (windowIndex * 0x9e3779b9)) > 0.62;
72
+ if (!strike)
73
+ return { elapsedSeconds, intensity: 0 };
74
+ const phase = elapsedSeconds * 2 - windowIndex;
75
+ const envelope = Math.exp(-phase * 9) * (0.55 + 0.45 * Math.sin(phase * 40));
76
+ return { elapsedSeconds, intensity: Number(clamp(envelope, 0, 1).toFixed(4)) };
77
+ }
78
+ function parseHex(hex) {
79
+ const match = /^#([0-9a-fA-F]{6})$/.exec(hex.trim());
80
+ if (!match?.[1])
81
+ throw new RangeError(`Wetness albedo must be a #rrggbb hex string, got "${hex}".`);
82
+ const value = match[1];
83
+ return [parseInt(value.slice(0, 2), 16), parseInt(value.slice(2, 4), 16), parseInt(value.slice(4, 6), 16)];
84
+ }
85
+ function rgbToHex(rgb) {
86
+ const toHex = (v) => Math.max(0, Math.min(255, Math.round(v))).toString(16).padStart(2, "0");
87
+ return `#${toHex(rgb[0])}${toHex(rgb[1])}${toHex(rgb[2])}`;
88
+ }
89
+ function seeded01(seed) {
90
+ let value = seed >>> 0;
91
+ value ^= value << 13;
92
+ value ^= value >>> 17;
93
+ value ^= value << 5;
94
+ return ((value >>> 0) % 10_000) / 10_000;
95
+ }
96
+ function clamp(value, min, max) {
97
+ return Math.max(min, Math.min(max, value));
98
+ }
99
+ //# sourceMappingURL=AtmosphereWetness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtmosphereWetness.js","sourceRoot":"","sources":["../../../../packages/rendering/src/AtmosphereWetness.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,22 @@ import { type CollectedLight } from "./LightCollector.js";
2
2
  import { TextureBinding } from "./TextureBinding.js";
3
3
  export declare const CLUSTER_TILE_SIZE = 64;
4
4
  export declare const MAX_LIGHTS_PER_CLUSTER = 64;
5
+ export type ClusteredForwardFallbackPolicy = "none" | "nearest-observer" | "input-order-no-observer";
6
+ export interface ClusteredForwardLightingOptions {
7
+ /**
8
+ * World-space reference point for the nearest-N over-budget policy (normally
9
+ * the camera position). When omitted, over-budget clusters keep input order
10
+ * and the diagnostics record `input-order-no-observer` so the weaker policy
11
+ * is visible instead of silent.
12
+ */
13
+ readonly observerPosition?: readonly [number, number, number];
14
+ /**
15
+ * Warning sink for the over-budget fallback. A custom sink is always called
16
+ * when the fallback applies; the default `console.warn` is deduplicated per
17
+ * grid configuration so per-frame clustered builds do not spam the console.
18
+ */
19
+ readonly onWarning?: (message: string) => void;
20
+ }
5
21
  export interface ClusteredForwardLightingDiagnostics {
6
22
  readonly source: "createClusteredForwardLighting";
7
23
  readonly mode: "screen-tile-texture-grid";
@@ -17,6 +33,12 @@ export interface ClusteredForwardLightingDiagnostics {
17
33
  readonly totalLightReferences: number;
18
34
  readonly culledLightCount: number;
19
35
  readonly droppedLightCount: number;
36
+ readonly overBudgetClusterCount: number;
37
+ readonly maxRequestedLightsInCluster: number;
38
+ readonly requestedPerCluster: readonly number[];
39
+ readonly indexedPerCluster: readonly number[];
40
+ readonly fallbackPolicy: ClusteredForwardFallbackPolicy;
41
+ readonly warnings: readonly string[];
20
42
  }
21
43
  export interface ClusteredForwardLightingResources {
22
44
  readonly lightData: TextureBinding;
@@ -24,5 +46,7 @@ export interface ClusteredForwardLightingResources {
24
46
  readonly diagnostics: ClusteredForwardLightingDiagnostics;
25
47
  dispose(): void;
26
48
  }
27
- export declare function createClusteredForwardLighting(lights: readonly CollectedLight[], viewportWidth: number, viewportHeight: number, viewProjectionMatrix?: Float32Array | readonly number[]): ClusteredForwardLightingResources;
49
+ export declare function createClusteredForwardLighting(lights: readonly CollectedLight[], viewportWidth: number, viewportHeight: number, viewProjectionMatrix?: Float32Array | readonly number[], options?: ClusteredForwardLightingOptions): ClusteredForwardLightingResources;
50
+ /** Clears the once-per-configuration warning memory (tests + device reset). */
51
+ export declare function resetClusteredForwardLightingWarnings(): void;
28
52
  //# sourceMappingURL=ClusteredForwardLighting.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClusteredForwardLighting.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/ClusteredForwardLighting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,gCAAgC,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,mCAAmC,CAAC;IAC1D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,oBAAoB,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,GACtD,iCAAiC,CAsGnC"}
1
+ {"version":3,"file":"ClusteredForwardLighting.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/ClusteredForwardLighting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,MAAM,8BAA8B,GAAG,MAAM,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;AAErG,MAAM,WAAW,+BAA+B;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,gCAAgC,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,8BAA8B,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,mCAAmC,CAAC;IAC1D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,oBAAoB,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,EACvD,OAAO,GAAE,+BAAoC,GAC5C,iCAAiC,CAmJnC;AA2FD,+EAA+E;AAC/E,wBAAgB,qCAAqC,IAAI,IAAI,CAE5D"}