@aura3d/engine 4.6.2 → 4.7.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 (514) hide show
  1. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +12 -0
  2. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -1
  3. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js +26 -1
  4. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -1
  5. package/dist/assets/vfx/LICENSE.md +1 -0
  6. package/dist/assets/vfx/aura-vfx-1k.png +0 -0
  7. package/dist/assets/vfx/aura-vfx-2k.png +0 -0
  8. package/dist/aura3d-cli/admission/cubeLut.d.ts +18 -0
  9. package/dist/aura3d-cli/admission/cubeLut.d.ts.map +1 -0
  10. package/dist/aura3d-cli/admission/cubeLut.js +53 -0
  11. package/dist/aura3d-cli/admission/cubeLut.js.map +1 -0
  12. package/dist/aura3d-cli/asset-core-types.d.ts +7 -4
  13. package/dist/aura3d-cli/asset-core-types.d.ts.map +1 -1
  14. package/dist/aura3d-cli/cli-help.d.ts.map +1 -1
  15. package/dist/aura3d-cli/cli-help.js +7 -4
  16. package/dist/aura3d-cli/cli-help.js.map +1 -1
  17. package/dist/aura3d-cli/cli-options.d.ts +1 -1
  18. package/dist/aura3d-cli/cli-options.d.ts.map +1 -1
  19. package/dist/aura3d-cli/cli-options.js +2 -2
  20. package/dist/aura3d-cli/cli-options.js.map +1 -1
  21. package/dist/aura3d-cli/cli.js +3 -2
  22. package/dist/aura3d-cli/cli.js.map +1 -1
  23. package/dist/aura3d-cli/commands/assets/certifyCategories.d.ts +26 -0
  24. package/dist/aura3d-cli/commands/assets/certifyCategories.d.ts.map +1 -0
  25. package/dist/aura3d-cli/commands/assets/certifyCategories.js +31 -0
  26. package/dist/aura3d-cli/commands/assets/certifyCategories.js.map +1 -0
  27. package/dist/aura3d-cli/commands/assets/optimize.d.ts +66 -0
  28. package/dist/aura3d-cli/commands/assets/optimize.d.ts.map +1 -1
  29. package/dist/aura3d-cli/commands/assets/optimize.js +270 -1
  30. package/dist/aura3d-cli/commands/assets/optimize.js.map +1 -1
  31. package/dist/aura3d-cli/commands/assets/optimizeVerb.d.ts.map +1 -1
  32. package/dist/aura3d-cli/commands/assets/optimizeVerb.js +26 -1
  33. package/dist/aura3d-cli/commands/assets/optimizeVerb.js.map +1 -1
  34. package/dist/aura3d-cli/commands/evidence/judge.d.ts +50 -1
  35. package/dist/aura3d-cli/commands/evidence/judge.d.ts.map +1 -1
  36. package/dist/aura3d-cli/commands/evidence/judge.js +154 -6
  37. package/dist/aura3d-cli/commands/evidence/judge.js.map +1 -1
  38. package/dist/aura3d-cli/commands/prd05/index.js +1 -1
  39. package/dist/aura3d-cli/commands/prd05/index.js.map +1 -1
  40. package/dist/aura3d-cli/index.d.ts.map +1 -1
  41. package/dist/aura3d-cli/index.js +25 -9
  42. package/dist/aura3d-cli/index.js.map +1 -1
  43. package/dist/aura3d-cli/look/judge.d.ts +53 -5
  44. package/dist/aura3d-cli/look/judge.d.ts.map +1 -1
  45. package/dist/aura3d-cli/look/judge.js +226 -50
  46. package/dist/aura3d-cli/look/judge.js.map +1 -1
  47. package/dist/create-aura3d/index.js +1 -1
  48. package/dist/engine/agent-api/RootRuntimeSupport.d.ts +7 -0
  49. package/dist/engine/agent-api/RootRuntimeSupport.d.ts.map +1 -1
  50. package/dist/engine/agent-api/RootRuntimeSupport.js +7 -0
  51. package/dist/engine/agent-api/RootRuntimeSupport.js.map +1 -1
  52. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +2 -0
  53. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  54. package/dist/engine/agent-api/app/actorAnimationHandle.js +149 -2
  55. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  56. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  57. package/dist/engine/agent-api/app/createAuraApp.js +13 -1
  58. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  59. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  60. package/dist/engine/agent-api/app/frameLoop.js +4 -2
  61. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  62. package/dist/engine/agent-api/camera/layers/cinematicBars.d.ts +2 -0
  63. package/dist/engine/agent-api/camera/layers/cinematicBars.d.ts.map +1 -1
  64. package/dist/engine/agent-api/camera/layers/cinematicBars.js +4 -0
  65. package/dist/engine/agent-api/camera/layers/cinematicBars.js.map +1 -1
  66. package/dist/engine/agent-api/compiler/compileScene.d.ts +11 -1
  67. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  68. package/dist/engine/agent-api/compiler/compileScene.js +27 -1
  69. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  70. package/dist/engine/agent-api/compiler/customMaterial.d.ts +16 -5
  71. package/dist/engine/agent-api/compiler/customMaterial.d.ts.map +1 -1
  72. package/dist/engine/agent-api/compiler/customMaterial.js +149 -20
  73. package/dist/engine/agent-api/compiler/customMaterial.js.map +1 -1
  74. package/dist/engine/agent-api/compiler/environment.d.ts +57 -1
  75. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  76. package/dist/engine/agent-api/compiler/environment.js +170 -5
  77. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  78. package/dist/engine/agent-api/compiler/fog.js +1 -1
  79. package/dist/engine/agent-api/compiler/fog.js.map +1 -1
  80. package/dist/engine/agent-api/compiler/lights.d.ts +92 -0
  81. package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
  82. package/dist/engine/agent-api/compiler/lights.js +358 -1
  83. package/dist/engine/agent-api/compiler/lights.js.map +1 -1
  84. package/dist/engine/agent-api/compiler/observations.d.ts +34 -0
  85. package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
  86. package/dist/engine/agent-api/compiler/observations.js +77 -5
  87. package/dist/engine/agent-api/compiler/observations.js.map +1 -1
  88. package/dist/engine/agent-api/compiler/postprocess.d.ts +10 -0
  89. package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
  90. package/dist/engine/agent-api/compiler/postprocess.js +28 -7
  91. package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
  92. package/dist/engine/agent-api/compiler/renderInput.d.ts +2 -0
  93. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  94. package/dist/engine/agent-api/compiler/renderInput.js +15 -2
  95. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  96. package/dist/engine/agent-api/compiler/renderer.d.ts +6 -0
  97. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  98. package/dist/engine/agent-api/compiler/renderer.js +14 -3
  99. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  100. package/dist/engine/agent-api/diagnostics.d.ts +16 -0
  101. package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
  102. package/dist/engine/agent-api/diagnostics.js +45 -2
  103. package/dist/engine/agent-api/diagnostics.js.map +1 -1
  104. package/dist/engine/agent-api/index.d.ts +2 -0
  105. package/dist/engine/agent-api/index.d.ts.map +1 -1
  106. package/dist/engine/agent-api/index.js +3 -0
  107. package/dist/engine/agent-api/index.js.map +1 -1
  108. package/dist/engine/agent-api/looks/lookPresets.d.ts +2 -0
  109. package/dist/engine/agent-api/looks/lookPresets.d.ts.map +1 -1
  110. package/dist/engine/agent-api/looks/lookPresets.js.map +1 -1
  111. package/dist/engine/agent-api/looks/looks.d.ts +12 -2
  112. package/dist/engine/agent-api/looks/looks.d.ts.map +1 -1
  113. package/dist/engine/agent-api/looks/looks.js +365 -65
  114. package/dist/engine/agent-api/looks/looks.js.map +1 -1
  115. package/dist/engine/agent-api/nodes/builder.d.ts +8 -0
  116. package/dist/engine/agent-api/nodes/builder.d.ts.map +1 -1
  117. package/dist/engine/agent-api/nodes/builder.js +15 -0
  118. package/dist/engine/agent-api/nodes/builder.js.map +1 -1
  119. package/dist/engine/agent-api/nodes/effects.composite.d.ts +13 -9
  120. package/dist/engine/agent-api/nodes/effects.composite.d.ts.map +1 -1
  121. package/dist/engine/agent-api/nodes/effects.d.ts +65 -14
  122. package/dist/engine/agent-api/nodes/effects.d.ts.map +1 -1
  123. package/dist/engine/agent-api/nodes/effects.js +49 -16
  124. package/dist/engine/agent-api/nodes/effects.js.map +1 -1
  125. package/dist/engine/agent-api/nodes/effects.post.d.ts +62 -5
  126. package/dist/engine/agent-api/nodes/effects.post.d.ts.map +1 -1
  127. package/dist/engine/agent-api/nodes/effects.post.js +30 -17
  128. package/dist/engine/agent-api/nodes/effects.post.js.map +1 -1
  129. package/dist/engine/agent-api/nodes/effects.toon.d.ts +65 -1
  130. package/dist/engine/agent-api/nodes/effects.toon.d.ts.map +1 -1
  131. package/dist/engine/agent-api/nodes/effects.toon.js +186 -23
  132. package/dist/engine/agent-api/nodes/effects.toon.js.map +1 -1
  133. package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
  134. package/dist/engine/agent-api/nodes/groups.js +2 -2
  135. package/dist/engine/agent-api/nodes/groups.js.map +1 -1
  136. package/dist/engine/agent-api/nodes/instances.d.ts +130 -90
  137. package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
  138. package/dist/engine/agent-api/nodes/instances.js +192 -48
  139. package/dist/engine/agent-api/nodes/instances.js.map +1 -1
  140. package/dist/engine/agent-api/nodes/material.d.ts +8 -1
  141. package/dist/engine/agent-api/nodes/material.d.ts.map +1 -1
  142. package/dist/engine/agent-api/nodes/material.js +82 -0
  143. package/dist/engine/agent-api/nodes/material.js.map +1 -1
  144. package/dist/engine/agent-api/nodes/outlineTargets.d.ts +16 -0
  145. package/dist/engine/agent-api/nodes/outlineTargets.d.ts.map +1 -0
  146. package/dist/engine/agent-api/nodes/outlineTargets.js +46 -0
  147. package/dist/engine/agent-api/nodes/outlineTargets.js.map +1 -0
  148. package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
  149. package/dist/engine/agent-api/nodes/scene.js +2 -2
  150. package/dist/engine/agent-api/nodes/scene.js.map +1 -1
  151. package/dist/engine/agent-api/nodes/sky.d.ts +23 -6
  152. package/dist/engine/agent-api/nodes/sky.d.ts.map +1 -1
  153. package/dist/engine/agent-api/nodes/sky.js +2 -0
  154. package/dist/engine/agent-api/nodes/sky.js.map +1 -1
  155. package/dist/engine/agent-api/nodes/types/runtime.d.ts +28 -1
  156. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  157. package/dist/engine/agent-api/nodes/types.d.ts +71 -3
  158. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  159. package/dist/engine/agent-api/performanceEvidence.js +7 -2
  160. package/dist/engine/agent-api/performanceEvidence.js.map +1 -1
  161. package/dist/engine/agent-api/postBridge.d.ts +75 -3
  162. package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
  163. package/dist/engine/agent-api/postBridge.js +436 -33
  164. package/dist/engine/agent-api/postBridge.js.map +1 -1
  165. package/dist/engine/agent-api/postPresets.d.ts +8 -4
  166. package/dist/engine/agent-api/postPresets.d.ts.map +1 -1
  167. package/dist/engine/agent-api/postPresets.js +12 -11
  168. package/dist/engine/agent-api/postPresets.js.map +1 -1
  169. package/dist/engine/agent-api/publishedUnion.d.ts +7 -4
  170. package/dist/engine/agent-api/publishedUnion.d.ts.map +1 -1
  171. package/dist/engine/agent-api/publishedUnion.js +1 -1
  172. package/dist/engine/agent-api/publishedUnion.js.map +1 -1
  173. package/dist/engine/agent-api/rendererDiagnostics.js +4 -6
  174. package/dist/engine/agent-api/rendererDiagnostics.js.map +1 -1
  175. package/dist/engine/agent-api/vfx/atmosphere-api.d.ts +2 -4
  176. package/dist/engine/agent-api/vfx/atmosphere-api.d.ts.map +1 -1
  177. package/dist/engine/agent-api/vfx/atmosphere-api.js +2 -1
  178. package/dist/engine/agent-api/vfx/atmosphere-api.js.map +1 -1
  179. package/dist/engine/agent-api/vfx/effects-api.d.ts +3 -0
  180. package/dist/engine/agent-api/vfx/effects-api.d.ts.map +1 -1
  181. package/dist/engine/agent-api/vfx/effects-api.js +337 -74
  182. package/dist/engine/agent-api/vfx/effects-api.js.map +1 -1
  183. package/dist/engine/agent-api/world/flags.d.ts +33 -3
  184. package/dist/engine/agent-api/world/flags.d.ts.map +1 -1
  185. package/dist/engine/agent-api/world/flags.js +44 -12
  186. package/dist/engine/agent-api/world/flags.js.map +1 -1
  187. package/dist/engine/agent-api/world/index.d.ts +10 -1
  188. package/dist/engine/agent-api/world/index.d.ts.map +1 -1
  189. package/dist/engine/agent-api/world/index.js +11 -2
  190. package/dist/engine/agent-api/world/index.js.map +1 -1
  191. package/dist/engine/agent-api/world/scatter.d.ts +50 -3
  192. package/dist/engine/agent-api/world/scatter.d.ts.map +1 -1
  193. package/dist/engine/agent-api/world/scatter.js +93 -7
  194. package/dist/engine/agent-api/world/scatter.js.map +1 -1
  195. package/dist/engine/agent-api/world/terrain.d.ts +8 -0
  196. package/dist/engine/agent-api/world/terrain.d.ts.map +1 -1
  197. package/dist/engine/agent-api/world/terrain.js +6 -1
  198. package/dist/engine/agent-api/world/terrain.js.map +1 -1
  199. package/dist/engine/contracts/animation.d.ts +30 -12
  200. package/dist/engine/contracts/animation.d.ts.map +1 -1
  201. package/dist/engine/contracts/animation.js +2 -0
  202. package/dist/engine/contracts/animation.js.map +1 -1
  203. package/dist/engine/contracts/art.d.ts +1 -1
  204. package/dist/engine/contracts/art.d.ts.map +1 -1
  205. package/dist/engine/contracts/atmosphere.d.ts +43 -9
  206. package/dist/engine/contracts/atmosphere.d.ts.map +1 -1
  207. package/dist/engine/contracts/atmosphere.js.map +1 -1
  208. package/dist/engine/contracts/camera.d.ts +8 -2
  209. package/dist/engine/contracts/camera.d.ts.map +1 -1
  210. package/dist/engine/contracts/camera.js +14 -3
  211. package/dist/engine/contracts/camera.js.map +1 -1
  212. package/dist/engine/contracts/effects.d.ts +83 -37
  213. package/dist/engine/contracts/effects.d.ts.map +1 -1
  214. package/dist/engine/contracts/effects.js +2 -1
  215. package/dist/engine/contracts/effects.js.map +1 -1
  216. package/dist/engine/contracts/flags.d.ts.map +1 -1
  217. package/dist/engine/contracts/flags.js +29 -4
  218. package/dist/engine/contracts/flags.js.map +1 -1
  219. package/dist/engine/contracts/lighting.d.ts +33 -1
  220. package/dist/engine/contracts/lighting.d.ts.map +1 -1
  221. package/dist/engine/contracts/lighting.js +13 -1
  222. package/dist/engine/contracts/lighting.js.map +1 -1
  223. package/dist/engine/contracts/looks.d.ts +57 -1
  224. package/dist/engine/contracts/looks.d.ts.map +1 -1
  225. package/dist/engine/contracts/looks.js.map +1 -1
  226. package/dist/engine/contracts/materials.d.ts +25 -0
  227. package/dist/engine/contracts/materials.d.ts.map +1 -1
  228. package/dist/engine/contracts/materials.js +4 -1
  229. package/dist/engine/contracts/materials.js.map +1 -1
  230. package/dist/engine/contracts/post.d.ts +14 -0
  231. package/dist/engine/contracts/post.d.ts.map +1 -1
  232. package/dist/engine/contracts/post.js +2 -0
  233. package/dist/engine/contracts/post.js.map +1 -1
  234. package/dist/engine/instances-model/CrowdKit.d.ts +231 -0
  235. package/dist/engine/instances-model/CrowdKit.d.ts.map +1 -0
  236. package/dist/engine/instances-model/CrowdKit.js +496 -0
  237. package/dist/engine/instances-model/CrowdKit.js.map +1 -0
  238. package/dist/engine/lanes/prd02.d.ts +36 -2
  239. package/dist/engine/lanes/prd02.d.ts.map +1 -1
  240. package/dist/engine/lanes/prd02.js +120 -7
  241. package/dist/engine/lanes/prd02.js.map +1 -1
  242. package/dist/engine/lanes/prd03.d.ts.map +1 -1
  243. package/dist/engine/lanes/prd03.js +9 -1
  244. package/dist/engine/lanes/prd03.js.map +1 -1
  245. package/dist/engine/lanes/prd07.d.ts.map +1 -1
  246. package/dist/engine/lanes/prd07.js +12 -7
  247. package/dist/engine/lanes/prd07.js.map +1 -1
  248. package/dist/engine/production-runtime/GlbResourceCache.d.ts +140 -0
  249. package/dist/engine/production-runtime/GlbResourceCache.d.ts.map +1 -0
  250. package/dist/engine/production-runtime/GlbResourceCache.js +237 -0
  251. package/dist/engine/production-runtime/GlbResourceCache.js.map +1 -0
  252. package/dist/engine/production-runtime/ModelMaterialOverrides.d.ts +53 -2
  253. package/dist/engine/production-runtime/ModelMaterialOverrides.d.ts.map +1 -1
  254. package/dist/engine/production-runtime/ModelMaterialOverrides.js +142 -1
  255. package/dist/engine/production-runtime/ModelMaterialOverrides.js.map +1 -1
  256. package/dist/engine/production-runtime/TypedGLBActor.d.ts +55 -0
  257. package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
  258. package/dist/engine/production-runtime/TypedGLBActor.js +205 -3
  259. package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
  260. package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts.map +1 -1
  261. package/dist/engine/production-runtime/actor/ModelTextureShare.js +5 -2
  262. package/dist/engine/production-runtime/actor/ModelTextureShare.js.map +1 -1
  263. package/dist/engine/production-runtime/actor/TypedGLBActorMaterials.d.ts.map +1 -1
  264. package/dist/engine/production-runtime/actor/TypedGLBActorMaterials.js +10 -1
  265. package/dist/engine/production-runtime/actor/TypedGLBActorMaterials.js.map +1 -1
  266. package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts +55 -0
  267. package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts.map +1 -1
  268. package/dist/engine/production-runtime/effects/EffectNodeLowering.js +71 -7
  269. package/dist/engine/production-runtime/effects/EffectNodeLowering.js.map +1 -1
  270. package/dist/engine/production-runtime/effects/FlipbookAtlas.d.ts +85 -0
  271. package/dist/engine/production-runtime/effects/FlipbookAtlas.d.ts.map +1 -1
  272. package/dist/engine/production-runtime/effects/FlipbookAtlas.js +164 -0
  273. package/dist/engine/production-runtime/effects/FlipbookAtlas.js.map +1 -1
  274. package/dist/engine/production-runtime/effects/LiveAtmosphere.d.ts +37 -6
  275. package/dist/engine/production-runtime/effects/LiveAtmosphere.d.ts.map +1 -1
  276. package/dist/engine/production-runtime/effects/LiveAtmosphere.js +93 -10
  277. package/dist/engine/production-runtime/effects/LiveAtmosphere.js.map +1 -1
  278. package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts +71 -1
  279. package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts.map +1 -1
  280. package/dist/engine/production-runtime/effects/ProductionEffectSystem.js +356 -6
  281. package/dist/engine/production-runtime/effects/ProductionEffectSystem.js.map +1 -1
  282. package/dist/engine/production-runtime/world/WaterRuntime.d.ts +9 -0
  283. package/dist/engine/production-runtime/world/WaterRuntime.d.ts.map +1 -1
  284. package/dist/engine/production-runtime/world/WaterRuntime.js +27 -11
  285. package/dist/engine/production-runtime/world/WaterRuntime.js.map +1 -1
  286. package/dist/engine/production-runtime/world/WorldFramePasses.d.ts +11 -1
  287. package/dist/engine/production-runtime/world/WorldFramePasses.d.ts.map +1 -1
  288. package/dist/engine/production-runtime/world/WorldFramePasses.js +37 -1
  289. package/dist/engine/production-runtime/world/WorldFramePasses.js.map +1 -1
  290. package/dist/engine/public/index.d.ts +22 -0
  291. package/dist/engine/public/index.d.ts.map +1 -1
  292. package/dist/engine/public/index.js +14 -0
  293. package/dist/engine/public/index.js.map +1 -1
  294. package/dist/game/art/define.d.ts +1 -1
  295. package/dist/game/art/define.d.ts.map +1 -1
  296. package/dist/game/art/define.js +1 -1
  297. package/dist/game/art/define.js.map +1 -1
  298. package/dist/game/fonts/register.d.ts +16 -1
  299. package/dist/game/fonts/register.d.ts.map +1 -1
  300. package/dist/game/fonts/register.js +18 -7
  301. package/dist/game/fonts/register.js.map +1 -1
  302. package/dist/game/hud/themes.d.ts +33 -8
  303. package/dist/game/hud/themes.d.ts.map +1 -1
  304. package/dist/game/hud/themes.js +125 -22
  305. package/dist/game/hud/themes.js.map +1 -1
  306. package/dist/game/index.d.ts +4 -2
  307. package/dist/game/index.d.ts.map +1 -1
  308. package/dist/game/index.js +2 -1
  309. package/dist/game/index.js.map +1 -1
  310. package/dist/game/juice/audioReactive.d.ts +42 -0
  311. package/dist/game/juice/audioReactive.d.ts.map +1 -0
  312. package/dist/game/juice/audioReactive.js +68 -0
  313. package/dist/game/juice/audioReactive.js.map +1 -0
  314. package/dist/game/styles/themes/arcade-neon.css +2 -1
  315. package/dist/game/styles/themes/fighting.css +2 -1
  316. package/dist/game/styles/themes/ink-scroll.css +15 -0
  317. package/dist/game/styles/themes/motorsport.css +2 -1
  318. package/dist/game/styles/themes/plain.css +2 -1
  319. package/dist/game/styles/themes/sci-fi-telemetry.css +2 -1
  320. package/dist/game/styles/themes/sky-expedition.css +15 -0
  321. package/dist/game/styles/themes/sports-broadcast.css +2 -1
  322. package/dist/game/styles/themes/storybook.css +15 -0
  323. package/dist/game/styles/themes/tabletop.css +2 -1
  324. package/dist/game/styles.css +3 -1
  325. package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -1
  326. package/dist/rendering/ClusteredForwardLighting.js +3 -1
  327. package/dist/rendering/ClusteredForwardLighting.js.map +1 -1
  328. package/dist/rendering/DepthPass.d.ts +25 -0
  329. package/dist/rendering/DepthPass.d.ts.map +1 -1
  330. package/dist/rendering/DepthPass.js +149 -1
  331. package/dist/rendering/DepthPass.js.map +1 -1
  332. package/dist/rendering/ForwardPass.d.ts +84 -0
  333. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  334. package/dist/rendering/ForwardPass.js +236 -12
  335. package/dist/rendering/ForwardPass.js.map +1 -1
  336. package/dist/rendering/LightUniforms.d.ts +12 -0
  337. package/dist/rendering/LightUniforms.d.ts.map +1 -1
  338. package/dist/rendering/LightUniforms.js +9 -1
  339. package/dist/rendering/LightUniforms.js.map +1 -1
  340. package/dist/rendering/atmosphere/CloudLayer.d.ts +15 -0
  341. package/dist/rendering/atmosphere/CloudLayer.d.ts.map +1 -1
  342. package/dist/rendering/atmosphere/CloudLayer.js +27 -5
  343. package/dist/rendering/atmosphere/CloudLayer.js.map +1 -1
  344. package/dist/rendering/atmosphere/GradientSky.d.ts +3 -3
  345. package/dist/rendering/atmosphere/GradientSky.d.ts.map +1 -1
  346. package/dist/rendering/atmosphere/GradientSky.js +20 -9
  347. package/dist/rendering/atmosphere/GradientSky.js.map +1 -1
  348. package/dist/rendering/atmosphere/HeightFog.d.ts.map +1 -1
  349. package/dist/rendering/atmosphere/HeightFog.js +9 -0
  350. package/dist/rendering/atmosphere/HeightFog.js.map +1 -1
  351. package/dist/rendering/atmosphere/SkyBackgroundPass.d.ts +11 -0
  352. package/dist/rendering/atmosphere/SkyBackgroundPass.d.ts.map +1 -1
  353. package/dist/rendering/atmosphere/SkyBackgroundPass.js +40 -7
  354. package/dist/rendering/atmosphere/SkyBackgroundPass.js.map +1 -1
  355. package/dist/rendering/atmosphere/StarField.d.ts +21 -0
  356. package/dist/rendering/atmosphere/StarField.d.ts.map +1 -1
  357. package/dist/rendering/atmosphere/StarField.js +24 -1
  358. package/dist/rendering/atmosphere/StarField.js.map +1 -1
  359. package/dist/rendering/atmosphere/sky.glsl.d.ts.map +1 -1
  360. package/dist/rendering/atmosphere/sky.glsl.js +8 -0
  361. package/dist/rendering/atmosphere/sky.glsl.js.map +1 -1
  362. package/dist/rendering/contracts/flags.state.d.ts.map +1 -1
  363. package/dist/rendering/contracts/flags.state.js +19 -0
  364. package/dist/rendering/contracts/flags.state.js.map +1 -1
  365. package/dist/rendering/forward/Lighting.d.ts +7 -1
  366. package/dist/rendering/forward/Lighting.d.ts.map +1 -1
  367. package/dist/rendering/forward/Lighting.js +24 -1
  368. package/dist/rendering/forward/Lighting.js.map +1 -1
  369. package/dist/rendering/forward/Velocity.d.ts +8 -0
  370. package/dist/rendering/forward/Velocity.d.ts.map +1 -1
  371. package/dist/rendering/forward/Velocity.js +10 -0
  372. package/dist/rendering/forward/Velocity.js.map +1 -1
  373. package/dist/rendering/lanes/prd03.d.ts +1 -1
  374. package/dist/rendering/lanes/prd03.d.ts.map +1 -1
  375. package/dist/rendering/lanes/prd03.js +6 -1
  376. package/dist/rendering/lanes/prd03.js.map +1 -1
  377. package/dist/rendering/lanes/prd07.d.ts.map +1 -1
  378. package/dist/rendering/lanes/prd07.js +5 -2
  379. package/dist/rendering/lanes/prd07.js.map +1 -1
  380. package/dist/rendering/post/DisplayLutCache.d.ts +10 -2
  381. package/dist/rendering/post/DisplayLutCache.d.ts.map +1 -1
  382. package/dist/rendering/post/DisplayLutCache.js +15 -3
  383. package/dist/rendering/post/DisplayLutCache.js.map +1 -1
  384. package/dist/rendering/post/PostGraph.d.ts +23 -0
  385. package/dist/rendering/post/PostGraph.d.ts.map +1 -1
  386. package/dist/rendering/post/PostGraph.js.map +1 -1
  387. package/dist/rendering/post/PostQualityTiers.d.ts +36 -0
  388. package/dist/rendering/post/PostQualityTiers.d.ts.map +1 -1
  389. package/dist/rendering/post/PostQualityTiers.js +75 -0
  390. package/dist/rendering/post/PostQualityTiers.js.map +1 -1
  391. package/dist/rendering/post/chunks/velocity.glsl.d.ts +7 -0
  392. package/dist/rendering/post/chunks/velocity.glsl.d.ts.map +1 -1
  393. package/dist/rendering/post/chunks/velocity.glsl.js +12 -1
  394. package/dist/rendering/post/chunks/velocity.glsl.js.map +1 -1
  395. package/dist/rendering/post/shaders/displayGrade.glsl.d.ts +15 -1
  396. package/dist/rendering/post/shaders/displayGrade.glsl.d.ts.map +1 -1
  397. package/dist/rendering/post/shaders/displayGrade.glsl.js +26 -2
  398. package/dist/rendering/post/shaders/displayGrade.glsl.js.map +1 -1
  399. package/dist/rendering/post/shaders/dof.glsl.d.ts +11 -1
  400. package/dist/rendering/post/shaders/dof.glsl.d.ts.map +1 -1
  401. package/dist/rendering/post/shaders/dof.glsl.js +22 -0
  402. package/dist/rendering/post/shaders/dof.glsl.js.map +1 -1
  403. package/dist/rendering/post/shaders/finalize.glsl.d.ts +1 -1
  404. package/dist/rendering/post/shaders/finalize.glsl.d.ts.map +1 -1
  405. package/dist/rendering/post/shaders/finalize.glsl.js +3 -2
  406. package/dist/rendering/post/shaders/finalize.glsl.js.map +1 -1
  407. package/dist/rendering/post/shaders/godrays.glsl.d.ts +24 -1
  408. package/dist/rendering/post/shaders/godrays.glsl.d.ts.map +1 -1
  409. package/dist/rendering/post/shaders/godrays.glsl.js +45 -5
  410. package/dist/rendering/post/shaders/godrays.glsl.js.map +1 -1
  411. package/dist/rendering/post/shaders/hdrGrade.glsl.d.ts +66 -0
  412. package/dist/rendering/post/shaders/hdrGrade.glsl.d.ts.map +1 -0
  413. package/dist/rendering/post/shaders/hdrGrade.glsl.js +159 -0
  414. package/dist/rendering/post/shaders/hdrGrade.glsl.js.map +1 -0
  415. package/dist/rendering/post/shaders/ssr.glsl.d.ts +39 -0
  416. package/dist/rendering/post/shaders/ssr.glsl.d.ts.map +1 -0
  417. package/dist/rendering/post/shaders/ssr.glsl.js +163 -0
  418. package/dist/rendering/post/shaders/ssr.glsl.js.map +1 -0
  419. package/dist/rendering/post/v2Stages.d.ts +53 -0
  420. package/dist/rendering/post/v2Stages.d.ts.map +1 -1
  421. package/dist/rendering/post/v2Stages.js +314 -23
  422. package/dist/rendering/post/v2Stages.js.map +1 -1
  423. package/dist/rendering/postprocess/NativeBloomPyramid.d.ts +19 -0
  424. package/dist/rendering/postprocess/NativeBloomPyramid.d.ts.map +1 -1
  425. package/dist/rendering/postprocess/NativeBloomPyramid.js +37 -0
  426. package/dist/rendering/postprocess/NativeBloomPyramid.js.map +1 -1
  427. package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
  428. package/dist/rendering/program/ProgramGenerator.js +12 -1
  429. package/dist/rendering/program/ProgramGenerator.js.map +1 -1
  430. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts +12 -0
  431. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  432. package/dist/rendering/program/chunks/shadow_forward.glsl.js +57 -0
  433. package/dist/rendering/program/chunks/shadow_forward.glsl.js.map +1 -1
  434. package/dist/rendering/renderer/Background.d.ts.map +1 -1
  435. package/dist/rendering/renderer/Background.js +26 -2
  436. package/dist/rendering/renderer/Background.js.map +1 -1
  437. package/dist/rendering/renderer/FrameGraph.d.ts +8 -0
  438. package/dist/rendering/renderer/FrameGraph.d.ts.map +1 -1
  439. package/dist/rendering/renderer/FrameGraph.js +46 -7
  440. package/dist/rendering/renderer/FrameGraph.js.map +1 -1
  441. package/dist/rendering/renderer/OutlineTargets.d.ts +99 -0
  442. package/dist/rendering/renderer/OutlineTargets.d.ts.map +1 -0
  443. package/dist/rendering/renderer/OutlineTargets.js +286 -0
  444. package/dist/rendering/renderer/OutlineTargets.js.map +1 -0
  445. package/dist/rendering/renderer/PostprocessExecution.d.ts +5 -0
  446. package/dist/rendering/renderer/PostprocessExecution.d.ts.map +1 -1
  447. package/dist/rendering/renderer/PostprocessExecution.js +70 -4
  448. package/dist/rendering/renderer/PostprocessExecution.js.map +1 -1
  449. package/dist/rendering/renderer/postSkipped.d.ts +6 -0
  450. package/dist/rendering/renderer/postSkipped.d.ts.map +1 -1
  451. package/dist/rendering/renderer/postSkipped.js +8 -0
  452. package/dist/rendering/renderer/postSkipped.js.map +1 -1
  453. package/dist/rendering/shaders/chunks/author/ibl.glsl.d.ts +20 -0
  454. package/dist/rendering/shaders/chunks/author/ibl.glsl.d.ts.map +1 -0
  455. package/dist/rendering/shaders/chunks/author/ibl.glsl.js +84 -0
  456. package/dist/rendering/shaders/chunks/author/ibl.glsl.js.map +1 -0
  457. package/dist/rendering/shaders/chunks/author/index.d.ts +3 -1
  458. package/dist/rendering/shaders/chunks/author/index.d.ts.map +1 -1
  459. package/dist/rendering/shaders/chunks/author/index.js +38 -3
  460. package/dist/rendering/shaders/chunks/author/index.js.map +1 -1
  461. package/dist/rendering/shaders/chunks/author/lights.glsl.d.ts +16 -0
  462. package/dist/rendering/shaders/chunks/author/lights.glsl.d.ts.map +1 -0
  463. package/dist/rendering/shaders/chunks/author/lights.glsl.js +112 -0
  464. package/dist/rendering/shaders/chunks/author/lights.glsl.js.map +1 -0
  465. package/dist/rendering/shaders/chunks/author/shadow.glsl.d.ts +16 -2
  466. package/dist/rendering/shaders/chunks/author/shadow.glsl.d.ts.map +1 -1
  467. package/dist/rendering/shaders/chunks/author/shadow.glsl.js +46 -2
  468. package/dist/rendering/shaders/chunks/author/shadow.glsl.js.map +1 -1
  469. package/dist/rendering/shaders/chunks/instance_color_target.glsl.d.ts +34 -0
  470. package/dist/rendering/shaders/chunks/instance_color_target.glsl.d.ts.map +1 -0
  471. package/dist/rendering/shaders/chunks/instance_color_target.glsl.js +101 -0
  472. package/dist/rendering/shaders/chunks/instance_color_target.glsl.js.map +1 -0
  473. package/dist/rendering/shaders/chunks/rim.glsl.d.ts +37 -0
  474. package/dist/rendering/shaders/chunks/rim.glsl.d.ts.map +1 -0
  475. package/dist/rendering/shaders/chunks/rim.glsl.js +50 -0
  476. package/dist/rendering/shaders/chunks/rim.glsl.js.map +1 -0
  477. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts +26 -3
  478. package/dist/rendering/shadows/Prd02ShadowBridge.d.ts.map +1 -1
  479. package/dist/rendering/shadows/Prd02ShadowBridge.js +134 -8
  480. package/dist/rendering/shadows/Prd02ShadowBridge.js.map +1 -1
  481. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
  482. package/dist/rendering/shadows/Prd02ShadowsContributor.js +4 -16
  483. package/dist/rendering/shadows/Prd02ShadowsContributor.js.map +1 -1
  484. package/dist/rendering/vfx/VfxAtlas.d.ts +10 -0
  485. package/dist/rendering/vfx/VfxAtlas.d.ts.map +1 -1
  486. package/dist/rendering/vfx/VfxAtlas.js +18 -3
  487. package/dist/rendering/vfx/VfxAtlas.js.map +1 -1
  488. package/dist/rendering/webgl2/LegacyPost.d.ts +9 -1
  489. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  490. package/dist/rendering/webgl2/LegacyPost.js +23 -7
  491. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  492. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  493. package/dist/rendering/webgl2/MultiDraw.js +51 -1
  494. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  495. package/dist/rendering/world/vegetation/WindField.d.ts.map +1 -1
  496. package/dist/rendering/world/vegetation/WindField.js +4 -1
  497. package/dist/rendering/world/vegetation/WindField.js.map +1 -1
  498. package/dist/rendering/world/water/ReflectionViewPass.d.ts.map +1 -1
  499. package/dist/rendering/world/water/ReflectionViewPass.js +12 -2
  500. package/dist/rendering/world/water/ReflectionViewPass.js.map +1 -1
  501. package/dist/rendering/world/water/SceneCopyFallback.d.ts.map +1 -1
  502. package/dist/rendering/world/water/SceneCopyFallback.js +9 -2
  503. package/dist/rendering/world/water/SceneCopyFallback.js.map +1 -1
  504. package/dist/rendering/world/water/WaterMaterial.d.ts.map +1 -1
  505. package/dist/rendering/world/water/WaterMaterial.js +8 -2
  506. package/dist/rendering/world/water/WaterMaterial.js.map +1 -1
  507. package/package.json +25 -25
  508. package/templates/cinematic-scene/package.json +2 -2
  509. package/templates/mini-game/package.json +2 -2
  510. package/templates/product-viewer/package.json +2 -2
  511. package/templates/production-asset-inspector/package.json +1 -1
  512. package/templates/production-material-studio/package.json +1 -1
  513. package/templates/production-product-configurator/package.json +1 -1
  514. package/templates/production-product-viewer/package.json +1 -1
@@ -0,0 +1,237 @@
1
+ /**
2
+ * GU47 E-H (WP-8) — GLB resource cache across `app.setScene`.
3
+ *
4
+ * `setScene` disposes the renderer and every typed GLB actor before the next scene mounts. The
5
+ * parsed-GLB cache in `@aura3d/assets` (`GLTFAssetParseCache`) and the decoded-texture share
6
+ * (`actor/ModelTextureShare`) are reference counted, so the last actor of an asset dropping its
7
+ * lease evicts the parse and the textures, and a scene that mounts the same assets again fetches,
8
+ * parses and decodes every GLB a second time.
9
+ *
10
+ * This cache keeps, per asset key, the parse lease of the last disposed actor of that asset (its
11
+ * render resources and textures are freed at once, as before). The next actor of the same asset
12
+ * finds the parse still referenced, so it loads with 0 GLB fetches and 0 parses, and then hands
13
+ * the kept lease back (`consume`), so at most one kept lease exists per asset and none while an
14
+ * actor of that asset is live. Memory held is the parsed GLB (about its file size), which is what
15
+ * `bytes` charges.
16
+ *
17
+ * Keys: the asset content hash (typed asset tables carry one), the URL and every decode option by
18
+ * value (see `glbResourceCacheKey`), so different decode settings never alias.
19
+ * Bounds: `maxEntries` and `maxBytes` (least recently kept evicted first); an entry is disposed
20
+ * exactly once, on eviction, `consume`, `release` or `clear`.
21
+ */
22
+ /** Defaults: generous for a game's own asset set, small next to a phone's memory. */
23
+ export const GLB_RESOURCE_CACHE_DEFAULTS = Object.freeze({
24
+ maxEntries: 32,
25
+ maxBytes: 160 * 1024 * 1024
26
+ });
27
+ export class GlbResourceCache {
28
+ /** Insertion order = recency (oldest first). */
29
+ entries = new Map();
30
+ maxEntries;
31
+ maxBytes;
32
+ chargedBytes = 0;
33
+ hits = 0;
34
+ misses = 0;
35
+ keptCount = 0;
36
+ evictedCount = 0;
37
+ constructor(options = {}) {
38
+ this.maxEntries = sanitizeLimit(options.maxEntries, GLB_RESOURCE_CACHE_DEFAULTS.maxEntries);
39
+ this.maxBytes = sanitizeLimit(options.maxBytes, GLB_RESOURCE_CACHE_DEFAULTS.maxBytes);
40
+ }
41
+ get enabled() {
42
+ return this.maxEntries > 0 && this.maxBytes > 0;
43
+ }
44
+ /** Change the bounds; shrinking evicts at once. */
45
+ configure(options) {
46
+ if (options.maxEntries !== undefined)
47
+ this.maxEntries = sanitizeLimit(options.maxEntries, this.maxEntries);
48
+ if (options.maxBytes !== undefined)
49
+ this.maxBytes = sanitizeLimit(options.maxBytes, this.maxBytes);
50
+ this.evictToBounds();
51
+ }
52
+ /** The kept entry for `key` without changing recency or counters. */
53
+ peek(key) {
54
+ return this.entries.get(key);
55
+ }
56
+ /** Records whether an actor load found its asset kept. */
57
+ noteLoad(key) {
58
+ const hit = this.entries.has(key);
59
+ if (hit)
60
+ this.hits += 1;
61
+ else
62
+ this.misses += 1;
63
+ return hit;
64
+ }
65
+ /**
66
+ * Keep a disposed actor's resources. Returns false when the caller must dispose them itself:
67
+ * the cache is off, the asset is already kept, or the entry alone exceeds `maxBytes`.
68
+ */
69
+ keep(key, entry) {
70
+ if (!this.enabled || this.entries.has(key))
71
+ return false;
72
+ const bytes = Math.max(0, Number.isFinite(entry.bytes) ? entry.bytes : 0);
73
+ if (bytes > this.maxBytes)
74
+ return false;
75
+ this.entries.set(key, entry);
76
+ this.chargedBytes += bytes;
77
+ this.keptCount += 1;
78
+ this.evictToBounds(key);
79
+ return this.entries.has(key);
80
+ }
81
+ /**
82
+ * Dispose the kept entry for `key` once a new actor of that asset holds its own parse and
83
+ * texture leases (the kept copy is no longer needed to bridge the remount).
84
+ */
85
+ consume(key) {
86
+ return this.release(key);
87
+ }
88
+ /** Dispose and forget one kept entry. */
89
+ release(key) {
90
+ const entry = this.entries.get(key);
91
+ if (entry === undefined)
92
+ return false;
93
+ this.entries.delete(key);
94
+ this.chargedBytes -= Math.max(0, Number.isFinite(entry.bytes) ? entry.bytes : 0);
95
+ disposeQuietly(entry);
96
+ return true;
97
+ }
98
+ /** Dispose every kept entry (app teardown, memory pressure, tests). */
99
+ clear() {
100
+ for (const key of [...this.entries.keys()])
101
+ this.release(key);
102
+ this.chargedBytes = 0;
103
+ }
104
+ /** Zero the counters (tests). */
105
+ resetStats() {
106
+ this.hits = 0;
107
+ this.misses = 0;
108
+ this.keptCount = 0;
109
+ this.evictedCount = 0;
110
+ }
111
+ snapshot() {
112
+ return {
113
+ kind: "aura-glb-resource-cache",
114
+ entries: this.entries.size,
115
+ bytes: this.chargedBytes,
116
+ maxEntries: this.maxEntries,
117
+ maxBytes: this.maxBytes,
118
+ hits: this.hits,
119
+ misses: this.misses,
120
+ kept: this.keptCount,
121
+ evicted: this.evictedCount,
122
+ keys: [...this.entries.keys()]
123
+ };
124
+ }
125
+ withinBounds() {
126
+ return this.entries.size <= this.maxEntries && this.chargedBytes <= this.maxBytes;
127
+ }
128
+ /** Evict least recently kept entries first; `protect` (the entry just kept) goes last. */
129
+ evictToBounds(protect) {
130
+ for (const key of [...this.entries.keys()]) {
131
+ if (this.withinBounds())
132
+ return;
133
+ if (key === protect)
134
+ continue;
135
+ this.release(key);
136
+ this.evictedCount += 1;
137
+ }
138
+ if (!this.withinBounds() && protect !== undefined && this.release(protect))
139
+ this.evictedCount += 1;
140
+ }
141
+ }
142
+ function sanitizeLimit(value, fallback) {
143
+ if (value === undefined)
144
+ return fallback;
145
+ return Number.isFinite(value) ? Math.max(0, Math.floor(value)) : fallback;
146
+ }
147
+ function disposeQuietly(entry) {
148
+ try {
149
+ entry.dispose();
150
+ }
151
+ catch (error) {
152
+ if (typeof console !== "undefined")
153
+ console.warn(`[aura3d] GLB resource cache: disposing a kept asset failed: ${String(error)}`);
154
+ }
155
+ }
156
+ /**
157
+ * The process-wide cache every typed GLB actor uses, on by default (GU47 E-H: a second `setScene`
158
+ * with the same assets makes 0 GLB fetches). `configureGlbResourceCache({ maxEntries: 0 })` turns
159
+ * it off.
160
+ */
161
+ export const glbResourceCache = new GlbResourceCache(GLB_RESOURCE_CACHE_DEFAULTS);
162
+ /** Tune the cache bounds (`{ maxEntries: 0 }` turns it off and disposes what it kept). */
163
+ export function configureGlbResourceCache(options) {
164
+ glbResourceCache.configure(options);
165
+ }
166
+ /** Dispose everything the cache kept (call after the last scene of an app is gone). */
167
+ export function clearGlbResourceCache() {
168
+ glbResourceCache.clear();
169
+ }
170
+ /** Diagnostics: entries, bytes, hits / misses and evictions. */
171
+ export function glbResourceCacheSnapshot() {
172
+ return glbResourceCache.snapshot();
173
+ }
174
+ /**
175
+ * Cache key for an actor's asset: the content hash, the URL and every decode input, by value.
176
+ * Plain-object options (`decoders`, texture capabilities) are serialised rather than keyed by
177
+ * identity because the renderer builds a fresh `decoders` object per mount, so identity keys
178
+ * would never match across `setScene`. Functions and class instances (an image decoder) keep an
179
+ * identity token.
180
+ */
181
+ export function glbResourceCacheKey(options) {
182
+ return [
183
+ options.asset.hash ?? "-",
184
+ options.asset.url,
185
+ valueToken(options.maxTextureSize),
186
+ valueToken(options.textureBudget),
187
+ valueToken(options.imageDecoder),
188
+ valueToken(options.decoders),
189
+ valueToken(options.compressedTextureCapabilities)
190
+ ].join("|");
191
+ }
192
+ const identityTokens = new WeakMap();
193
+ let nextIdentityToken = 1;
194
+ /**
195
+ * Cache-key token for a decode option: primitives and plain data by value (so a fresh `decoders: {}` per mount still
196
+ * matches), anything else (decoder instances, functions) by identity. Shared with `actor/ModelTextureShare.ts`.
197
+ */
198
+ export function valueToken(value) {
199
+ if (value === undefined || value === null)
200
+ return "-";
201
+ if (typeof value !== "object" && typeof value !== "function")
202
+ return String(value);
203
+ if (typeof value === "object" && isPlainData(value))
204
+ return JSON.stringify(sortKeys(value));
205
+ let token = identityTokens.get(value);
206
+ if (token === undefined) {
207
+ token = nextIdentityToken++;
208
+ identityTokens.set(value, token);
209
+ }
210
+ return `#${token}`;
211
+ }
212
+ function isPlainData(value) {
213
+ const proto = Object.getPrototypeOf(value);
214
+ if (proto !== Object.prototype && proto !== null && !Array.isArray(value))
215
+ return false;
216
+ return Object.values(value).every((entry) => entry === null || ["string", "number", "boolean", "undefined"].includes(typeof entry) || (typeof entry === "object" && isPlainData(entry)));
217
+ }
218
+ function sortKeys(value) {
219
+ if (Array.isArray(value))
220
+ return value.map(sortKeys);
221
+ if (value !== null && typeof value === "object") {
222
+ return Object.fromEntries(Object.keys(value).sort().map((key) => [key, sortKeys(value[key])]));
223
+ }
224
+ return value;
225
+ }
226
+ /**
227
+ * Charged size of a kept GLB: the manifest file size when the asset table has one, else an
228
+ * estimate from the loader's counts (vertex attributes, indices, and 4 MiB per decoded image).
229
+ */
230
+ export function estimateGlbResourceBytes(sizeBytes, diagnostics) {
231
+ if (sizeBytes !== undefined && Number.isFinite(sizeBytes) && sizeBytes > 0)
232
+ return sizeBytes;
233
+ if (diagnostics === undefined)
234
+ return 0;
235
+ return diagnostics.vertexCount * 48 + diagnostics.indexCount * 4 + diagnostics.imageCount * 4 * 1024 * 1024;
236
+ }
237
+ //# sourceMappingURL=GlbResourceCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlbResourceCache.js","sourceRoot":"","sources":["../../../../../packages/engine/src/production-runtime/GlbResourceCache.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,28 @@
14
14
  * No /joint/i heuristic, no 0.28 constants, no emissive=baseColor fallback.
15
15
  * 4.0 Live Fix E2: this lowering is the ONLY model-material path — the
16
16
  * former flag-off legacy tint object (applyMaterialTint) was deleted.
17
+ *
18
+ * GU47 E-D: `rim` (any generated-program PBR material; removed again by an override list without it), `transmission`
19
+ * and `iridescence` (authored keys only), `applyMaterialEmissive` (`AuraModelMaterialHandle.setEmissive`: a live write,
20
+ * no snapshot re-apply) and `applyNodeMaterialExtras` (primitive nodes: spec `rim` and the node's
21
+ * `instanceColorTarget` onto the draw's material).
17
22
  */
18
- import type { Material } from "../../rendering/index.js";
19
- import type { AuraMaterialSpec } from "../agent-api/index.js";
23
+ import { type Material } from "../../rendering/index.js";
24
+ import type { AuraColor, AuraMaterialSpec } from "../agent-api/index.js";
25
+ import type { AuraInstanceColorTarget, AuraMaterialRimSpec } from "../agent-api/nodes/types.js";
20
26
  import type { AuraModelMaterialOverride } from "../contracts/materials.js";
27
+ /** GU47 E-D: a lowered `rim` (linear rgb). Same parameter names as `packages/rendering/src/shaders/chunks/rim.glsl.ts`. */
28
+ export interface LoweredMaterialRim {
29
+ readonly color: readonly [number, number, number];
30
+ readonly power: number;
31
+ readonly intensity: number;
32
+ }
33
+ /** The PRD-04 `prd04.rim` forward feature's parameters (it selects iff the strength is > 0). */
34
+ export declare const MATERIAL_RIM_COLOR_PARAM = "u_prd04RimColor";
35
+ export declare const MATERIAL_RIM_POWER_PARAM = "u_prd04RimPower";
36
+ export declare const MATERIAL_RIM_INTENSITY_PARAM = "u_prd04RimStrength";
37
+ /** Same name and codes as `packages/rendering/src/shaders/chunks/instance_color_target.glsl.ts` (0 base, 1 emissive, 2 both). */
38
+ export declare const MATERIAL_INSTANCE_COLOR_TARGET_PARAM = "u_a3dInstanceColorTarget";
21
39
  export interface TypedGLBActorMaterialOverride {
22
40
  readonly target?: (materialName: string) => boolean;
23
41
  readonly baseColorMultiply?: readonly [number, number, number, number];
@@ -31,7 +49,40 @@ export interface TypedGLBActorMaterialOverride {
31
49
  readonly clearcoatRoughness?: number;
32
50
  readonly envMapIntensity?: number;
33
51
  readonly opacity?: number;
52
+ /** GU47 E-D: fresnel rim (written even when the authored snapshot lacks it; cleared when no override carries one). */
53
+ readonly rim?: LoweredMaterialRim;
54
+ /** GU47 E-D: `u_transmissionFactor`, on materials that carry it. */
55
+ readonly transmission?: number;
56
+ /** GU47 E-D: `u_iridescenceFactor`, on materials that carry it. */
57
+ readonly iridescence?: number;
58
+ /** GU47 pass 4: `u_sheenColorFactor` (linear, already scaled by `sheen`), on materials that carry it. */
59
+ readonly sheenColor?: readonly [number, number, number];
60
+ /** GU47 pass 4: `u_sheenRoughnessFactor`, on materials that carry it. */
61
+ readonly sheenRoughness?: number;
34
62
  }
63
+ /** `rim: { color, power?, intensity? }` → linear colour, power 0.1..16 (default 3), intensity 0..16 (default 1). */
64
+ export declare function lowerMaterialRim(rim: AuraMaterialRimSpec | undefined): LoweredMaterialRim | undefined;
65
+ /**
66
+ * Writes the rim parameters (or clears them: intensity 0, so the `prd04.rim` feature stops selecting and the program is
67
+ * the no-rim one again). Writes only on change, so calling it every frame does not bump the material revision. Returns
68
+ * true when it wrote.
69
+ */
70
+ export declare function setMaterialRimParameters(material: Material, rim: LoweredMaterialRim | undefined): boolean;
71
+ /** Writes `u_a3dInstanceColorTarget` (only on change; "base"/absent clears a previous target). */
72
+ export declare function setMaterialInstanceColorTarget(material: Material, target: AuraInstanceColorTarget | undefined): boolean;
73
+ /**
74
+ * Per-frame glue for primitive nodes (`compiler/renderInput.ts`): the spec's `rim` and the node's `instanceColorTarget`
75
+ * onto the material the draw uses (plain, textured or LOD level). Two map lookups when neither is set; writes only on
76
+ * change. Custom-shader materials are left alone.
77
+ */
78
+ export declare function applyNodeMaterialExtras(material: Material | undefined, spec: AuraMaterialSpec | undefined, instanceColorTarget: AuraInstanceColorTarget | undefined): void;
79
+ /**
80
+ * `AuraModelMaterialHandle.setEmissive(target, color, intensity)`: writes the emissive colour and strength on every
81
+ * material named `target` (`"*"`: every material), on the parameters each material carries. A live write: no snapshot
82
+ * restore, no override re-apply, so it is cheap enough to call every frame (brake lights, blinking signs). A later
83
+ * `setMaterialOverrides` re-applies from the authored snapshot and replaces it. Returns the number of materials written.
84
+ */
85
+ export declare function applyMaterialEmissive(materials: Iterable<Material>, target: string, color: AuraColor, intensity: number): number;
35
86
  export type AuthoredMaterialSnapshot = ReadonlyMap<string, Readonly<Record<string, unknown>>>;
36
87
  export declare function snapshotMaterials(materials: Iterable<Material>): AuthoredMaterialSnapshot;
37
88
  export declare function applyMaterialOverrides(snapshot: AuthoredMaterialSnapshot, materials: Iterable<Material>, overrides: readonly TypedGLBActorMaterialOverride[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelMaterialOverrides.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/production-runtime/ModelMaterialOverrides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAGxE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AA+B9F,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CAazF;AA0BD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,wBAAwB,EAClC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC7B,SAAS,EAAE,SAAS,6BAA6B,EAAE,GAClD,IAAI,CA2DN;AAgBD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,gBAAgB,GAAG,SAAS,EAClC,SAAS,EAAE,SAAS,yBAAyB,EAAE,GAAG,SAAS,GAC1D,6BAA6B,EAAE,CA2DjC"}
1
+ {"version":3,"file":"ModelMaterialOverrides.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/production-runtime/ModelMaterialOverrides.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,123 @@
14
14
  * No /joint/i heuristic, no 0.28 constants, no emissive=baseColor fallback.
15
15
  * 4.0 Live Fix E2: this lowering is the ONLY model-material path — the
16
16
  * former flag-off legacy tint object (applyMaterialTint) was deleted.
17
+ *
18
+ * GU47 E-D: `rim` (any generated-program PBR material; removed again by an override list without it), `transmission`
19
+ * and `iridescence` (authored keys only), `applyMaterialEmissive` (`AuraModelMaterialHandle.setEmissive`: a live write,
20
+ * no snapshot re-apply) and `applyNodeMaterialExtras` (primitive nodes: spec `rim` and the node's
21
+ * `instanceColorTarget` onto the draw's material).
17
22
  */
23
+ import { PortableShaderMaterial } from "../../rendering/index.js";
18
24
  import { parseAuraColor } from "../contracts/sceneGraph.js";
25
+ /** The PRD-04 `prd04.rim` forward feature's parameters (it selects iff the strength is > 0). */
26
+ export const MATERIAL_RIM_COLOR_PARAM = "u_prd04RimColor";
27
+ export const MATERIAL_RIM_POWER_PARAM = "u_prd04RimPower";
28
+ export const MATERIAL_RIM_INTENSITY_PARAM = "u_prd04RimStrength";
29
+ /** Same name and codes as `packages/rendering/src/shaders/chunks/instance_color_target.glsl.ts` (0 base, 1 emissive, 2 both). */
30
+ export const MATERIAL_INSTANCE_COLOR_TARGET_PARAM = "u_a3dInstanceColorTarget";
31
+ const clampRange = (value, fallback, min, max) => typeof value === "number" && Number.isFinite(value) ? Math.min(max, Math.max(min, value)) : fallback;
32
+ const loweredRims = new WeakMap();
33
+ /** `rim: { color, power?, intensity? }` → linear colour, power 0.1..16 (default 3), intensity 0..16 (default 1). */
34
+ export function lowerMaterialRim(rim) {
35
+ if (!rim)
36
+ return undefined;
37
+ const cached = loweredRims.get(rim);
38
+ if (cached)
39
+ return cached;
40
+ const [r, g, b] = parseAuraColor(rim.color);
41
+ const lowered = { color: [r, g, b], power: clampRange(rim.power, 3, 0.1, 16), intensity: clampRange(rim.intensity, 1, 0, 16) };
42
+ loweredRims.set(rim, lowered);
43
+ return lowered;
44
+ }
45
+ /** Custom shaders own their whole program (`PortableShaderMaterial.setParameter` rejects undeclared names). */
46
+ const acceptsPbrExtras = (material) => !material.disposed && !(material instanceof PortableShaderMaterial);
47
+ const sameVec3 = (value, expected) => value !== undefined && typeof value !== "number" && "length" in value && value.length === 3
48
+ && value[0] === expected[0] && value[1] === expected[1] && value[2] === expected[2];
49
+ /**
50
+ * Writes the rim parameters (or clears them: intensity 0, so the `prd04.rim` feature stops selecting and the program is
51
+ * the no-rim one again). Writes only on change, so calling it every frame does not bump the material revision. Returns
52
+ * true when it wrote.
53
+ */
54
+ export function setMaterialRimParameters(material, rim) {
55
+ if (!acceptsPbrExtras(material))
56
+ return false;
57
+ const current = material.getParameter(MATERIAL_RIM_INTENSITY_PARAM);
58
+ if (!rim) {
59
+ if (typeof current !== "number" || current === 0)
60
+ return false;
61
+ material.setParameter(MATERIAL_RIM_INTENSITY_PARAM, 0);
62
+ return true;
63
+ }
64
+ let wrote = false;
65
+ if (!sameVec3(material.getParameter(MATERIAL_RIM_COLOR_PARAM), rim.color)) {
66
+ material.setParameter(MATERIAL_RIM_COLOR_PARAM, [rim.color[0], rim.color[1], rim.color[2]]);
67
+ wrote = true;
68
+ }
69
+ if (material.getParameter(MATERIAL_RIM_POWER_PARAM) !== rim.power) {
70
+ material.setParameter(MATERIAL_RIM_POWER_PARAM, rim.power);
71
+ wrote = true;
72
+ }
73
+ if (current !== rim.intensity) {
74
+ material.setParameter(MATERIAL_RIM_INTENSITY_PARAM, rim.intensity);
75
+ wrote = true;
76
+ }
77
+ return wrote;
78
+ }
79
+ const INSTANCE_COLOR_TARGET_CODES = { base: 0, emissive: 1, both: 2 };
80
+ /** Writes `u_a3dInstanceColorTarget` (only on change; "base"/absent clears a previous target). */
81
+ export function setMaterialInstanceColorTarget(material, target) {
82
+ if (!acceptsPbrExtras(material))
83
+ return false;
84
+ const code = INSTANCE_COLOR_TARGET_CODES[target ?? "base"] ?? 0;
85
+ const current = material.getParameter(MATERIAL_INSTANCE_COLOR_TARGET_PARAM);
86
+ if (current === code || (current === undefined && code === 0))
87
+ return false;
88
+ material.setParameter(MATERIAL_INSTANCE_COLOR_TARGET_PARAM, code);
89
+ return true;
90
+ }
91
+ /**
92
+ * Per-frame glue for primitive nodes (`compiler/renderInput.ts`): the spec's `rim` and the node's `instanceColorTarget`
93
+ * onto the material the draw uses (plain, textured or LOD level). Two map lookups when neither is set; writes only on
94
+ * change. Custom-shader materials are left alone.
95
+ */
96
+ export function applyNodeMaterialExtras(material, spec, instanceColorTarget) {
97
+ if (!material || !acceptsPbrExtras(material))
98
+ return;
99
+ setMaterialRimParameters(material, lowerMaterialRim(spec?.rim));
100
+ setMaterialInstanceColorTarget(material, instanceColorTarget);
101
+ }
102
+ /**
103
+ * `AuraModelMaterialHandle.setEmissive(target, color, intensity)`: writes the emissive colour and strength on every
104
+ * material named `target` (`"*"`: every material), on the parameters each material carries. A live write: no snapshot
105
+ * restore, no override re-apply, so it is cheap enough to call every frame (brake lights, blinking signs). A later
106
+ * `setMaterialOverrides` re-applies from the authored snapshot and replaces it. Returns the number of materials written.
107
+ */
108
+ export function applyMaterialEmissive(materials, target, color, intensity) {
109
+ const [r, g, b] = parseAuraColor(color);
110
+ const strength = Number.isFinite(intensity) ? Math.max(0, intensity) : 0;
111
+ let written = 0;
112
+ for (const material of materials) {
113
+ if (material.disposed || (target !== "*" && material.name !== target))
114
+ continue;
115
+ const params = material.getParameters();
116
+ let touched = false;
117
+ for (const name of ["u_emissiveColor", "u_emissiveFactor"]) {
118
+ if (!params.has(name))
119
+ continue;
120
+ if (!sameVec3(params.get(name), [r, g, b]))
121
+ material.setParameter(name, [r, g, b]);
122
+ touched = true;
123
+ }
124
+ if (params.has("u_emissiveStrength")) {
125
+ if (params.get("u_emissiveStrength") !== strength)
126
+ material.setParameter("u_emissiveStrength", strength);
127
+ touched = true;
128
+ }
129
+ if (touched)
130
+ written += 1;
131
+ }
132
+ return written;
133
+ }
19
134
  /**
20
135
  * P2-10 (R15): preset factories stamp the keys they defaulted via `Symbol.for("aura3d.presetDefaults")`
21
136
  * on the spec (`agent-api/nodes/material.ts`; looked up by registry identity so this module stays
@@ -85,6 +200,9 @@ export function applyMaterialOverrides(snapshot, materials, overrides) {
85
200
  material.setParameter(name, value);
86
201
  }
87
202
  const resolved = mergeOverride(material.name ?? "", overrides);
203
+ // GU47 E-D: rim is the one field written outside the authored key set, so it is also cleared explicitly
204
+ // (intensity 0: the rim feature stops selecting) when no override for this material carries it.
205
+ setMaterialRimParameters(material, resolved?.rim);
88
206
  if (!resolved)
89
207
  continue;
90
208
  // P2-1: writes are filtered to the parameters the authored snapshot actually captured.
@@ -134,8 +252,22 @@ export function applyMaterialOverrides(snapshot, materials, overrides) {
134
252
  }
135
253
  if (resolved.opacity !== undefined)
136
254
  writeToAuthoredKeys(["u_opacity", "u_alpha"], resolved.opacity);
255
+ if (resolved.transmission !== undefined)
256
+ writeToAuthoredKeys(["u_transmissionFactor"], clampRange(resolved.transmission, 0, 0, 1));
257
+ if (resolved.iridescence !== undefined)
258
+ writeToAuthoredKeys(["u_iridescenceFactor"], clampRange(resolved.iridescence, 0, 0, 1));
259
+ if (resolved.sheenColor)
260
+ writeToAuthoredKeys(["u_sheenColorFactor"], [resolved.sheenColor[0], resolved.sheenColor[1], resolved.sheenColor[2]]);
261
+ if (resolved.sheenRoughness !== undefined)
262
+ writeToAuthoredKeys(["u_sheenRoughnessFactor"], clampRange(resolved.sheenRoughness, 0, 0, 1));
137
263
  }
138
264
  }
265
+ /** `sheen` (0..1, default 1) times `sheenColor` (default white), linear. */
266
+ function lowerSheenColor(sheen, color) {
267
+ const scale = clampRange(sheen, 1, 0, 1);
268
+ const [r, g, b] = color !== undefined ? colorToVec4(color) : [1, 1, 1];
269
+ return [r * scale, g * scale, b * scale];
270
+ }
139
271
  function targetPredicate(target) {
140
272
  if (target === undefined)
141
273
  return undefined;
@@ -181,6 +313,10 @@ export function lowerModelMaterialOverrides(spec, overrides) {
181
313
  };
182
314
  if (Object.keys(surface).length > 0)
183
315
  lowered.push(surface);
316
+ // GU47 E-D: `model(asset, { material: { rim } })`.
317
+ const specRim = authored("rim") ? lowerMaterialRim(spec?.rim) : undefined;
318
+ if (specRim)
319
+ lowered.push({ rim: specRim });
184
320
  for (const override of overrides ?? []) {
185
321
  lowered.push({
186
322
  ...(override.target !== undefined ? { target: targetPredicate(override.target) } : {}),
@@ -201,7 +337,12 @@ export function lowerModelMaterialOverrides(spec, overrides) {
201
337
  ? { clearcoatRoughness: override.clearcoatRoughness }
202
338
  : {}),
203
339
  ...(override.envMapIntensity !== undefined ? { envMapIntensity: override.envMapIntensity } : {}),
204
- ...(override.opacity !== undefined ? { opacity: override.opacity } : {})
340
+ ...(override.opacity !== undefined ? { opacity: override.opacity } : {}),
341
+ ...(override.rim !== undefined ? { rim: lowerMaterialRim(override.rim) } : {}),
342
+ ...(override.transmission !== undefined ? { transmission: override.transmission } : {}),
343
+ ...(override.iridescence !== undefined ? { iridescence: override.iridescence } : {}),
344
+ ...(override.sheen !== undefined || override.sheenColor !== undefined ? { sheenColor: lowerSheenColor(override.sheen, override.sheenColor) } : {}),
345
+ ...(override.sheenRoughness !== undefined ? { sheenRoughness: override.sheenRoughness } : {})
205
346
  });
206
347
  }
207
348
  return lowered;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelMaterialOverrides.js","sourceRoot":"","sources":["../../../../../packages/engine/src/production-runtime/ModelMaterialOverrides.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelMaterialOverrides.js","sourceRoot":"","sources":["../../../../../packages/engine/src/production-runtime/ModelMaterialOverrides.ts"],"names":[],"mappings":"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"}