@aura3d/engine 4.3.7 → 4.6.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 (577) hide show
  1. package/README.md +1 -0
  2. package/dist/animation/AnimationTrack.d.ts.map +1 -1
  3. package/dist/animation/AnimationTrack.js +3 -1
  4. package/dist/animation/AnimationTrack.js.map +1 -1
  5. package/dist/animation/pose/BoneMask.d.ts +8 -0
  6. package/dist/animation/pose/BoneMask.d.ts.map +1 -1
  7. package/dist/animation/pose/BoneMask.js +18 -1
  8. package/dist/animation/pose/BoneMask.js.map +1 -1
  9. package/dist/animation/pose/PoseMixer.d.ts +18 -2
  10. package/dist/animation/pose/PoseMixer.d.ts.map +1 -1
  11. package/dist/animation/pose/PoseMixer.js +55 -4
  12. package/dist/animation/pose/PoseMixer.js.map +1 -1
  13. package/dist/animation/pose/RetargetWorker.d.ts +8 -1
  14. package/dist/animation/pose/RetargetWorker.d.ts.map +1 -1
  15. package/dist/animation/pose/RetargetWorker.js +30 -2
  16. package/dist/animation/pose/RetargetWorker.js.map +1 -1
  17. package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
  18. package/dist/assets/GLTFAnimationRuntime.js +11 -4
  19. package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
  20. package/dist/assets/GLTFLoader.d.ts +2 -0
  21. package/dist/assets/GLTFLoader.d.ts.map +1 -1
  22. package/dist/assets/GLTFLoader.js +17 -3
  23. package/dist/assets/GLTFLoader.js.map +1 -1
  24. package/dist/aura3d-cli/index.d.ts +6 -0
  25. package/dist/aura3d-cli/index.d.ts.map +1 -1
  26. package/dist/aura3d-cli/index.js +28 -0
  27. package/dist/aura3d-cli/index.js.map +1 -1
  28. package/dist/aura3d-cli/migrate-three/emit.d.ts.map +1 -1
  29. package/dist/aura3d-cli/migrate-three/emit.js +109 -29
  30. package/dist/aura3d-cli/migrate-three/emit.js.map +1 -1
  31. package/dist/aura3d-cli/migrate-three/mappings.d.ts +15 -0
  32. package/dist/aura3d-cli/migrate-three/mappings.d.ts.map +1 -1
  33. package/dist/aura3d-cli/migrate-three/mappings.js +70 -60
  34. package/dist/aura3d-cli/migrate-three/mappings.js.map +1 -1
  35. package/dist/aura3d-cli/migrate-three/parse.d.ts +9 -0
  36. package/dist/aura3d-cli/migrate-three/parse.d.ts.map +1 -1
  37. package/dist/aura3d-cli/migrate-three/parse.js +1 -1
  38. package/dist/aura3d-cli/migrate-three/parse.js.map +1 -1
  39. package/dist/create-aura3d/cli.js +22 -2
  40. package/dist/create-aura3d/cli.js.map +1 -1
  41. package/dist/create-aura3d/index.d.ts +11 -0
  42. package/dist/create-aura3d/index.d.ts.map +1 -1
  43. package/dist/create-aura3d/index.js +9 -2
  44. package/dist/create-aura3d/index.js.map +1 -1
  45. package/dist/create-aura3d/template-assets.d.ts +53 -0
  46. package/dist/create-aura3d/template-assets.d.ts.map +1 -0
  47. package/dist/create-aura3d/template-assets.js +116 -0
  48. package/dist/create-aura3d/template-assets.js.map +1 -0
  49. package/dist/engine/agent-api/Clock.d.ts +9 -3
  50. package/dist/engine/agent-api/Clock.d.ts.map +1 -1
  51. package/dist/engine/agent-api/Clock.js +17 -6
  52. package/dist/engine/agent-api/Clock.js.map +1 -1
  53. package/dist/engine/agent-api/animationMask.d.ts +26 -0
  54. package/dist/engine/agent-api/animationMask.d.ts.map +1 -0
  55. package/dist/engine/agent-api/animationMask.js +38 -0
  56. package/dist/engine/agent-api/animationMask.js.map +1 -0
  57. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +2 -0
  58. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  59. package/dist/engine/agent-api/app/actorAnimationHandle.js +26 -3
  60. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  61. package/dist/engine/agent-api/app/canvas.d.ts +21 -0
  62. package/dist/engine/agent-api/app/canvas.d.ts.map +1 -1
  63. package/dist/engine/agent-api/app/canvas.js +119 -7
  64. package/dist/engine/agent-api/app/canvas.js.map +1 -1
  65. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  66. package/dist/engine/agent-api/app/createAuraApp.js +153 -14
  67. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  68. package/dist/engine/agent-api/app/frameLoop.d.ts +13 -0
  69. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  70. package/dist/engine/agent-api/app/frameLoop.js +118 -15
  71. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  72. package/dist/engine/agent-api/app/mountRenderer.d.ts +6 -1
  73. package/dist/engine/agent-api/app/mountRenderer.d.ts.map +1 -1
  74. package/dist/engine/agent-api/app/mountRenderer.js +2 -2
  75. package/dist/engine/agent-api/app/mountRenderer.js.map +1 -1
  76. package/dist/engine/agent-api/app/parentFit.d.ts +20 -2
  77. package/dist/engine/agent-api/app/parentFit.d.ts.map +1 -1
  78. package/dist/engine/agent-api/app/parentFit.js +13 -9
  79. package/dist/engine/agent-api/app/parentFit.js.map +1 -1
  80. package/dist/engine/agent-api/app/renderPath.d.ts +86 -0
  81. package/dist/engine/agent-api/app/renderPath.d.ts.map +1 -0
  82. package/dist/engine/agent-api/app/renderPath.js +269 -0
  83. package/dist/engine/agent-api/app/renderPath.js.map +1 -0
  84. package/dist/engine/agent-api/app/rendererOptions.d.ts +31 -1
  85. package/dist/engine/agent-api/app/rendererOptions.d.ts.map +1 -1
  86. package/dist/engine/agent-api/app/rendererOptions.js +74 -7
  87. package/dist/engine/agent-api/app/rendererOptions.js.map +1 -1
  88. package/dist/engine/agent-api/app/routeState.d.ts.map +1 -1
  89. package/dist/engine/agent-api/app/routeState.js +8 -3
  90. package/dist/engine/agent-api/app/routeState.js.map +1 -1
  91. package/dist/engine/agent-api/app/runtimeNodes.d.ts +2 -0
  92. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  93. package/dist/engine/agent-api/app/runtimeNodes.js +111 -2
  94. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  95. package/dist/engine/agent-api/camera/extension.d.ts.map +1 -1
  96. package/dist/engine/agent-api/camera/extension.js +2 -2
  97. package/dist/engine/agent-api/camera/extension.js.map +1 -1
  98. package/dist/engine/agent-api/camera/rigs/fromSpec.d.ts +2 -0
  99. package/dist/engine/agent-api/camera/rigs/fromSpec.d.ts.map +1 -1
  100. package/dist/engine/agent-api/camera/rigs/fromSpec.js +11 -1
  101. package/dist/engine/agent-api/camera/rigs/fromSpec.js.map +1 -1
  102. package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
  103. package/dist/engine/agent-api/compiler/animation.js +4 -2
  104. package/dist/engine/agent-api/compiler/animation.js.map +1 -1
  105. package/dist/engine/agent-api/compiler/camera.d.ts.map +1 -1
  106. package/dist/engine/agent-api/compiler/camera.js +10 -0
  107. package/dist/engine/agent-api/compiler/camera.js.map +1 -1
  108. package/dist/engine/agent-api/compiler/compileScene.d.ts +21 -5
  109. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  110. package/dist/engine/agent-api/compiler/compileScene.js +112 -13
  111. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  112. package/dist/engine/agent-api/compiler/contactShadowKey.d.ts +14 -0
  113. package/dist/engine/agent-api/compiler/contactShadowKey.d.ts.map +1 -0
  114. package/dist/engine/agent-api/compiler/contactShadowKey.js +66 -0
  115. package/dist/engine/agent-api/compiler/contactShadowKey.js.map +1 -0
  116. package/dist/engine/agent-api/compiler/environment.d.ts +56 -2
  117. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  118. package/dist/engine/agent-api/compiler/environment.js +202 -15
  119. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  120. package/dist/engine/agent-api/compiler/geometry.d.ts +18 -1
  121. package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
  122. package/dist/engine/agent-api/compiler/geometry.js +25 -5
  123. package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
  124. package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
  125. package/dist/engine/agent-api/compiler/lights.js +14 -6
  126. package/dist/engine/agent-api/compiler/lights.js.map +1 -1
  127. package/dist/engine/agent-api/compiler/mountedRoots.d.ts +6 -0
  128. package/dist/engine/agent-api/compiler/mountedRoots.d.ts.map +1 -0
  129. package/dist/engine/agent-api/compiler/mountedRoots.js +25 -0
  130. package/dist/engine/agent-api/compiler/mountedRoots.js.map +1 -0
  131. package/dist/engine/agent-api/compiler/observations.d.ts +9 -1
  132. package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
  133. package/dist/engine/agent-api/compiler/observations.js +5 -4
  134. package/dist/engine/agent-api/compiler/observations.js.map +1 -1
  135. package/dist/engine/agent-api/compiler/optionCoverage.js +17 -0
  136. package/dist/engine/agent-api/compiler/optionCoverage.js.map +1 -1
  137. package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
  138. package/dist/engine/agent-api/compiler/postprocess.js +2 -0
  139. package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
  140. package/dist/engine/agent-api/compiler/primitives.d.ts +34 -0
  141. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  142. package/dist/engine/agent-api/compiler/primitives.js +113 -3
  143. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  144. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  145. package/dist/engine/agent-api/compiler/renderInput.js +40 -4
  146. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  147. package/dist/engine/agent-api/compiler/renderer.d.ts +6 -4
  148. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  149. package/dist/engine/agent-api/compiler/renderer.js +54 -14
  150. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  151. package/dist/engine/agent-api/compiler/shadows.d.ts +35 -1
  152. package/dist/engine/agent-api/compiler/shadows.d.ts.map +1 -1
  153. package/dist/engine/agent-api/compiler/shadows.js +103 -4
  154. package/dist/engine/agent-api/compiler/shadows.js.map +1 -1
  155. package/dist/engine/agent-api/diagnostics.d.ts +22 -0
  156. package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
  157. package/dist/engine/agent-api/diagnostics.js +53 -1
  158. package/dist/engine/agent-api/diagnostics.js.map +1 -1
  159. package/dist/engine/agent-api/feel/extension.d.ts.map +1 -1
  160. package/dist/engine/agent-api/feel/extension.js +2 -1
  161. package/dist/engine/agent-api/feel/extension.js.map +1 -1
  162. package/dist/engine/agent-api/looks/lookFill.d.ts +4 -0
  163. package/dist/engine/agent-api/looks/lookFill.d.ts.map +1 -0
  164. package/dist/engine/agent-api/looks/lookFill.js +29 -0
  165. package/dist/engine/agent-api/looks/lookFill.js.map +1 -0
  166. package/dist/engine/agent-api/looks/lookPresets.d.ts +13 -0
  167. package/dist/engine/agent-api/looks/lookPresets.d.ts.map +1 -1
  168. package/dist/engine/agent-api/looks/lookPresets.js +5 -0
  169. package/dist/engine/agent-api/looks/lookPresets.js.map +1 -1
  170. package/dist/engine/agent-api/looks/looks.d.ts.map +1 -1
  171. package/dist/engine/agent-api/looks/looks.js +6 -0
  172. package/dist/engine/agent-api/looks/looks.js.map +1 -1
  173. package/dist/engine/agent-api/looks/structuralQA.d.ts.map +1 -1
  174. package/dist/engine/agent-api/looks/structuralQA.js +4 -2
  175. package/dist/engine/agent-api/looks/structuralQA.js.map +1 -1
  176. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts +5 -4
  177. package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts.map +1 -1
  178. package/dist/engine/agent-api/nodes/game/instanceTransforms.js +61 -5
  179. package/dist/engine/agent-api/nodes/game/instanceTransforms.js.map +1 -1
  180. package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
  181. package/dist/engine/agent-api/nodes/groups.js +2 -1
  182. package/dist/engine/agent-api/nodes/groups.js.map +1 -1
  183. package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
  184. package/dist/engine/agent-api/nodes/instances.js +16 -4
  185. package/dist/engine/agent-api/nodes/instances.js.map +1 -1
  186. package/dist/engine/agent-api/nodes/interactions.d.ts +32 -10
  187. package/dist/engine/agent-api/nodes/interactions.d.ts.map +1 -1
  188. package/dist/engine/agent-api/nodes/interactions.js +40 -11
  189. package/dist/engine/agent-api/nodes/interactions.js.map +1 -1
  190. package/dist/engine/agent-api/nodes/model.d.ts +18 -0
  191. package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
  192. package/dist/engine/agent-api/nodes/model.js +41 -1
  193. package/dist/engine/agent-api/nodes/model.js.map +1 -1
  194. package/dist/engine/agent-api/nodes/optionDiagnostics.d.ts +14 -0
  195. package/dist/engine/agent-api/nodes/optionDiagnostics.d.ts.map +1 -0
  196. package/dist/engine/agent-api/nodes/optionDiagnostics.js +34 -0
  197. package/dist/engine/agent-api/nodes/optionDiagnostics.js.map +1 -0
  198. package/dist/engine/agent-api/nodes/orbitInteraction.d.ts +9 -0
  199. package/dist/engine/agent-api/nodes/orbitInteraction.d.ts.map +1 -0
  200. package/dist/engine/agent-api/nodes/orbitInteraction.js +52 -0
  201. package/dist/engine/agent-api/nodes/orbitInteraction.js.map +1 -0
  202. package/dist/engine/agent-api/nodes/physics.d.ts +26 -0
  203. package/dist/engine/agent-api/nodes/physics.d.ts.map +1 -1
  204. package/dist/engine/agent-api/nodes/physics.js +115 -7
  205. package/dist/engine/agent-api/nodes/physics.js.map +1 -1
  206. package/dist/engine/agent-api/nodes/primitives.d.ts +16 -1
  207. package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
  208. package/dist/engine/agent-api/nodes/primitives.js +27 -1
  209. package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
  210. package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
  211. package/dist/engine/agent-api/nodes/scene.js +4 -2
  212. package/dist/engine/agent-api/nodes/scene.js.map +1 -1
  213. package/dist/engine/agent-api/nodes/text3d.d.ts.map +1 -1
  214. package/dist/engine/agent-api/nodes/text3d.js +11 -2
  215. package/dist/engine/agent-api/nodes/text3d.js.map +1 -1
  216. package/dist/engine/agent-api/nodes/types/runtime.d.ts +38 -0
  217. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  218. package/dist/engine/agent-api/nodes/types.d.ts +44 -0
  219. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  220. package/dist/engine/agent-api/platform.d.ts +5 -0
  221. package/dist/engine/agent-api/platform.d.ts.map +1 -1
  222. package/dist/engine/agent-api/platform.js +15 -0
  223. package/dist/engine/agent-api/platform.js.map +1 -1
  224. package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
  225. package/dist/engine/agent-api/postBridge.js +5 -1
  226. package/dist/engine/agent-api/postBridge.js.map +1 -1
  227. package/dist/engine/agent-api/sceneKitDiagnostics.d.ts.map +1 -1
  228. package/dist/engine/agent-api/sceneKitDiagnostics.js +5 -2
  229. package/dist/engine/agent-api/sceneKitDiagnostics.js.map +1 -1
  230. package/dist/engine/contracts/animation.d.ts +5 -3
  231. package/dist/engine/contracts/animation.d.ts.map +1 -1
  232. package/dist/engine/contracts/animation.js.map +1 -1
  233. package/dist/engine/contracts/environment.d.ts +9 -0
  234. package/dist/engine/contracts/environment.d.ts.map +1 -1
  235. package/dist/engine/contracts/environment.js.map +1 -1
  236. package/dist/engine/contracts/flags.d.ts.map +1 -1
  237. package/dist/engine/contracts/flags.js +2 -1
  238. package/dist/engine/contracts/flags.js.map +1 -1
  239. package/dist/engine/contracts/lighting.d.ts +3 -0
  240. package/dist/engine/contracts/lighting.d.ts.map +1 -1
  241. package/dist/engine/contracts/lighting.js.map +1 -1
  242. package/dist/engine/contracts/stubs/game.d.ts.map +1 -1
  243. package/dist/engine/contracts/stubs/game.js +9 -1
  244. package/dist/engine/contracts/stubs/game.js.map +1 -1
  245. package/dist/engine/contracts/urlCache.d.ts +4 -0
  246. package/dist/engine/contracts/urlCache.d.ts.map +1 -0
  247. package/dist/engine/contracts/urlCache.js +25 -0
  248. package/dist/engine/contracts/urlCache.js.map +1 -0
  249. package/dist/engine/lanes/prd01/outputSurface.d.ts.map +1 -1
  250. package/dist/engine/lanes/prd01/outputSurface.js +25 -1
  251. package/dist/engine/lanes/prd01/outputSurface.js.map +1 -1
  252. package/dist/engine/lanes/prd02.d.ts +12 -4
  253. package/dist/engine/lanes/prd02.d.ts.map +1 -1
  254. package/dist/engine/lanes/prd02.js +23 -7
  255. package/dist/engine/lanes/prd02.js.map +1 -1
  256. package/dist/game/touch/TouchControls.d.ts.map +1 -1
  257. package/dist/game/touch/TouchControls.js +48 -12
  258. package/dist/game/touch/TouchControls.js.map +1 -1
  259. package/dist/math/SphericalHarmonics3.d.ts +6 -3
  260. package/dist/math/SphericalHarmonics3.d.ts.map +1 -1
  261. package/dist/math/SphericalHarmonics3.js +8 -5
  262. package/dist/math/SphericalHarmonics3.js.map +1 -1
  263. package/dist/math/three/Box3.d.ts +106 -0
  264. package/dist/math/three/Box3.d.ts.map +1 -0
  265. package/dist/math/three/Box3.js +348 -0
  266. package/dist/math/three/Box3.js.map +1 -0
  267. package/dist/math/three/Color.d.ts +127 -0
  268. package/dist/math/three/Color.d.ts.map +1 -0
  269. package/dist/math/three/Color.js +501 -0
  270. package/dist/math/three/Color.js.map +1 -0
  271. package/dist/math/three/Euler.d.ts +50 -0
  272. package/dist/math/three/Euler.d.ts.map +1 -0
  273. package/dist/math/three/Euler.js +210 -0
  274. package/dist/math/three/Euler.js.map +1 -0
  275. package/dist/math/three/Frustum.d.ts +59 -0
  276. package/dist/math/three/Frustum.d.ts.map +1 -0
  277. package/dist/math/three/Frustum.js +135 -0
  278. package/dist/math/three/Frustum.js.map +1 -0
  279. package/dist/math/three/Matrix3.d.ts +56 -0
  280. package/dist/math/three/Matrix3.d.ts.map +1 -0
  281. package/dist/math/three/Matrix3.js +248 -0
  282. package/dist/math/three/Matrix3.js.map +1 -0
  283. package/dist/math/three/Matrix4.d.ts +79 -0
  284. package/dist/math/three/Matrix4.d.ts.map +1 -0
  285. package/dist/math/three/Matrix4.js +708 -0
  286. package/dist/math/three/Matrix4.js.map +1 -0
  287. package/dist/math/three/Plane.d.ts +65 -0
  288. package/dist/math/three/Plane.d.ts.map +1 -0
  289. package/dist/math/three/Plane.js +135 -0
  290. package/dist/math/three/Plane.js.map +1 -0
  291. package/dist/math/three/Quaternion.d.ts +91 -0
  292. package/dist/math/three/Quaternion.d.ts.map +1 -0
  293. package/dist/math/three/Quaternion.js +444 -0
  294. package/dist/math/three/Quaternion.js.map +1 -0
  295. package/dist/math/three/Ray.d.ts +56 -0
  296. package/dist/math/three/Ray.d.ts.map +1 -0
  297. package/dist/math/three/Ray.js +340 -0
  298. package/dist/math/three/Ray.js.map +1 -0
  299. package/dist/math/three/Sphere.d.ts +58 -0
  300. package/dist/math/three/Sphere.d.ts.map +1 -0
  301. package/dist/math/three/Sphere.js +166 -0
  302. package/dist/math/three/Sphere.js.map +1 -0
  303. package/dist/math/three/Triangle.d.ts +58 -0
  304. package/dist/math/three/Triangle.d.ts.map +1 -0
  305. package/dist/math/three/Triangle.js +229 -0
  306. package/dist/math/three/Triangle.js.map +1 -0
  307. package/dist/math/three/Vector2.d.ts +88 -0
  308. package/dist/math/three/Vector2.d.ts.map +1 -0
  309. package/dist/math/three/Vector2.js +283 -0
  310. package/dist/math/three/Vector2.js.map +1 -0
  311. package/dist/math/three/Vector3.d.ts +137 -0
  312. package/dist/math/three/Vector3.d.ts.map +1 -0
  313. package/dist/math/three/Vector3.js +458 -0
  314. package/dist/math/three/Vector3.js.map +1 -0
  315. package/dist/math/three/Vector4.d.ts +100 -0
  316. package/dist/math/three/Vector4.d.ts.map +1 -0
  317. package/dist/math/three/Vector4.js +443 -0
  318. package/dist/math/three/Vector4.js.map +1 -0
  319. package/dist/math/three/index.d.ts +29 -0
  320. package/dist/math/three/index.d.ts.map +1 -0
  321. package/dist/math/three/index.js +29 -0
  322. package/dist/math/three/index.js.map +1 -0
  323. package/dist/react/index.d.ts +21 -0
  324. package/dist/react/index.d.ts.map +1 -1
  325. package/dist/react/index.js +128 -21
  326. package/dist/react/index.js.map +1 -1
  327. package/dist/rendering/DepthPass.d.ts +7 -0
  328. package/dist/rendering/DepthPass.d.ts.map +1 -1
  329. package/dist/rendering/DepthPass.js +43 -6
  330. package/dist/rendering/DepthPass.js.map +1 -1
  331. package/dist/rendering/ForwardPass.d.ts +82 -5
  332. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  333. package/dist/rendering/ForwardPass.js +180 -35
  334. package/dist/rendering/ForwardPass.js.map +1 -1
  335. package/dist/rendering/MaterialBinding.js +6 -2
  336. package/dist/rendering/MaterialBinding.js.map +1 -1
  337. package/dist/rendering/RenderDevice.d.ts +5 -0
  338. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  339. package/dist/rendering/RenderDevice.js.map +1 -1
  340. package/dist/rendering/Renderer.d.ts +8 -0
  341. package/dist/rendering/Renderer.d.ts.map +1 -1
  342. package/dist/rendering/Renderer.js +37 -6
  343. package/dist/rendering/Renderer.js.map +1 -1
  344. package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
  345. package/dist/rendering/RendererPostprocessPlan.js +8 -1
  346. package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
  347. package/dist/rendering/ShaderChunks.d.ts.map +1 -1
  348. package/dist/rendering/ShaderChunks.js +3 -1
  349. package/dist/rendering/ShaderChunks.js.map +1 -1
  350. package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
  351. package/dist/rendering/ShaderLibrary.js +17 -5
  352. package/dist/rendering/ShaderLibrary.js.map +1 -1
  353. package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
  354. package/dist/rendering/ShaderLibraryCore.js +2 -1
  355. package/dist/rendering/ShaderLibraryCore.js.map +1 -1
  356. package/dist/rendering/WebGL2Device.d.ts +19 -1
  357. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  358. package/dist/rendering/WebGL2Device.js +114 -37
  359. package/dist/rendering/WebGL2Device.js.map +1 -1
  360. package/dist/rendering/WebGL2StateCache.d.ts +22 -0
  361. package/dist/rendering/WebGL2StateCache.d.ts.map +1 -1
  362. package/dist/rendering/WebGL2StateCache.js +71 -42
  363. package/dist/rendering/WebGL2StateCache.js.map +1 -1
  364. package/dist/rendering/contracts/core.d.ts.map +1 -1
  365. package/dist/rendering/contracts/core.js +22 -2
  366. package/dist/rendering/contracts/core.js.map +1 -1
  367. package/dist/rendering/contracts/program.d.ts.map +1 -1
  368. package/dist/rendering/contracts/program.js +8 -1
  369. package/dist/rendering/contracts/program.js.map +1 -1
  370. package/dist/rendering/contracts/quality.d.ts +21 -0
  371. package/dist/rendering/contracts/quality.d.ts.map +1 -1
  372. package/dist/rendering/contracts/quality.js +5 -0
  373. package/dist/rendering/contracts/quality.js.map +1 -1
  374. package/dist/rendering/contracts/renderItem.d.ts +6 -0
  375. package/dist/rendering/contracts/renderItem.d.ts.map +1 -1
  376. package/dist/rendering/contracts/structuralMemo.d.ts +23 -0
  377. package/dist/rendering/contracts/structuralMemo.d.ts.map +1 -0
  378. package/dist/rendering/contracts/structuralMemo.js +81 -0
  379. package/dist/rendering/contracts/structuralMemo.js.map +1 -0
  380. package/dist/rendering/environment/EnvironmentCache.d.ts.map +1 -1
  381. package/dist/rendering/environment/EnvironmentCache.js +6 -1
  382. package/dist/rendering/environment/EnvironmentCache.js.map +1 -1
  383. package/dist/rendering/environment/FirstFrameGate.d.ts +23 -0
  384. package/dist/rendering/environment/FirstFrameGate.d.ts.map +1 -0
  385. package/dist/rendering/environment/FirstFrameGate.js +58 -0
  386. package/dist/rendering/environment/FirstFrameGate.js.map +1 -0
  387. package/dist/rendering/environment/Rgb9e5Cube.d.ts.map +1 -1
  388. package/dist/rendering/environment/Rgb9e5Cube.js +8 -4
  389. package/dist/rendering/environment/Rgb9e5Cube.js.map +1 -1
  390. package/dist/rendering/environment/probeBuild.d.ts +29 -0
  391. package/dist/rendering/environment/probeBuild.d.ts.map +1 -1
  392. package/dist/rendering/environment/probeBuild.js +124 -45
  393. package/dist/rendering/environment/probeBuild.js.map +1 -1
  394. package/dist/rendering/forward/Lighting.d.ts +43 -3
  395. package/dist/rendering/forward/Lighting.d.ts.map +1 -1
  396. package/dist/rendering/forward/Lighting.js +127 -17
  397. package/dist/rendering/forward/Lighting.js.map +1 -1
  398. package/dist/rendering/forward/contactShadowMaskStore.d.ts +41 -0
  399. package/dist/rendering/forward/contactShadowMaskStore.d.ts.map +1 -0
  400. package/dist/rendering/forward/contactShadowMaskStore.js +85 -0
  401. package/dist/rendering/forward/contactShadowMaskStore.js.map +1 -0
  402. package/dist/rendering/geometry/Shape.d.ts.map +1 -1
  403. package/dist/rendering/geometry/Shape.js +7 -2
  404. package/dist/rendering/geometry/Shape.js.map +1 -1
  405. package/dist/rendering/geometry/Support.d.ts +4 -0
  406. package/dist/rendering/geometry/Support.d.ts.map +1 -1
  407. package/dist/rendering/geometry/Support.js +3 -2
  408. package/dist/rendering/geometry/Support.js.map +1 -1
  409. package/dist/rendering/index.d.ts +6 -0
  410. package/dist/rendering/index.d.ts.map +1 -1
  411. package/dist/rendering/index.js +5 -0
  412. package/dist/rendering/index.js.map +1 -1
  413. package/dist/rendering/passes/ContactShadowPass.d.ts +40 -3
  414. package/dist/rendering/passes/ContactShadowPass.d.ts.map +1 -1
  415. package/dist/rendering/passes/ContactShadowPass.js +73 -13
  416. package/dist/rendering/passes/ContactShadowPass.js.map +1 -1
  417. package/dist/rendering/passes/Prd02ContactShadowsContributor.d.ts +19 -0
  418. package/dist/rendering/passes/Prd02ContactShadowsContributor.d.ts.map +1 -1
  419. package/dist/rendering/passes/Prd02ContactShadowsContributor.js +179 -28
  420. package/dist/rendering/passes/Prd02ContactShadowsContributor.js.map +1 -1
  421. package/dist/rendering/post/v2Stages.d.ts.map +1 -1
  422. package/dist/rendering/post/v2Stages.js +2 -0
  423. package/dist/rendering/post/v2Stages.js.map +1 -1
  424. package/dist/rendering/program/ProgramFeatures.d.ts +6 -0
  425. package/dist/rendering/program/ProgramFeatures.d.ts.map +1 -1
  426. package/dist/rendering/program/ProgramFeatures.js +11 -5
  427. package/dist/rendering/program/ProgramFeatures.js.map +1 -1
  428. package/dist/rendering/program/ProgramGenerator.d.ts +6 -0
  429. package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
  430. package/dist/rendering/program/ProgramGenerator.js +36 -1
  431. package/dist/rendering/program/ProgramGenerator.js.map +1 -1
  432. package/dist/rendering/program/ProgramKey.d.ts.map +1 -1
  433. package/dist/rendering/program/ProgramKey.js +4 -1
  434. package/dist/rendering/program/ProgramKey.js.map +1 -1
  435. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts +1 -1
  436. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  437. package/dist/rendering/program/chunks/shadow_forward.glsl.js +4 -1
  438. package/dist/rendering/program/chunks/shadow_forward.glsl.js.map +1 -1
  439. package/dist/rendering/quality/DirectPath.d.ts +56 -0
  440. package/dist/rendering/quality/DirectPath.d.ts.map +1 -0
  441. package/dist/rendering/quality/DirectPath.js +74 -0
  442. package/dist/rendering/quality/DirectPath.js.map +1 -0
  443. package/dist/rendering/renderer/Background.d.ts +0 -5
  444. package/dist/rendering/renderer/Background.d.ts.map +1 -1
  445. package/dist/rendering/renderer/Background.js +56 -4
  446. package/dist/rendering/renderer/Background.js.map +1 -1
  447. package/dist/rendering/renderer/InstanceFrustumCull.d.ts +41 -0
  448. package/dist/rendering/renderer/InstanceFrustumCull.d.ts.map +1 -0
  449. package/dist/rendering/renderer/InstanceFrustumCull.js +138 -0
  450. package/dist/rendering/renderer/InstanceFrustumCull.js.map +1 -0
  451. package/dist/rendering/renderer/ShadowOrchestration.d.ts +2 -0
  452. package/dist/rendering/renderer/ShadowOrchestration.d.ts.map +1 -1
  453. package/dist/rendering/renderer/ShadowOrchestration.js +1 -0
  454. package/dist/rendering/renderer/ShadowOrchestration.js.map +1 -1
  455. package/dist/rendering/renderer/coreOutputPostRoute.d.ts +0 -5
  456. package/dist/rendering/renderer/coreOutputPostRoute.d.ts.map +1 -1
  457. package/dist/rendering/renderer/coreOutputPostRoute.js +12 -2
  458. package/dist/rendering/renderer/coreOutputPostRoute.js.map +1 -1
  459. package/dist/rendering/resources/InstanceBuffer.d.ts +2 -0
  460. package/dist/rendering/resources/InstanceBuffer.d.ts.map +1 -1
  461. package/dist/rendering/resources/InstanceBuffer.js +23 -0
  462. package/dist/rendering/resources/InstanceBuffer.js.map +1 -1
  463. package/dist/rendering/shaders/chunks/contact_shadow.glsl.d.ts +11 -6
  464. package/dist/rendering/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -1
  465. package/dist/rendering/shaders/chunks/contact_shadow.glsl.js +41 -19
  466. package/dist/rendering/shaders/chunks/contact_shadow.glsl.js.map +1 -1
  467. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.d.ts +12 -0
  468. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.d.ts.map +1 -0
  469. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.js +21 -0
  470. package/dist/rendering/shaders/chunks/contact_shadow_mask.glsl.js.map +1 -0
  471. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts +6 -1
  472. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -1
  473. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js +8 -2
  474. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js.map +1 -1
  475. package/dist/rendering/shadows/CascadeUse.d.ts +31 -0
  476. package/dist/rendering/shadows/CascadeUse.d.ts.map +1 -0
  477. package/dist/rendering/shadows/CascadeUse.js +60 -0
  478. package/dist/rendering/shadows/CascadeUse.js.map +1 -0
  479. package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts +7 -1
  480. package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
  481. package/dist/rendering/shadows/Prd02DepthShaderLibrary.js +12 -3
  482. package/dist/rendering/shadows/Prd02DepthShaderLibrary.js.map +1 -1
  483. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts +12 -1
  484. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts.map +1 -1
  485. package/dist/rendering/shadows/Prd02ShadowBridge.js +17 -5
  486. package/dist/rendering/shadows/Prd02ShadowBridge.js.map +1 -1
  487. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts +4 -0
  488. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
  489. package/dist/rendering/shadows/Prd02ShadowsContributor.js +3 -1
  490. package/dist/rendering/shadows/Prd02ShadowsContributor.js.map +1 -1
  491. package/dist/rendering/shadows/ShadowFilterTier.d.ts +51 -0
  492. package/dist/rendering/shadows/ShadowFilterTier.d.ts.map +1 -0
  493. package/dist/rendering/shadows/ShadowFilterTier.js +89 -0
  494. package/dist/rendering/shadows/ShadowFilterTier.js.map +1 -0
  495. package/dist/rendering/shadows/ShadowSystem.d.ts +15 -0
  496. package/dist/rendering/shadows/ShadowSystem.d.ts.map +1 -1
  497. package/dist/rendering/shadows/ShadowSystem.js +12 -2
  498. package/dist/rendering/shadows/ShadowSystem.js.map +1 -1
  499. package/dist/rendering/shadows/shadowLegacy.d.ts +12 -0
  500. package/dist/rendering/shadows/shadowLegacy.d.ts.map +1 -1
  501. package/dist/rendering/shadows/shadowLegacy.js +24 -0
  502. package/dist/rendering/shadows/shadowLegacy.js.map +1 -1
  503. package/dist/rendering/webgl2/BloomFusion.d.ts +31 -0
  504. package/dist/rendering/webgl2/BloomFusion.d.ts.map +1 -0
  505. package/dist/rendering/webgl2/BloomFusion.js +25 -0
  506. package/dist/rendering/webgl2/BloomFusion.js.map +1 -0
  507. package/dist/rendering/webgl2/ContextLifecycle.d.ts +14 -0
  508. package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
  509. package/dist/rendering/webgl2/ContextLifecycle.js +44 -5
  510. package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
  511. package/dist/rendering/webgl2/LegacyPost.d.ts +30 -0
  512. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  513. package/dist/rendering/webgl2/LegacyPost.js +259 -27
  514. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  515. package/dist/rendering/webgl2/MultiDraw.d.ts +2 -0
  516. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  517. package/dist/rendering/webgl2/MultiDraw.js +33 -7
  518. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  519. package/dist/rendering/webgl2/Samplers.d.ts +10 -1
  520. package/dist/rendering/webgl2/Samplers.d.ts.map +1 -1
  521. package/dist/rendering/webgl2/Samplers.js +24 -1
  522. package/dist/rendering/webgl2/Samplers.js.map +1 -1
  523. package/dist/rendering/webgl2/TextureFormats.d.ts +12 -0
  524. package/dist/rendering/webgl2/TextureFormats.d.ts.map +1 -1
  525. package/dist/rendering/webgl2/TextureFormats.js +16 -0
  526. package/dist/rendering/webgl2/TextureFormats.js.map +1 -1
  527. package/package.json +25 -25
  528. package/templates/cinematic-scene/package.json +2 -2
  529. package/templates/mini-game/package.json +2 -2
  530. package/templates/product-viewer/package.json +2 -2
  531. package/templates/production-asset-inspector/package.json +1 -1
  532. package/templates/production-material-studio/package.json +1 -1
  533. package/templates/production-product-configurator/package.json +1 -1
  534. package/templates/production-product-viewer/package.json +1 -1
  535. package/dist/environments/EnvironmentPreview.d.ts +0 -13
  536. package/dist/environments/EnvironmentPreview.d.ts.map +0 -1
  537. package/dist/environments/EnvironmentPreview.js +0 -16
  538. package/dist/environments/EnvironmentPreview.js.map +0 -1
  539. package/dist/environments/EnvironmentRegistry.d.ts +0 -35
  540. package/dist/environments/EnvironmentRegistry.d.ts.map +0 -1
  541. package/dist/environments/EnvironmentRegistry.js +0 -39
  542. package/dist/environments/EnvironmentRegistry.js.map +0 -1
  543. package/dist/environments/HDRIEnvironment.d.ts +0 -38
  544. package/dist/environments/HDRIEnvironment.d.ts.map +0 -1
  545. package/dist/environments/HDRIEnvironment.js +0 -34
  546. package/dist/environments/HDRIEnvironment.js.map +0 -1
  547. package/dist/environments/PMREMPreset.d.ts +0 -14
  548. package/dist/environments/PMREMPreset.d.ts.map +0 -1
  549. package/dist/environments/PMREMPreset.js +0 -16
  550. package/dist/environments/PMREMPreset.js.map +0 -1
  551. package/dist/environments/index.d.ts +0 -6
  552. package/dist/environments/index.d.ts.map +0 -1
  553. package/dist/environments/index.js +0 -3
  554. package/dist/environments/index.js.map +0 -1
  555. package/dist/environments/node.d.ts +0 -7
  556. package/dist/environments/node.d.ts.map +0 -1
  557. package/dist/environments/node.js +0 -5
  558. package/dist/environments/node.js.map +0 -1
  559. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.d.ts +0 -78
  560. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.d.ts.map +0 -1
  561. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.js +0 -67
  562. package/dist/environments/production-runtime/ProductionEnvironmentCorpus.js.map +0 -1
  563. package/dist/environments/production-runtime/index.d.ts +0 -3
  564. package/dist/environments/production-runtime/index.d.ts.map +0 -1
  565. package/dist/environments/production-runtime/index.js +0 -2
  566. package/dist/environments/production-runtime/index.js.map +0 -1
  567. package/dist/environments/threejs-example-parity/index.d.ts +0 -17
  568. package/dist/environments/threejs-example-parity/index.d.ts.map +0 -1
  569. package/dist/environments/threejs-example-parity/index.js +0 -49
  570. package/dist/environments/threejs-example-parity/index.js.map +0 -1
  571. package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +0 -8
  572. package/templates/cinematic-scene/node_modules/.vite/deps/package.json +0 -3
  573. package/templates/cinematic-scene/test-results/.last-run.json +0 -6
  574. package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +0 -64
  575. package/templates/mini-game/package-lock.json +0 -1312
  576. package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +0 -8
  577. package/templates/product-viewer/node_modules/.vite/deps/package.json +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"compileScene.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/compileScene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compileScene.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/compileScene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { AuraSceneSnapshot } from "../nodes/types.js";
2
+ /**
3
+ * LIGHT-09: `effects.contactShadows()` darkens only the shadow-casting directional light. The mask is marched along
4
+ * that light's direction, so applying it to a spot or point light would draw a shadow that light does not cast. In a
5
+ * night look the key is weak (night-city 0.7, polar-night 0.5) and stages are lit by spots and points, so the contact
6
+ * shadows barely show. This warns when the shadowed key supplies under `CONTACT_SHADOW_KEY_MIN_SHARE` of the direct
7
+ * light that reaches the camera target. Heuristic: directional lights count at their intensity; point and spot lights
8
+ * at intensity / distance^2 at the camera target (inverse-square, the physical falloff), and a spot only when the
9
+ * target is inside its cone. Colours weight by luminance.
10
+ */
11
+ export declare const CONTACT_SHADOW_KEY_MIN_SHARE = 0.2;
12
+ /** The warning text, or null when the scene has no contact shadows or its shadowed key is strong enough. */
13
+ export declare function contactShadowKeyWarning(snapshot: AuraSceneSnapshot): string | null;
14
+ //# sourceMappingURL=contactShadowKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contactShadowKey.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/contactShadowKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,iBAAiB,EAAY,MAAM,mBAAmB,CAAC;AAI/F;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAgChD,4GAA4G;AAC5G,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAiBlF"}
@@ -0,0 +1,66 @@
1
+ import { groups } from "../nodes/groups.js";
2
+ import { colorToLinearRgb } from "../colorUtils.js";
3
+ /**
4
+ * LIGHT-09: `effects.contactShadows()` darkens only the shadow-casting directional light. The mask is marched along
5
+ * that light's direction, so applying it to a spot or point light would draw a shadow that light does not cast. In a
6
+ * night look the key is weak (night-city 0.7, polar-night 0.5) and stages are lit by spots and points, so the contact
7
+ * shadows barely show. This warns when the shadowed key supplies under `CONTACT_SHADOW_KEY_MIN_SHARE` of the direct
8
+ * light that reaches the camera target. Heuristic: directional lights count at their intensity; point and spot lights
9
+ * at intensity / distance^2 at the camera target (inverse-square, the physical falloff), and a spot only when the
10
+ * target is inside its cone. Colours weight by luminance.
11
+ */
12
+ export const CONTACT_SHADOW_KEY_MIN_SHARE = 0.2;
13
+ const luminance = (color) => {
14
+ const [r, g, b] = colorToLinearRgb(color ?? "#ffffff");
15
+ return 0.2126 * r + 0.7152 * g + 0.0722 * b;
16
+ };
17
+ function shadowCasting(light) {
18
+ const shadow = light.shadow;
19
+ return shadow !== undefined && shadow !== false;
20
+ }
21
+ function contributionAt(light, target) {
22
+ const intensity = Math.max(0, light.intensity ?? 0) * luminance(light.color);
23
+ if (light.light === "directional")
24
+ return intensity;
25
+ if (light.light !== "point" && light.light !== "spot")
26
+ return 0;
27
+ const p = light.position ?? [0, 0, 0];
28
+ const d = [target[0] - p[0], target[1] - p[1], target[2] - p[2]];
29
+ const dist2 = Math.max(1e-4, d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
30
+ if (light.light === "spot") {
31
+ const aim = light.target ?? [0, 0, 0];
32
+ const axis = [aim[0] - p[0], aim[1] - p[1], aim[2] - p[2]];
33
+ const axisLen = Math.hypot(axis[0], axis[1], axis[2]);
34
+ const angle = light.angle ?? Math.PI / 6;
35
+ if (axisLen > 1e-6) {
36
+ const cos = (axis[0] * d[0] + axis[1] * d[1] + axis[2] * d[2]) / (axisLen * Math.sqrt(dist2));
37
+ if (cos < Math.cos(angle))
38
+ return 0;
39
+ }
40
+ }
41
+ return intensity / dist2;
42
+ }
43
+ /** The warning text, or null when the scene has no contact shadows or its shadowed key is strong enough. */
44
+ export function contactShadowKeyWarning(snapshot) {
45
+ const nodes = groups.flatten(snapshot.nodes);
46
+ const contact = nodes.some((node) => node.kind === "effect" && node.effect === "contact-shadows");
47
+ if (!contact)
48
+ return null;
49
+ const lights = nodes.filter((node) => node.kind === "light");
50
+ const target = snapshot.camera?.target ?? [0, 0, 0];
51
+ let key = 0;
52
+ let total = 0;
53
+ for (const light of lights) {
54
+ const value = contributionAt(light, target);
55
+ total += value;
56
+ if (light.light === "directional" && shadowCasting(light))
57
+ key = Math.max(key, value);
58
+ }
59
+ if (total <= 0)
60
+ return null;
61
+ const share = key / total;
62
+ if (share >= CONTACT_SHADOW_KEY_MIN_SHARE)
63
+ return null;
64
+ return `CONTACT_SHADOWS_WEAK_KEY: effects.contactShadows() darkens only the shadow-casting directional light, which supplies ${Math.round(share * 100)}% of the direct light at the camera target (under ${Math.round(CONTACT_SHADOW_KEY_MIN_SHARE * 100)}%); contact shadows will barely show. Raise that light or the contactShadows intensity, or rely on the spot/point shadows.`;
65
+ }
66
+ //# sourceMappingURL=contactShadowKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contactShadowKey.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/contactShadowKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEhD,MAAM,SAAS,GAAG,CAAC,KAA4B,EAAU,EAAE;IACzD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IACvD,OAAO,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAoB;IACzC,MAAM,MAAM,GAAI,KAA8B,CAAC,MAAM,CAAC;IACtD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB,EAAE,MAAgB;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IAChE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,GAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAI,KAA+B,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,IAAI,GAAa,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,GAAI,KAA4B,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACjE,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9F,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,uBAAuB,CAAC,QAA2B;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAK,IAAI,CAAC,MAAiB,KAAK,iBAAiB,CAAC,CAAC;IAC9G,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAyB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,IAAI,KAAK,CAAC;QACf,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;IAC1B,IAAI,KAAK,IAAI,4BAA4B;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,wHAAwH,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,qDAAqD,IAAI,CAAC,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,4HAA4H,CAAC;AACxX,CAAC"}
@@ -2,9 +2,24 @@ import type { AuraColor, AuraSceneSnapshot } from "../nodes/types.js";
2
2
  import type { AuraEnvironmentNodeV2 } from "../nodes/environments.js";
3
3
  import { type AuraEnvironmentSourceResolution } from "../../contracts/environment.js";
4
4
  import { type EnvironmentLightingOptions } from "../../../rendering/index.js";
5
+ /**
6
+ * Exposure convention (beat-three.js PRD 3.2, Q1). A scene that authors its own
7
+ * lights and no environment is lit by exactly those lights, the way three.js
8
+ * r185 lights it: a directional light of intensity I on a Lambert surface of
9
+ * albedo A gives A * I / PI, ambient gives A * I / PI, and a hemisphere light
10
+ * gives A * mean(ground, sky) * I / PI (the horizontal-normal value). Before this the scene
11
+ * category's implicit studio/daylight environment was added on top and lifted
12
+ * the same nominal lights roughly 2x to 6x (skinned character mean luma
13
+ * three 144 vs Aura3D 192.5). `implicitFill: true` restores the old fill.
14
+ * Left false by direct callers so the flag-off legacy goldens stay byte-equal;
15
+ * the renderer passes the default (explicit lights only) at mount.
16
+ */
17
+ export interface ProductionRuntimeEnvironmentOptions {
18
+ readonly implicitFill?: boolean;
19
+ }
5
20
  export declare function createProductionRuntimeEnvironment(snapshot: AuraSceneSnapshot, flags?: {
6
21
  on(name: string): boolean;
7
- }): {
22
+ }, options?: ProductionRuntimeEnvironmentOptions): {
8
23
  readonly preset: string;
9
24
  readonly intensity: number;
10
25
  readonly evidence: string;
@@ -13,15 +28,54 @@ export declare function createProductionRuntimeEnvironment(snapshot: AuraSceneSn
13
28
  readonly hdriReflectionUrl?: string;
14
29
  readonly hdriRotation?: number;
15
30
  };
31
+ /**
32
+ * LIGHT-07: fingerprint of everything `createProductionRuntimeEnvironment` reads (environment and light nodes after
33
+ * the look-fill yield). The renderer computes the environment knob once at mount; when nodes added or removed at
34
+ * runtime change this key, the knob is recomputed from the live node set, so an environment added to a lights-only
35
+ * scene gets its authored intensity instead of the lights-only 0/0.
36
+ */
37
+ export declare function environmentKnobKey(snapshot: AuraSceneSnapshot): string;
16
38
  /** Additive ambient term: ambient lights never replace IBL under the flag
17
39
  * (F-02-01). Returns null when no ambient light contributes. Colors blend
18
40
  * in linear space (same weighting as the legacy authored-ambient branch)
19
41
  * and are emitted back as an sRGB hex `AuraColor`. */
20
- export declare function prd02AmbientTerm(snapshot: AuraSceneSnapshot): {
42
+ export declare function prd02AmbientTerm(snapshot: AuraSceneSnapshot, options?: {
43
+ readonly includeHemisphere?: boolean;
44
+ }): {
21
45
  readonly color: AuraColor;
22
46
  readonly intensity: number;
23
47
  } | null;
48
+ /**
49
+ * LIGHT-05 / LIGHT-08: authored hemisphere lights as a directional sky/ground pair (three.js r185 `HemisphereLight`:
50
+ * irradiance mix(ground, sky, dot(n, up) * 0.5 + 0.5) * intensity, up = normalize(position)). The PRD-02 IBL chunk
51
+ * already evaluates `u_hemiSky`/`u_hemiGround`/`u_hemiDirection` per normal; this term feeds them. Linear light,
52
+ * premultiplied by intensity. Hemispheres that share the strongest one's direction are summed into the pair; any
53
+ * other hemisphere (a second, differently aimed one) cannot share the single uniform set, so it stays in the flat
54
+ * ambient term as its sky/ground mean (its horizontal-normal value), which is the pre-fix behaviour.
55
+ */
56
+ export interface Prd02HemisphereTerm {
57
+ readonly sky: readonly [number, number, number];
58
+ readonly ground: readonly [number, number, number];
59
+ readonly direction: readonly [number, number, number];
60
+ }
61
+ /** The directional hemisphere pair the PRD-02 sources bind (null when the scene authors no hemisphere light). */
62
+ export declare function prd02HemisphereTerm(snapshot: AuraSceneSnapshot): Prd02HemisphereTerm | null;
63
+ /**
64
+ * PRD-02 additive light terms: the ambient term (ambient lights, plus any hemisphere that cannot use the directional
65
+ * pair) and the directional hemisphere pair.
66
+ */
67
+ export declare function prd02LightTerms(snapshot: AuraSceneSnapshot): {
68
+ readonly ambient: {
69
+ readonly color: AuraColor;
70
+ readonly intensity: number;
71
+ } | null;
72
+ readonly hemisphere: Prd02HemisphereTerm | null;
73
+ };
24
74
  export declare function explicitEnvironmentResolution(node: AuraEnvironmentNodeV2, ambient: AuraEnvironmentSourceResolution["ambient"]): AuraEnvironmentSourceResolution | undefined;
75
+ export declare function setRuntimeEnvironmentIntensity(owner: object, value: number): void;
76
+ export declare function runtimeEnvironmentIntensity(owner: object | null | undefined): number;
77
+ /** The environment-map terms of a legacy knob object times `scale`; the ambient colour/intensity is untouched. */
78
+ export declare function scaleEnvironmentLighting(lighting: EnvironmentLightingOptions, scale: number): EnvironmentLightingOptions;
25
79
  /**
26
80
  * E3 stage-2b (step 3): intensities the C-09 probe bind carries to the
27
81
  * renderer. Under the conjunction with an explicit (authored-environment)
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/environment.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { registerEnvironmentSource } from "../../contracts/environment.js";
9
9
  import { colorToLinearRgb } from "../colorUtils.js";
10
10
  import { nonNegativeFinite } from "../compiler/observations.js";
11
11
  import { groups } from "../nodes/groups.js";
12
+ import { dropShadowedLookFill } from "../looks/lookFill.js";
12
13
  import { resolveRendererSceneCategory } from "../rendererDiagnostics.js";
13
14
  import { createExternalParityEnvironmentLighting, linearToSrgbChannel } from "../../../rendering/index.js";
14
15
  /**
@@ -26,8 +27,41 @@ function markLegacyFallbackEnvironment(lighting) {
26
27
  (store[PRD02_LEGACY_FALLBACK_ENVIRONMENTS] ??= new WeakSet()).add(lighting);
27
28
  return lighting;
28
29
  }
29
- export function createProductionRuntimeEnvironment(snapshot, flags) {
30
- const nodes = groups.flatten(snapshot.nodes);
30
+ function explicitLightFillFree(snapshot, nodes) {
31
+ const lightNodes = nodes.filter((node) => node.kind === "light");
32
+ const lit = lightNodes.filter((node) => node.light !== "probe" && (node.intensity ?? 1) >= 0);
33
+ if (lit.length === 0 || lit.length !== lightNodes.length)
34
+ return null;
35
+ void snapshot;
36
+ // Total uniform irradiance in linear light. A hemisphere light enters as the mean of its sky and ground
37
+ // colours, which is three's value on a horizontal normal; up- and down-facing surfaces differ from three by
38
+ // half the sky/ground gap (see the CHANGELOG note).
39
+ const total = [0, 0, 0];
40
+ for (const light of lit) {
41
+ if (light.light === "ambient" && (light.intensity ?? 0) > 0) {
42
+ const linear = colorToLinearRgb(light.color ?? "#ffffff");
43
+ for (let i = 0; i < 3; i += 1)
44
+ total[i] += linear[i] * (light.intensity ?? 0);
45
+ }
46
+ else if (light.light === "hemisphere" && (light.intensity ?? 1) > 0) {
47
+ const intensity = light.intensity ?? 1;
48
+ const sky = colorToLinearRgb(light.color ?? "#bcd7ff");
49
+ const ground = colorToLinearRgb(light.groundColor ?? "#352f28");
50
+ for (let i = 0; i < 3; i += 1)
51
+ total[i] += ((sky[i] + ground[i]) / 2) * intensity;
52
+ }
53
+ }
54
+ // The renderer validates the environment colour into [0, 1]; the magnitude rides in the scalar.
55
+ const peak = Math.max(1, ...total);
56
+ return {
57
+ color: [total[0] / peak, total[1] / peak, total[2] / peak],
58
+ intensity: peak,
59
+ environmentMapIntensity: 0,
60
+ environmentMapSpecularIntensity: 0
61
+ };
62
+ }
63
+ export function createProductionRuntimeEnvironment(snapshot, flags, options) {
64
+ const nodes = groups.flatten(lightingNodes(snapshot));
31
65
  const authoredEnvironment = nodes.find((node) => node.kind === "environment");
32
66
  if (authoredEnvironment) {
33
67
  const presetByEnvironment = {
@@ -106,6 +140,17 @@ export function createProductionRuntimeEnvironment(snapshot, flags) {
106
140
  }
107
141
  };
108
142
  }
143
+ if (options?.implicitFill === false) {
144
+ const explicit = explicitLightFillFree(snapshot, nodes);
145
+ if (explicit) {
146
+ return {
147
+ preset: "authored-lights",
148
+ intensity: explicit.intensity ?? 0,
149
+ evidence: "production bridge lights the scene with its authored lights only (three.js r185 convention, no implicit environment); add an environments.* node to restore the studio fill",
150
+ lighting: explicit
151
+ };
152
+ }
153
+ }
109
154
  const ambientLights = nodes.filter((node) => node.kind === "light" && node.light === "ambient" && node.intensity > 0);
110
155
  if (ambientLights.length > 0) {
111
156
  const intensity = ambientLights.reduce((total, light) => total + light.intensity, 0);
@@ -164,23 +209,128 @@ export function createProductionRuntimeEnvironment(snapshot, flags) {
164
209
  lighting: nodes.some((node) => node.kind === "light") ? categoryLighting : markLegacyFallbackEnvironment({ ...categoryLighting })
165
210
  };
166
211
  }
212
+ /**
213
+ * LIGHT-07: fingerprint of everything `createProductionRuntimeEnvironment` reads (environment and light nodes after
214
+ * the look-fill yield). The renderer computes the environment knob once at mount; when nodes added or removed at
215
+ * runtime change this key, the knob is recomputed from the live node set, so an environment added to a lights-only
216
+ * scene gets its authored intensity instead of the lights-only 0/0.
217
+ */
218
+ export function environmentKnobKey(snapshot) {
219
+ const parts = [];
220
+ for (const node of groups.flatten(lightingNodes(snapshot))) {
221
+ if (node.kind === "environment") {
222
+ const env = node;
223
+ const texture = typeof env.texture === "object" && env.texture !== null ? env.texture.url ?? "ref" : String(env.texture ?? "");
224
+ parts.push(`e:${env.environment}:${env.intensity}:${env.diffuseIntensity ?? ""}:${env.specularIntensity ?? ""}:${env.preset ?? ""}:${env.color ?? ""}:${texture}`);
225
+ }
226
+ else if (node.kind === "light") {
227
+ parts.push(`l:${node.light}:${node.intensity ?? ""}:${node.color ?? ""}:${node.groundColor ?? ""}`);
228
+ }
229
+ }
230
+ return parts.join("|");
231
+ }
167
232
  // ---------- PRD-02 Phase 2 — C-09 environment sources (flag path) ----------
168
233
  /** Additive ambient term: ambient lights never replace IBL under the flag
169
234
  * (F-02-01). Returns null when no ambient light contributes. Colors blend
170
235
  * in linear space (same weighting as the legacy authored-ambient branch)
171
236
  * and are emitted back as an sRGB hex `AuraColor`. */
172
- export function prd02AmbientTerm(snapshot) {
173
- const ambientLights = groups.flatten(snapshot.nodes).filter((node) => node.kind === "light" && node.light === "ambient" && (node.intensity ?? 0) > 0);
174
- if (ambientLights.length === 0)
237
+ export function prd02AmbientTerm(snapshot, options) {
238
+ const nodes = groups.flatten(lightingNodes(snapshot));
239
+ return ambientTermOf(nodes, options?.includeHemisphere === true ? hemisphereLights(nodes) : []);
240
+ }
241
+ function ambientTermOf(nodes, hemispheres) {
242
+ const ambientLights = nodes.filter((node) => node.kind === "light" && node.light === "ambient" && (node.intensity ?? 0) > 0);
243
+ if (ambientLights.length === 0 && hemispheres.length === 0)
175
244
  return null;
176
- const intensity = ambientLights.reduce((total, light) => total + (light.intensity ?? 0), 0);
177
- const color = ambientLights.reduce((sum, light) => {
178
- const linear = colorToLinearRgb(light.color ?? "#ffffff");
179
- const weight = (light.intensity ?? 0) / intensity;
180
- return [sum[0] + linear[0] * weight, sum[1] + linear[1] * weight, sum[2] + linear[2] * weight];
181
- }, [0, 0, 0]);
182
245
  const hex = (v) => Math.round(linearToSrgbChannel(v) * 255).toString(16).padStart(2, "0");
183
- return { color: `#${hex(color[0])}${hex(color[1])}${hex(color[2])}`, intensity };
246
+ if (hemispheres.length === 0) {
247
+ const intensity = ambientLights.reduce((total, light) => total + (light.intensity ?? 0), 0);
248
+ const color = ambientLights.reduce((sum, light) => {
249
+ const linear = colorToLinearRgb(light.color ?? "#ffffff");
250
+ const weight = (light.intensity ?? 0) / intensity;
251
+ return [sum[0] + linear[0] * weight, sum[1] + linear[1] * weight, sum[2] + linear[2] * weight];
252
+ }, [0, 0, 0]);
253
+ return { color: `#${hex(color[0])}${hex(color[1])}${hex(color[2])}`, intensity };
254
+ }
255
+ // A folded hemisphere light is uniform irradiance here: the mean of its sky and ground colours (three's value on a
256
+ // horizontal normal). Summed with the ambient lights in linear light; the magnitude rides in the intensity.
257
+ const total = [0, 0, 0];
258
+ for (const light of ambientLights) {
259
+ const linear = colorToLinearRgb(light.color ?? "#ffffff");
260
+ for (let i = 0; i < 3; i += 1)
261
+ total[i] += linear[i] * (light.intensity ?? 0);
262
+ }
263
+ for (const light of hemispheres) {
264
+ const { sky, ground } = hemisphereColours(light);
265
+ for (let i = 0; i < 3; i += 1)
266
+ total[i] += ((sky[i] + ground[i]) / 2) * (light.intensity ?? 1);
267
+ }
268
+ const peak = Math.max(...total, 1e-9);
269
+ return { color: `#${hex(total[0] / peak)}${hex(total[1] / peak)}${hex(total[2] / peak)}`, intensity: peak };
270
+ }
271
+ function hemisphereLights(nodes) {
272
+ return nodes.filter((node) => node.kind === "light" && node.light === "hemisphere" && (node.intensity ?? 1) > 0);
273
+ }
274
+ function hemisphereDirection(light) {
275
+ const p = light.position ?? [0, 1, 0];
276
+ const len = Math.hypot(p[0], p[1], p[2]);
277
+ return len > 1e-9 ? [p[0] / len, p[1] / len, p[2] / len] : [0, 1, 0];
278
+ }
279
+ function hemisphereColours(light) {
280
+ return {
281
+ sky: colorToLinearRgb(light.color ?? "#bcd7ff"),
282
+ ground: colorToLinearRgb(light.groundColor ?? "#352f28")
283
+ };
284
+ }
285
+ /** Splits the hemisphere lights into the directional pair (dominant direction) and the ones folded into ambient. */
286
+ function splitHemispheres(nodes) {
287
+ const lights = hemisphereLights(nodes);
288
+ if (lights.length === 0)
289
+ return { term: null, folded: [] };
290
+ const strength = (light) => {
291
+ const { sky, ground } = hemisphereColours(light);
292
+ return (light.intensity ?? 1) * (sky[0] + sky[1] + sky[2] + ground[0] + ground[1] + ground[2]);
293
+ };
294
+ const dominant = lights.reduce((best, light) => (strength(light) > strength(best) ? light : best));
295
+ const direction = hemisphereDirection(dominant);
296
+ const sky = [0, 0, 0];
297
+ const ground = [0, 0, 0];
298
+ const folded = [];
299
+ for (const light of lights) {
300
+ const d = hemisphereDirection(light);
301
+ if (d[0] * direction[0] + d[1] * direction[1] + d[2] * direction[2] < 0.9999) {
302
+ folded.push(light);
303
+ continue;
304
+ }
305
+ const colours = hemisphereColours(light);
306
+ const intensity = light.intensity ?? 1;
307
+ for (let i = 0; i < 3; i += 1) {
308
+ sky[i] += colours.sky[i] * intensity;
309
+ ground[i] += colours.ground[i] * intensity;
310
+ }
311
+ }
312
+ return { term: { sky, ground, direction }, folded };
313
+ }
314
+ /** The directional hemisphere pair the PRD-02 sources bind (null when the scene authors no hemisphere light). */
315
+ export function prd02HemisphereTerm(snapshot) {
316
+ return splitHemispheres(groups.flatten(lightingNodes(snapshot))).term;
317
+ }
318
+ /**
319
+ * LIGHT-04: the yield rule of `scene().toJSON()` (a no-HDRI look fill steps aside for an authored ambient light,
320
+ * lookFill.ts) applied at resolution time too, so a look added at runtime (`app.nodes.add`) next to an authored
321
+ * ambient resolves the same way as one authored before mount.
322
+ */
323
+ function lightingNodes(snapshot) {
324
+ return dropShadowedLookFill(snapshot.nodes);
325
+ }
326
+ /**
327
+ * PRD-02 additive light terms: the ambient term (ambient lights, plus any hemisphere that cannot use the directional
328
+ * pair) and the directional hemisphere pair.
329
+ */
330
+ export function prd02LightTerms(snapshot) {
331
+ const nodes = groups.flatten(lightingNodes(snapshot));
332
+ const split = splitHemispheres(nodes);
333
+ return { ambient: ambientTermOf(nodes, split.folded), hemisphere: split.term };
184
334
  }
185
335
  /** §11 alias → preset name: every legacy environment kind except
186
336
  * night-cinematic resolves to the "studio" preset (§11 table); the
@@ -255,6 +405,34 @@ export function explicitEnvironmentResolution(node, ambient) {
255
405
  }
256
406
  }
257
407
  }
408
+ // ---------- app.lighting.setEnvironmentIntensity (runtime scale) ----------
409
+ /**
410
+ * Runtime environment-intensity scale per app, keyed by the app's runtime node registry (`app.nodes`, the
411
+ * object the mounted scene's per-frame update receives). `app.lighting.setEnvironmentIntensity(v)` writes
412
+ * it; the update multiplies the environment term (image-based diffuse and specular) by it every frame, on
413
+ * the PRD-02 probe bind and on the legacy environment-map path. Lights, the ambient term and the
414
+ * background are not scaled (three.js `scene.environmentIntensity` semantics). Default 1.
415
+ */
416
+ const runtimeEnvironmentIntensities = new WeakMap();
417
+ export function setRuntimeEnvironmentIntensity(owner, value) {
418
+ if (!Number.isFinite(value) || value < 0) {
419
+ throw new RangeError(`setEnvironmentIntensity expects a finite number >= 0, got ${String(value)}.`);
420
+ }
421
+ runtimeEnvironmentIntensities.set(owner, value);
422
+ }
423
+ export function runtimeEnvironmentIntensity(owner) {
424
+ return owner ? runtimeEnvironmentIntensities.get(owner) ?? 1 : 1;
425
+ }
426
+ /** The environment-map terms of a legacy knob object times `scale`; the ambient colour/intensity is untouched. */
427
+ export function scaleEnvironmentLighting(lighting, scale) {
428
+ if (scale === 1)
429
+ return lighting;
430
+ return {
431
+ ...lighting,
432
+ ...(lighting.environmentMapIntensity !== undefined ? { environmentMapIntensity: lighting.environmentMapIntensity * scale } : {}),
433
+ ...(lighting.environmentMapSpecularIntensity !== undefined ? { environmentMapSpecularIntensity: lighting.environmentMapSpecularIntensity * scale } : {})
434
+ };
435
+ }
258
436
  /**
259
437
  * E3 stage-2b (step 3): intensities the C-09 probe bind carries to the
260
438
  * renderer. Under the conjunction with an explicit (authored-environment)
@@ -283,6 +461,7 @@ export function prd02ProbeBindIntensities(knobLighting, resolution, conjunction)
283
461
  import { environmentProbeFactorySlot, isEnvironmentProbeFactoryPending } from "../../../rendering/contracts/index.js";
284
462
  import { EnvironmentCache, defaultProbeLoader } from "../../../rendering/environment/EnvironmentCache.js";
285
463
  import { readLightingKillSwitches } from "./lights.js";
464
+ import { markTiming } from "../platform.js";
286
465
  const warnedEnvironmentUpgradeFailures = new Set();
287
466
  /** One console warning per distinct failure; never an error or unhandled rejection. */
288
467
  function warnEnvironmentUpgradeFailureOnce(message) {
@@ -314,7 +493,9 @@ export function bindPrd02EnvironmentProbe(resolution, options) {
314
493
  // A failure (including the C-09 stub still pending) keeps the floor and is
315
494
  // handled here, so no frame ever sees an unhandled rejection.
316
495
  const upgrade = (acquired) => {
496
+ markTiming("a3d:env:upgrade:start");
317
497
  const pending = acquired.then((probe) => {
498
+ markTiming("a3d:env:upgrade:ready");
318
499
  options.onUpgrade?.(probe);
319
500
  return probe;
320
501
  });
@@ -373,10 +554,13 @@ export function registerPrd02EnvironmentSources() {
373
554
  flag: "A3D_QR_LIGHTING",
374
555
  priority: 400,
375
556
  resolve(snapshot) {
376
- const node = groups.flatten(snapshot.nodes).find((n) => n.kind === "environment");
557
+ const node = groups.flatten(lightingNodes(snapshot)).find((n) => n.kind === "environment");
377
558
  if (!node)
378
559
  return undefined;
379
- return explicitEnvironmentResolution(node, prd02AmbientTerm(snapshot));
560
+ // LIGHT-05: authored hemisphere lights contribute next to an environment too (they were dropped here before).
561
+ const terms = prd02LightTerms(snapshot);
562
+ const resolution = explicitEnvironmentResolution(node, terms.ambient);
563
+ return resolution ? { ...resolution, hemisphere: terms.hemisphere } : undefined;
380
564
  }
381
565
  });
382
566
  registerEnvironmentSource({
@@ -385,6 +569,8 @@ export function registerPrd02EnvironmentSources() {
385
569
  flag: "A3D_QR_LIGHTING",
386
570
  priority: 0,
387
571
  resolve(snapshot) {
572
+ // LIGHT-08: the hemisphere is the directional sky/ground pair, no longer a flat mean inside the ambient term.
573
+ const terms = prd02LightTerms(snapshot);
388
574
  return {
389
575
  kind: "neutral-room",
390
576
  probe: "neutral",
@@ -393,7 +579,8 @@ export function registerPrd02EnvironmentSources() {
393
579
  specularIntensity: 1,
394
580
  rotation: 0,
395
581
  background: false,
396
- ambient: prd02AmbientTerm(snapshot)
582
+ ambient: terms.ambient,
583
+ hemisphere: terms.hemisphere
397
584
  };
398
585
  }
399
586
  });