@woosh/meep-engine 3.32.0 → 3.34.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 (465) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/editor/Editor.d.ts.map +1 -1
  3. package/editor/Editor.js +0 -3
  4. package/editor/ecs/component/prototypeObjectEditor.js +1 -165
  5. package/editor/ecs/component/registerBasicTypeEditors.d.ts.map +1 -1
  6. package/editor/ecs/component/registerBasicTypeEditors.js +0 -5
  7. package/editor/ecs/component/registerEngineComponentEditors.d.ts.map +1 -1
  8. package/editor/ecs/component/registerEngineComponentEditors.js +0 -20
  9. package/editor/process/SymbolicDisplayProcess.d.ts.map +1 -1
  10. package/editor/process/SymbolicDisplayProcess.js +100 -106
  11. package/editor/prototypeEditorShell.d.ts.map +1 -1
  12. package/editor/prototypeEditorShell.js +190 -186
  13. package/editor/templates/entity_templates.d.ts.map +1 -1
  14. package/editor/templates/entity_templates.js +10 -27
  15. package/editor/view/makeEntityDecorators.js +2 -2
  16. package/package.json +1 -1
  17. package/src/core/collection/table/RowFirstTable.d.ts +8 -0
  18. package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
  19. package/src/core/collection/table/RowFirstTable.js +40 -11
  20. package/src/{engine/graphics/particles/particular/engine → core/geom/3d/aabb}/MovingBoundingBox.d.ts +3 -3
  21. package/src/core/geom/3d/aabb/MovingBoundingBox.d.ts.map +1 -0
  22. package/src/{engine/graphics/particles/particular/engine → core/geom/3d/aabb}/MovingBoundingBox.js +5 -5
  23. package/src/core/math/lookup/RGBA_LUT_HEATMAP_IR.d.ts +3 -0
  24. package/src/core/math/lookup/RGBA_LUT_HEATMAP_IR.d.ts.map +1 -0
  25. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGBA_LUT_HEATMAP_IR.js +1 -1
  26. package/src/core/math/lookup/RGB_LUT_INFERNO.d.ts +6 -0
  27. package/src/core/math/lookup/RGB_LUT_INFERNO.d.ts.map +1 -0
  28. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_INFERNO.js +1 -1
  29. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_TURBO.d.ts +1 -1
  30. package/src/core/math/lookup/RGB_LUT_TURBO.d.ts.map +1 -0
  31. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_TURBO.js +1 -1
  32. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_VIRIDIS.d.ts +1 -1
  33. package/src/core/math/lookup/RGB_LUT_VIRIDIS.d.ts.map +1 -0
  34. package/src/{engine/graphics/particles/particular/engine/parameter/sample → core/math/lookup}/RGB_LUT_VIRIDIS.js +1 -1
  35. package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
  36. package/src/engine/animation/AnimatedActions.js +2 -4
  37. package/src/engine/animation/AnimationUtils.d.ts +1 -17
  38. package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
  39. package/src/engine/animation/AnimationUtils.js +138 -246
  40. package/src/engine/ecs/EntityManager.d.ts +1 -1
  41. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  42. package/src/engine/ecs/EntityManager.js +2 -2
  43. package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +268 -275
  44. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  45. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +0 -10
  46. package/src/engine/graphics/geometry/distribute_points_on_indexed_triangles.d.ts.map +1 -0
  47. package/src/engine/graphics/{particles/particular/engine/utils → geometry}/distribute_points_on_indexed_triangles.js +3 -3
  48. package/src/engine/graphics/{particles/particular/engine/utils/volume → texture/sampler}/lut_to_sampler.d.ts +1 -1
  49. package/src/engine/graphics/texture/sampler/lut_to_sampler.d.ts.map +1 -0
  50. package/src/engine/graphics/{particles/particular/engine/utils/volume → texture/sampler}/lut_to_sampler.js +1 -1
  51. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +0 -3
  52. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  53. package/src/engine/graphics3/GPUParticleEmitterSystem.js +0 -3
  54. package/src/engine/network/NetworkSession.d.ts +1 -1
  55. package/src/engine/network/NetworkSession.js +1 -1
  56. package/src/engine/physics/cloth/MEASUREMENTS.md +115 -0
  57. package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts.map +1 -1
  58. package/src/engine/physics/cloth/solver/cloth_contact_find.js +2 -0
  59. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts +9 -0
  60. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
  61. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +30 -7
  62. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  63. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
  64. package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +12 -2
  65. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +11 -2
  66. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
  67. package/src/engine/sound/ecs/audio/LiveEmitterSet.js +14 -7
  68. package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts +6 -15
  69. package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts.map +1 -1
  70. package/src/engine/sound/ecs/audio/SpatialAudioIndex.js +161 -174
  71. package/src/shade/device/mock/SoftwareGPUBuffer.d.ts +5 -3
  72. package/src/shade/device/mock/SoftwareGPUBuffer.d.ts.map +1 -1
  73. package/src/shade/device/mock/SoftwareGPUBuffer.js +32 -3
  74. package/src/shade/device/mock/SoftwareGPURenderPassEncoder.d.ts +20 -3
  75. package/src/shade/device/mock/SoftwareGPURenderPassEncoder.d.ts.map +1 -1
  76. package/src/shade/device/mock/SoftwareGPURenderPassEncoder.js +21 -3
  77. package/src/shade/playground/caldera/main.js +73 -60
  78. package/src/shade/playground/vgeo_runtime/main.js +25 -77
  79. package/src/shade/playground/vgeo_scene/main.js +2231 -2217
  80. package/src/shade/renderer/GraphicsContext.d.ts +18 -0
  81. package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
  82. package/src/shade/renderer/GraphicsContext.js +63 -40
  83. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  84. package/src/shade/renderer/Renderer.js +38 -0
  85. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +8 -0
  86. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  87. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +21 -0
  88. package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts +6 -5
  89. package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.d.ts.map +1 -1
  90. package/src/shade/renderer/buffer/GPUBufferReadbackAllocator.js +241 -240
  91. package/src/shade/renderer/buffer/GPUBufferStagingAllocator.d.ts +51 -0
  92. package/src/shade/renderer/buffer/GPUBufferStagingAllocator.d.ts.map +1 -1
  93. package/src/shade/renderer/buffer/GPUBufferStagingAllocator.js +214 -28
  94. package/src/shade/renderer/dynamic/DynamicMeshAVBOITChannel.d.ts +2 -1
  95. package/src/shade/renderer/dynamic/DynamicMeshAVBOITChannel.d.ts.map +1 -1
  96. package/src/shade/renderer/dynamic/DynamicMeshAVBOITChannel.js +19 -17
  97. package/src/shade/renderer/dynamic/GPUDynamicMeshDrawList.d.ts +70 -0
  98. package/src/shade/renderer/dynamic/GPUDynamicMeshDrawList.d.ts.map +1 -0
  99. package/src/shade/renderer/dynamic/GPUDynamicMeshDrawList.js +257 -0
  100. package/src/shade/renderer/dynamic/GPUDynamicMeshRenderer.d.ts.map +1 -1
  101. package/src/shade/renderer/dynamic/GPUDynamicMeshRenderer.js +19 -34
  102. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts +6 -20
  103. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts.map +1 -1
  104. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +42 -36
  105. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts +2 -1
  106. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts.map +1 -1
  107. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.js +4 -3
  108. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_vertex.d.ts +4 -3
  109. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_vertex.d.ts.map +1 -1
  110. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_vertex.js +7 -4
  111. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts +14 -15
  112. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts.map +1 -1
  113. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.js +49 -83
  114. package/src/shade/renderer/dynamic/shader_dynamic_mesh.d.ts +19 -3
  115. package/src/shade/renderer/dynamic/shader_dynamic_mesh.d.ts.map +1 -1
  116. package/src/shade/renderer/dynamic/shader_dynamic_mesh.js +26 -6
  117. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts +2 -1
  118. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts.map +1 -1
  119. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js +12 -6
  120. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts +3 -2
  121. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts.map +1 -1
  122. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.js +21 -13
  123. package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +1 -1
  124. package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
  125. package/src/shade/renderer/geometry/GPUGeometryManager.js +9 -10
  126. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +5 -0
  127. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
  128. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +11 -0
  129. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.d.ts +12 -0
  130. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.d.ts.map +1 -1
  131. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.js +25 -0
  132. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts +115 -101
  133. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts.map +1 -1
  134. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.js +282 -140
  135. package/src/shade/renderer/geometry/virtual/runtime/REVIEW_LEDGER.md +30 -0
  136. package/src/shade/renderer/geometry/virtual/runtime/RUNTIME_PLAN_2026_09_14.md +4 -1
  137. package/src/shade/renderer/geometry/virtual/runtime/SHADOW_PLAN_2026_09_28.md +536 -0
  138. package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.d.ts +6 -2
  139. package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.d.ts.map +1 -1
  140. package/src/shade/renderer/geometry/virtual/runtime/VGeoFeedbackLoop.js +68 -19
  141. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts +2 -1
  142. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts.map +1 -1
  143. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.js +17 -1
  144. package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.d.ts +4 -0
  145. package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.d.ts.map +1 -1
  146. package/src/shade/renderer/geometry/virtual/runtime/VGeoResidency.js +42 -12
  147. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.d.ts +93 -12
  148. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.d.ts.map +1 -1
  149. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.js +166 -20
  150. package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.d.ts.map +1 -1
  151. package/src/shade/renderer/geometry/virtual/runtime/cut/VGEO_CUT_PARAMS_STRUCT.js +30 -7
  152. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.d.ts.map +1 -1
  153. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_access.js +12 -5
  154. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_claim.d.ts.map +1 -1
  155. package/src/shade/renderer/geometry/virtual/runtime/cut/chunk_vgeo_cut_claim.js +2 -2
  156. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.d.ts.map +1 -1
  157. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_collect.js +23 -13
  158. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_remainder.d.ts.map +1 -1
  159. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_queue_remainder.js +1 -2
  160. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.d.ts.map +1 -1
  161. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_seed.js +1 -2
  162. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.d.ts.map +1 -1
  163. package/src/shade/renderer/geometry/virtual/runtime/cut/shader_vgeo_cut_traverse.js +10 -6
  164. package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.d.ts +45 -17
  165. package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.d.ts.map +1 -1
  166. package/src/shade/renderer/geometry/virtual/runtime/cut/vgeo_cut_feedback_layout.js +61 -19
  167. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.d.ts +8 -11
  168. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.d.ts.map +1 -1
  169. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_if_enabled.js +9 -16
  170. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts.map +1 -1
  171. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js +25 -10
  172. package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_FEEDBACK_OFFSET.js +10 -8
  173. package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.d.ts +1 -0
  174. package/src/shade/renderer/geometry/virtual/runtime/layout/VGEO_INSTANCE_OFFSET.js +19 -7
  175. package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.d.ts +4 -2
  176. package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.d.ts.map +1 -1
  177. package/src/shade/renderer/geometry/virtual/runtime/make_vgeo_page_worker.js +4 -2
  178. package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.d.ts +4 -0
  179. package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.d.ts.map +1 -1
  180. package/src/shade/renderer/global_illumination/brick4/Brick4LightMap.js +7 -0
  181. package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.d.ts.map +1 -1
  182. package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.js +1 -0
  183. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  184. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  185. package/src/shade/renderer/material/GPUMaterialManager.js +2 -0
  186. package/src/shade/renderer/particles/DESIGN.md +4 -10
  187. package/src/shade/renderer/particles/ParticleConstants.d.ts +1 -3
  188. package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
  189. package/src/shade/renderer/particles/ParticleConstants.js +1 -3
  190. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts +3 -4
  191. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -1
  192. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +3 -4
  193. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  194. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +45 -0
  195. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -0
  196. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +99 -0
  197. package/src/shade/renderer/rasterize/bucket/rasterization_opaque_buckets.d.ts +4 -4
  198. package/src/shade/renderer/rasterize/bucket/rasterization_opaque_buckets.js +36 -36
  199. package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.d.ts +15 -0
  200. package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.d.ts.map +1 -0
  201. package/src/shade/renderer/rasterize/bucket/shader_gather_bucket.js +103 -0
  202. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts +3 -0
  203. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
  204. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +6 -1
  205. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts +26 -0
  206. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts.map +1 -0
  207. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.js +91 -0
  208. package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.d.ts +22 -0
  209. package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.d.ts.map +1 -0
  210. package/src/shade/renderer/rasterize/fast/graph_gather_meshes_from_buckets.js +102 -0
  211. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts +2 -1
  212. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts.map +1 -1
  213. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +28 -24
  214. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +20 -0
  215. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
  216. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +32 -28
  217. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
  218. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +9 -105
  219. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +5 -0
  220. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
  221. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +11 -0
  222. package/src/shade/renderer/scene/GPUSceneContext.d.ts +11 -3
  223. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  224. package/src/shade/renderer/scene/GPUSceneContext.js +93 -21
  225. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +4 -1
  226. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -1
  227. package/src/shade/renderer/scene/rows/GPUSceneRows.js +5 -23
  228. package/src/shade/renderer/shader/type/serde/write_gpu_typed_buffer.d.ts.map +1 -1
  229. package/src/shade/renderer/shader/type/serde/write_gpu_typed_buffer.js +8 -1
  230. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
  231. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +63 -0
  232. package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.d.ts +12 -0
  233. package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.d.ts.map +1 -0
  234. package/src/shade/renderer/shadow/map/SHADOWMAP_VGEO_TAU_SCALE.js +11 -0
  235. package/src/shade/renderer/shadow/map/Shadowmap.d.ts +15 -0
  236. package/src/shade/renderer/shadow/map/Shadowmap.d.ts.map +1 -1
  237. package/src/shade/renderer/shadow/map/Shadowmap.js +17 -0
  238. package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.d.ts +25 -0
  239. package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.d.ts.map +1 -0
  240. package/src/shade/renderer/shadow/map/shadowmap_caster_detail_pending.js +22 -0
  241. package/src/shade/renderer/shadow/map/shadowmap_update_score.d.ts.map +1 -1
  242. package/src/shade/renderer/shadow/map/shadowmap_update_score.js +5 -2
  243. package/src/shade/renderer/texture/TextureManager.d.ts +2 -1
  244. package/src/shade/renderer/texture/TextureManager.d.ts.map +1 -1
  245. package/src/shade/renderer/texture/TextureManager.js +4 -1
  246. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +1 -1
  247. package/src/shade/renderer/util/Uint32BufferSamplingStats.d.ts +9 -1
  248. package/src/shade/renderer/util/Uint32BufferSamplingStats.d.ts.map +1 -1
  249. package/src/shade/renderer/util/Uint32BufferSamplingStats.js +55 -5
  250. package/src/shade/renderer/view/ViewManager.d.ts +7 -1
  251. package/src/shade/renderer/view/ViewManager.d.ts.map +1 -1
  252. package/src/shade/renderer/view/ViewManager.js +17 -1
  253. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
  254. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +1 -0
  255. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts +0 -20
  256. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts.map +0 -1
  257. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.js +0 -35
  258. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts +0 -12
  259. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts.map +0 -1
  260. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.js +0 -17
  261. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts +0 -14
  262. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts.map +0 -1
  263. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.js +0 -18
  264. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts +0 -52
  265. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts.map +0 -1
  266. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.js +0 -58
  267. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts +0 -47
  268. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts.map +0 -1
  269. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.js +0 -58
  270. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts +0 -16
  271. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts.map +0 -1
  272. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.js +0 -21
  273. package/editor/particles/rebuildParticleEmitter.d.ts +0 -11
  274. package/editor/particles/rebuildParticleEmitter.d.ts.map +0 -1
  275. package/editor/particles/rebuildParticleEmitter.js +0 -31
  276. package/editor/process/ParticleEmitterRebuildProcess.d.ts +0 -66
  277. package/editor/process/ParticleEmitterRebuildProcess.d.ts.map +0 -1
  278. package/editor/process/ParticleEmitterRebuildProcess.js +0 -217
  279. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts +0 -18
  280. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts.map +0 -1
  281. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.js +0 -140
  282. package/src/engine/animation/removeEntityGenericEffect.d.ts +0 -18
  283. package/src/engine/animation/removeEntityGenericEffect.d.ts.map +0 -1
  284. package/src/engine/animation/removeEntityGenericEffect.js +0 -160
  285. package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts +0 -16
  286. package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts.map +0 -1
  287. package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +0 -194
  288. package/src/engine/graphics/ecs/sprite/Sprite.d.ts +0 -12
  289. package/src/engine/graphics/ecs/sprite/Sprite.d.ts.map +0 -1
  290. package/src/engine/graphics/ecs/sprite/Sprite.js +0 -11
  291. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts +0 -8
  292. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +0 -1
  293. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +0 -141
  294. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts.map +0 -1
  295. package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts +0 -61
  296. package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts.map +0 -1
  297. package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +0 -229
  298. package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.d.ts +0 -6
  299. package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.d.ts.map +0 -1
  300. package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.js +0 -8
  301. package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.d.ts +0 -7
  302. package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.d.ts.map +0 -1
  303. package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.js +0 -9
  304. package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.d.ts +0 -13
  305. package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.d.ts.map +0 -1
  306. package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.js +0 -12
  307. package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.d.ts +0 -3
  308. package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.d.ts.map +0 -1
  309. package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.js +0 -84
  310. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +0 -285
  311. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +0 -1
  312. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +0 -1201
  313. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.d.ts +0 -19
  314. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.d.ts.map +0 -1
  315. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.js +0 -67
  316. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +0 -197
  317. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +0 -1
  318. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +0 -398
  319. package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.d.ts +0 -5
  320. package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.d.ts.map +0 -1
  321. package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.js +0 -4
  322. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +0 -162
  323. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +0 -1
  324. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +0 -472
  325. package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.d.ts +0 -10
  326. package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.d.ts.map +0 -1
  327. package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.js +0 -37
  328. package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.d.ts +0 -9
  329. package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.d.ts.map +0 -1
  330. package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.js +0 -25
  331. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.d.ts +0 -19
  332. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.d.ts.map +0 -1
  333. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.js +0 -28
  334. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.d.ts +0 -19
  335. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.d.ts.map +0 -1
  336. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.js +0 -162
  337. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.d.ts +0 -5
  338. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.d.ts.map +0 -1
  339. package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.js +0 -103
  340. package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.d.ts +0 -8
  341. package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.d.ts.map +0 -1
  342. package/src/engine/graphics/particles/particular/engine/emitter/write_particle_patch_uv.js +0 -28
  343. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.d.ts +0 -2
  344. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.d.ts.map +0 -1
  345. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.js +0 -2
  346. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.d.ts +0 -2
  347. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.d.ts.map +0 -1
  348. package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.js +0 -2
  349. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts +0 -60
  350. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts.map +0 -1
  351. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +0 -128
  352. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.d.ts +0 -47
  353. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.d.ts.map +0 -1
  354. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.js +0 -77
  355. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts +0 -45
  356. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts.map +0 -1
  357. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.js +0 -93
  358. package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.d.ts +0 -95
  359. package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.d.ts.map +0 -1
  360. package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.js +0 -239
  361. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGBA_LUT_HEATMAP_IR.d.ts +0 -3
  362. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGBA_LUT_HEATMAP_IR.d.ts.map +0 -1
  363. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts +0 -6
  364. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts.map +0 -1
  365. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_TURBO.d.ts.map +0 -1
  366. package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_VIRIDIS.d.ts.map +0 -1
  367. package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.d.ts +0 -13
  368. package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.d.ts.map +0 -1
  369. package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.js +0 -28
  370. package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.d.ts +0 -9
  371. package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.d.ts.map +0 -1
  372. package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.js +0 -24
  373. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.d.ts +0 -13
  374. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.d.ts.map +0 -1
  375. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.js +0 -27
  376. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.d.ts +0 -33
  377. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.d.ts.map +0 -1
  378. package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.js +0 -80
  379. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts +0 -49
  380. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts.map +0 -1
  381. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +0 -135
  382. package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.d.ts +0 -7
  383. package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.d.ts.map +0 -1
  384. package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.js +0 -14
  385. package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.d.ts +0 -41
  386. package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.d.ts.map +0 -1
  387. package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.js +0 -59
  388. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.d.ts +0 -4
  389. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.d.ts.map +0 -1
  390. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.js +0 -56
  391. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.d.ts +0 -4
  392. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.d.ts.map +0 -1
  393. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.js +0 -84
  394. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts +0 -4
  395. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts.map +0 -1
  396. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.js +0 -80
  397. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.d.ts +0 -29
  398. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.d.ts.map +0 -1
  399. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.js +0 -43
  400. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.d.ts +0 -5
  401. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.d.ts.map +0 -1
  402. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.js +0 -104
  403. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.d.ts +0 -9
  404. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.d.ts.map +0 -1
  405. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.js +0 -11
  406. package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.d.ts +0 -9
  407. package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.d.ts.map +0 -1
  408. package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.js +0 -64
  409. package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.d.ts +0 -9
  410. package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.d.ts.map +0 -1
  411. package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js +0 -172
  412. package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.d.ts.map +0 -1
  413. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts +0 -20
  414. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts.map +0 -1
  415. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +0 -84
  416. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts +0 -81
  417. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts.map +0 -1
  418. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.js +0 -200
  419. package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.d.ts +0 -6
  420. package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.d.ts.map +0 -1
  421. package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.js +0 -8
  422. package/src/engine/graphics/particles/particular/engine/utils/volume/lut_to_sampler.d.ts.map +0 -1
  423. package/src/engine/graphics/particles/particular/group/Operation.d.ts +0 -20
  424. package/src/engine/graphics/particles/particular/group/Operation.d.ts.map +0 -1
  425. package/src/engine/graphics/particles/particular/group/Operation.js +0 -20
  426. package/src/engine/graphics/particles/particular/group/OperationType.d.ts +0 -7
  427. package/src/engine/graphics/particles/particular/group/OperationType.d.ts.map +0 -1
  428. package/src/engine/graphics/particles/particular/group/OperationType.js +0 -9
  429. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts +0 -27
  430. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts.map +0 -1
  431. package/src/engine/graphics/particles/particular/group/ParticleAttribute.js +0 -27
  432. package/src/engine/graphics/particles/particular/group/ParticleAttributeType.d.ts +0 -8
  433. package/src/engine/graphics/particles/particular/group/ParticleAttributeType.d.ts.map +0 -1
  434. package/src/engine/graphics/particles/particular/group/ParticleAttributeType.js +0 -11
  435. package/src/engine/graphics/particles/particular/group/ParticleDataType.d.ts +0 -7
  436. package/src/engine/graphics/particles/particular/group/ParticleDataType.d.ts.map +0 -1
  437. package/src/engine/graphics/particles/particular/group/ParticleDataType.js +0 -10
  438. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts +0 -24
  439. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts.map +0 -1
  440. package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +0 -48
  441. package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.d.ts +0 -7
  442. package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.d.ts.map +0 -1
  443. package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.js +0 -20
  444. package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.d.ts +0 -6
  445. package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.d.ts.map +0 -1
  446. package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.js +0 -162
  447. package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.d.ts +0 -8
  448. package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.d.ts.map +0 -1
  449. package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.js +0 -19
  450. package/src/engine/graphics3/ParticleEmitterSystem.d.ts +0 -77
  451. package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +0 -1
  452. package/src/engine/graphics3/ParticleEmitterSystem.js +0 -307
  453. package/src/engine/graphics3/ParticleEmitterSystem3.d.ts +0 -10
  454. package/src/engine/graphics3/ParticleEmitterSystem3.d.ts.map +0 -1
  455. package/src/engine/graphics3/ParticleEmitterSystem3.js +0 -10
  456. package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts +0 -61
  457. package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts.map +0 -1
  458. package/src/engine/graphics3/particles/GPUParticularRenderer.js +0 -627
  459. package/src/engine/graphics3/particles/particle_gpu_records.d.ts +0 -85
  460. package/src/engine/graphics3/particles/particle_gpu_records.d.ts.map +0 -1
  461. package/src/engine/graphics3/particles/particle_gpu_records.js +0 -227
  462. package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts +0 -35
  463. package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +0 -1
  464. package/src/shade/renderer/particles/shaders/shader_particle_render.js +0 -135
  465. /package/src/engine/graphics/{particles/particular/engine/utils → geometry}/distribute_points_on_indexed_triangles.d.ts +0 -0
@@ -70,9 +70,13 @@ export class GPUGeometryManager {
70
70
  * collections share the same `index` space — `__last_geometry_index`
71
71
  * advances for both.
72
72
  *
73
- * @type {GPUGeometryMetadata[]}
73
+ * A set rather than an array, because a clone is given back by record: finding it in an
74
+ * array and splicing it out cost the length of the array, so a scene giving back all of its
75
+ * skinned clones at once paid the square of their count.
76
+ *
77
+ * @type {Set<GPUGeometryMetadata>}
74
78
  */
75
- #clone_metadata = [];
79
+ #clone_metadata = new Set();
76
80
 
77
81
  /**
78
82
  * How to stop following a record's meshlet batch, per record that follows one. A record
@@ -343,7 +347,7 @@ export class GPUGeometryManager {
343
347
 
344
348
  this.#follow_batch(metadata);
345
349
 
346
- this.#clone_metadata.push(metadata);
350
+ this.#clone_metadata.add(metadata);
347
351
 
348
352
  this.__needs_update = true;
349
353
 
@@ -377,14 +381,10 @@ export class GPUGeometryManager {
377
381
  remove_clone(metadata) {
378
382
  assert.defined(metadata, 'metadata');
379
383
 
380
- const index = this.#clone_metadata.indexOf(metadata);
381
-
382
- if (index === -1) {
384
+ if (!this.#clone_metadata.delete(metadata)) {
383
385
  return false;
384
386
  }
385
387
 
386
- this.#clone_metadata.splice(index, 1);
387
-
388
388
  this.#unfollow_batch(metadata);
389
389
  this.#meshlets.remove_batch(metadata.meshlets);
390
390
  this.#blas.remove(metadata);
@@ -482,8 +482,7 @@ export class GPUGeometryManager {
482
482
  }
483
483
 
484
484
  this.#meshlets.destroy();
485
-
486
- // TODO ensure BVH and others are destroyed
485
+ this.#blas.destroy();
487
486
 
488
487
  this.__needs_update = true;
489
488
  }
@@ -160,6 +160,11 @@ export class GPUGeometryBVHManager {
160
160
  * version, because that record's refit answer has changed all the same.
161
161
  */
162
162
  update(): void;
163
+ /**
164
+ * Release the arena and its tables. For the geometry manager's own teardown: nothing is
165
+ * obtained, uploaded or traced afterwards. Safe to call twice.
166
+ */
167
+ destroy(): void;
163
168
  #private;
164
169
  }
165
170
  export type MeshletGeometry = import("../MeshletGeometry.js").MeshletGeometry;
@@ -1 +1 @@
1
- {"version":3,"file":"GPUGeometryBVHManager.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js"],"names":[],"mappings":"AAkBA;;;GAGG;AAEH;;;;;GAKG;AACH,gDAGG;AAEH;;;;;;;;;;;GAWG;AACH,sCAFU,MAAM,CAEyB;AA0CzC;;;;;;;;;;;;;;GAcG;AACH;IA8JI;;;OAGG;IACH,+BAoDC;IA9MD;;;OAGG;IACH,iCAEC;IAOD;;;OAGG;IACH,6BAEC;IAuCD;;OAEG;IACH,gCAEC;IAOD;;OAEG;IACH,mCAEC;IAmDD;;OAEG;IACH,gCAEC;IA6ED;;;;OAIG;IACH,iCAEC;IAED,+BAoBC;IAED;;;;;;;;;OASG;IACH,wCAIC;IAED;;;;;;;;;;;;;;OAcG;IACH,cALW,MAAM,UACN,eAAe,GAEb,sBAAsB,CAalC;IA8DD;;;;;;;;;;;;OAYG;IACH,wBAHW,MAAM,GACJ;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAC,GAAC,SAAS,CAqB3I;IAED;;;;;;OAMG;IACH,mBAHW,MAAM,GACJ,MAAM,GAAC,SAAS,CAU5B;IAED;;;;;;;;;OASG;IACH,0BAFW,WAAW,QAQrB;IAED;;;;;;;;;;;OAWG;IACH,cAHW,MAAM,GACJ,OAAO,CA8BnB;IA8RD;;;;;;;OAOG;IACH,eAOC;;CAgIJ;8BA78BY,OAAO,uBAAuB,EAAE,eAAe;yBAC/C,OAAO,sDAAsD,EAAE,UAAU;6BAbzD,mCAAmC;uCASzB,6BAA6B"}
1
+ {"version":3,"file":"GPUGeometryBVHManager.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js"],"names":[],"mappings":"AAkBA;;;GAGG;AAEH;;;;;GAKG;AACH,gDAGG;AAEH;;;;;;;;;;;GAWG;AACH,sCAFU,MAAM,CAEyB;AA0CzC;;;;;;;;;;;;;;GAcG;AACH;IA8JI;;;OAGG;IACH,+BAoDC;IA9MD;;;OAGG;IACH,iCAEC;IAOD;;;OAGG;IACH,6BAEC;IAuCD;;OAEG;IACH,gCAEC;IAOD;;OAEG;IACH,mCAEC;IAmDD;;OAEG;IACH,gCAEC;IA6ED;;;;OAIG;IACH,iCAEC;IAED,+BAoBC;IAED;;;;;;;;;OASG;IACH,wCAIC;IAED;;;;;;;;;;;;;;OAcG;IACH,cALW,MAAM,UACN,eAAe,GAEb,sBAAsB,CAalC;IA8DD;;;;;;;;;;;;OAYG;IACH,wBAHW,MAAM,GACJ;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAC,GAAC,SAAS,CAqB3I;IAED;;;;;;OAMG;IACH,mBAHW,MAAM,GACJ,MAAM,GAAC,SAAS,CAU5B;IAED;;;;;;;;;OASG;IACH,0BAFW,WAAW,QAQrB;IAED;;;;;;;;;;;OAWG;IACH,cAHW,MAAM,GACJ,OAAO,CA8BnB;IA8RD;;;;;;;OAOG;IACH,eAOC;IAiID;;;OAGG;IACH,gBAKC;;CACJ;8BAx9BY,OAAO,uBAAuB,EAAE,eAAe;yBAC/C,OAAO,sDAAsD,EAAE,UAAU;6BAbzD,mCAAmC;uCASzB,6BAA6B"}
@@ -990,4 +990,15 @@ export class GPUGeometryBVHManager {
990
990
 
991
991
  return true;
992
992
  }
993
+
994
+ /**
995
+ * Release the arena and its tables. For the geometry manager's own teardown: nothing is
996
+ * obtained, uploaded or traced afterwards. Safe to call twice.
997
+ */
998
+ destroy() {
999
+ this.#buffer_metadata.destroy();
1000
+ this.#buffer_data.destroy();
1001
+ this.#buffer_parents.destroy();
1002
+ this.#buffer_leaf_nodes.destroy();
1003
+ }
993
1004
  }
@@ -39,6 +39,11 @@ export class GPUVirtualGeometryPool {
39
39
  table_options?: any;
40
40
  page_size?: number;
41
41
  });
42
+ /**
43
+ * The device every buffer of the pool lives on, and every buffer the runtime above it makes.
44
+ * @returns {GPUDevice}
45
+ */
46
+ get device(): GPUDevice;
42
47
  /**
43
48
  * @returns {GPUBuffer}
44
49
  */
@@ -174,6 +179,13 @@ export class GPUVirtualGeometryPool {
174
179
  * @returns {number} page row, or -1 when the tier could not make room
175
180
  */
176
181
  install(reader: VGeoContainerReader, page_index: number): number;
182
+ /**
183
+ * Pages installed into this tier since it was made — monotonic, so "has anything arrived since"
184
+ * is one comparison against a count taken then.
185
+ *
186
+ * @returns {number}
187
+ */
188
+ get installed_page_count(): number;
177
189
  /**
178
190
  * @param {number} page_row
179
191
  * @returns {boolean}
@@ -1 +1 @@
1
- {"version":3,"file":"GPUVirtualGeometryPool.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.js"],"names":[],"mappings":"AAmDA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;IAoFI;;;;;;;;OAQG;IACH;QAP8B,MAAM;QACE,QAAQ,EAAnC,iBAAiB;QAEA,aAAa;QACb,SAAS,GAA1B,MAAM;OAyChB;IAkCD;;OAEG;IACH,+BAEC;IAED;;;OAGG;IACH,8BAEC;IAED;;OAEG;IACH,mCAEC;IAED;;;OAGG;IACH,oCAEC;IAED;;OAEG;IACH,gCAEC;IAED;;OAEG;IACH,6BAEC;IAGD;;;OAGG;IACH,wBAEC;IAED;;OAEG;IACH,8BAEC;IAED;;OAEG;IACH,kCAEC;IAED;;OAEG;IACH,iCAEC;IAED;;;;;OAKG;IACH,mBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,wBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;OAEG;IACH,oBAEC;IAED;;;;;OAKG;IACH,uBAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;OAGG;IACH,gCAEC;IAED;;OAEG;IACH,gCAEC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,iBALW,mBAAmB,GACjB,MAAM,CAmClB;IAED;;;;;;;;;OASG;IACH,mBAHW,mBAAmB,GACjB,OAAO,CA+CnB;IAqCD;;;OAGG;IACH,wBAHW,mBAAmB,GACjB,MAAM,CAIlB;IAED;;;;OAIG;IACH,oBAJW,mBAAmB,cACnB,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,wBAJW,mBAAmB,cACnB,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,gBAJW,mBAAmB,cACnB,MAAM,GACJ,MAAM,CAgElB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,OAAO,CA0CnB;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAHW,MAAM,GACJ;QAAC,MAAM,EAAE,mBAAmB,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GAAC,SAAS,CAIhE;IAED;;;;;OAKG;IACH,iBAFa,IAAI,CAIhB;IA2ED;;;;;;;;;OASG;IACH,SAFa,IAAI,CAMhB;IAwDD,gBAcC;;CACJ;gCAp0BY,OAAO,oCAAoC,EAAE,iBAAiB;kCAC9D,OAAO,uCAAuC,EAAE,mBAAmB;kCAL9C,wBAAwB"}
1
+ {"version":3,"file":"GPUVirtualGeometryPool.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryPool.js"],"names":[],"mappings":"AAmDA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;IAoFI;;;;;;;;OAQG;IACH;QAP8B,MAAM;QACE,QAAQ,EAAnC,iBAAiB;QAEA,aAAa;QACb,SAAS,GAA1B,MAAM;OAyChB;IAkCD;;;OAGG;IACH,wBAEC;IAED;;OAEG;IACH,+BAEC;IAED;;;OAGG;IACH,8BAEC;IAED;;OAEG;IACH,mCAEC;IAED;;;OAGG;IACH,oCAEC;IAED;;OAEG;IACH,gCAEC;IAED;;OAEG;IACH,6BAEC;IAGD;;;OAGG;IACH,wBAEC;IAED;;OAEG;IACH,8BAEC;IAED;;OAEG;IACH,kCAEC;IAED;;OAEG;IACH,iCAEC;IAED;;;;;OAKG;IACH,mBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,wBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;OAEG;IACH,oBAEC;IAED;;;;;OAKG;IACH,uBAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;OAGG;IACH,gCAEC;IAED;;OAEG;IACH,gCAEC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,iBALW,mBAAmB,GACjB,MAAM,CAmClB;IAED;;;;;;;;;OASG;IACH,mBAHW,mBAAmB,GACjB,OAAO,CA+CnB;IAqCD;;;OAGG;IACH,wBAHW,mBAAmB,GACjB,MAAM,CAIlB;IAED;;;;OAIG;IACH,oBAJW,mBAAmB,cACnB,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,wBAJW,mBAAmB,cACnB,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,gBAJW,mBAAmB,cACnB,MAAM,GACJ,MAAM,CAkElB;IAOD;;;;;OAKG;IACH,mCAEC;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,OAAO,CA0CnB;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAHW,MAAM,GACJ;QAAC,MAAM,EAAE,mBAAmB,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GAAC,SAAS,CAIhE;IAED;;;;;OAKG;IACH,iBAFa,IAAI,CAIhB;IA2ED;;;;;;;;;OASG;IACH,SAFa,IAAI,CAMhB;IAwDD,gBAcC;;CACJ;gCA71BY,OAAO,oCAAoC,EAAE,iBAAiB;kCAC9D,OAAO,uCAAuC,EAAE,mBAAmB;kCAL9C,wBAAwB"}
@@ -239,6 +239,14 @@ export class GPUVirtualGeometryPool {
239
239
  });
240
240
  }
241
241
 
242
+ /**
243
+ * The device every buffer of the pool lives on, and every buffer the runtime above it makes.
244
+ * @returns {GPUDevice}
245
+ */
246
+ get device() {
247
+ return this.#device;
248
+ }
249
+
242
250
  /**
243
251
  * @returns {GPUBuffer}
244
252
  */
@@ -609,9 +617,26 @@ export class GPUVirtualGeometryPool {
609
617
  // flags flipped are whatever they say, not this page's alone
610
618
  this.#mark_activated();
611
619
 
620
+ this.#installed_page_count++;
621
+
612
622
  return page_row;
613
623
  }
614
624
 
625
+ /**
626
+ * @type {number}
627
+ */
628
+ #installed_page_count = 0;
629
+
630
+ /**
631
+ * Pages installed into this tier since it was made — monotonic, so "has anything arrived since"
632
+ * is one comparison against a count taken then.
633
+ *
634
+ * @returns {number}
635
+ */
636
+ get installed_page_count() {
637
+ return this.#installed_page_count;
638
+ }
639
+
615
640
  /**
616
641
  * @param {number} page_row
617
642
  * @returns {boolean}
@@ -1,7 +1,3 @@
1
- /**
2
- * @typedef {import("./GPUVirtualGeometryPool.js").GPUVirtualGeometryPool} GPUVirtualGeometryPool
3
- * @typedef {import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} FrameGraph
4
- */
5
1
  /**
6
2
  * What one frame of virtual geometry needs that is not a page: the threshold, the feedback buffer
7
3
  * every view writes into, and the parameters every pass reads.
@@ -12,9 +8,16 @@
12
8
  * virtual geometry is view-dependent by construction — but everything here is shared between them,
13
9
  * which is exactly what §4 means by "the setup is shared rather than the result".
14
10
  *
15
- * **The feedback buffer is per frame and not per invocation**, and that is what dedups a touch
16
- * across the buckets and passes a frame is split into. Each expansion site gets its own claim
17
- * bitmask (different instance sets) and writes into this one buffer.
11
+ * **A frame spans every graph of a render.** The renderer opens it before the shadow maps are drawn
12
+ * and closes it after the main view's graph is recorded, and each shadow map records into a
13
+ * `FrameGraph` of its own (SHADOW_PLAN_2026_09_28 §2.1). So the feedback buffer is not a transient of
14
+ * any one graph: it is a buffer this runtime owns, **imported** into each graph that cuts, and the
15
+ * first graph of a frame to import it clears it. Graphs are encoded in the order they are recorded
16
+ * into one encoder, which is the only ordering the frame needs between them.
17
+ *
18
+ * **Every view that cuts takes a slot** (§2.4): its own counters, its own want slice and its own
19
+ * stamp tag, so one view's list running out cannot silence another's, and a reading can say which
20
+ * view needed more wavefronts. The view the frame is opened for is slot 0.
18
21
  *
19
22
  * @author Alex Goldring
20
23
  * @copyright Company Named Limited (c) 2026
@@ -30,7 +33,7 @@ export class GPUVirtualGeometryRuntime {
30
33
  * overriding the derivation below
31
34
  * @param {number} [options.queue_capacity] traversal items one wavefront may hold
32
35
  * @param {number} [options.max_iterations] wavefronts before the descent is abandoned, to start
33
- * with; the runtime raises it from what the cut reports
36
+ * with; each view raises its own from what its cut reports
34
37
  * @param {number} [options.max_iteration_ceiling] as far as that raising may go
35
38
  * @param {number} [options.descent_steps] steps of the descent one traversal dispatch runs
36
39
  * before handing back what it still holds; see the traversal kernel for why it cannot
@@ -48,6 +51,7 @@ export class GPUVirtualGeometryRuntime {
48
51
  });
49
52
  /**
50
53
  * Pixels of permitted error — the single quality/perf lever, and a runtime dial by design §4.
54
+ * A view cuts at this times its own {@link VGeoViewCut#tau_scale}.
51
55
  * @type {number}
52
56
  */
53
57
  tau: number;
@@ -74,60 +78,22 @@ export class GPUVirtualGeometryRuntime {
74
78
  */
75
79
  get claim_word_capacity(): number;
76
80
  /**
77
- * Wavefronts the descent may run, as the runtime currently understands this scene.
78
- *
79
- * A **high-water mark**, not a setting: it starts where the host put it and is raised by
80
- * {@link note_incomplete_descent} from what the cut reports. `graph_vgeo_expand_instances_to_meshlets`
81
- * reads it while it is recording passes, so a rise lands on the next frame.
81
+ * Wavefronts a view's descent starts with — each view raises its own from what its cut reports
82
+ * (`VGeoViewCut.note_incomplete_descent`), and cuts at the larger of the two.
82
83
  *
83
84
  * @returns {number}
84
85
  */
85
86
  get max_iterations(): number;
86
87
  /**
87
- * Times the bound has been raised. Zero for the whole life of almost every scene; a small
88
- * number, once, for one that needed more than it was given.
88
+ * As far as a view's wavefront bound may be raised.
89
89
  *
90
90
  * @returns {number}
91
91
  */
92
- get iteration_escalations(): number;
93
- /**
94
- * @returns {number}
95
- */
96
92
  get iteration_ceiling(): number;
97
- /**
98
- * A reading saying the descent stopped with work still queued — raise the bound and keep it
99
- * raised.
100
- *
101
- * **This is the only place the engine can learn it.** How many wavefronts a cut needs is a
102
- * function of the frontier's *breadth*, which is a function of the scene, the viewpoint and the
103
- * render target together; the kernel cannot know it before it runs and the host cannot know it
104
- * at all. So the bound is guessed low, and the one reading that says the guess was wrong —
105
- * `VGEO_CUT_STAT.QUEUE_REMAINING`, non-zero exactly when items were abandoned — pays for
106
- * correcting it. It is the same shape as the rasterizer's meshlet counts, which cannot be known
107
- * before the expansion runs either and are grown from what the frame reported.
108
- *
109
- * **Doubling, because the reading does not say how much more was needed.** A remainder is a
110
- * count of *items*, and what they cost in wavefronts depends on how they spill; there is no
111
- * ratio to convert one into the other. So it goes up by a factor until it drains, which is at
112
- * most three steps from 8 to the ceiling.
113
- *
114
- * **Never lowered.** A frame that drained is evidence about that frame, not that the scene got
115
- * smaller — and a bound that fell back would re-learn the same lesson every time the camera
116
- * turned away and back, at a hole a time. An unused wavefront is an empty indirect dispatch,
117
- * which is the cheap side of that trade.
118
- *
119
- * What it costs when it is wrong is bounded by the readback: the cut is capped at two readings
120
- * in flight and skips frames when saturated, so the scene draws with a hole for the few frames
121
- * between the first truncated descent and the reading that reports it — and then never again.
122
- *
123
- * @param {number} remaining items the descent still held when it was abandoned
124
- * @returns {boolean} whether the bound moved
125
- */
126
- note_incomplete_descent(remaining: number): boolean;
127
93
  /**
128
94
  * Settable, like tau, and for the same reason: it is a quality-of-schedule dial whose right
129
95
  * value is a property of the asset's depth and the scene's breadth together rather than of the
130
- * engine. `begin_frame` re-writes the params every frame, so a change lands on the next one.
96
+ * engine. Every view writes its params at record time, so a change lands on the next frame.
131
97
  *
132
98
  * @param {number} value
133
99
  */
@@ -139,47 +105,43 @@ export class GPUVirtualGeometryRuntime {
139
105
  */
140
106
  get descent_steps(): number;
141
107
  /**
142
- * This frame's feedback resource. Every expansion site writes into it and one readback reads it.
143
- * @returns {number}
108
+ * Whether a frame is open — whether a rasterization path recording now may cut.
109
+ *
110
+ * @returns {boolean}
144
111
  */
145
- get feedback(): number;
112
+ get frame_open(): boolean;
146
113
  /**
147
- * Hand back the version of the feedback resource that an expansion left behind.
148
- *
149
- * A frame is cut once per bucket per HZB pass per view, and every one of those writes into the
150
- * *same* feedback buffer — which is exactly what dedups a touch across them. But a FrameGraph
151
- * resource is versioned: the handle `begin_frame` created is version 0, and a second expansion
152
- * that wrote version 0 again after the first had produced version 65 would be reading stale
153
- * contents while claiming not to. The graph says so, loudly, and it is right to.
114
+ * The view the last frame was opened for, which is slot 0 of that frame's feedback.
154
115
  *
155
- * So the runtime carries the *current* version and each expansion publishes what it produced.
156
- * The readback then reads the last one, which is the only version that has seen every view.
116
+ * @returns {VGeoViewCut|undefined}
117
+ */
118
+ get frame_view(): import("./VGeoViewCut.js").VGeoViewCut;
119
+ /**
120
+ * The feedback buffer every view of a frame writes into, or null before the first frame and
121
+ * after {@link destroy}.
157
122
  *
158
- * @param {number} handle
159
- * @returns {void}
123
+ * @returns {GPUBuffer|null}
160
124
  */
161
- publish_feedback(handle: number): void;
125
+ get feedback_buffer(): any;
162
126
  /**
163
127
  * @returns {ReturnType<vgeo_cut_feedback_layout>}
164
128
  */
165
129
  get feedback_layout(): {
130
+ slot_count: number;
166
131
  touch_bits_base: number;
167
- /**
168
- * @type {number}
169
- */
170
132
  touch_word_count: number;
171
133
  want_base: number;
172
- word_count: number; /**
173
- * @type {number}
174
- */
134
+ slot_want_capacity: number;
135
+ clear_word_count: number;
136
+ word_count: number;
175
137
  };
176
138
  /**
177
- * Open a frame: publish the page tables, size the feedback buffer against what is resident, and
178
- * write the parameters every pass of every view will read.
139
+ * Open a frame: publish the page tables, lay the feedback buffer out for the views the frame is
140
+ * expected to have, and take slot 0 for the view it is rendered for.
179
141
  *
180
- * The sizing happens here rather than at construction because one of its terms moves with
181
- * residency — one touch bit per page-table row — and a frame is the coarsest granularity at
182
- * which it holds still.
142
+ * The sizing happens here rather than at construction because two of its terms move — one
143
+ * touch bit per page-table row follows residency, and the slot count follows the most views any
144
+ * frame has cut in — and a frame is the coarsest granularity at which they hold still.
183
145
  *
184
146
  * **The pool's frame advances here, before the flush**, and not at `end_frame`. The frame
185
147
  * number is what stamps a page row's `visible_from` — the frame whose flush publishes the
@@ -188,18 +150,72 @@ export class GPUVirtualGeometryRuntime {
188
150
  * frame's reading, exactly (RUNTIME_PLAN_2026_09_14 §2.4). It is also the clock both tiers'
189
151
  * protect windows read, and it moves whether or not a readback is scheduled this frame.
190
152
  *
191
- * **A frame has no projection.** It used to take one, and wrote it into a params buffer
192
- * every view then shared — so a shadow cascade cut against whichever view opened the
193
- * frame. `projection_k` is a property of a render target and a camera, which is to say of
194
- * a view, and it lives on {@link VGeoViewCut} with the rest of what a view owns alone.
153
+ * **A frame has no projection and no graph.** Each view writes its own projection
154
+ * ({@link VGeoViewCut}), and each graph that cuts imports the feedback buffer itself
155
+ * ({@link feedback_in}).
156
+ *
157
+ * Opening a frame that is already open starts it again: a render that threw before closing its
158
+ * frame leaves nothing behind that the next one can be confused by.
195
159
  *
196
160
  * @param {Object} options
197
- * @param {FrameGraph} options.graph
198
- * @returns {number} the feedback resource
161
+ * @param {VGeoViewCut} options.view the view the frame is rendered for
162
+ * @returns {void}
199
163
  */
200
- begin_frame({ graph }: {
201
- graph: FrameGraph;
202
- }): number;
164
+ begin_frame({ view }: {
165
+ view: VGeoViewCut;
166
+ }): void;
167
+ /**
168
+ * This frame's slot for a view, taking the next one the first time the view cuts in the frame.
169
+ *
170
+ * A view past the slots the frame was laid out for shares the last one — never slot 0, which is
171
+ * the frame's own view's — and the next frame is laid out with room for it. A shared slot's
172
+ * counters are the sum of its views', so its reading lands on each of them but escalates none
173
+ * (see `VGeoFeedbackLoop`).
174
+ *
175
+ * @param {VGeoViewCut} view
176
+ * @returns {number}
177
+ */
178
+ slot_of(view: VGeoViewCut): number;
179
+ /**
180
+ * The tag a slot's view writes into the want stamps, unique to that view in this frame and never
181
+ * zero — see `VGEO_CUT_PARAMS_STRUCT.frame_tag`.
182
+ *
183
+ * @param {number} slot
184
+ * @returns {number}
185
+ */
186
+ frame_tag_of(slot: number): number;
187
+ /**
188
+ * This frame's views, by slot — what a reading of this frame's feedback is about. A copy, since
189
+ * the reading lands frames later and the table is rebuilt every frame.
190
+ *
191
+ * @returns {VGeoViewCut[][]}
192
+ */
193
+ frame_slots(): VGeoViewCut[][];
194
+ /**
195
+ * The feedback buffer as a resource of `graph`, at the version that graph last wrote.
196
+ *
197
+ * The first call for a graph imports the buffer into it; if no graph of this frame has yet, it
198
+ * also records the clear — the counters and the touch bits, which is everything a kernel adds
199
+ * to — so the first graph encoded is the one that clears, before anything of this frame writes.
200
+ *
201
+ * @param {FrameGraph} graph
202
+ * @returns {number} resource handle
203
+ */
204
+ feedback_in(graph: FrameGraph): number;
205
+ /**
206
+ * Hand back the version of the feedback resource a graph's expansion left behind.
207
+ *
208
+ * A FrameGraph resource is versioned: the handle an import produced is its first version, and a
209
+ * second expansion that wrote that version again after the first had produced a later one would
210
+ * be reading stale contents while claiming not to. The graph says so, loudly, and it is right to.
211
+ * So the runtime carries each graph's current version and each expansion publishes what it
212
+ * produced; the readback then reads the last one.
213
+ *
214
+ * @param {FrameGraph} graph
215
+ * @param {number} handle
216
+ * @returns {void}
217
+ */
218
+ publish_feedback(graph: FrameGraph, handle: number): void;
203
219
  /**
204
220
  * What one expansion site was handed, folded into the parameters every pass of the frame reads.
205
221
  *
@@ -208,10 +224,9 @@ export class GPUVirtualGeometryRuntime {
208
224
  * defaulted to 1 << 20 against a meshlet collection whose engine default is 2e5, so `vg_draw`
209
225
  * bounds-checked against a number five times the buffer it was writing into (REVIEW_LEDGER M6).
210
226
  *
211
- * One params buffer serves the whole frame, so a frame with sites of different sizes takes the
212
- * **minimum** — conservative, and the direction every other bound in the cut fails in. Written
213
- * at record time, like everything else here, so the last value published before submit is what
214
- * every pass of the frame executes against.
227
+ * A frame with sites of different sizes takes the **minimum** — conservative, and the direction
228
+ * every other bound in the cut fails in. Each view writes its params at record time from what
229
+ * has been declared so far, which is never more than its own site was handed.
215
230
  *
216
231
  * @param {Object} options
217
232
  * @param {number} options.instance_capacity records the VG instance buffer holds
@@ -231,26 +246,25 @@ export class GPUVirtualGeometryRuntime {
231
246
  */
232
247
  get meshlet_capacity(): number;
233
248
  /**
234
- * The graph this frame was opened on.
235
- *
236
- * A cut writes into the feedback resource `begin_frame` created, and a resource handle belongs
237
- * to one graph — so a rasterization path running on a *different* graph inside the same frame
238
- * (a shadow view builds its own) would be naming a resource that graph has never heard of. The
239
- * seam checks this and skips, which is also design §9's position: one cut per view, and shadow
240
- * cuts are out of scope for v1.
249
+ * Close a frame. Nothing may cut until the next opens; reading it is {@link VGeoFeedbackLoop}'s,
250
+ * which schedules the readback while the last graph is still being recorded.
241
251
  *
242
- * @returns {FrameGraph|undefined}
252
+ * @returns {void}
243
253
  */
244
- get frame_graph(): import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph;
254
+ end_frame(): void;
245
255
  /**
246
- * Close a frame. The feedback resource stops being valid; reading it is
247
- * {@link VGeoFeedbackLoop}'s, which schedules the readback while the graph is still being built.
256
+ * Release the feedback buffer, which is the one device resource this makes, and close whatever
257
+ * frame is open so that nothing cuts into the buffer afterwards.
258
+ *
259
+ * The pool is not this runtime's to release: it was handed one, and whoever made it tears it
260
+ * down — after this, since a frame of this runtime writes into the pool's tables.
248
261
  *
249
262
  * @returns {void}
250
263
  */
251
- end_frame(): void;
264
+ destroy(): void;
252
265
  #private;
253
266
  }
254
267
  export type GPUVirtualGeometryPool = import("./GPUVirtualGeometryPool.js").GPUVirtualGeometryPool;
268
+ export type VGeoViewCut = import("./VGeoViewCut.js").VGeoViewCut;
255
269
  export type FrameGraph = import("../../../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph;
256
270
  //# sourceMappingURL=GPUVirtualGeometryRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GPUVirtualGeometryRuntime.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.js"],"names":[],"mappings":"AAKA;;;GAGG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH;IAkFI;;;;;;;;;;;;;;;OAeG;IACH;QAd2C,IAAI,EAApC,sBAAsB;QACL,aAAa,GAA9B,MAAM;QACW,qBAAqB,GAAtC,MAAM;QAEW,mBAAmB,GAApC,MAAM;QAEW,cAAc,GAA/B,MAAM;QACW,cAAc,GAA/B,MAAM;QAEW,qBAAqB,GAAtC,MAAM;QACW,aAAa,GAA9B,MAAM;OAkFhB;IApID;;;OAGG;IACH,KAFU,MAAM,CAER;IAER;;OAEG;IACH,cAFU,OAAO,CAEG;IA6HpB;;OAEG;IACH,yEAEC;IAED;;;;OAIG;IACH,4BAEC;IAED;;OAEG;IACH,6BAEC;IAED;;OAEG;IACH,kCAEC;IAED;;;;;;;;OAQG;IACH,6BAEC;IAED;;;;;OAKG;IACH,oCAEC;IAED;;OAEG;IACH,gCAEC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,mCAHW,MAAM,GACJ,OAAO,CAanB;IAWD;;;;;;OAMG;IACH,iCAKC;IArBD;;;;OAIG;IACH,4BAEC;IAgBD;;;OAGG;IACH,uBAEC;IAED;;;;;;;;;;;;;;OAcG;IACH,yBAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;OAEG;IACH;;QAvUA;;WAEG;;;4BAIH;;WAEG;MAiUF;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH;QAH+B,KAAK,EAAzB,UAAU;QACR,MAAM,CA+BlB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH;QAJ2B,iBAAiB,EAAjC,MAAM;QACU,gBAAgB,EAAhC,MAAM;QACJ,IAAI,CAahB;IAED;;OAEG;IACH,gCAEC;IAED;;OAEG;IACH,+BAEC;IAED;;;;;;;;;;OAUG;IACH,wGAEC;IAGD;;;;;OAKG;IACH,aAFa,IAAI,CAKhB;;CACJ;qCAteY,OAAO,6BAA6B,EAAE,sBAAsB;yBAC5D,OAAO,iEAAiE,EAAE,UAAU"}
1
+ {"version":3,"file":"GPUVirtualGeometryRuntime.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.js"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IAiHI;;;;;;;;;;;;;;;OAeG;IACH;QAd2C,IAAI,EAApC,sBAAsB;QACL,aAAa,GAA9B,MAAM;QACW,qBAAqB,GAAtC,MAAM;QAEW,mBAAmB,GAApC,MAAM;QAEW,cAAc,GAA/B,MAAM;QACW,cAAc,GAA/B,MAAM;QAEW,qBAAqB,GAAtC,MAAM;QACW,aAAa,GAA9B,MAAM;OAgFhB;IAzKD;;;;OAIG;IACH,KAFU,MAAM,CAER;IAER;;OAEG;IACH,cAFU,OAAO,CAEG;IAiKpB;;OAEG;IACH,yEAEC;IAED;;;;OAIG;IACH,4BAEC;IAED;;OAEG;IACH,6BAEC;IAED;;OAEG;IACH,kCAEC;IAED;;;;;OAKG;IACH,6BAEC;IAED;;;;OAIG;IACH,gCAEC;IAWD;;;;;;OAMG;IACH,iCAKC;IArBD;;;;OAIG;IACH,4BAEC;IAgBD;;;;OAIG;IACH,0BAEC;IAED;;;;OAIG;IACH,yDAEC;IAED;;;;;OAKG;IACH,2BAEC;IAED;;OAEG;IACH;;;;;;;;MAEC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH;QAHgC,IAAI,EAAzB,WAAW;QACT,IAAI,CAoChB;IAwBD;;;;;;;;;;OAUG;IACH,cAHW,WAAW,GACT,MAAM,CA0BlB;IAED;;;;;;OAMG;IACH,mBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;OAKG;IACH,eAFa,WAAW,EAAE,EAAE,CAI3B;IAED;;;;;;;;;OASG;IACH,mBAHW,UAAU,GACR,MAAM,CAkClB;IAED;;;;;;;;;;;;OAYG;IACH,wBAJW,UAAU,UACV,MAAM,GACJ,IAAI,CAOhB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH;QAJ2B,iBAAiB,EAAjC,MAAM;QACU,gBAAgB,EAAhC,MAAM;QACJ,IAAI,CAahB;IAED;;OAEG;IACH,gCAEC;IAED;;OAEG;IACH,+BAEC;IAED;;;;;OAKG;IACH,aAFa,IAAI,CAKhB;IAED;;;;;;;;OAQG;IACH,WAFa,IAAI,CAOhB;;CACJ;qCArnBY,OAAO,6BAA6B,EAAE,sBAAsB;0BAC5D,OAAO,kBAAkB,EAAE,WAAW;yBACtC,OAAO,iEAAiE,EAAE,UAAU"}