@woosh/meep-engine 3.21.0 → 3.23.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 (1803) hide show
  1. package/README.md +96 -213
  2. package/editor/particles/effect/ParticleEffectDocument.d.ts.map +1 -1
  3. package/editor/particles/effect/ParticleEffectDocument.js +0 -3
  4. package/editor/particles/effect/ParticleReferenceSimulation.js +1 -1
  5. package/editor/persistence/SceneMetadata.d.ts +9 -4
  6. package/editor/persistence/SceneMetadata.d.ts.map +1 -1
  7. package/editor/persistence/SceneMetadata.js +4 -3
  8. package/editor/tools/TransformToolV2.d.ts +2 -1
  9. package/editor/tools/TransformToolV2.d.ts.map +1 -1
  10. package/editor/tools/engine/Tool.d.ts +1 -1
  11. package/editor/tools/engine/Tool.d.ts.map +1 -1
  12. package/editor/tools/engine/ToolEngine.d.ts +1 -1
  13. package/editor/tools/engine/ToolEngine.d.ts.map +1 -1
  14. package/editor/view/ecs/EntityEditor.d.ts +3 -2
  15. package/editor/view/ecs/EntityEditor.d.ts.map +1 -1
  16. package/editor/view/ecs/EntityList.d.ts +7 -3
  17. package/editor/view/ecs/EntityList.d.ts.map +1 -1
  18. package/editor/view/ecs/EntityList.js +3 -2
  19. package/editor/view/ecs/components/common/NumericIntervalController.d.ts +8 -3
  20. package/editor/view/ecs/components/common/NumericIntervalController.d.ts.map +1 -1
  21. package/editor/view/ecs/components/common/NumericIntervalController.js +3 -2
  22. package/editor/view/ecs/components/common/TextController.d.ts +7 -3
  23. package/editor/view/ecs/components/common/TextController.d.ts.map +1 -1
  24. package/editor/view/ecs/components/common/TextController.js +3 -2
  25. package/editor/view/library/MeshLibraryView.d.ts.map +1 -1
  26. package/editor/view/library/MeshLibraryView.js +3 -2
  27. package/editor/view/node-graph/NodeIconView.d.ts +5 -2
  28. package/editor/view/node-graph/NodeIconView.d.ts.map +1 -1
  29. package/editor/view/node-graph/NodeIconView.js +2 -1
  30. package/editor/view/node-graph/PortView.d.ts +9 -4
  31. package/editor/view/node-graph/PortView.d.ts.map +1 -1
  32. package/editor/view/node-graph/PortView.js +4 -3
  33. package/editor/view/particles/ColorLutGradientView.d.ts +7 -3
  34. package/editor/view/particles/ColorLutGradientView.d.ts.map +1 -1
  35. package/editor/view/particles/ColorLutGradientView.js +3 -2
  36. package/editor/view/particles/ScalarLutCurveView.d.ts +9 -4
  37. package/editor/view/particles/ScalarLutCurveView.d.ts.map +1 -1
  38. package/editor/view/particles/ScalarLutCurveView.js +4 -3
  39. package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts.map +1 -1
  40. package/editor/view/particles/effect/ParticleEmitterInspectorView.js +0 -1
  41. package/editor/view/tools/ToolView.d.ts +7 -3
  42. package/editor/view/tools/ToolView.d.ts.map +1 -1
  43. package/editor/view/tools/ToolView.js +3 -2
  44. package/package.json +2 -1
  45. package/src/core/binary/allocator/OffsetAllocator.d.ts +24 -1
  46. package/src/core/binary/allocator/OffsetAllocator.d.ts.map +1 -1
  47. package/src/core/binary/allocator/OffsetAllocator.js +101 -1
  48. package/src/core/binary/type/Field.d.ts +5 -1
  49. package/src/core/binary/type/Field.d.ts.map +1 -1
  50. package/src/core/binary/type/Field.js +4 -0
  51. package/src/core/binary/type/Type.d.ts +4 -0
  52. package/src/core/binary/type/Type.d.ts.map +1 -1
  53. package/src/core/binary/type/Type.js +4 -0
  54. package/src/core/cache/Cache.d.ts +15 -7
  55. package/src/core/cache/Cache.d.ts.map +1 -1
  56. package/src/core/cache/Cache.js +7 -6
  57. package/src/core/cache/wtinylfu/CacheRegionWTinylfu.d.ts +5 -2
  58. package/src/core/cache/wtinylfu/CacheRegionWTinylfu.d.ts.map +1 -1
  59. package/src/core/cache/wtinylfu/CacheRegionWTinylfu.js +2 -1
  60. package/src/core/cache/wtinylfu/CacheWTinylfu.d.ts +20 -10
  61. package/src/core/cache/wtinylfu/CacheWTinylfu.d.ts.map +1 -1
  62. package/src/core/cache/wtinylfu/CacheWTinylfu.js +9 -8
  63. package/src/core/collection/CuckooFilter.d.ts +8 -4
  64. package/src/core/collection/CuckooFilter.d.ts.map +1 -1
  65. package/src/core/collection/CuckooFilter.js +3 -2
  66. package/src/core/collection/list/List.d.ts +0 -1
  67. package/src/core/collection/list/List.d.ts.map +1 -1
  68. package/src/core/collection/list/List.js +0 -1
  69. package/src/core/collection/map/HashMap.d.ts +12 -7
  70. package/src/core/collection/map/HashMap.d.ts.map +1 -1
  71. package/src/core/collection/map/HashMap.js +5 -5
  72. package/src/core/collection/map/ObservedMap.d.ts +1 -2
  73. package/src/core/collection/map/ObservedMap.d.ts.map +1 -1
  74. package/src/core/collection/map/ObservedMap.js +0 -1
  75. package/src/core/collection/table/RowFirstTable.d.ts +1 -0
  76. package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
  77. package/src/core/collection/table/RowFirstTable.js +4 -0
  78. package/src/core/color/Color.d.ts +1 -2
  79. package/src/core/color/Color.d.ts.map +1 -1
  80. package/src/core/color/Color.js +5 -4
  81. package/src/core/color/hsv/hsv2rgb_float.d.ts +23 -1
  82. package/src/core/color/hsv/hsv2rgb_float.d.ts.map +1 -1
  83. package/src/core/color/hsv/hsv2rgb_float.js +31 -3
  84. package/src/core/color/hsv/hsv_to_rgb.d.ts +20 -9
  85. package/src/core/color/hsv/hsv_to_rgb.d.ts.map +1 -1
  86. package/src/core/color/hsv/hsv_to_rgb.js +30 -10
  87. package/src/core/color/hsv/hsv_to_rgb_uint8.d.ts.map +1 -1
  88. package/src/core/color/hsv/hsv_to_rgb_uint8.js +10 -5
  89. package/src/core/function/FunctionCompiler.d.ts +9 -4
  90. package/src/core/function/FunctionCompiler.d.ts.map +1 -1
  91. package/src/core/function/FunctionCompiler.js +8 -6
  92. package/src/core/geom/3d/hash-grid/PointHashGrid3.d.ts +118 -0
  93. package/src/core/geom/3d/hash-grid/PointHashGrid3.d.ts.map +1 -0
  94. package/src/core/geom/3d/hash-grid/PointHashGrid3.js +283 -0
  95. package/src/core/geom/3d/quaternion/quat3_shortest_arc.d.ts +41 -0
  96. package/src/core/geom/3d/quaternion/quat3_shortest_arc.d.ts.map +1 -0
  97. package/src/core/geom/3d/quaternion/quat3_shortest_arc.js +94 -0
  98. package/src/core/geom/3d/ray/Ray3.d.ts +5 -5
  99. package/src/core/geom/3d/ray/Ray3.d.ts.map +1 -1
  100. package/src/core/geom/3d/ray/Ray3.js +3 -3
  101. package/src/core/geom/3d/shape/AbstractShape3D.d.ts +1 -0
  102. package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
  103. package/src/core/geom/3d/shape/AbstractShape3D.js +4 -0
  104. package/src/core/geom/3d/shape/BoxShape3D.d.ts.map +1 -1
  105. package/src/core/geom/3d/shape/BoxShape3D.js +6 -17
  106. package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -1
  107. package/src/core/geom/3d/shape/CapsuleShape3D.js +3 -14
  108. package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts +2 -4
  109. package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
  110. package/src/core/geom/3d/shape/ConvexHullShape3D.js +0 -2
  111. package/src/core/geom/3d/shape/CylinderShape3D.d.ts.map +1 -1
  112. package/src/core/geom/3d/shape/CylinderShape3D.js +3 -21
  113. package/src/core/geom/3d/shape/PlaneShape3D.d.ts +105 -0
  114. package/src/core/geom/3d/shape/PlaneShape3D.d.ts.map +1 -0
  115. package/src/core/geom/3d/shape/PlaneShape3D.js +251 -0
  116. package/src/core/geom/3d/shape/SphereShape3D.js +3 -3
  117. package/src/core/geom/3d/shape/TransformedShape3D.d.ts +1 -2
  118. package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
  119. package/src/core/geom/3d/shape/TransformedShape3D.js +0 -1
  120. package/src/core/geom/3d/shape/json/shape_to_type.d.ts.map +1 -1
  121. package/src/core/geom/3d/shape/json/shape_to_type.js +3 -0
  122. package/src/core/geom/3d/shape/json/type_adapters.d.ts +14 -0
  123. package/src/core/geom/3d/shape/json/type_adapters.d.ts.map +1 -1
  124. package/src/core/geom/3d/shape/json/type_adapters.js +15 -0
  125. package/src/core/geom/3d/shape/sdf/sdf3_box.d.ts +51 -0
  126. package/src/core/geom/3d/shape/sdf/sdf3_box.d.ts.map +1 -0
  127. package/src/core/geom/3d/shape/sdf/sdf3_box.js +113 -0
  128. package/src/core/geom/3d/shape/sdf/sdf3_capsule.d.ts +46 -0
  129. package/src/core/geom/3d/shape/sdf/sdf3_capsule.d.ts.map +1 -0
  130. package/src/core/geom/3d/shape/sdf/sdf3_capsule.js +82 -0
  131. package/src/core/geom/3d/shape/sdf/sdf3_cylinder.d.ts +60 -0
  132. package/src/core/geom/3d/shape/sdf/sdf3_cylinder.d.ts.map +1 -0
  133. package/src/core/geom/3d/shape/sdf/sdf3_cylinder.js +126 -0
  134. package/src/core/geom/3d/shape/sdf/sdf3_degenerate_normal.d.ts +50 -0
  135. package/src/core/geom/3d/shape/sdf/sdf3_degenerate_normal.d.ts.map +1 -0
  136. package/src/core/geom/3d/shape/sdf/sdf3_degenerate_normal.js +53 -0
  137. package/src/core/geom/3d/shape/sdf/sdf3_plane.d.ts +52 -0
  138. package/src/core/geom/3d/shape/sdf/sdf3_plane.d.ts.map +1 -0
  139. package/src/core/geom/3d/shape/sdf/sdf3_plane.js +61 -0
  140. package/src/core/geom/3d/shape/sdf/sdf3_sphere.d.ts +41 -0
  141. package/src/core/geom/3d/shape/sdf/sdf3_sphere.d.ts.map +1 -0
  142. package/src/core/geom/3d/shape/sdf/sdf3_sphere.js +71 -0
  143. package/src/core/geom/3d/topology/struct/binary/BinaryDataBlock.d.ts +6 -0
  144. package/src/core/geom/3d/topology/struct/binary/BinaryDataBlock.d.ts.map +1 -1
  145. package/src/core/geom/3d/topology/struct/binary/BinaryDataBlock.js +5 -0
  146. package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts +2 -0
  147. package/src/core/geom/3d/topology/struct/binary/BinaryTopology.d.ts.map +1 -1
  148. package/src/core/geom/3d/topology/struct/binary/BinaryTopology.js +5 -0
  149. package/src/core/geom/Quaternion.d.ts +1 -0
  150. package/src/core/geom/Quaternion.d.ts.map +1 -1
  151. package/src/core/geom/Quaternion.js +4 -0
  152. package/src/core/geom/Vector1.d.ts +8 -0
  153. package/src/core/geom/Vector1.d.ts.map +1 -1
  154. package/src/core/geom/Vector1.js +6 -0
  155. package/src/core/geom/Vector3.d.ts +6 -0
  156. package/src/core/geom/Vector3.d.ts.map +1 -1
  157. package/src/core/geom/Vector3.js +5 -0
  158. package/src/core/geom/Vector4.d.ts +10 -2
  159. package/src/core/geom/Vector4.d.ts.map +1 -1
  160. package/src/core/geom/Vector4.js +6 -1
  161. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.d.ts +4 -4
  162. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.d.ts.map +1 -1
  163. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.js +1 -1
  164. package/src/core/graph/convert_graph_to_dot_string.d.ts +7 -3
  165. package/src/core/graph/convert_graph_to_dot_string.d.ts.map +1 -1
  166. package/src/core/graph/convert_graph_to_dot_string.js +3 -2
  167. package/src/core/localization/Localization.d.ts +3 -2
  168. package/src/core/localization/Localization.d.ts.map +1 -1
  169. package/src/core/localization/Localization.js +4 -0
  170. package/src/core/math/noise/create_simplex_noise_2d.js +6 -6
  171. package/src/core/model/ObservedValue.d.ts +8 -6
  172. package/src/core/model/ObservedValue.d.ts.map +1 -1
  173. package/src/core/model/ObservedValue.js +3 -1
  174. package/src/core/model/node-graph/Connection.d.ts +1 -0
  175. package/src/core/model/node-graph/Connection.d.ts.map +1 -1
  176. package/src/core/model/node-graph/Connection.js +4 -0
  177. package/src/core/model/node-graph/NodeGraph.d.ts +8 -5
  178. package/src/core/model/node-graph/NodeGraph.d.ts.map +1 -1
  179. package/src/core/model/node-graph/NodeGraph.js +3 -3
  180. package/src/core/model/node-graph/json/serializeNodeGraphToJSON.d.ts +9 -4
  181. package/src/core/model/node-graph/json/serializeNodeGraphToJSON.d.ts.map +1 -1
  182. package/src/core/model/node-graph/json/serializeNodeGraphToJSON.js +4 -3
  183. package/src/core/model/node-graph/node/NodeDescription.d.ts +12 -4
  184. package/src/core/model/node-graph/node/NodeDescription.d.ts.map +1 -1
  185. package/src/core/model/node-graph/node/NodeDescription.js +10 -3
  186. package/src/core/model/node-graph/node/NodeInstance.d.ts +5 -2
  187. package/src/core/model/node-graph/node/NodeInstance.d.ts.map +1 -1
  188. package/src/core/model/node-graph/node/NodeInstance.js +6 -0
  189. package/src/core/model/node-graph/node/NodeInstancePortReference.d.ts +5 -2
  190. package/src/core/model/node-graph/node/NodeInstancePortReference.d.ts.map +1 -1
  191. package/src/core/model/node-graph/node/NodeInstancePortReference.js +6 -0
  192. package/src/core/model/node-graph/node/NodeRegistry.d.ts +2 -1
  193. package/src/core/model/node-graph/node/NodeRegistry.d.ts.map +1 -1
  194. package/src/core/model/node-graph/node/NodeRegistry.js +4 -0
  195. package/src/core/model/node-graph/node/Port.d.ts +12 -5
  196. package/src/core/model/node-graph/node/Port.d.ts.map +1 -1
  197. package/src/core/model/node-graph/node/Port.js +9 -4
  198. package/src/core/model/node-graph/util/convert_node_graph_to_dot_string.d.ts +5 -2
  199. package/src/core/model/node-graph/util/convert_node_graph_to_dot_string.d.ts.map +1 -1
  200. package/src/core/model/node-graph/util/convert_node_graph_to_dot_string.js +2 -1
  201. package/src/core/model/node-graph/util/graph_clone_by_node_subset.d.ts +5 -2
  202. package/src/core/model/node-graph/util/graph_clone_by_node_subset.d.ts.map +1 -1
  203. package/src/core/model/node-graph/util/graph_clone_by_node_subset.js +2 -1
  204. package/src/core/model/node-graph/util/graph_collect_connections_amongst_nodes.d.ts +5 -2
  205. package/src/core/model/node-graph/util/graph_collect_connections_amongst_nodes.d.ts.map +1 -1
  206. package/src/core/model/node-graph/util/graph_collect_connections_amongst_nodes.js +2 -1
  207. package/src/core/primitives/Class.d.ts +15 -0
  208. package/src/core/primitives/Class.d.ts.map +1 -0
  209. package/src/core/primitives/Class.js +18 -0
  210. package/src/core/primitives/TypedArray.d.ts +15 -0
  211. package/src/core/primitives/TypedArray.d.ts.map +1 -0
  212. package/src/core/primitives/TypedArray.js +27 -0
  213. package/src/core/process/ConcurrencyGate.d.ts +103 -0
  214. package/src/core/process/ConcurrencyGate.d.ts.map +1 -0
  215. package/src/core/process/ConcurrencyGate.js +207 -0
  216. package/src/core/process/buildPromiseChain.d.ts +9 -4
  217. package/src/core/process/buildPromiseChain.d.ts.map +1 -1
  218. package/src/core/process/buildPromiseChain.js +4 -3
  219. package/src/core/process/executor/ConcurrentExecutor.d.ts +2 -0
  220. package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
  221. package/src/core/process/executor/ConcurrentExecutor.js +5 -0
  222. package/src/core/process/task/Task.d.ts +17 -7
  223. package/src/core/process/task/Task.d.ts.map +1 -1
  224. package/src/core/process/task/Task.js +12 -6
  225. package/src/engine/Engine.d.ts +17 -7
  226. package/src/engine/Engine.d.ts.map +1 -1
  227. package/src/engine/Engine.js +9 -4
  228. package/src/engine/EngineConfiguration.d.ts +33 -9
  229. package/src/engine/EngineConfiguration.d.ts.map +1 -1
  230. package/src/engine/EngineConfiguration.js +22 -4
  231. package/src/engine/EngineHarness.d.ts +22 -10
  232. package/src/engine/EngineHarness.d.ts.map +1 -1
  233. package/src/engine/EngineHarness.js +13 -8
  234. package/src/engine/EntityCreator.d.ts +26 -11
  235. package/src/engine/EntityCreator.d.ts.map +1 -1
  236. package/src/engine/EntityCreator.js +16 -13
  237. package/src/engine/animation/EntityAnimation.d.ts +1 -1
  238. package/src/engine/animation/EntityAnimation.d.ts.map +1 -1
  239. package/src/engine/animation/curve/actionProcessorOperations/curveActions.d.ts +28 -18
  240. package/src/engine/animation/curve/actionProcessorOperations/curveActions.d.ts.map +1 -1
  241. package/src/engine/animation/curve/actionProcessorOperations/curveActions.js +9 -8
  242. package/src/engine/animation/curve/draw/build_plot_entity_from_array.d.ts +18 -8
  243. package/src/engine/animation/curve/draw/build_plot_entity_from_array.d.ts.map +1 -1
  244. package/src/engine/animation/curve/draw/build_plot_entity_from_array.js +8 -7
  245. package/src/engine/animation/curve/editor/CurveEditorView.d.ts +22 -11
  246. package/src/engine/animation/curve/editor/CurveEditorView.d.ts.map +1 -1
  247. package/src/engine/animation/curve/editor/CurveEditorView.js +7 -6
  248. package/src/engine/animation/curve/editor/DragHandler.d.ts +12 -7
  249. package/src/engine/animation/curve/editor/DragHandler.d.ts.map +1 -1
  250. package/src/engine/animation/curve/editor/DragHandler.js +4 -3
  251. package/src/engine/animation/curve/editor/KeyframeStateManager.d.ts +3 -2
  252. package/src/engine/animation/curve/editor/KeyframeStateManager.d.ts.map +1 -1
  253. package/src/engine/animation/curve/editor/canvas2dDrawWorldAxisLabels.d.ts +21 -10
  254. package/src/engine/animation/curve/editor/canvas2dDrawWorldAxisLabels.d.ts.map +1 -1
  255. package/src/engine/animation/curve/editor/canvas2dDrawWorldAxisLabels.js +10 -9
  256. package/src/engine/animation/curve/editor/canvas2dPlotCurveLine.d.ts +20 -9
  257. package/src/engine/animation/curve/editor/canvas2dPlotCurveLine.d.ts.map +1 -1
  258. package/src/engine/animation/curve/editor/canvas2dPlotCurveLine.js +9 -8
  259. package/src/engine/animation/curve/editor/canvas2dPlotCurvePoints.d.ts +15 -7
  260. package/src/engine/animation/curve/editor/canvas2dPlotCurvePoints.d.ts.map +1 -1
  261. package/src/engine/animation/curve/editor/canvas2dPlotCurvePoints.js +7 -6
  262. package/src/engine/animation/curve/editor/createKeyframeDraggableAspect.d.ts +39 -18
  263. package/src/engine/animation/curve/editor/createKeyframeDraggableAspect.d.ts.map +1 -1
  264. package/src/engine/animation/curve/editor/createKeyframeDraggableAspect.js +18 -17
  265. package/src/engine/animation/curve/editor/createPanTool.d.ts +13 -5
  266. package/src/engine/animation/curve/editor/createPanTool.d.ts.map +1 -1
  267. package/src/engine/animation/curve/editor/createPanTool.js +5 -4
  268. package/src/engine/animation/curve/editor/createSelectionBoxTool.d.ts +19 -8
  269. package/src/engine/animation/curve/editor/createSelectionBoxTool.d.ts.map +1 -1
  270. package/src/engine/animation/curve/editor/createSelectionBoxTool.js +8 -7
  271. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts +6 -2
  272. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
  273. package/src/engine/animation/keyed2/AnimationTrackPlayback.js +4 -0
  274. package/src/engine/animation/removeEntityGenericEffect.d.ts +13 -6
  275. package/src/engine/animation/removeEntityGenericEffect.d.ts.map +1 -1
  276. package/src/engine/animation/removeEntityGenericEffect.js +6 -5
  277. package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts +11 -5
  278. package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts.map +1 -1
  279. package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +5 -4
  280. package/src/engine/asset/Asset.d.ts +6 -3
  281. package/src/engine/asset/Asset.d.ts.map +1 -1
  282. package/src/engine/asset/Asset.js +4 -1
  283. package/src/engine/asset/AssetManager.d.ts +52 -21
  284. package/src/engine/asset/AssetManager.d.ts.map +1 -1
  285. package/src/engine/asset/AssetManager.js +30 -12
  286. package/src/engine/asset/AssetRequest.d.ts +4 -2
  287. package/src/engine/asset/AssetRequest.d.ts.map +1 -1
  288. package/src/engine/asset/AssetRequest.js +5 -0
  289. package/src/engine/asset/AssetRequestScope.d.ts +1 -0
  290. package/src/engine/asset/AssetRequestScope.d.ts.map +1 -1
  291. package/src/engine/asset/AssetRequestScope.js +4 -0
  292. package/src/engine/asset/AssetTransformer.d.ts +7 -1
  293. package/src/engine/asset/AssetTransformer.d.ts.map +1 -1
  294. package/src/engine/asset/AssetTransformer.js +5 -0
  295. package/src/engine/asset/PendingAsset.d.ts +8 -0
  296. package/src/engine/asset/PendingAsset.d.ts.map +1 -1
  297. package/src/engine/asset/PendingAsset.js +6 -0
  298. package/src/engine/asset/loaders/ArrayBufferLoader.d.ts +6 -3
  299. package/src/engine/asset/loaders/ArrayBufferLoader.d.ts.map +1 -1
  300. package/src/engine/asset/loaders/ArrayBufferLoader.js +2 -1
  301. package/src/engine/asset/loaders/AssetLoader.d.ts +8 -2
  302. package/src/engine/asset/loaders/AssetLoader.d.ts.map +1 -1
  303. package/src/engine/asset/loaders/AssetLoader.js +5 -0
  304. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts +10 -0
  305. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts.map +1 -1
  306. package/src/engine/asset/loaders/image/ImageRGBADataLoader.d.ts +5 -2
  307. package/src/engine/asset/loaders/image/ImageRGBADataLoader.d.ts.map +1 -1
  308. package/src/engine/asset/loaders/image/ImageRGBADataLoader.js +2 -1
  309. package/src/engine/asset/preloader/AssetPreloader.d.ts +2 -1
  310. package/src/engine/asset/preloader/AssetPreloader.d.ts.map +1 -1
  311. package/src/engine/asset/preloader/AssetPreloader.js +4 -0
  312. package/src/engine/development/performance/MetricCollection.d.ts +11 -3
  313. package/src/engine/development/performance/MetricCollection.d.ts.map +1 -1
  314. package/src/engine/development/performance/MetricCollection.js +7 -2
  315. package/src/engine/ecs/Entity.d.ts +3 -2
  316. package/src/engine/ecs/Entity.d.ts.map +1 -1
  317. package/src/engine/ecs/Entity.js +9 -1
  318. package/src/engine/ecs/EntityComponentDataset.d.ts +8 -6
  319. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  320. package/src/engine/ecs/EntityComponentDataset.js +9 -0
  321. package/src/engine/ecs/EntityManager.d.ts +2 -1
  322. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  323. package/src/engine/ecs/EntityManager.js +5 -0
  324. package/src/engine/ecs/EntityObserver.d.ts +4 -0
  325. package/src/engine/ecs/EntityObserver.d.ts.map +1 -1
  326. package/src/engine/ecs/EntityObserver.js +4 -0
  327. package/src/engine/ecs/EntityReference.d.ts +4 -0
  328. package/src/engine/ecs/EntityReference.d.ts.map +1 -1
  329. package/src/engine/ecs/EntityReference.js +4 -0
  330. package/src/engine/ecs/System.d.ts +11 -2
  331. package/src/engine/ecs/System.d.ts.map +1 -1
  332. package/src/engine/ecs/System.js +6 -0
  333. package/src/engine/ecs/async/WorkerSystem.d.ts +10 -0
  334. package/src/engine/ecs/async/WorkerSystem.d.ts.map +1 -1
  335. package/src/engine/ecs/dynamic_actions/actions/definition/SpeakLineActionDescription.d.ts +7 -3
  336. package/src/engine/ecs/dynamic_actions/actions/definition/SpeakLineActionDescription.d.ts.map +1 -1
  337. package/src/engine/ecs/dynamic_actions/actions/definition/SpeakLineActionDescription.js +3 -2
  338. package/src/engine/ecs/dynamic_actions/actions/definition/WriteToBlackboardActionDescription.d.ts +7 -3
  339. package/src/engine/ecs/dynamic_actions/actions/definition/WriteToBlackboardActionDescription.d.ts.map +1 -1
  340. package/src/engine/ecs/dynamic_actions/actions/definition/WriteToBlackboardActionDescription.js +3 -2
  341. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts +36 -17
  342. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts.map +1 -1
  343. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +17 -16
  344. package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.d.ts +7 -3
  345. package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.d.ts.map +1 -1
  346. package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.js +3 -2
  347. package/src/engine/ecs/ik/InverseKinematics.d.ts +17 -8
  348. package/src/engine/ecs/ik/InverseKinematics.d.ts.map +1 -1
  349. package/src/engine/ecs/ik/InverseKinematics.js +8 -7
  350. package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.d.ts +9 -0
  351. package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.d.ts.map +1 -1
  352. package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.js +9 -0
  353. package/src/engine/ecs/storage/binary/BinaryClassUpgrader.d.ts +4 -0
  354. package/src/engine/ecs/storage/binary/BinaryClassUpgrader.d.ts.map +1 -1
  355. package/src/engine/ecs/storage/binary/BinaryClassUpgrader.js +4 -0
  356. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts +10 -4
  357. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts.map +1 -1
  358. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +5 -0
  359. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.d.ts +5 -2
  360. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.d.ts.map +1 -1
  361. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js +2 -1
  362. package/src/engine/ecs/storage/binary/collection/BinaryCollectionSerializer.d.ts +7 -3
  363. package/src/engine/ecs/storage/binary/collection/BinaryCollectionSerializer.d.ts.map +1 -1
  364. package/src/engine/ecs/storage/binary/collection/BinaryCollectionSerializer.js +3 -2
  365. package/src/engine/ecs/systems/ScriptSystem.d.ts +1 -0
  366. package/src/engine/ecs/systems/ScriptSystem.d.ts.map +1 -1
  367. package/src/engine/ecs/terrain/ecs/Terrain.d.ts +7 -2
  368. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  369. package/src/engine/ecs/terrain/ecs/Terrain.js +8 -0
  370. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSerializationUpgrader_0_1.d.ts +6 -0
  371. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSerializationUpgrader_0_1.d.ts.map +1 -1
  372. package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.d.ts +3 -1
  373. package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.d.ts.map +1 -1
  374. package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.js +5 -0
  375. package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.d.ts +3 -1
  376. package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.d.ts.map +1 -1
  377. package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.js +5 -0
  378. package/src/engine/ecs/terrain/ecs/splat/SplatMapping.d.ts +4 -0
  379. package/src/engine/ecs/terrain/ecs/splat/SplatMapping.d.ts.map +1 -1
  380. package/src/engine/ecs/terrain/ecs/splat/SplatMapping.js +4 -0
  381. package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts +7 -2
  382. package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
  383. package/src/engine/ecs/terrain/tiles/TerrainTile.js +1 -1
  384. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +6 -2
  385. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  386. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +6 -1
  387. package/src/engine/ecs/terrain/util/loadVisibleTerrainTiles.d.ts +9 -4
  388. package/src/engine/ecs/terrain/util/loadVisibleTerrainTiles.d.ts.map +1 -1
  389. package/src/engine/ecs/terrain/util/loadVisibleTerrainTiles.js +4 -3
  390. package/src/engine/ecs/transform/Transform64.d.ts +4 -0
  391. package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
  392. package/src/engine/ecs/transform/Transform64.js +4 -0
  393. package/src/engine/graphics/CONTEXT_LOSS_RECOVERY_PLAN.md +30 -13
  394. package/src/engine/graphics/camera/CameraShakeBehavior.d.ts +20 -10
  395. package/src/engine/graphics/camera/CameraShakeBehavior.d.ts.map +1 -1
  396. package/src/engine/graphics/camera/CameraShakeBehavior.js +9 -8
  397. package/src/engine/graphics/camera/CameraShakeTraumaBehavior.d.ts +8 -4
  398. package/src/engine/graphics/camera/CameraShakeTraumaBehavior.d.ts.map +1 -1
  399. package/src/engine/graphics/camera/CameraShakeTraumaBehavior.js +3 -2
  400. package/src/engine/graphics/camera/makeOrbitalCameraController.d.ts +11 -5
  401. package/src/engine/graphics/camera/makeOrbitalCameraController.d.ts.map +1 -1
  402. package/src/engine/graphics/camera/makeOrbitalCameraController.js +5 -4
  403. package/src/engine/graphics/canvas/canvas2d_draw_grid.d.ts +19 -9
  404. package/src/engine/graphics/canvas/canvas2d_draw_grid.d.ts.map +1 -1
  405. package/src/engine/graphics/canvas/canvas2d_draw_grid.js +9 -8
  406. package/src/engine/graphics/canvas/canvas2d_draw_label.d.ts +17 -8
  407. package/src/engine/graphics/canvas/canvas2d_draw_label.d.ts.map +1 -1
  408. package/src/engine/graphics/canvas/canvas2d_draw_label.js +8 -7
  409. package/src/engine/graphics/canvas/canvas2d_draw_linear_scale.d.ts +21 -10
  410. package/src/engine/graphics/canvas/canvas2d_draw_linear_scale.d.ts.map +1 -1
  411. package/src/engine/graphics/canvas/canvas2d_draw_linear_scale.js +10 -9
  412. package/src/engine/graphics/canvas/canvas2d_plot_data_line.d.ts +18 -8
  413. package/src/engine/graphics/canvas/canvas2d_plot_data_line.d.ts.map +1 -1
  414. package/src/engine/graphics/canvas/canvas2d_plot_data_line.js +8 -7
  415. package/src/engine/graphics/ecs/camera/Camera.d.ts +4 -0
  416. package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
  417. package/src/engine/graphics/ecs/camera/Camera.js +4 -0
  418. package/src/engine/graphics/ecs/camera/filter/setup_filtered_camera_controller.d.ts +11 -5
  419. package/src/engine/graphics/ecs/camera/filter/setup_filtered_camera_controller.d.ts.map +1 -1
  420. package/src/engine/graphics/ecs/camera/filter/setup_filtered_camera_controller.js +5 -4
  421. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts +1 -1
  422. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  423. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +5 -5
  424. package/src/engine/graphics/ecs/particles/ParticleEffect.js +5 -5
  425. package/src/engine/graphics/ecs/trail3d/make_gradient_stroke.d.ts +19 -9
  426. package/src/engine/graphics/ecs/trail3d/make_gradient_stroke.d.ts.map +1 -1
  427. package/src/engine/graphics/ecs/trail3d/make_gradient_stroke.js +9 -8
  428. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +3 -0
  429. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +1 -1
  430. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +3 -0
  431. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts +9 -4
  432. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts.map +1 -1
  433. package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.js +4 -3
  434. package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts +7 -1
  435. package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts.map +1 -1
  436. package/src/engine/graphics/render/frame_graph/FrameGraph.js +5 -0
  437. package/src/engine/graphics/render/frame_graph/FrameGraphNode.d.ts +4 -0
  438. package/src/engine/graphics/render/frame_graph/FrameGraphNode.d.ts.map +1 -1
  439. package/src/engine/graphics/render/frame_graph/FrameGraphNode.js +4 -0
  440. package/src/engine/graphics/render/frame_graph/FramePassBuilder.d.ts +9 -1
  441. package/src/engine/graphics/render/frame_graph/FramePassBuilder.d.ts.map +1 -1
  442. package/src/engine/graphics/render/frame_graph/FramePassBuilder.js +6 -0
  443. package/src/engine/graphics/render/frame_graph/FramePassNode.d.ts +6 -0
  444. package/src/engine/graphics/render/frame_graph/FramePassNode.d.ts.map +1 -1
  445. package/src/engine/graphics/render/frame_graph/FramePassNode.js +5 -0
  446. package/src/engine/graphics/render/frame_graph/FramePassResources.d.ts +7 -1
  447. package/src/engine/graphics/render/frame_graph/FramePassResources.d.ts.map +1 -1
  448. package/src/engine/graphics/render/frame_graph/FramePassResources.js +5 -0
  449. package/src/engine/graphics/render/frame_graph/IFrameGraphContext.d.ts +6 -2
  450. package/src/engine/graphics/render/frame_graph/IFrameGraphContext.d.ts.map +1 -1
  451. package/src/engine/graphics/render/frame_graph/IFrameGraphContext.js +4 -0
  452. package/src/engine/graphics/render/frame_graph/ResourceEntry.d.ts +13 -5
  453. package/src/engine/graphics/render/frame_graph/ResourceEntry.d.ts.map +1 -1
  454. package/src/engine/graphics/render/frame_graph/ResourceEntry.js +7 -1
  455. package/src/engine/graphics/render/frame_graph/ResourceNode.d.ts +9 -3
  456. package/src/engine/graphics/render/frame_graph/ResourceNode.d.ts.map +1 -1
  457. package/src/engine/graphics/render/frame_graph/ResourceNode.js +6 -1
  458. package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.d.ts +5 -1
  459. package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.d.ts.map +1 -1
  460. package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.js +4 -0
  461. package/src/engine/graphics/render/frame_graph/resource/ResourceDescriptor.d.ts +7 -3
  462. package/src/engine/graphics/render/frame_graph/resource/ResourceDescriptor.d.ts.map +1 -1
  463. package/src/engine/graphics/render/frame_graph/resource/ResourceDescriptor.js +6 -2
  464. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.d.ts +5 -2
  465. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.d.ts.map +1 -1
  466. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +2 -1
  467. package/src/engine/graphics/texture/atlas/TextureAtlasDebugger.d.ts +9 -4
  468. package/src/engine/graphics/texture/atlas/TextureAtlasDebugger.d.ts.map +1 -1
  469. package/src/engine/graphics/texture/atlas/TextureAtlasDebugger.js +4 -3
  470. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +4 -0
  471. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  472. package/src/engine/graphics/texture/sampler/Sampler2D.js +4 -0
  473. package/src/engine/graphics/texture/sampler/debug/prototypeSamplerFiltering.js +3 -2
  474. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +0 -5
  475. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  476. package/src/engine/graphics3/GraphicsEngine.d.ts +6 -0
  477. package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
  478. package/src/engine/graphics3/GraphicsEngine.js +9 -0
  479. package/src/engine/graphics3/ParticipatingMedia.d.ts +9 -4
  480. package/src/engine/graphics3/ParticipatingMedia.d.ts.map +1 -1
  481. package/src/engine/graphics3/ParticipatingMedia.js +4 -3
  482. package/src/engine/graphics3/ShadeCameraAdapter.d.ts +5 -1
  483. package/src/engine/graphics3/ShadeCameraAdapter.d.ts.map +1 -1
  484. package/src/engine/graphics3/ShadeCameraAdapter.js +4 -0
  485. package/src/engine/graphics3/TooltipComponentSystem.d.ts +13 -6
  486. package/src/engine/graphics3/TooltipComponentSystem.d.ts.map +1 -1
  487. package/src/engine/graphics3/TooltipComponentSystem.js +6 -5
  488. package/src/engine/graphics3/VolumetricLightMap.d.ts +5 -2
  489. package/src/engine/graphics3/VolumetricLightMap.d.ts.map +1 -1
  490. package/src/engine/graphics3/VolumetricLightMap.js +2 -1
  491. package/src/engine/graphics3/pose/collect_entity_playbacks.d.ts +26 -0
  492. package/src/engine/graphics3/pose/collect_entity_playbacks.d.ts.map +1 -0
  493. package/src/engine/graphics3/pose/collect_entity_playbacks.js +40 -0
  494. package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts.map +1 -1
  495. package/src/engine/graphics3/pose/query_entity_node_world_pose.js +74 -101
  496. package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
  497. package/src/engine/input/devices/PointerDevice.js +7 -6
  498. package/src/engine/input/devices/gamepad/GamepadHandle.d.ts +4 -0
  499. package/src/engine/input/devices/gamepad/GamepadHandle.d.ts.map +1 -1
  500. package/src/engine/input/devices/gamepad/GamepadHandle.js +4 -0
  501. package/src/engine/input/devices/touch/observePinch.d.ts +17 -8
  502. package/src/engine/input/devices/touch/observePinch.d.ts.map +1 -1
  503. package/src/engine/input/devices/touch/observePinch.js +8 -7
  504. package/src/engine/input/ecs/components/InputBinding.d.ts +11 -5
  505. package/src/engine/input/ecs/components/InputBinding.d.ts.map +1 -1
  506. package/src/engine/input/ecs/components/InputBinding.js +5 -4
  507. package/src/engine/input/ecs/ism/InputMapSystem.d.ts +4 -0
  508. package/src/engine/input/ecs/ism/InputMapSystem.d.ts.map +1 -1
  509. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts +1 -1
  510. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
  511. package/src/engine/input/ecs/util/TerrainCameraTargetSampler.d.ts +5 -2
  512. package/src/engine/input/ecs/util/TerrainCameraTargetSampler.d.ts.map +1 -1
  513. package/src/engine/input/ecs/util/TerrainCameraTargetSampler.js +2 -1
  514. package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.d.ts +9 -4
  515. package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.d.ts.map +1 -1
  516. package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.js +4 -3
  517. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +9 -4
  518. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts.map +1 -1
  519. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +4 -3
  520. package/src/engine/intelligence/behavior/util/syncExecuteBehaviorToCompletion.d.ts +9 -4
  521. package/src/engine/intelligence/behavior/util/syncExecuteBehaviorToCompletion.d.ts.map +1 -1
  522. package/src/engine/intelligence/behavior/util/syncExecuteBehaviorToCompletion.js +4 -3
  523. package/src/engine/intelligence/mcts/MonteCarlo.d.ts +19 -9
  524. package/src/engine/intelligence/mcts/MonteCarlo.d.ts.map +1 -1
  525. package/src/engine/intelligence/mcts/MonteCarlo.js +9 -8
  526. package/src/engine/intelligence/optimization/RandomOptimizer.d.ts +13 -6
  527. package/src/engine/intelligence/optimization/RandomOptimizer.d.ts.map +1 -1
  528. package/src/engine/intelligence/optimization/RandomOptimizer.js +6 -5
  529. package/src/engine/interpolation/InterpolationSystem.d.ts +4 -0
  530. package/src/engine/interpolation/InterpolationSystem.d.ts.map +1 -1
  531. package/src/engine/knowledge/database/StaticKnowledgeDataTable.d.ts +5 -2
  532. package/src/engine/knowledge/database/StaticKnowledgeDataTable.d.ts.map +1 -1
  533. package/src/engine/knowledge/database/StaticKnowledgeDataTable.js +6 -0
  534. package/src/engine/knowledge/database/StaticKnowledgeDataTableDescriptor.d.ts +6 -2
  535. package/src/engine/knowledge/database/StaticKnowledgeDataTableDescriptor.d.ts.map +1 -1
  536. package/src/engine/knowledge/database/StaticKnowledgeDataTableDescriptor.js +4 -0
  537. package/src/engine/knowledge/database/StaticKnowledgeDatabase.d.ts +7 -4
  538. package/src/engine/knowledge/database/StaticKnowledgeDatabase.d.ts.map +1 -1
  539. package/src/engine/knowledge/database/StaticKnowledgeDatabase.js +6 -0
  540. package/src/engine/makeSimpleTaskProgressView.d.ts +10 -4
  541. package/src/engine/makeSimpleTaskProgressView.d.ts.map +1 -1
  542. package/src/engine/makeSimpleTaskProgressView.js +4 -3
  543. package/src/engine/navigation/mesh/build/navmesh_build_topology.d.ts +20 -9
  544. package/src/engine/navigation/mesh/build/navmesh_build_topology.d.ts.map +1 -1
  545. package/src/engine/navigation/mesh/build/navmesh_build_topology.js +9 -8
  546. package/src/engine/network/sim/ActionLog.d.ts +1 -2
  547. package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
  548. package/src/engine/network/sim/ActionLog.js +0 -1
  549. package/src/engine/network/state/InputRing.d.ts +1 -2
  550. package/src/engine/network/state/InputRing.d.ts.map +1 -1
  551. package/src/engine/network/state/InputRing.js +0 -1
  552. package/src/engine/notify/Notification.d.ts +15 -9
  553. package/src/engine/notify/Notification.d.ts.map +1 -1
  554. package/src/engine/notify/Notification.js +5 -4
  555. package/src/engine/options/OptionAbstract.d.ts +4 -0
  556. package/src/engine/options/OptionAbstract.d.ts.map +1 -1
  557. package/src/engine/options/OptionAbstract.js +4 -0
  558. package/src/engine/options/OptionsView.d.ts +10 -4
  559. package/src/engine/options/OptionsView.d.ts.map +1 -1
  560. package/src/engine/options/OptionsView.js +4 -3
  561. package/src/engine/physics/ccd/linear_sweep.d.ts +4 -7
  562. package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
  563. package/src/engine/physics/ccd/linear_sweep.js +3 -1
  564. package/src/engine/physics/cloth/MEASUREMENTS.md +2239 -0
  565. package/src/engine/physics/cloth/PLAN.md +1967 -0
  566. package/src/engine/physics/cloth/build/ClothProxy.d.ts +147 -0
  567. package/src/engine/physics/cloth/build/ClothProxy.d.ts.map +1 -0
  568. package/src/engine/physics/cloth/build/ClothProxy.js +207 -0
  569. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts +70 -0
  570. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts.map +1 -0
  571. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.js +256 -0
  572. package/src/engine/physics/cloth/collider/ClothColliderIndex.d.ts +176 -0
  573. package/src/engine/physics/cloth/collider/ClothColliderIndex.d.ts.map +1 -0
  574. package/src/engine/physics/cloth/collider/ClothColliderIndex.js +435 -0
  575. package/src/engine/physics/cloth/collider/ClothColliderKind.d.ts +12 -0
  576. package/src/engine/physics/cloth/collider/ClothColliderKind.d.ts.map +1 -0
  577. package/src/engine/physics/cloth/collider/ClothColliderKind.js +38 -0
  578. package/src/engine/physics/cloth/collider/ClothColliderRecord.d.ts +120 -0
  579. package/src/engine/physics/cloth/collider/ClothColliderRecord.d.ts.map +1 -0
  580. package/src/engine/physics/cloth/collider/ClothColliderRecord.js +137 -0
  581. package/src/engine/physics/cloth/collider/cloth_collider_bounds.d.ts +25 -0
  582. package/src/engine/physics/cloth/collider/cloth_collider_bounds.d.ts.map +1 -0
  583. package/src/engine/physics/cloth/collider/cloth_collider_bounds.js +190 -0
  584. package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts +44 -0
  585. package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts.map +1 -0
  586. package/src/engine/physics/cloth/collider/cloth_collider_pack.js +173 -0
  587. package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts +94 -0
  588. package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts.map +1 -0
  589. package/src/engine/physics/cloth/collider/cloth_collider_sdf.js +275 -0
  590. package/src/engine/physics/cloth/ecs/Cloth.d.ts +145 -0
  591. package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -0
  592. package/src/engine/physics/cloth/ecs/Cloth.js +212 -0
  593. package/src/engine/physics/cloth/ecs/ClothCollider.d.ts +126 -0
  594. package/src/engine/physics/cloth/ecs/ClothCollider.d.ts.map +1 -0
  595. package/src/engine/physics/cloth/ecs/ClothCollider.js +199 -0
  596. package/src/engine/physics/cloth/ecs/ClothColliderFlags.d.ts +9 -0
  597. package/src/engine/physics/cloth/ecs/ClothColliderFlags.d.ts.map +1 -0
  598. package/src/engine/physics/cloth/ecs/ClothColliderFlags.js +32 -0
  599. package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts +114 -0
  600. package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts.map +1 -0
  601. package/src/engine/physics/cloth/ecs/ClothColliderSystem.js +243 -0
  602. package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts +208 -0
  603. package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts.map +1 -0
  604. package/src/engine/physics/cloth/ecs/ClothDynamics.js +331 -0
  605. package/src/engine/physics/cloth/ecs/ClothDynamicsFlags.d.ts +10 -0
  606. package/src/engine/physics/cloth/ecs/ClothDynamicsFlags.d.ts.map +1 -0
  607. package/src/engine/physics/cloth/ecs/ClothDynamicsFlags.js +66 -0
  608. package/src/engine/physics/cloth/ecs/ClothExclude.d.ts +45 -0
  609. package/src/engine/physics/cloth/ecs/ClothExclude.d.ts.map +1 -0
  610. package/src/engine/physics/cloth/ecs/ClothExclude.js +59 -0
  611. package/src/engine/physics/cloth/ecs/ClothFlags.d.ts +10 -0
  612. package/src/engine/physics/cloth/ecs/ClothFlags.d.ts.map +1 -0
  613. package/src/engine/physics/cloth/ecs/ClothFlags.js +47 -0
  614. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +429 -0
  615. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -0
  616. package/src/engine/physics/cloth/ecs/ClothInstance.js +479 -0
  617. package/src/engine/physics/cloth/ecs/ClothRig.d.ts +95 -0
  618. package/src/engine/physics/cloth/ecs/ClothRig.d.ts.map +1 -0
  619. package/src/engine/physics/cloth/ecs/ClothRig.js +140 -0
  620. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +178 -0
  621. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -0
  622. package/src/engine/physics/cloth/ecs/ClothSystem.js +1021 -0
  623. package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts +90 -0
  624. package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts.map +1 -0
  625. package/src/engine/physics/cloth/ecs/cloth_build_rows.js +374 -0
  626. package/src/engine/physics/cloth/ecs/cloth_dynamics_library.d.ts +186 -0
  627. package/src/engine/physics/cloth/ecs/cloth_dynamics_library.d.ts.map +1 -0
  628. package/src/engine/physics/cloth/ecs/cloth_dynamics_library.js +283 -0
  629. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts +235 -0
  630. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts.map +1 -0
  631. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.js +271 -0
  632. package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts +59 -0
  633. package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts.map +1 -0
  634. package/src/engine/physics/cloth/ecs/cloth_gather_colliders.js +328 -0
  635. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.d.ts +13 -0
  636. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.d.ts.map +1 -0
  637. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.js +288 -0
  638. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +58 -0
  639. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -0
  640. package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +199 -0
  641. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts +59 -0
  642. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts.map +1 -0
  643. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.js +317 -0
  644. package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts +70 -0
  645. package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts.map +1 -0
  646. package/src/engine/physics/cloth/ecs/cloth_write_back.js +212 -0
  647. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts +49 -0
  648. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts.map +1 -0
  649. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.js +115 -0
  650. package/src/engine/physics/cloth/playground/README.md +339 -0
  651. package/src/engine/physics/cloth/playground/cloth_playground_build.d.ts +58 -0
  652. package/src/engine/physics/cloth/playground/cloth_playground_build.d.ts.map +1 -0
  653. package/src/engine/physics/cloth/playground/cloth_playground_build.js +333 -0
  654. package/src/engine/physics/cloth/playground/cloth_playground_draw.d.ts +79 -0
  655. package/src/engine/physics/cloth/playground/cloth_playground_draw.d.ts.map +1 -0
  656. package/src/engine/physics/cloth/playground/cloth_playground_draw.js +519 -0
  657. package/src/engine/physics/cloth/playground/collide.html +178 -0
  658. package/src/engine/physics/cloth/playground/collide_build.d.ts +95 -0
  659. package/src/engine/physics/cloth/playground/collide_build.d.ts.map +1 -0
  660. package/src/engine/physics/cloth/playground/collide_build.js +315 -0
  661. package/src/engine/physics/cloth/playground/collide_main.d.ts +2 -0
  662. package/src/engine/physics/cloth/playground/collide_main.d.ts.map +1 -0
  663. package/src/engine/physics/cloth/playground/collide_main.js +720 -0
  664. package/src/engine/physics/cloth/playground/garment.html +182 -0
  665. package/src/engine/physics/cloth/playground/garment_build.d.ts +78 -0
  666. package/src/engine/physics/cloth/playground/garment_build.d.ts.map +1 -0
  667. package/src/engine/physics/cloth/playground/garment_build.js +359 -0
  668. package/src/engine/physics/cloth/playground/garment_main.d.ts +2 -0
  669. package/src/engine/physics/cloth/playground/garment_main.d.ts.map +1 -0
  670. package/src/engine/physics/cloth/playground/garment_main.js +633 -0
  671. package/src/engine/physics/cloth/playground/index.html +200 -0
  672. package/src/engine/physics/cloth/playground/main.d.ts +2 -0
  673. package/src/engine/physics/cloth/playground/main.d.ts.map +1 -0
  674. package/src/engine/physics/cloth/playground/main.js +876 -0
  675. package/src/engine/physics/cloth/playground/rig.html +187 -0
  676. package/src/engine/physics/cloth/playground/rig_build.d.ts +81 -0
  677. package/src/engine/physics/cloth/playground/rig_build.d.ts.map +1 -0
  678. package/src/engine/physics/cloth/playground/rig_build.js +296 -0
  679. package/src/engine/physics/cloth/playground/rig_main.d.ts +2 -0
  680. package/src/engine/physics/cloth/playground/rig_main.d.ts.map +1 -0
  681. package/src/engine/physics/cloth/playground/rig_main.js +955 -0
  682. package/src/engine/physics/cloth/solver/ClothState.d.ts +526 -0
  683. package/src/engine/physics/cloth/solver/ClothState.d.ts.map +1 -0
  684. package/src/engine/physics/cloth/solver/ClothState.js +967 -0
  685. package/src/engine/physics/cloth/solver/cloth_color_particles.d.ts +67 -0
  686. package/src/engine/physics/cloth/solver/cloth_color_particles.d.ts.map +1 -0
  687. package/src/engine/physics/cloth/solver/cloth_color_particles.js +220 -0
  688. package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts +87 -0
  689. package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts.map +1 -0
  690. package/src/engine/physics/cloth/solver/cloth_contact_find.js +343 -0
  691. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts +112 -0
  692. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts.map +1 -0
  693. package/src/engine/physics/cloth/solver/cloth_self_find.js +448 -0
  694. package/src/engine/physics/cloth/solver/cloth_solve_vertex.d.ts +16 -0
  695. package/src/engine/physics/cloth/solver/cloth_solve_vertex.d.ts.map +1 -0
  696. package/src/engine/physics/cloth/solver/cloth_solve_vertex.js +216 -0
  697. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts +204 -0
  698. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts.map +1 -0
  699. package/src/engine/physics/cloth/solver/cloth_solver_constants.js +213 -0
  700. package/src/engine/physics/cloth/solver/cloth_step.d.ts +122 -0
  701. package/src/engine/physics/cloth/solver/cloth_step.d.ts.map +1 -0
  702. package/src/engine/physics/cloth/solver/cloth_step.js +401 -0
  703. package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.d.ts +54 -0
  704. package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.d.ts.map +1 -0
  705. package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.js +56 -0
  706. package/src/engine/physics/cloth/solver/constraint/cloth_backstop_row.d.ts +95 -0
  707. package/src/engine/physics/cloth/solver/constraint/cloth_backstop_row.d.ts.map +1 -0
  708. package/src/engine/physics/cloth/solver/constraint/cloth_backstop_row.js +285 -0
  709. package/src/engine/physics/cloth/solver/constraint/cloth_bend_row.d.ts +125 -0
  710. package/src/engine/physics/cloth/solver/constraint/cloth_bend_row.d.ts.map +1 -0
  711. package/src/engine/physics/cloth/solver/constraint/cloth_bend_row.js +383 -0
  712. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts +129 -0
  713. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -0
  714. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +501 -0
  715. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.d.ts +112 -0
  716. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.d.ts.map +1 -0
  717. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.js +346 -0
  718. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts +75 -0
  719. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts.map +1 -0
  720. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.js +202 -0
  721. package/src/engine/physics/cloth/solver/constraint/cloth_stretch_row.d.ts +94 -0
  722. package/src/engine/physics/cloth/solver/constraint/cloth_stretch_row.d.ts.map +1 -0
  723. package/src/engine/physics/cloth/solver/constraint/cloth_stretch_row.js +383 -0
  724. package/src/engine/physics/cloth/solver/find_non_finite_cloth_state.d.ts +27 -0
  725. package/src/engine/physics/cloth/solver/find_non_finite_cloth_state.d.ts.map +1 -0
  726. package/src/engine/physics/cloth/solver/find_non_finite_cloth_state.js +104 -0
  727. package/src/engine/physics/ecs/PhysicsSystem.d.ts +5 -7
  728. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  729. package/src/engine/physics/ecs/PhysicsSystem.js +4 -1
  730. package/src/engine/physics/ecs/RigidBodySerializationUpgrader_0_1.d.ts +6 -0
  731. package/src/engine/physics/ecs/RigidBodySerializationUpgrader_0_1.d.ts.map +1 -1
  732. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  733. package/src/engine/physics/narrowphase/compute_penetration.d.ts +26 -23
  734. package/src/engine/physics/narrowphase/compute_penetration.d.ts.map +1 -1
  735. package/src/engine/physics/narrowphase/compute_penetration.js +25 -4
  736. package/src/engine/physics/narrowphase/narrowphase_step.d.ts +16 -23
  737. package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
  738. package/src/engine/physics/narrowphase/narrowphase_step.js +15 -4
  739. package/src/engine/physics/narrowphase/refine_ray_concave.d.ts +4 -6
  740. package/src/engine/physics/narrowphase/refine_ray_concave.d.ts.map +1 -1
  741. package/src/engine/physics/narrowphase/refine_ray_concave.js +3 -1
  742. package/src/engine/physics/narrowphase/refine_ray_hit.d.ts +6 -6
  743. package/src/engine/physics/narrowphase/refine_ray_hit.d.ts.map +1 -1
  744. package/src/engine/physics/narrowphase/refine_ray_hit.js +5 -1
  745. package/src/engine/physics/queries/shape_cast.d.ts +9 -7
  746. package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
  747. package/src/engine/physics/queries/shape_cast.js +8 -1
  748. package/src/engine/platform/EnginePlatform.d.ts +4 -0
  749. package/src/engine/platform/EnginePlatform.d.ts.map +1 -1
  750. package/src/engine/platform/EnginePlatform.js +4 -0
  751. package/src/engine/plugin/EnginePlugin.d.ts +9 -0
  752. package/src/engine/plugin/EnginePlugin.d.ts.map +1 -1
  753. package/src/engine/plugin/EnginePlugin.js +9 -0
  754. package/src/engine/plugin/EnginePluginManager.d.ts +13 -2
  755. package/src/engine/plugin/EnginePluginManager.d.ts.map +1 -1
  756. package/src/engine/plugin/EnginePluginManager.js +10 -0
  757. package/src/engine/save/StorageBackedList.d.ts +8 -4
  758. package/src/engine/save/StorageBackedList.d.ts.map +1 -1
  759. package/src/engine/save/StorageBackedList.js +3 -2
  760. package/src/engine/scene/Scene.d.ts +10 -0
  761. package/src/engine/scene/Scene.d.ts.map +1 -1
  762. package/src/engine/scene/Scene.js +7 -0
  763. package/src/engine/scene/SceneManager.d.ts +4 -0
  764. package/src/engine/scene/SceneManager.d.ts.map +1 -1
  765. package/src/engine/scene/SceneManager.js +4 -0
  766. package/src/engine/scene/SerializedScene.d.ts +8 -4
  767. package/src/engine/scene/SerializedScene.d.ts.map +1 -1
  768. package/src/engine/scene/SerializedScene.js +3 -2
  769. package/src/engine/scene/transitionToScene.d.ts +11 -5
  770. package/src/engine/scene/transitionToScene.d.ts.map +1 -1
  771. package/src/engine/scene/transitionToScene.js +5 -4
  772. package/src/engine/simulation/Ticker.d.ts +5 -2
  773. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  774. package/src/engine/simulation/Ticker.js +2 -1
  775. package/src/engine/sound/SoundEngine.d.ts +4 -0
  776. package/src/engine/sound/SoundEngine.d.ts.map +1 -1
  777. package/src/engine/sound/SoundEngine.js +4 -0
  778. package/src/engine/sound/material/concrete/json/deserializeSoundMaterialFromJSON.d.ts +7 -3
  779. package/src/engine/sound/material/concrete/json/deserializeSoundMaterialFromJSON.d.ts.map +1 -1
  780. package/src/engine/sound/material/concrete/json/deserializeSoundMaterialFromJSON.js +3 -2
  781. package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts +10 -0
  782. package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts.map +1 -1
  783. package/src/engine/sound/sopra/SopraEngine.d.ts +5 -0
  784. package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -1
  785. package/src/engine/sound/sopra/SopraEngine.js +8 -0
  786. package/src/engine/sound/sopra/definition/BusDefinition.d.ts +4 -0
  787. package/src/engine/sound/sopra/definition/BusDefinition.d.ts.map +1 -1
  788. package/src/engine/sound/sopra/definition/BusDefinition.js +4 -0
  789. package/src/engine/sound/sopra/definition/EventDescription.d.ts +1 -0
  790. package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
  791. package/src/engine/sound/sopra/definition/EventDescription.js +4 -0
  792. package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.d.ts +6 -0
  793. package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.d.ts.map +1 -1
  794. package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +5 -0
  795. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts +1 -1
  796. package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.d.ts +1 -0
  797. package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.d.ts.map +1 -1
  798. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts +1 -1
  799. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts +10 -2
  800. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -1
  801. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +7 -0
  802. package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.d.ts +1 -1
  803. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +1 -1
  804. package/src/engine/sound/sopra/runtime/BusGraph.d.ts +4 -0
  805. package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
  806. package/src/engine/sound/sopra/runtime/BusGraph.js +4 -0
  807. package/src/engine/sound/sopra/runtime/EventInstance.d.ts +9 -1
  808. package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
  809. package/src/engine/sound/sopra/runtime/EventInstance.js +11 -0
  810. package/src/engine/sound/sopra/runtime/VoiceManager.d.ts +2 -0
  811. package/src/engine/sound/sopra/runtime/VoiceManager.d.ts.map +1 -1
  812. package/src/engine/sound/sopra/runtime/VoiceManager.js +5 -0
  813. package/src/engine/ui/DraggableAspect.d.ts +14 -6
  814. package/src/engine/ui/DraggableAspect.d.ts.map +1 -1
  815. package/src/engine/ui/DraggableAspect.js +6 -5
  816. package/src/engine/ui/GUIEngine.d.ts +73 -26
  817. package/src/engine/ui/GUIEngine.d.ts.map +1 -1
  818. package/src/engine/ui/GUIEngine.js +37 -19
  819. package/src/engine/ui/bindings/DomElementBindingDescription.d.ts +7 -3
  820. package/src/engine/ui/bindings/DomElementBindingDescription.d.ts.map +1 -1
  821. package/src/engine/ui/bindings/DomElementBindingDescription.js +3 -2
  822. package/src/engine/ui/modal/ModalStack.d.ts +4 -0
  823. package/src/engine/ui/modal/ModalStack.d.ts.map +1 -1
  824. package/src/engine/ui/modal/ModalStack.js +4 -0
  825. package/src/engine/ui/notification/AnimatedObjectEmitter.d.ts +4 -0
  826. package/src/engine/ui/notification/AnimatedObjectEmitter.d.ts.map +1 -1
  827. package/src/engine/ui/notification/AnimatedObjectEmitter.js +4 -0
  828. package/src/engine/ui/notification/NotificationManager.d.ts +21 -8
  829. package/src/engine/ui/notification/NotificationManager.d.ts.map +1 -1
  830. package/src/engine/ui/notification/NotificationManager.js +10 -3
  831. package/src/engine/ui/notification/ViewEmitter.d.ts +8 -2
  832. package/src/engine/ui/notification/ViewEmitter.d.ts.map +1 -1
  833. package/src/engine/ui/notification/ViewEmitter.js +6 -1
  834. package/src/engine/ui/scene/SceneGUIContext.d.ts +4 -0
  835. package/src/engine/ui/scene/SceneGUIContext.d.ts.map +1 -1
  836. package/src/engine/ui/scene/SceneGUIContext.js +4 -0
  837. package/src/generation/filtering/numeric/util/populateSampler2DFromCellFilter.d.ts +9 -4
  838. package/src/generation/filtering/numeric/util/populateSampler2DFromCellFilter.d.ts.map +1 -1
  839. package/src/generation/filtering/numeric/util/populateSampler2DFromCellFilter.js +4 -3
  840. package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.d.ts +9 -4
  841. package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.d.ts.map +1 -1
  842. package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.js +4 -3
  843. package/src/generation/grid/generation/GridTaskApplyActionToCells.d.ts +9 -4
  844. package/src/generation/grid/generation/GridTaskApplyActionToCells.d.ts.map +1 -1
  845. package/src/generation/grid/generation/GridTaskApplyActionToCells.js +4 -3
  846. package/src/generation/grid/generation/discrete/GridTaskActionRuleSet.d.ts +9 -4
  847. package/src/generation/grid/generation/discrete/GridTaskActionRuleSet.d.ts.map +1 -1
  848. package/src/generation/grid/generation/discrete/GridTaskActionRuleSet.js +4 -3
  849. package/src/generation/grid/generation/grid/select/CellSupplierBestN.d.ts +11 -5
  850. package/src/generation/grid/generation/grid/select/CellSupplierBestN.d.ts.map +1 -1
  851. package/src/generation/grid/generation/grid/select/CellSupplierBestN.js +5 -4
  852. package/src/generation/grid/generation/road/GridTaskGenerateRoads.d.ts +9 -4
  853. package/src/generation/grid/generation/road/GridTaskGenerateRoads.d.ts.map +1 -1
  854. package/src/generation/grid/generation/road/GridTaskGenerateRoads.js +12 -10
  855. package/src/generation/grid/generation/util/buildDistanceMapToObjective.d.ts +19 -9
  856. package/src/generation/grid/generation/util/buildDistanceMapToObjective.d.ts.map +1 -1
  857. package/src/generation/grid/generation/util/buildDistanceMapToObjective.js +9 -8
  858. package/src/generation/grid/generation/util/buildPathFromDistanceMap.d.ts +17 -8
  859. package/src/generation/grid/generation/util/buildPathFromDistanceMap.d.ts.map +1 -1
  860. package/src/generation/grid/generation/util/buildPathFromDistanceMap.js +8 -7
  861. package/src/generation/markers/GridActionRuleSet.d.ts +11 -5
  862. package/src/generation/markers/GridActionRuleSet.d.ts.map +1 -1
  863. package/src/generation/markers/GridActionRuleSet.js +5 -4
  864. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts +9 -4
  865. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts.map +1 -1
  866. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.js +4 -3
  867. package/src/generation/markers/actions/MarkerNodeActionImaginary.d.ts +9 -4
  868. package/src/generation/markers/actions/MarkerNodeActionImaginary.d.ts.map +1 -1
  869. package/src/generation/markers/actions/MarkerNodeActionImaginary.js +4 -3
  870. package/src/generation/markers/actions/MarkerProcessingRule.d.ts +11 -5
  871. package/src/generation/markers/actions/MarkerProcessingRule.d.ts.map +1 -1
  872. package/src/generation/markers/actions/MarkerProcessingRule.js +5 -4
  873. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.d.ts +5 -2
  874. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.d.ts.map +1 -1
  875. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.js +2 -1
  876. package/src/generation/markers/actions/terrain/MarkerNodeActionPaintTerrain.d.ts +13 -6
  877. package/src/generation/markers/actions/terrain/MarkerNodeActionPaintTerrain.d.ts.map +1 -1
  878. package/src/generation/markers/actions/terrain/MarkerNodeActionPaintTerrain.js +6 -5
  879. package/src/generation/markers/emitter/MarkerNodeEmitterPredicated.d.ts +7 -3
  880. package/src/generation/markers/emitter/MarkerNodeEmitterPredicated.d.ts.map +1 -1
  881. package/src/generation/markers/emitter/MarkerNodeEmitterPredicated.js +3 -2
  882. package/src/generation/placement/GridCellPlacementRule.d.ts +15 -7
  883. package/src/generation/placement/GridCellPlacementRule.d.ts.map +1 -1
  884. package/src/generation/placement/GridCellPlacementRule.js +7 -6
  885. package/src/shade/descriptor/ObjectDescriptorBase.d.ts +8 -3
  886. package/src/shade/descriptor/ObjectDescriptorBase.d.ts.map +1 -1
  887. package/src/shade/descriptor/ObjectDescriptorBase.js +7 -2
  888. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.d.ts +12 -0
  889. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.d.ts.map +1 -1
  890. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +8 -0
  891. package/src/shade/descriptor/binding/BufferBindingLayout.d.ts +11 -6
  892. package/src/shade/descriptor/binding/BufferBindingLayout.d.ts.map +1 -1
  893. package/src/shade/descriptor/binding/BufferBindingLayout.js +5 -4
  894. package/src/shade/descriptor/binding/SamplerBindingLayout.d.ts +2 -2
  895. package/src/shade/descriptor/binding/SamplerBindingLayout.d.ts.map +1 -1
  896. package/src/shade/descriptor/binding/SamplerBindingLayout.js +1 -1
  897. package/src/shade/descriptor/binding/StorageTextureBindingLayout.d.ts +2 -2
  898. package/src/shade/descriptor/binding/StorageTextureBindingLayout.d.ts.map +1 -1
  899. package/src/shade/descriptor/binding/StorageTextureBindingLayout.js +1 -1
  900. package/src/shade/descriptor/binding/TextureBindingLayout.d.ts +4 -4
  901. package/src/shade/descriptor/binding/TextureBindingLayout.d.ts.map +1 -1
  902. package/src/shade/descriptor/binding/TextureBindingLayout.js +2 -2
  903. package/src/shade/descriptor/blend/BlendComponent.d.ts +6 -6
  904. package/src/shade/descriptor/blend/BlendComponent.d.ts.map +1 -1
  905. package/src/shade/descriptor/blend/BlendComponent.js +3 -3
  906. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.d.ts +12 -0
  907. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.d.ts.map +1 -1
  908. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +8 -0
  909. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts +18 -5
  910. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts.map +1 -1
  911. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +14 -4
  912. package/src/shade/descriptor/pipeline/render/DepthStencilState.d.ts +4 -1
  913. package/src/shade/descriptor/pipeline/render/DepthStencilState.d.ts.map +1 -1
  914. package/src/shade/descriptor/pipeline/render/DepthStencilState.js +3 -0
  915. package/src/shade/descriptor/pipeline/render/FragmentState.d.ts +5 -2
  916. package/src/shade/descriptor/pipeline/render/FragmentState.d.ts.map +1 -1
  917. package/src/shade/descriptor/pipeline/render/FragmentState.js +4 -1
  918. package/src/shade/descriptor/pipeline/render/PrimitiveState.d.ts +8 -8
  919. package/src/shade/descriptor/pipeline/render/PrimitiveState.d.ts.map +1 -1
  920. package/src/shade/descriptor/pipeline/render/PrimitiveState.js +4 -4
  921. package/src/shade/descriptor/pipeline/render/StencilFaceState.d.ts +16 -4
  922. package/src/shade/descriptor/pipeline/render/StencilFaceState.d.ts.map +1 -1
  923. package/src/shade/descriptor/pipeline/render/StencilFaceState.js +12 -0
  924. package/src/shade/descriptor/pipeline/render/VertexState.d.ts +5 -2
  925. package/src/shade/descriptor/pipeline/render/VertexState.d.ts.map +1 -1
  926. package/src/shade/descriptor/pipeline/render/VertexState.js +4 -1
  927. package/src/shade/descriptor/texture/SamplerDescriptor.d.ts +24 -6
  928. package/src/shade/descriptor/texture/SamplerDescriptor.d.ts.map +1 -1
  929. package/src/shade/descriptor/texture/SamplerDescriptor.js +18 -0
  930. package/src/shade/descriptor/texture/TextureDescriptor.d.ts +2 -2
  931. package/src/shade/descriptor/texture/TextureDescriptor.d.ts.map +1 -1
  932. package/src/shade/descriptor/texture/TextureDescriptor.js +1 -1
  933. package/src/shade/device/ShadeGPUCommandContext.d.ts +46 -12
  934. package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
  935. package/src/shade/device/ShadeGPUCommandContext.js +28 -8
  936. package/src/shade/device/graph/GraphicsExecutionContext.d.ts +6 -0
  937. package/src/shade/device/graph/GraphicsExecutionContext.d.ts.map +1 -1
  938. package/src/shade/device/graph/GraphicsExecutionContext.js +5 -0
  939. package/src/shade/device/graph/TextureResourceDescriptor.d.ts +13 -6
  940. package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
  941. package/src/shade/device/graph/TextureResourceDescriptor.js +6 -5
  942. package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts +6 -0
  943. package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts.map +1 -1
  944. package/src/shade/device/pass/ShadeGPUComputePassEncoder.js +5 -0
  945. package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts +6 -0
  946. package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts.map +1 -1
  947. package/src/shade/device/pass/ShadeGPURenderPassEncoder.js +5 -0
  948. package/src/shade/device/pipeline/ComputePipelineManager.d.ts +9 -1
  949. package/src/shade/device/pipeline/ComputePipelineManager.d.ts.map +1 -1
  950. package/src/shade/device/pipeline/ComputePipelineManager.js +6 -0
  951. package/src/shade/device/pipeline/PipelineLayoutManager.d.ts +6 -0
  952. package/src/shade/device/pipeline/PipelineLayoutManager.d.ts.map +1 -1
  953. package/src/shade/device/pipeline/PipelineLayoutManager.js +5 -0
  954. package/src/shade/device/pipeline/RenderPipelineManager.d.ts +7 -1
  955. package/src/shade/device/pipeline/RenderPipelineManager.d.ts.map +1 -1
  956. package/src/shade/device/pipeline/RenderPipelineManager.js +5 -0
  957. package/src/shade/device/shader/ShaderModuleCompiler.d.ts +4 -0
  958. package/src/shade/device/shader/ShaderModuleCompiler.d.ts.map +1 -1
  959. package/src/shade/device/shader/ShaderModuleCompiler.js +4 -0
  960. package/src/shade/device/timing/profile/GPUFrameRecorder.d.ts +6 -0
  961. package/src/shade/device/timing/profile/GPUFrameRecorder.d.ts.map +1 -1
  962. package/src/shade/device/timing/profile/GPUFrameRecorder.js +5 -0
  963. package/src/shade/device/timing/profile/GPUProfileFrame.d.ts +6 -0
  964. package/src/shade/device/timing/profile/GPUProfileFrame.d.ts.map +1 -1
  965. package/src/shade/device/timing/profile/GPUProfileFrame.js +5 -0
  966. package/src/shade/device/timing/profile/GPUProfileSession.d.ts +1 -0
  967. package/src/shade/device/timing/profile/GPUProfileSession.d.ts.map +1 -1
  968. package/src/shade/device/timing/profile/GPUProfileSession.js +4 -0
  969. package/src/shade/device/timing/profile/GPUProfileSpan.d.ts +4 -0
  970. package/src/shade/device/timing/profile/GPUProfileSpan.d.ts.map +1 -1
  971. package/src/shade/device/timing/profile/GPUProfileSpan.js +4 -0
  972. package/src/shade/playground/add_random_meshes.d.ts +19 -8
  973. package/src/shade/playground/add_random_meshes.d.ts.map +1 -1
  974. package/src/shade/playground/add_random_meshes.js +8 -7
  975. package/src/shade/playground/ground_seam/capture_scene_color.d.ts +4 -0
  976. package/src/shade/playground/ground_seam/capture_scene_color.d.ts.map +1 -1
  977. package/src/shade/playground/particle_ecs/index.html +0 -2
  978. package/src/shade/playground/particle_ecs/main.js +8 -29
  979. package/src/shade/playground/particle_system/main.js +8 -21
  980. package/src/shade/playground/particle_system/particle_prototype.js +8 -8
  981. package/src/shade/playground/particle_system/particle_scene.d.ts +0 -61
  982. package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
  983. package/src/shade/playground/particle_system/particle_scene.js +0 -57
  984. package/src/shade/playground/ssr_variance/reference.d.ts +1 -1
  985. package/src/shade/playground/ssr_variance/reference.d.ts.map +1 -1
  986. package/src/shade/playground/vgeo_viewer/README.md +29 -2
  987. package/src/shade/playground/vgeo_viewer/cut_geometry.d.ts.map +1 -1
  988. package/src/shade/playground/vgeo_viewer/cut_geometry.js +3 -40
  989. package/src/shade/playground/vgeo_viewer/main.js +101 -50
  990. package/src/shade/playground/vgeo_viewer/select_cut.d.ts +19 -0
  991. package/src/shade/playground/vgeo_viewer/select_cut.d.ts.map +1 -1
  992. package/src/shade/playground/vgeo_viewer/select_cut.js +53 -9
  993. package/src/shade/renderer/GPUSamplerManager.d.ts +4 -0
  994. package/src/shade/renderer/GPUSamplerManager.d.ts.map +1 -1
  995. package/src/shade/renderer/GPUSamplerManager.js +4 -0
  996. package/src/shade/renderer/GraphicsContext.d.ts +2 -0
  997. package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
  998. package/src/shade/renderer/GraphicsContext.js +5 -0
  999. package/src/shade/renderer/Renderer.d.ts +14 -4
  1000. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  1001. package/src/shade/renderer/Renderer.js +70 -67
  1002. package/src/shade/renderer/ResourceManager.d.ts +10 -0
  1003. package/src/shade/renderer/ResourceManager.d.ts.map +1 -1
  1004. package/src/shade/renderer/ResourceManager.js +7 -0
  1005. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +18 -11
  1006. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  1007. package/src/shade/renderer/animation/GPUAnimationManager.js +2063 -1958
  1008. package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts +2 -0
  1009. package/src/shade/renderer/animation/ShadeAnimationChannel.d.ts.map +1 -1
  1010. package/src/shade/renderer/animation/ShadeAnimationChannel.js +5 -0
  1011. package/src/shade/renderer/animation/ShadeAnimationClip.d.ts +4 -0
  1012. package/src/shade/renderer/animation/ShadeAnimationClip.d.ts.map +1 -1
  1013. package/src/shade/renderer/animation/ShadeAnimationClip.js +4 -0
  1014. package/src/shade/renderer/animation/Skin.d.ts +6 -0
  1015. package/src/shade/renderer/animation/Skin.d.ts.map +1 -1
  1016. package/src/shade/renderer/animation/Skin.js +5 -0
  1017. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +48 -0
  1018. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  1019. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +201 -14
  1020. package/src/shade/renderer/binding/BindGroupDescriptor.d.ts +2 -1
  1021. package/src/shade/renderer/binding/BindGroupDescriptor.d.ts.map +1 -1
  1022. package/src/shade/renderer/binding/BindGroupDescriptor.js +4 -0
  1023. package/src/shade/renderer/binding/BindGroupManager.d.ts +1 -0
  1024. package/src/shade/renderer/binding/BindGroupManager.d.ts.map +1 -1
  1025. package/src/shade/renderer/binding/BindGroupManager.js +4 -0
  1026. package/src/shade/renderer/buffer/GPUBufferAllocatorNative.d.ts +4 -0
  1027. package/src/shade/renderer/buffer/GPUBufferAllocatorNative.d.ts.map +1 -1
  1028. package/src/shade/renderer/buffer/GPUBufferAllocatorNative.js +4 -0
  1029. package/src/shade/renderer/buffer/GPUTypedBuffer.d.ts +20 -8
  1030. package/src/shade/renderer/buffer/GPUTypedBuffer.d.ts.map +1 -1
  1031. package/src/shade/renderer/buffer/GPUTypedBuffer.js +11 -6
  1032. package/src/shade/renderer/buffer/graph_inspect_gpu_buffer.d.ts +15 -7
  1033. package/src/shade/renderer/buffer/graph_inspect_gpu_buffer.d.ts.map +1 -1
  1034. package/src/shade/renderer/buffer/graph_inspect_gpu_buffer.js +7 -6
  1035. package/src/shade/renderer/buffer/inspect_gpu_buffer.d.ts +26 -12
  1036. package/src/shade/renderer/buffer/inspect_gpu_buffer.d.ts.map +1 -1
  1037. package/src/shade/renderer/buffer/inspect_gpu_buffer.js +12 -10
  1038. package/src/shade/renderer/buffer/inspect_gpu_buffer_typed.d.ts +13 -6
  1039. package/src/shade/renderer/buffer/inspect_gpu_buffer_typed.d.ts.map +1 -1
  1040. package/src/shade/renderer/buffer/inspect_gpu_buffer_typed.js +6 -5
  1041. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +13 -5
  1042. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
  1043. package/src/shade/renderer/buffer/table/GPUDatabase.js +201 -66
  1044. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts +97 -3
  1045. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
  1046. package/src/shade/renderer/buffer/table/GPUTypedTable.js +419 -2
  1047. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts +4 -0
  1048. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts.map +1 -1
  1049. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.js +4 -0
  1050. package/src/shade/renderer/buffer/table/GPU_TABLE_PARTIAL_UPLOAD_DESCRIPTOR_WORDS.d.ts +14 -0
  1051. package/src/shade/renderer/buffer/table/GPU_TABLE_PARTIAL_UPLOAD_DESCRIPTOR_WORDS.d.ts.map +1 -0
  1052. package/src/shade/renderer/buffer/table/GPU_TABLE_PARTIAL_UPLOAD_DESCRIPTOR_WORDS.js +13 -0
  1053. package/src/shade/renderer/buffer/table/gpu_table_partial_upload_shader.d.ts +17 -0
  1054. package/src/shade/renderer/buffer/table/gpu_table_partial_upload_shader.d.ts.map +1 -0
  1055. package/src/shade/renderer/buffer/table/gpu_table_partial_upload_shader.js +116 -0
  1056. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts +11 -4
  1057. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
  1058. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +9 -3
  1059. package/src/shade/renderer/camera/CameraManager.d.ts +4 -0
  1060. package/src/shade/renderer/camera/CameraManager.d.ts.map +1 -1
  1061. package/src/shade/renderer/camera/CameraManager.js +4 -0
  1062. package/src/shade/renderer/camera/GPUCameraContext.d.ts +4 -2
  1063. package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
  1064. package/src/shade/renderer/camera/GPUCameraContext.js +5 -0
  1065. package/src/shade/renderer/extension/FrameContext.d.ts +15 -5
  1066. package/src/shade/renderer/extension/FrameContext.d.ts.map +1 -1
  1067. package/src/shade/renderer/extension/FrameContext.js +7 -0
  1068. package/src/shade/renderer/extension/FrameRecord.d.ts +7 -1
  1069. package/src/shade/renderer/extension/FrameRecord.d.ts.map +1 -1
  1070. package/src/shade/renderer/extension/FrameRecord.js +5 -0
  1071. package/src/shade/renderer/extension/RenderExtension.d.ts +4 -0
  1072. package/src/shade/renderer/extension/RenderExtension.d.ts.map +1 -1
  1073. package/src/shade/renderer/extension/RenderExtension.js +4 -0
  1074. package/src/shade/renderer/geometry/Attribute.d.ts +2 -2
  1075. package/src/shade/renderer/geometry/Attribute.d.ts.map +1 -1
  1076. package/src/shade/renderer/geometry/Attribute.js +1 -1
  1077. package/src/shade/renderer/geometry/GPUGeometryManager.d.ts +30 -2
  1078. package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
  1079. package/src/shade/renderer/geometry/GPUGeometryManager.js +642 -591
  1080. package/src/shade/renderer/geometry/GPUGeometryMetadata.d.ts +4 -0
  1081. package/src/shade/renderer/geometry/GPUGeometryMetadata.d.ts.map +1 -1
  1082. package/src/shade/renderer/geometry/GPUGeometryMetadata.js +4 -0
  1083. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts +7 -3
  1084. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts.map +1 -1
  1085. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +3 -2
  1086. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +13 -4
  1087. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
  1088. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +843 -730
  1089. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts +12 -0
  1090. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts.map +1 -1
  1091. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.js +13 -0
  1092. package/src/shade/renderer/geometry/bvh/bvh_to_gpu_buffer.d.ts +11 -5
  1093. package/src/shade/renderer/geometry/bvh/bvh_to_gpu_buffer.d.ts.map +1 -1
  1094. package/src/shade/renderer/geometry/bvh/bvh_to_gpu_buffer.js +5 -4
  1095. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts +29 -4
  1096. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
  1097. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +195 -33
  1098. package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts +1 -0
  1099. package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts.map +1 -1
  1100. package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +4 -0
  1101. package/src/shade/renderer/geometry/meshlet_batch_to_bvh.d.ts +13 -6
  1102. package/src/shade/renderer/geometry/meshlet_batch_to_bvh.d.ts.map +1 -1
  1103. package/src/shade/renderer/geometry/meshlet_batch_to_bvh.js +6 -5
  1104. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +2 -0
  1105. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
  1106. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +5 -0
  1107. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts +13 -6
  1108. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts.map +1 -1
  1109. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +6 -5
  1110. package/src/shade/renderer/geometry/virtual/MICRON_COMPARISON_2026_08_20.md +17 -0
  1111. package/src/shade/renderer/geometry/virtual/VGEO_FORMAT.md +141 -24
  1112. package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_DESIGN.md +204 -64
  1113. package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_PLAN.md +110 -10
  1114. package/src/shade/renderer/geometry/virtual/VK_LOD_CLUSTERS_COMPARISON_2026_08_20.md +19 -0
  1115. package/src/shade/renderer/geometry/virtual/format/read/VGeoByteSource.d.ts +19 -6
  1116. package/src/shade/renderer/geometry/virtual/format/read/VGeoByteSource.d.ts.map +1 -1
  1117. package/src/shade/renderer/geometry/virtual/format/read/VGeoByteSource.js +26 -7
  1118. package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.d.ts +204 -14
  1119. package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.d.ts.map +1 -1
  1120. package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.js +803 -51
  1121. package/src/shade/renderer/geometry/virtual/format/read/VGeoReadOptions.d.ts +49 -13
  1122. package/src/shade/renderer/geometry/virtual/format/read/VGeoReadOptions.d.ts.map +1 -1
  1123. package/src/shade/renderer/geometry/virtual/format/read/VGeoReadOptions.js +52 -14
  1124. package/src/shade/renderer/geometry/virtual/format/read/tool/VGEO_MAX_AUDIT_BYTES.d.ts +20 -0
  1125. package/src/shade/renderer/geometry/virtual/format/read/tool/VGEO_MAX_AUDIT_BYTES.d.ts.map +1 -0
  1126. package/src/shade/renderer/geometry/virtual/format/read/tool/VGEO_MAX_AUDIT_BYTES.js +19 -0
  1127. package/src/shade/renderer/geometry/virtual/format/read/tool/vgeo_audit_container.d.ts +27 -0
  1128. package/src/shade/renderer/geometry/virtual/format/read/tool/vgeo_audit_container.d.ts.map +1 -0
  1129. package/src/shade/renderer/geometry/virtual/format/read/tool/vgeo_audit_container.js +48 -0
  1130. package/src/shade/renderer/geometry/virtual/format/read/tool/vgeo_install_all_pages.d.ts +29 -0
  1131. package/src/shade/renderer/geometry/virtual/format/read/tool/vgeo_install_all_pages.d.ts.map +1 -0
  1132. package/src/shade/renderer/geometry/virtual/format/read/tool/vgeo_install_all_pages.js +60 -0
  1133. package/src/shade/renderer/geometry/virtual/format/read/vgeo_fetch_byte_source.d.ts +8 -1
  1134. package/src/shade/renderer/geometry/virtual/format/read/vgeo_fetch_byte_source.d.ts.map +1 -1
  1135. package/src/shade/renderer/geometry/virtual/format/read/vgeo_fetch_byte_source.js +32 -2
  1136. package/src/shade/renderer/geometry/virtual/residency/VGeoResidencyManager.d.ts +258 -0
  1137. package/src/shade/renderer/geometry/virtual/residency/VGeoResidencyManager.d.ts.map +1 -0
  1138. package/src/shade/renderer/geometry/virtual/residency/VGeoResidencyManager.js +723 -0
  1139. package/src/shade/renderer/geometry/virtual/residency/VGeoResidencyOptions.d.ts +49 -0
  1140. package/src/shade/renderer/geometry/virtual/residency/VGeoResidencyOptions.d.ts.map +1 -0
  1141. package/src/shade/renderer/geometry/virtual/residency/VGeoResidencyOptions.js +50 -0
  1142. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.d.ts +11 -5
  1143. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.d.ts.map +1 -1
  1144. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_bake_for_scene.js +5 -4
  1145. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts +12 -5
  1146. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.d.ts.map +1 -1
  1147. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_generate_tree_from_scene.js +5 -4
  1148. package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.d.ts +11 -5
  1149. package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.d.ts.map +1 -1
  1150. package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +5 -4
  1151. package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.d.ts +5 -1
  1152. package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.d.ts.map +1 -1
  1153. package/src/shade/renderer/global_illumination/lpv/GPULightProbeVolume.js +4 -0
  1154. package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.d.ts +4 -0
  1155. package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.d.ts.map +1 -1
  1156. package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.js +4 -0
  1157. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts +7 -1
  1158. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
  1159. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +5 -0
  1160. package/src/shade/renderer/global_illumination/lpv/graph_bake_irradiance_lookup_2d.d.ts +11 -5
  1161. package/src/shade/renderer/global_illumination/lpv/graph_bake_irradiance_lookup_2d.d.ts.map +1 -1
  1162. package/src/shade/renderer/global_illumination/lpv/graph_bake_irradiance_lookup_2d.js +5 -4
  1163. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts +9 -4
  1164. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
  1165. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +4 -3
  1166. package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.d.ts +9 -4
  1167. package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.d.ts.map +1 -1
  1168. package/src/shade/renderer/global_illumination/lpv/placement/graph_generate_probe_locations.js +4 -3
  1169. package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts +7 -3
  1170. package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.d.ts.map +1 -1
  1171. package/src/shade/renderer/global_illumination/lpv/placement/software/lpv_generate_probe_locations2.js +3 -2
  1172. package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.d.ts +28 -8
  1173. package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.d.ts.map +1 -1
  1174. package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +17 -6
  1175. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts +13 -6
  1176. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts.map +1 -1
  1177. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.js +6 -5
  1178. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lpv_store_sh.d.ts +15 -7
  1179. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lpv_store_sh.d.ts.map +1 -1
  1180. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lpv_store_sh.js +7 -6
  1181. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts +17 -8
  1182. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
  1183. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +8 -7
  1184. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.d.ts +17 -8
  1185. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.d.ts.map +1 -1
  1186. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.js +8 -7
  1187. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts +15 -7
  1188. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
  1189. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.js +7 -6
  1190. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +19 -9
  1191. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts.map +1 -1
  1192. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +9 -8
  1193. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts +9 -4
  1194. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts.map +1 -1
  1195. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.js +4 -3
  1196. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +11 -5
  1197. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -1
  1198. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +5 -4
  1199. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts +9 -1
  1200. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
  1201. package/src/shade/renderer/hiz/HierarchicalZBuffer.js +6 -0
  1202. package/src/shade/renderer/hiz/generate_downsampler_code.d.ts +11 -5
  1203. package/src/shade/renderer/hiz/generate_downsampler_code.d.ts.map +1 -1
  1204. package/src/shade/renderer/hiz/generate_downsampler_code.js +5 -4
  1205. package/src/shade/renderer/hiz/graph_build_hzb.d.ts +13 -6
  1206. package/src/shade/renderer/hiz/graph_build_hzb.d.ts.map +1 -1
  1207. package/src/shade/renderer/hiz/graph_build_hzb.js +6 -5
  1208. package/src/shade/renderer/light/GPULightCollection.d.ts +4 -1
  1209. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  1210. package/src/shade/renderer/light/GPULightCollection.js +6 -0
  1211. package/src/shade/renderer/light/LightCollection.d.ts +9 -3
  1212. package/src/shade/renderer/light/LightCollection.d.ts.map +1 -1
  1213. package/src/shade/renderer/light/LightCollection.js +5 -0
  1214. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts +11 -5
  1215. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
  1216. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +17 -14
  1217. package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts +13 -6
  1218. package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts.map +1 -1
  1219. package/src/shade/renderer/light/cluster/graph_assign_clsuters.js +6 -5
  1220. package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts +13 -6
  1221. package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts.map +1 -1
  1222. package/src/shade/renderer/light/cluster/graph_build_light_clusters.js +6 -5
  1223. package/src/shade/renderer/light/environment/graph_filter_environment_map.d.ts +7 -3
  1224. package/src/shade/renderer/light/environment/graph_filter_environment_map.d.ts.map +1 -1
  1225. package/src/shade/renderer/light/environment/graph_filter_environment_map.js +3 -2
  1226. package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.d.ts +11 -5
  1227. package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.d.ts.map +1 -1
  1228. package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.js +5 -4
  1229. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  1230. package/src/shade/renderer/material/GPUMaterialContext.d.ts +17 -1
  1231. package/src/shade/renderer/material/GPUMaterialContext.d.ts.map +1 -1
  1232. package/src/shade/renderer/material/GPUMaterialContext.js +10 -0
  1233. package/src/shade/renderer/material/GPUMaterialManager.d.ts +19 -5
  1234. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  1235. package/src/shade/renderer/material/GPUMaterialManager.js +19 -4
  1236. package/src/shade/renderer/material/ShadeMaterial.d.ts +2 -1
  1237. package/src/shade/renderer/material/ShadeMaterial.d.ts.map +1 -1
  1238. package/src/shade/renderer/material/ShadeMaterial.js +4 -0
  1239. package/src/shade/renderer/material/StandardShadeMaterial.d.ts +6 -0
  1240. package/src/shade/renderer/material/StandardShadeMaterial.d.ts.map +1 -1
  1241. package/src/shade/renderer/material/StandardShadeMaterial.js +5 -0
  1242. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +12 -0
  1243. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
  1244. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +8 -0
  1245. package/src/shade/renderer/particles/DESIGN.md +82 -69
  1246. package/src/shade/renderer/particles/GPUParticleSystem.d.ts +93 -48
  1247. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  1248. package/src/shade/renderer/particles/GPUParticleSystem.js +117 -176
  1249. package/src/shade/renderer/particles/ParticleConstants.d.ts +6 -12
  1250. package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
  1251. package/src/shade/renderer/particles/ParticleConstants.js +6 -13
  1252. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +4 -4
  1253. package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +6 -6
  1254. package/src/shade/renderer/particles/coherence/particle_program_buckets.d.ts +2 -1
  1255. package/src/shade/renderer/particles/coherence/particle_program_buckets.d.ts.map +1 -1
  1256. package/src/shade/renderer/particles/coherence/particle_program_buckets.js +6 -8
  1257. package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts.map +1 -1
  1258. package/src/shade/renderer/particles/coherence/shader_particle_bucket.js +4 -3
  1259. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts +10 -14
  1260. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts.map +1 -1
  1261. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.js +10 -14
  1262. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +6 -5
  1263. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -1
  1264. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +6 -5
  1265. package/src/shade/renderer/particles/graph_particles.d.ts +19 -32
  1266. package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
  1267. package/src/shade/renderer/particles/graph_particles.js +18 -25
  1268. package/src/shade/renderer/particles/graph_particles_avboit.js +16 -16
  1269. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +3 -2
  1270. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
  1271. package/src/shade/renderer/particles/runtime/EmitterRegistry.js +31 -27
  1272. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +4 -4
  1273. package/src/shade/renderer/particles/runtime/ParticleEmitter.js +4 -4
  1274. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +4 -4
  1275. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts +7 -6
  1276. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -1
  1277. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +7 -6
  1278. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +4 -3
  1279. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts.map +1 -1
  1280. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +4 -3
  1281. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts +2 -2
  1282. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +10 -10
  1283. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +3 -3
  1284. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts.map +1 -1
  1285. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.js +2 -1
  1286. package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
  1287. package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +13 -16
  1288. package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +1 -1
  1289. package/src/shade/renderer/particles/shaders/shader_particle_render.js +22 -19
  1290. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts +10 -3
  1291. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
  1292. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +12 -2
  1293. package/src/shade/renderer/path_tracer/graph_path_trace_scene.d.ts +7 -3
  1294. package/src/shade/renderer/path_tracer/graph_path_trace_scene.d.ts.map +1 -1
  1295. package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +3 -2
  1296. package/src/shade/renderer/postprocess/bloom/graph_bloom_downsample.d.ts +11 -5
  1297. package/src/shade/renderer/postprocess/bloom/graph_bloom_downsample.d.ts.map +1 -1
  1298. package/src/shade/renderer/postprocess/bloom/graph_bloom_downsample.js +5 -4
  1299. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.d.ts +13 -6
  1300. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.d.ts.map +1 -1
  1301. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.js +11 -9
  1302. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts +31 -15
  1303. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts.map +1 -1
  1304. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.js +15 -14
  1305. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts +21 -10
  1306. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts.map +1 -1
  1307. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +10 -9
  1308. package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.d.ts +17 -8
  1309. package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.d.ts.map +1 -1
  1310. package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.js +8 -7
  1311. package/src/shade/renderer/postprocess/dof/gather/DepthOfFieldU.d.ts +6 -0
  1312. package/src/shade/renderer/postprocess/dof/gather/DepthOfFieldU.d.ts.map +1 -1
  1313. package/src/shade/renderer/postprocess/dof/gather/DepthOfFieldU.js +5 -0
  1314. package/src/shade/renderer/postprocess/dof/raymarch/DepthOfField.d.ts +6 -0
  1315. package/src/shade/renderer/postprocess/dof/raymarch/DepthOfField.d.ts.map +1 -1
  1316. package/src/shade/renderer/postprocess/dof/raymarch/DepthOfField.js +5 -0
  1317. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts +14 -6
  1318. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
  1319. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +6 -4
  1320. package/src/shade/renderer/postprocess/gtao/graph_build_depth_mipmap.d.ts +13 -6
  1321. package/src/shade/renderer/postprocess/gtao/graph_build_depth_mipmap.d.ts.map +1 -1
  1322. package/src/shade/renderer/postprocess/gtao/graph_build_depth_mipmap.js +6 -5
  1323. package/src/shade/renderer/postprocess/gtao/render_copy_texture.d.ts +28 -13
  1324. package/src/shade/renderer/postprocess/gtao/render_copy_texture.d.ts.map +1 -1
  1325. package/src/shade/renderer/postprocess/gtao/render_copy_texture.js +13 -11
  1326. package/src/shade/renderer/postprocess/motion_blur/MotionBlur.d.ts +4 -0
  1327. package/src/shade/renderer/postprocess/motion_blur/MotionBlur.d.ts.map +1 -1
  1328. package/src/shade/renderer/postprocess/motion_blur/MotionBlur.js +4 -0
  1329. package/src/shade/renderer/postprocess/nss/NSS.d.ts +7 -1
  1330. package/src/shade/renderer/postprocess/nss/NSS.d.ts.map +1 -1
  1331. package/src/shade/renderer/postprocess/nss/NSS.js +5 -0
  1332. package/src/shade/renderer/postprocess/ssr/graph_build_depth_max_pyramid.d.ts +9 -4
  1333. package/src/shade/renderer/postprocess/ssr/graph_build_depth_max_pyramid.d.ts.map +1 -1
  1334. package/src/shade/renderer/postprocess/ssr/graph_build_depth_max_pyramid.js +4 -3
  1335. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.d.ts +13 -6
  1336. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.d.ts.map +1 -1
  1337. package/src/shade/renderer/postprocess/ssr/ssr_graph_prefilter_color.js +6 -5
  1338. package/src/shade/renderer/postprocess/taa/TAA.d.ts +15 -7
  1339. package/src/shade/renderer/postprocess/taa/TAA.d.ts.map +1 -1
  1340. package/src/shade/renderer/postprocess/taa/TAA.js +7 -6
  1341. package/src/shade/renderer/postprocess/velocity/graph_add_camera_velocity.d.ts +13 -6
  1342. package/src/shade/renderer/postprocess/velocity/graph_add_camera_velocity.d.ts.map +1 -1
  1343. package/src/shade/renderer/postprocess/velocity/graph_add_camera_velocity.js +6 -5
  1344. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.d.ts +11 -5
  1345. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.d.ts.map +1 -1
  1346. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.js +5 -4
  1347. package/src/shade/renderer/rasterize/compute/graph_mesh_sphere_cull.d.ts +11 -5
  1348. package/src/shade/renderer/rasterize/compute/graph_mesh_sphere_cull.d.ts.map +1 -1
  1349. package/src/shade/renderer/rasterize/compute/graph_mesh_sphere_cull.js +5 -4
  1350. package/src/shade/renderer/rasterize/execute_rasterization_jobs.d.ts +12 -5
  1351. package/src/shade/renderer/rasterize/execute_rasterization_jobs.d.ts.map +1 -1
  1352. package/src/shade/renderer/rasterize/execute_rasterization_jobs.js +5 -4
  1353. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts +2 -0
  1354. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.d.ts.map +1 -1
  1355. package/src/shade/renderer/rasterize/expand/GPUCollectionLimits.js +5 -0
  1356. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts +11 -5
  1357. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts.map +1 -1
  1358. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.js +5 -4
  1359. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.d.ts +9 -4
  1360. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.d.ts.map +1 -1
  1361. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_scene_meshes_cull_and_classify_buckets.js +4 -3
  1362. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts +11 -5
  1363. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts.map +1 -1
  1364. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.js +5 -4
  1365. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.d.ts +15 -7
  1366. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.d.ts.map +1 -1
  1367. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.js +7 -6
  1368. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_two_way.d.ts +15 -7
  1369. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_two_way.d.ts.map +1 -1
  1370. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_two_way.js +7 -6
  1371. package/src/shade/renderer/rasterize/expand/graph_meshlets_expand.d.ts +13 -6
  1372. package/src/shade/renderer/rasterize/expand/graph_meshlets_expand.d.ts.map +1 -1
  1373. package/src/shade/renderer/rasterize/expand/graph_meshlets_expand.js +6 -5
  1374. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts +17 -8
  1375. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts.map +1 -1
  1376. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.js +8 -7
  1377. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_two_way.d.ts +13 -6
  1378. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_two_way.d.ts.map +1 -1
  1379. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_two_way.js +6 -5
  1380. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts +21 -10
  1381. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts.map +1 -1
  1382. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.js +10 -9
  1383. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_by_material_side.d.ts +13 -6
  1384. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_by_material_side.d.ts.map +1 -1
  1385. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_by_material_side.js +6 -5
  1386. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_one_way.d.ts +17 -8
  1387. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_one_way.d.ts.map +1 -1
  1388. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_one_way.js +8 -7
  1389. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_two_way.d.ts +13 -6
  1390. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_two_way.d.ts.map +1 -1
  1391. package/src/shade/renderer/rasterize/expand/graph_triangles_filter_two_way.js +6 -5
  1392. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts +15 -7
  1393. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts.map +1 -1
  1394. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.js +7 -6
  1395. package/src/shade/renderer/rasterize/fast/graph_extract_meshes_from_bucket.d.ts +11 -5
  1396. package/src/shade/renderer/rasterize/fast/graph_extract_meshes_from_bucket.d.ts.map +1 -1
  1397. package/src/shade/renderer/rasterize/fast/graph_extract_meshes_from_bucket.js +5 -4
  1398. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts +9 -4
  1399. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.d.ts.map +1 -1
  1400. package/src/shade/renderer/rasterize/fast/graph_rasterize_scene_fast.js +4 -3
  1401. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +80 -37
  1402. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
  1403. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +37 -33
  1404. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts +28 -13
  1405. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts.map +1 -1
  1406. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +13 -12
  1407. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts.map +1 -1
  1408. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +12 -11
  1409. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
  1410. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +5 -4
  1411. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +9 -4
  1412. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
  1413. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +4 -3
  1414. package/src/shade/renderer/restir/di/ReSTIRDI.d.ts +10 -0
  1415. package/src/shade/renderer/restir/di/ReSTIRDI.d.ts.map +1 -1
  1416. package/src/shade/renderer/restir/di/ReSTIRDI.js +7 -0
  1417. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +2 -0
  1418. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
  1419. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +5 -0
  1420. package/src/shade/renderer/scene/GPUSceneContext.d.ts +4 -0
  1421. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  1422. package/src/shade/renderer/scene/GPUSceneContext.js +15 -0
  1423. package/src/shade/renderer/scene/InstanceBatch.d.ts +11 -3
  1424. package/src/shade/renderer/scene/InstanceBatch.d.ts.map +1 -1
  1425. package/src/shade/renderer/scene/InstanceBatch.js +6 -0
  1426. package/src/shade/renderer/scene/Mesh.d.ts +8 -2
  1427. package/src/shade/renderer/scene/Mesh.d.ts.map +1 -1
  1428. package/src/shade/renderer/scene/Mesh.js +6 -1
  1429. package/src/shade/renderer/scene/SceneManager.d.ts +6 -0
  1430. package/src/shade/renderer/scene/SceneManager.d.ts.map +1 -1
  1431. package/src/shade/renderer/scene/SceneManager.js +5 -0
  1432. package/src/shade/renderer/scene/SkinnedMesh.d.ts +4 -0
  1433. package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +1 -1
  1434. package/src/shade/renderer/scene/SkinnedMesh.js +4 -0
  1435. package/src/shade/renderer/scene/serialization/serialize_scene.d.ts +7 -3
  1436. package/src/shade/renderer/scene/serialization/serialize_scene.d.ts.map +1 -1
  1437. package/src/shade/renderer/scene/serialization/serialize_scene.js +3 -2
  1438. package/src/shade/renderer/shader/ComputeShader.d.ts +64 -29
  1439. package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
  1440. package/src/shade/renderer/shader/ComputeShader.js +29 -23
  1441. package/src/shade/renderer/shader/ImageShader.d.ts +9 -4
  1442. package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
  1443. package/src/shade/renderer/shader/ImageShader.js +4 -3
  1444. package/src/shade/renderer/shader/ShaderDescriptor.d.ts +10 -4
  1445. package/src/shade/renderer/shader/ShaderDescriptor.d.ts.map +1 -1
  1446. package/src/shade/renderer/shader/ShaderDescriptor.js +4 -3
  1447. package/src/shade/renderer/shader/chunk/brdf/dfg/generate_dfg_texture.d.ts +7 -3
  1448. package/src/shade/renderer/shader/chunk/brdf/dfg/generate_dfg_texture.d.ts.map +1 -1
  1449. package/src/shade/renderer/shader/chunk/brdf/dfg/generate_dfg_texture.js +6 -4
  1450. package/src/shade/renderer/shader/fullscreen/create_full_quad_pipeline_descriptor.d.ts +13 -6
  1451. package/src/shade/renderer/shader/fullscreen/create_full_quad_pipeline_descriptor.d.ts.map +1 -1
  1452. package/src/shade/renderer/shader/fullscreen/create_full_quad_pipeline_descriptor.js +6 -5
  1453. package/src/shade/renderer/shader/graph/compute/graph_compute_indirect_pass.d.ts +13 -6
  1454. package/src/shade/renderer/shader/graph/compute/graph_compute_indirect_pass.d.ts.map +1 -1
  1455. package/src/shade/renderer/shader/graph/compute/graph_compute_indirect_pass.js +6 -5
  1456. package/src/shade/renderer/shader/graph/compute/graph_compute_pass.d.ts +13 -6
  1457. package/src/shade/renderer/shader/graph/compute/graph_compute_pass.d.ts.map +1 -1
  1458. package/src/shade/renderer/shader/graph/compute/graph_compute_pass.js +6 -5
  1459. package/src/shade/renderer/shader/graph/graph_image_pass.d.ts +27 -13
  1460. package/src/shade/renderer/shader/graph/graph_image_pass.d.ts.map +1 -1
  1461. package/src/shade/renderer/shader/graph/graph_image_pass.js +13 -12
  1462. package/src/shade/renderer/shader/graph/graph_import_raw_buffer.d.ts +15 -7
  1463. package/src/shade/renderer/shader/graph/graph_import_raw_buffer.d.ts.map +1 -1
  1464. package/src/shade/renderer/shader/graph/graph_import_raw_buffer.js +7 -6
  1465. package/src/shade/renderer/shader/graph/graph_import_typed_buffer.d.ts +13 -6
  1466. package/src/shade/renderer/shader/graph/graph_import_typed_buffer.d.ts.map +1 -1
  1467. package/src/shade/renderer/shader/graph/graph_import_typed_buffer.js +6 -5
  1468. package/src/shade/renderer/shader/pass/RenderPassColorAttachmentDescriptor.d.ts +7 -3
  1469. package/src/shade/renderer/shader/pass/RenderPassColorAttachmentDescriptor.d.ts.map +1 -1
  1470. package/src/shade/renderer/shader/pass/RenderPassColorAttachmentDescriptor.js +3 -2
  1471. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts +49 -23
  1472. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
  1473. package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +23 -20
  1474. package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.d.ts +6 -0
  1475. package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.d.ts.map +1 -1
  1476. package/src/shade/renderer/shader/resource/ShaderResourceDescriptor.js +9 -0
  1477. package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts +11 -2
  1478. package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts.map +1 -1
  1479. package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.js +7 -1
  1480. package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts +10 -3
  1481. package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts.map +1 -1
  1482. package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.js +9 -2
  1483. package/src/shade/renderer/shader/type/WGSLAttribute.d.ts +2 -2
  1484. package/src/shade/renderer/shader/type/WGSLAttribute.d.ts.map +1 -1
  1485. package/src/shade/renderer/shader/type/WGSLAttribute.js +1 -1
  1486. package/src/shade/renderer/shader/type/WGSLStructField.d.ts +6 -2
  1487. package/src/shade/renderer/shader/type/WGSLStructField.d.ts.map +1 -1
  1488. package/src/shade/renderer/shader/type/WGSLStructField.js +5 -1
  1489. package/src/shade/renderer/shader/type/WebGPUArray.d.ts +0 -2
  1490. package/src/shade/renderer/shader/type/WebGPUArray.d.ts.map +1 -1
  1491. package/src/shade/renderer/shader/type/WebGPUStruct.d.ts +2 -4
  1492. package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
  1493. package/src/shade/renderer/shader/type/WebGPUStruct.js +1 -1
  1494. package/src/shade/renderer/shader/type/WebGPUType.d.ts +5 -1
  1495. package/src/shade/renderer/shader/type/WebGPUType.d.ts.map +1 -1
  1496. package/src/shade/renderer/shader/type/WebGPUType.js +4 -0
  1497. package/src/shade/renderer/shadow/evsm/graph_evsm_render_cascade.d.ts +7 -3
  1498. package/src/shade/renderer/shadow/evsm/graph_evsm_render_cascade.d.ts.map +1 -1
  1499. package/src/shade/renderer/shadow/evsm/graph_evsm_render_cascade.js +3 -2
  1500. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +7 -0
  1501. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
  1502. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +10 -0
  1503. package/src/shade/renderer/shadow/map/Shadowmap.d.ts +12 -0
  1504. package/src/shade/renderer/shadow/map/Shadowmap.d.ts.map +1 -1
  1505. package/src/shade/renderer/shadow/map/Shadowmap.js +8 -0
  1506. package/src/shade/renderer/shadow/map/SpotLightShadowmap.d.ts +2 -2
  1507. package/src/shade/renderer/shadow/map/csm/graph_csm_setup_cascades.d.ts +7 -3
  1508. package/src/shade/renderer/shadow/map/csm/graph_csm_setup_cascades.d.ts.map +1 -1
  1509. package/src/shade/renderer/shadow/map/csm/graph_csm_setup_cascades.js +3 -2
  1510. package/src/shade/renderer/shadow/map/csm_debug_draw_preview.d.ts +11 -5
  1511. package/src/shade/renderer/shadow/map/csm_debug_draw_preview.d.ts.map +1 -1
  1512. package/src/shade/renderer/shadow/map/csm_debug_draw_preview.js +5 -4
  1513. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.d.ts +13 -6
  1514. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.d.ts.map +1 -1
  1515. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.js +6 -5
  1516. package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.d.ts +9 -4
  1517. package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.d.ts.map +1 -1
  1518. package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +4 -3
  1519. package/src/shade/renderer/shadow/sdf/brixelizer/Brixelizer.d.ts +11 -5
  1520. package/src/shade/renderer/shadow/sdf/brixelizer/Brixelizer.d.ts.map +1 -1
  1521. package/src/shade/renderer/shadow/sdf/brixelizer/Brixelizer.js +5 -4
  1522. package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts +1 -0
  1523. package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts.map +1 -1
  1524. package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +4 -0
  1525. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts +13 -6
  1526. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts.map +1 -1
  1527. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.js +6 -5
  1528. package/src/shade/renderer/texture/GPUTextureAllocator.d.ts +4 -0
  1529. package/src/shade/renderer/texture/GPUTextureAllocator.d.ts.map +1 -1
  1530. package/src/shade/renderer/texture/GPUTextureAllocator.js +4 -0
  1531. package/src/shade/renderer/texture/GPUTextureContext.d.ts +1 -0
  1532. package/src/shade/renderer/texture/GPUTextureContext.d.ts.map +1 -1
  1533. package/src/shade/renderer/texture/GPUTextureContext.js +4 -0
  1534. package/src/shade/renderer/texture/RenderTarget.d.ts +7 -3
  1535. package/src/shade/renderer/texture/RenderTarget.d.ts.map +1 -1
  1536. package/src/shade/renderer/texture/RenderTarget.js +3 -2
  1537. package/src/shade/renderer/texture/ShadeTexture.d.ts +2 -1
  1538. package/src/shade/renderer/texture/ShadeTexture.d.ts.map +1 -1
  1539. package/src/shade/renderer/texture/ShadeTexture.js +4 -0
  1540. package/src/shade/renderer/texture/TextureManager.d.ts +1 -0
  1541. package/src/shade/renderer/texture/TextureManager.d.ts.map +1 -1
  1542. package/src/shade/renderer/texture/TextureManager.js +4 -0
  1543. package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.d.ts +3 -0
  1544. package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.d.ts.map +1 -1
  1545. package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.js +121 -21
  1546. package/src/shade/renderer/texture/debug_draw_texture.d.ts +9 -4
  1547. package/src/shade/renderer/texture/debug_draw_texture.d.ts.map +1 -1
  1548. package/src/shade/renderer/texture/debug_draw_texture.js +4 -3
  1549. package/src/shade/renderer/texture/download_texture_data.d.ts +17 -6
  1550. package/src/shade/renderer/texture/download_texture_data.d.ts.map +1 -1
  1551. package/src/shade/renderer/texture/download_texture_data.js +10 -5
  1552. package/src/shade/renderer/texture/draw_texture_as_rgba.d.ts +26 -12
  1553. package/src/shade/renderer/texture/draw_texture_as_rgba.d.ts.map +1 -1
  1554. package/src/shade/renderer/texture/draw_texture_as_rgba.js +12 -10
  1555. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.d.ts.map +1 -1
  1556. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +5 -4
  1557. package/src/shade/renderer/texture/source/ShadeImage.d.ts +4 -2
  1558. package/src/shade/renderer/texture/source/ShadeImage.d.ts.map +1 -1
  1559. package/src/shade/renderer/texture/source/ShadeImage.js +5 -0
  1560. package/src/shade/renderer/texture/source/ShadeImageSerializationAdapter.d.ts +12 -0
  1561. package/src/shade/renderer/texture/source/ShadeImageSerializationAdapter.d.ts.map +1 -1
  1562. package/src/shade/renderer/texture/util/make_checkers_texture.d.ts +12 -5
  1563. package/src/shade/renderer/texture/util/make_checkers_texture.d.ts.map +1 -1
  1564. package/src/shade/renderer/texture/util/make_checkers_texture.js +5 -4
  1565. package/src/shade/renderer/texture/virtual/README.md +6 -4
  1566. package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts +7 -2
  1567. package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts.map +1 -1
  1568. package/src/shade/renderer/texture/virtual/VirtualTextureManager.js +15 -0
  1569. package/src/shade/renderer/texture/virtual/source/VTSourceTiled.d.ts +3 -3
  1570. package/src/shade/renderer/texture/virtual/source/VTSourceTiled.js +3 -3
  1571. package/src/shade/renderer/util/Uint32BufferSamplingStats.d.ts +2 -0
  1572. package/src/shade/renderer/util/Uint32BufferSamplingStats.d.ts.map +1 -1
  1573. package/src/shade/renderer/util/Uint32BufferSamplingStats.js +5 -0
  1574. package/src/shade/renderer/view/GPUViewContext.d.ts +4 -1
  1575. package/src/shade/renderer/view/GPUViewContext.d.ts.map +1 -1
  1576. package/src/shade/renderer/view/GPUViewContext.js +11 -5
  1577. package/src/shade/renderer/view/View.d.ts +6 -0
  1578. package/src/shade/renderer/view/View.d.ts.map +1 -1
  1579. package/src/shade/renderer/view/View.js +5 -0
  1580. package/src/shade/renderer/view/ViewManager.d.ts +11 -1
  1581. package/src/shade/renderer/view/ViewManager.d.ts.map +1 -1
  1582. package/src/shade/renderer/view/ViewManager.js +7 -0
  1583. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts +6 -0
  1584. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
  1585. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +5 -0
  1586. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +15 -6
  1587. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  1588. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +11 -5
  1589. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +5 -5
  1590. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
  1591. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +1 -1
  1592. package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts +4 -0
  1593. package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts.map +1 -1
  1594. package/src/shade/renderer/volumetrics/SceneVolumetrics.js +4 -0
  1595. package/src/shade/renderer/volumetrics/build_volumetrics_sun_shadow_transform.d.ts +23 -11
  1596. package/src/shade/renderer/volumetrics/build_volumetrics_sun_shadow_transform.d.ts.map +1 -1
  1597. package/src/shade/renderer/volumetrics/build_volumetrics_sun_shadow_transform.js +11 -10
  1598. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +37 -18
  1599. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
  1600. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +30 -26
  1601. package/src/view/View.d.ts +8 -3
  1602. package/src/view/View.d.ts.map +1 -1
  1603. package/src/view/View.js +7 -2
  1604. package/src/view/asset/AssetLoaderStatusView.d.ts +7 -3
  1605. package/src/view/asset/AssetLoaderStatusView.d.ts.map +1 -1
  1606. package/src/view/asset/AssetLoaderStatusView.js +3 -2
  1607. package/src/view/common/ListView.d.ts +21 -15
  1608. package/src/view/common/ListView.d.ts.map +1 -1
  1609. package/src/view/common/ListView.js +8 -7
  1610. package/src/view/common/LocalizedLabelView.d.ts +15 -7
  1611. package/src/view/common/LocalizedLabelView.d.ts.map +1 -1
  1612. package/src/view/common/LocalizedLabelView.js +7 -6
  1613. package/src/view/common/TabbedView.d.ts +14 -6
  1614. package/src/view/common/TabbedView.d.ts.map +1 -1
  1615. package/src/view/common/TabbedView.js +6 -4
  1616. package/src/view/controller/controls/BooleanVector3Control.d.ts +1 -1
  1617. package/src/view/controller/controls/BooleanVector3Control.d.ts.map +1 -1
  1618. package/src/view/controller/controls/GuiControl.d.ts +1 -1
  1619. package/src/view/controller/controls/GuiControl.d.ts.map +1 -1
  1620. package/src/view/controller/controls/NativeListController.d.ts +15 -7
  1621. package/src/view/controller/controls/NativeListController.d.ts.map +1 -1
  1622. package/src/view/controller/controls/NativeListController.js +7 -6
  1623. package/src/view/controller/controls/Vector1Control.d.ts +1 -1
  1624. package/src/view/controller/controls/Vector1Control.d.ts.map +1 -1
  1625. package/src/view/currency/CompositeCurrencyLabelView.d.ts +10 -5
  1626. package/src/view/currency/CompositeCurrencyLabelView.d.ts.map +1 -1
  1627. package/src/view/currency/CompositeCurrencyLabelView.js +4 -3
  1628. package/src/view/currency/CurrencyDenominationLabelView.d.ts +7 -3
  1629. package/src/view/currency/CurrencyDenominationLabelView.d.ts.map +1 -1
  1630. package/src/view/currency/CurrencyDenominationLabelView.js +3 -2
  1631. package/src/view/elements/CheckboxView.d.ts +7 -3
  1632. package/src/view/elements/CheckboxView.d.ts.map +1 -1
  1633. package/src/view/elements/CheckboxView.js +3 -2
  1634. package/src/view/elements/DropDownSelectionView.d.ts +9 -4
  1635. package/src/view/elements/DropDownSelectionView.d.ts.map +1 -1
  1636. package/src/view/elements/DropDownSelectionView.js +3 -2
  1637. package/src/view/elements/EmptyView.d.ts +29 -13
  1638. package/src/view/elements/EmptyView.d.ts.map +1 -1
  1639. package/src/view/elements/EmptyView.js +13 -11
  1640. package/src/view/elements/SimpleWindow.d.ts +1 -1
  1641. package/src/view/elements/SimpleWindow.d.ts.map +1 -1
  1642. package/src/view/elements/button/ButtonView.d.ts +15 -7
  1643. package/src/view/elements/button/ButtonView.d.ts.map +1 -1
  1644. package/src/view/elements/button/ButtonView.js +7 -6
  1645. package/src/view/elements/image/ImageView.d.ts +7 -3
  1646. package/src/view/elements/image/ImageView.d.ts.map +1 -1
  1647. package/src/view/elements/image/ImageView.js +3 -2
  1648. package/src/view/elements/image/SvgImageView.d.ts +5 -2
  1649. package/src/view/elements/image/SvgImageView.d.ts.map +1 -1
  1650. package/src/view/elements/image/SvgImageView.js +2 -1
  1651. package/src/view/elements/label/LabeledValueView.d.ts +14 -7
  1652. package/src/view/elements/label/LabeledValueView.d.ts.map +1 -1
  1653. package/src/view/elements/label/LabeledValueView.js +6 -5
  1654. package/src/view/elements/progress/SmoothProgressBar.d.ts +14 -7
  1655. package/src/view/elements/progress/SmoothProgressBar.d.ts.map +1 -1
  1656. package/src/view/elements/progress/SmoothProgressBar.js +6 -5
  1657. package/src/view/elements/progress/segmented/SegmentedResourceBarView.d.ts +9 -4
  1658. package/src/view/elements/progress/segmented/SegmentedResourceBarView.d.ts.map +1 -1
  1659. package/src/view/elements/progress/segmented/SegmentedResourceBarView.js +4 -3
  1660. package/src/view/elements/radial/RadialMenu.d.ts +19 -9
  1661. package/src/view/elements/radial/RadialMenu.d.ts.map +1 -1
  1662. package/src/view/elements/radial/RadialMenu.js +9 -8
  1663. package/src/view/elements/radial/RadialMenuElementDefinition.d.ts +63 -31
  1664. package/src/view/elements/radial/RadialMenuElementDefinition.d.ts.map +1 -1
  1665. package/src/view/elements/radial/RadialMenuElementDefinition.js +30 -28
  1666. package/src/view/elements/radial/RadialProgressView.d.ts +1 -1
  1667. package/src/view/elements/radial/RadialProgressView.d.ts.map +1 -1
  1668. package/src/view/elements/radial/RadialText.d.ts +18 -10
  1669. package/src/view/elements/radial/RadialText.d.ts.map +1 -1
  1670. package/src/view/elements/radial/RadialText.js +7 -6
  1671. package/src/view/elements/tiles2d/Tile.d.ts +12 -6
  1672. package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
  1673. package/src/view/elements/tiles2d/Tile.js +4 -3
  1674. package/src/view/elements/tiles2d/TileGrid.d.ts +23 -10
  1675. package/src/view/elements/tiles2d/TileGrid.d.ts.map +1 -1
  1676. package/src/view/elements/tiles2d/TileGrid.js +10 -9
  1677. package/src/view/elements/video/VideoView.d.ts +7 -3
  1678. package/src/view/elements/video/VideoView.d.ts.map +1 -1
  1679. package/src/view/elements/video/VideoView.js +3 -2
  1680. package/src/view/game/achievements/AchievementNotificationView.d.ts +7 -3
  1681. package/src/view/game/achievements/AchievementNotificationView.d.ts.map +1 -1
  1682. package/src/view/game/achievements/AchievementNotificationView.js +3 -2
  1683. package/src/view/graphics/GraphicsContextFailureView.d.ts +11 -5
  1684. package/src/view/graphics/GraphicsContextFailureView.d.ts.map +1 -1
  1685. package/src/view/graphics/GraphicsContextFailureView.js +5 -4
  1686. package/src/view/interaction/InteractionCommand.d.ts +11 -5
  1687. package/src/view/interaction/InteractionCommand.d.ts.map +1 -1
  1688. package/src/view/interaction/InteractionCommand.js +5 -4
  1689. package/src/view/interaction/InterfaceCommand.d.ts +32 -15
  1690. package/src/view/interaction/InterfaceCommand.d.ts.map +1 -1
  1691. package/src/view/interaction/InterfaceCommand.js +15 -13
  1692. package/src/view/interaction/createInterfaceCommandButton.d.ts +9 -4
  1693. package/src/view/interaction/createInterfaceCommandButton.d.ts.map +1 -1
  1694. package/src/view/interaction/createInterfaceCommandButton.js +4 -3
  1695. package/src/view/layout/DockPanel.d.ts +11 -5
  1696. package/src/view/layout/DockPanel.d.ts.map +1 -1
  1697. package/src/view/layout/DockPanel.js +5 -4
  1698. package/src/view/layout/DrawerView.d.ts +7 -3
  1699. package/src/view/layout/DrawerView.d.ts.map +1 -1
  1700. package/src/view/layout/DrawerView.js +3 -2
  1701. package/src/view/layout/FloatingPanelView.d.ts +7 -3
  1702. package/src/view/layout/FloatingPanelView.d.ts.map +1 -1
  1703. package/src/view/layout/FloatingPanelView.js +3 -2
  1704. package/src/view/layout/SplitView.d.ts +11 -5
  1705. package/src/view/layout/SplitView.d.ts.map +1 -1
  1706. package/src/view/layout/SplitView.js +5 -4
  1707. package/src/view/math/FunctionGraphView.d.ts +8 -4
  1708. package/src/view/math/FunctionGraphView.d.ts.map +1 -1
  1709. package/src/view/math/FunctionGraphView.js +3 -2
  1710. package/src/view/minimap/MinimapCanvasView.d.ts +10 -4
  1711. package/src/view/minimap/MinimapCanvasView.d.ts.map +1 -1
  1712. package/src/view/minimap/MinimapCanvasView.js +4 -3
  1713. package/src/view/minimap/dom/MinimapCameraView.d.ts +2 -1
  1714. package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
  1715. package/src/view/minimap/dom/MinimapMarkerView.d.ts +31 -9
  1716. package/src/view/minimap/dom/MinimapMarkerView.d.ts.map +1 -1
  1717. package/src/view/minimap/dom/MinimapTerrainView.d.ts +9 -4
  1718. package/src/view/minimap/dom/MinimapTerrainView.d.ts.map +1 -1
  1719. package/src/view/minimap/dom/MinimapTerrainView.js +3 -2
  1720. package/src/view/task/TaskProgressView.d.ts +7 -3
  1721. package/src/view/task/TaskProgressView.d.ts.map +1 -1
  1722. package/src/view/task/TaskProgressView.js +3 -2
  1723. package/src/view/tooltip/DomTooltipManager.d.ts +6 -0
  1724. package/src/view/tooltip/DomTooltipManager.d.ts.map +1 -1
  1725. package/src/view/tooltip/DomTooltipManager.js +5 -0
  1726. package/src/view/tooltip/DomTooltipObserver.d.ts +4 -0
  1727. package/src/view/tooltip/DomTooltipObserver.d.ts.map +1 -1
  1728. package/src/view/tooltip/DomTooltipObserver.js +4 -0
  1729. package/src/view/tooltip/TooltipManager.d.ts +6 -0
  1730. package/src/view/tooltip/TooltipManager.d.ts.map +1 -1
  1731. package/src/view/tooltip/TooltipManager.js +5 -0
  1732. package/src/view/tooltip/TooltipView.d.ts +7 -3
  1733. package/src/view/tooltip/TooltipView.d.ts.map +1 -1
  1734. package/src/view/tooltip/TooltipView.js +5 -1
  1735. package/src/view/tooltip/VisualTip.d.ts +6 -0
  1736. package/src/view/tooltip/VisualTip.d.ts.map +1 -1
  1737. package/src/view/tooltip/VisualTip.js +5 -0
  1738. package/src/view/tooltip/gml/GMLEngine.d.ts +14 -2
  1739. package/src/view/tooltip/gml/GMLEngine.d.ts.map +1 -1
  1740. package/src/view/tooltip/gml/GMLEngine.js +8 -0
  1741. package/src/view/tooltip/gml/compiler/GMLReferenceCompiler.d.ts +10 -0
  1742. package/src/view/tooltip/gml/compiler/GMLReferenceCompiler.d.ts.map +1 -1
  1743. package/src/view/tooltip/gml/compiler/GMLReferenceCompiler.js +7 -0
  1744. package/src/view/util/DomSizeObserver.d.ts +9 -2
  1745. package/src/view/util/DomSizeObserver.d.ts.map +1 -1
  1746. package/src/view/util/DomSizeObserver.js +6 -1
  1747. package/src/engine/graphics/texture/virtual/NOTES.md +0 -128
  1748. package/src/engine/graphics/texture/virtual/VT_DEFAULT_PAGE_RESOLUTION.d.ts +0 -6
  1749. package/src/engine/graphics/texture/virtual/VT_DEFAULT_PAGE_RESOLUTION.d.ts.map +0 -1
  1750. package/src/engine/graphics/texture/virtual/VT_DEFAULT_PAGE_RESOLUTION.js +0 -5
  1751. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts +0 -49
  1752. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts.map +0 -1
  1753. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.js +0 -264
  1754. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts +0 -44
  1755. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts.map +0 -1
  1756. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.js +0 -228
  1757. package/src/engine/graphics/texture/virtual/VirtualTextureUsageShader.d.ts +0 -3
  1758. package/src/engine/graphics/texture/virtual/VirtualTextureUsageShader.d.ts.map +0 -1
  1759. package/src/engine/graphics/texture/virtual/VirtualTextureUsageShader.js +0 -73
  1760. package/src/engine/graphics/texture/virtual/debug/ResidencyDebugView.d.ts +0 -14
  1761. package/src/engine/graphics/texture/virtual/debug/ResidencyDebugView.d.ts.map +0 -1
  1762. package/src/engine/graphics/texture/virtual/debug/ResidencyDebugView.js +0 -85
  1763. package/src/engine/graphics/texture/virtual/debug/UsageDebugView.d.ts +0 -12
  1764. package/src/engine/graphics/texture/virtual/debug/UsageDebugView.d.ts.map +0 -1
  1765. package/src/engine/graphics/texture/virtual/debug/UsageDebugView.js +0 -63
  1766. package/src/engine/graphics/texture/virtual/debug/UsagePyramidDebugView.d.ts +0 -12
  1767. package/src/engine/graphics/texture/virtual/debug/UsagePyramidDebugView.d.ts.map +0 -1
  1768. package/src/engine/graphics/texture/virtual/debug/UsagePyramidDebugView.js +0 -243
  1769. package/src/engine/graphics/texture/virtual/tile/VirtualTextureTile.d.ts +0 -30
  1770. package/src/engine/graphics/texture/virtual/tile/VirtualTextureTile.d.ts.map +0 -1
  1771. package/src/engine/graphics/texture/virtual/tile/VirtualTextureTile.js +0 -39
  1772. package/src/engine/graphics/texture/virtual/tile/compose_finger_print.d.ts +0 -9
  1773. package/src/engine/graphics/texture/virtual/tile/compose_finger_print.d.ts.map +0 -1
  1774. package/src/engine/graphics/texture/virtual/tile/compose_finger_print.js +0 -24
  1775. package/src/engine/graphics/texture/virtual/tile/compose_tile_address.d.ts +0 -9
  1776. package/src/engine/graphics/texture/virtual/tile/compose_tile_address.d.ts.map +0 -1
  1777. package/src/engine/graphics/texture/virtual/tile/compose_tile_address.js +0 -26
  1778. package/src/engine/graphics/texture/virtual/tile/decompose_finger_print.d.ts +0 -11
  1779. package/src/engine/graphics/texture/virtual/tile/decompose_finger_print.d.ts.map +0 -1
  1780. package/src/engine/graphics/texture/virtual/tile/decompose_finger_print.js +0 -12
  1781. package/src/engine/graphics/texture/virtual/tile/finger_print_to_tile_address.d.ts +0 -7
  1782. package/src/engine/graphics/texture/virtual/tile/finger_print_to_tile_address.d.ts.map +0 -1
  1783. package/src/engine/graphics/texture/virtual/tile/finger_print_to_tile_address.js +0 -16
  1784. package/src/engine/graphics/texture/virtual/tile/tile_address_to_finger_print.d.ts +0 -7
  1785. package/src/engine/graphics/texture/virtual/tile/tile_address_to_finger_print.d.ts.map +0 -1
  1786. package/src/engine/graphics/texture/virtual/tile/tile_address_to_finger_print.js +0 -35
  1787. package/src/shade/renderer/geometry/virtual/format/prototypeVGEOFormatViewer.d.ts +0 -395
  1788. package/src/shade/renderer/geometry/virtual/format/prototypeVGEOFormatViewer.d.ts.map +0 -1
  1789. package/src/shade/renderer/particles/ParticleRenderMode.d.ts +0 -19
  1790. package/src/shade/renderer/particles/ParticleRenderMode.d.ts.map +0 -1
  1791. package/src/shade/renderer/particles/ParticleRenderMode.js +0 -33
  1792. package/src/shade/renderer/particles/graph_particles_billboard.d.ts +0 -37
  1793. package/src/shade/renderer/particles/graph_particles_billboard.d.ts.map +0 -1
  1794. package/src/shade/renderer/particles/graph_particles_billboard.js +0 -93
  1795. package/src/shade/renderer/particles/sort/graph_particle_sort.d.ts +0 -55
  1796. package/src/shade/renderer/particles/sort/graph_particle_sort.d.ts.map +0 -1
  1797. package/src/shade/renderer/particles/sort/graph_particle_sort.js +0 -130
  1798. package/src/shade/renderer/particles/sort/particle_counting_sort.d.ts +0 -26
  1799. package/src/shade/renderer/particles/sort/particle_counting_sort.d.ts.map +0 -1
  1800. package/src/shade/renderer/particles/sort/particle_counting_sort.js +0 -51
  1801. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts +0 -14
  1802. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +0 -1
  1803. package/src/shade/renderer/particles/sort/shader_particle_sort.js +0 -223
@@ -1,9 +1,10 @@
1
1
  import { assert } from "../../../../../../core/assert.js";
2
2
  import { BinaryBuffer } from "../../../../../../core/binary/BinaryBuffer.js";
3
3
  import { vgeo_compute_frame_checksum } from "../checksum/vgeo_compute_frame_checksum.js";
4
+ import { VGEO_NO_CHILD } from "../cluster/VGEO_NO_CHILD.js";
5
+ import { VGEO_SAME_PAGE } from "../cluster/VGEO_SAME_PAGE.js";
4
6
  import { VGEO_FRAME_OFFSET } from "../frame/VGEO_FRAME_OFFSET.js";
5
7
  import { vgeo_read_frame_extent } from "../frame/vgeo_read_frame_extent.js";
6
- import { vgeo_validate_container } from "../vgeo_validate_container.js";
7
8
  import { VGeoReadOptions } from "./VGeoReadOptions.js";
8
9
  import { vgeo_read_directory } from "./vgeo_read_directory.js";
9
10
  import { vgeo_read_header, vgeo_resident_head_size, VGEO_MIN_HEAD_BYTES } from "./vgeo_read_header.js";
@@ -15,6 +16,12 @@ import { vgeo_read_page } from "./vgeo_read_page.js";
15
16
  */
16
17
  const LE = true;
17
18
 
19
+ /**
20
+ * What {@link VGeoContainerReader.release_head} leaves behind, shared because it is empty.
21
+ * @type {Uint8Array}
22
+ */
23
+ const NO_HEAD = new Uint8Array(0);
24
+
18
25
  /**
19
26
  * A `.vgeo` container, read a page at a time.
20
27
  *
@@ -33,11 +40,26 @@ const LE = true;
33
40
  * more, {@link evict} drops one, and a {@link VGeoPage} owns its own bytes and tables so that
34
41
  * dropping it drops everything it cost.
35
42
  *
43
+ * **Selectability is the other half of it, and it is not the same question.** {@link is_selectable}
44
+ * answers §10's activation invariant — whether a group's *entire ancestor cone* is here, not merely
45
+ * its own bytes — held as one counter per resident group. A traversal that clamps on residency
46
+ * instead refines into a group through the parents that arrived while a coarse cluster still stands
47
+ * in for one that did not, and draws both over the same surface. That is what activation is for, and
48
+ * it is why installing a page does bookkeeping rather than only filling a map.
49
+ *
50
+ * **Mechanics, not policy — and the line is deliberate.** Which page to fetch next, which to drop,
51
+ * how many bytes one asset may hold, how many requests may be in flight across a thousand of them:
52
+ * none of that is decided here, because none of it can be decided by one reader looking at one file.
53
+ * `VGeoResidencyManager` is where it is decided and readers register with one; §10's eviction bullet
54
+ * is the reason for the split rather than an apology for it. What *is* here is everything that is
55
+ * about the bytes — the fetch, the retries, the quarantine a page that will not arrive ends up in,
56
+ * and the accounting a budget owner spends against.
57
+ *
36
58
  * **Validation is not on this path.** The mandatory reject rules of §4 and §10 are applied
37
59
  * unconditionally by {@link vgeo_read_header} and {@link vgeo_read_page} — a file whose magic,
38
60
  * versions, encoding or codec this build does not understand is refused rather than misread. The
39
- * whole-file audit is {@link validate}, it reads every byte of the file, and it is off by default;
40
- * see {@link VGeoReadOptions.validate}.
61
+ * whole-file audit is `vgeo_audit_container` in `tool/`, it reads every byte of the file, and
62
+ * nothing on the runtime path can reach it.
41
63
  *
42
64
  * @author Alex Goldring
43
65
  * @copyright Company Named Limited (c) 2026
@@ -80,21 +102,87 @@ export class VGeoContainerReader {
80
102
  #pending = new Map();
81
103
 
82
104
  /**
83
- * The speculative head prefix, kept.
105
+ * The abort for each fetch in flight, by page index — one per fetch, so a want that went stale
106
+ * takes down its own request and no other. See {@link cancel}.
107
+ * @type {Map<number, AbortController>}
108
+ */
109
+ #aborts = new Map();
110
+
111
+ /**
112
+ * Pages that could not be read, and why, by page index.
84
113
  *
85
- * Coarse-first layout is what makes this worth keeping rather than parsing and dropping: a
86
- * prefix that overshot the root frame overshot into the pages the traversal is most likely to
87
- * want next, and serving those from here costs no request at all.
114
+ * §10's quarantine. A page that has failed its bounded retries is not asked for again: at a
115
+ * content-addressed URL the failure is deterministic, so asking again asks the same question,
116
+ * and a traversal that keeps wanting the page would keep re-issuing it forever. What makes this
117
+ * survivable rather than a loss is the clamped cut — a quarantined page's parent stays selected
118
+ * and keeps covering that surface correctly, indefinitely.
119
+ *
120
+ * @type {Map<number, string>}
121
+ */
122
+ #quarantined = new Map();
123
+
124
+ /**
125
+ * The speculative head prefix, while it is still paying for itself.
126
+ *
127
+ * Coarse-first layout is what makes a prefix worth fetching at all: one that overshot the root
128
+ * frame overshot into the pages the traversal is most likely to want next, and serving those
129
+ * from here costs no request. What it is *not* worth is keeping afterwards — see
130
+ * {@link release_head}, which runs by itself the first time a read falls outside it.
88
131
  *
89
132
  * @type {Uint8Array}
90
133
  */
91
- #head = new Uint8Array(0);
134
+ #head = NO_HEAD;
92
135
 
93
136
  /**
94
137
  * @type {number}
95
138
  */
96
139
  #resident_bytes = 0;
97
140
 
141
+ /**
142
+ * Live references into each resident page's groups, one counter per group.
143
+ *
144
+ * §10's activation counter. A reference is live when the cluster making it sits in an installed
145
+ * page *and* in a group that is itself selectable, so the counter reaching a group's
146
+ * `parent_cluster_count` means its entire ancestor cone is here — which is the closure the cut
147
+ * rule needs, held as one number per group instead of a dependency list.
148
+ *
149
+ * @type {Map<number, Uint16Array>}
150
+ */
151
+ #live_refs = new Map();
152
+
153
+ /**
154
+ * Which groups of each resident page are selectable, one byte per group.
155
+ *
156
+ * Derived from {@link #live_refs} and flipped by {@link #cascade_activate}, not recomputed: a
157
+ * traversal reads this per cluster and residency changes far less often than a frame does.
158
+ *
159
+ * @type {Map<number, Uint8Array>}
160
+ */
161
+ #selectable = new Map();
162
+
163
+ /**
164
+ * Live references made *into pages that are not here yet*, by page index and then by group.
165
+ *
166
+ * The reverse-reference index §10 asks for. A page cannot be told about a reference into it
167
+ * before it exists, and recomputing the whole closure on every install would make activation
168
+ * cost the resident set rather than the arrival — so the references wait here, and installing
169
+ * the page starts its counters from the truth. Evicting a page moves its counters back here for
170
+ * the same reason: the parents making those references are still resident and still selectable.
171
+ *
172
+ * **It is bounded by the residency frontier and not by the session's history**, which is worth
173
+ * writing down because it has the shape of an index that leaks. An entry exists only while some
174
+ * resident, selectable cluster refers into a page that is absent, and the two halves are
175
+ * symmetric — eviction and deactivation release exactly what install and activation counted.
176
+ * Measured on a 20,000-page container with the 3,280 pages of its eight coarse bands pinned
177
+ * resident: 6,561 entries after pinning, and still 6,561 after touring all 6,561 pages of the
178
+ * band below them a window at a time and evicting each window. The frontier, unchanged, rather
179
+ * than one entry per page visited. Dropping the pinned pages too leaves 3.
180
+ * {@link pending_reference_page_count} is that number.
181
+ *
182
+ * @type {Map<number, Map<number, number>>}
183
+ */
184
+ #pending_refs = new Map();
185
+
98
186
  /**
99
187
  * @param {VGeoByteSource} source
100
188
  * @param {VGeoReadOptions} [options]
@@ -129,6 +217,16 @@ export class VGeoContainerReader {
129
217
 
130
218
  /**
131
219
  * Decoded bytes currently held. The number a residency budget is spent against.
220
+ *
221
+ * It is exactly the decoded page images — the same number the directory's `decoded_size` column
222
+ * and every child-table entry promise *before* a page is fetched, which is what lets a budget
223
+ * owner admit a page rather than discover its cost after paying for it. It is deliberately not
224
+ * what the pages cost in the heap: the reader's own per-page bookkeeping — the `VGeoPage`, its
225
+ * cluster and child tables, the two activation arrays, the map entries — measured 6.4–11.9 KB
226
+ * per page on top of the image. That is 1.2% of a 544 KB page at the sizes design §5 targets and
227
+ * 294% of a 2 KB one, so a budget sized against very small pages has to allow for it and one
228
+ * sized against the design's page size is inside its own rounding.
229
+ *
132
230
  * @returns {number}
133
231
  */
134
232
  get resident_bytes() {
@@ -142,9 +240,49 @@ export class VGeoContainerReader {
142
240
  return this.#pending.size;
143
241
  }
144
242
 
243
+ /**
244
+ * How many not-yet-resident pages the reverse-reference index is holding counters for.
245
+ *
246
+ * Diagnostic, and the number a leak in that index would show up in: an entry exists only while
247
+ * some resident, selectable cluster refers into a page that is not here, so this tracks the
248
+ * residency frontier and must not track how many pages a session has visited. See
249
+ * {@link #pending_refs} for what that was measured at.
250
+ *
251
+ * @returns {number}
252
+ */
253
+ get pending_reference_page_count() {
254
+ return this.#pending_refs.size;
255
+ }
256
+
257
+ /**
258
+ * How many bytes of speculative head prefix are still held — zero once {@link release_head} has
259
+ * run, which is the normal state after the first read that falls outside the prefix.
260
+ *
261
+ * @returns {number}
262
+ */
263
+ get head_bytes() {
264
+ return this.#head.byteLength;
265
+ }
266
+
267
+ /**
268
+ * How many pages have failed their retries and will not be asked for again.
269
+ * @returns {number}
270
+ */
271
+ get quarantined_page_count() {
272
+ return this.#quarantined.size;
273
+ }
274
+
145
275
  /**
146
276
  * The root page, which is pinned for the life of the reader — §10 makes it the one page that is
147
277
  * never evictable, because every traversal starts by walking its parentless groups.
278
+ *
279
+ * What the pin costs is worth writing down, because "pinned for life, times a thousand assets"
280
+ * is the shape of a problem and this one is not: build invariant §11.7 puts exactly one root
281
+ * cluster in the file, and the assembler gives the root page the complete topmost level — so the
282
+ * root page *is* that one cluster. Measured on two torus builds, of 7.7K and 42K source
283
+ * triangles and 8 and 12 levels: 1,732 B and 1,472 B decoded. A thousand of them is under 2 MB,
284
+ * and no builder-side cap on root size is needed to keep it that way.
285
+ *
148
286
  * @returns {VGeoPage}
149
287
  */
150
288
  get root() {
@@ -152,13 +290,28 @@ export class VGeoContainerReader {
152
290
  }
153
291
 
154
292
  /**
155
- * Every resident page, in page-index order.
293
+ * Every resident page, sorted by page index.
294
+ *
295
+ * A snapshot, and it costs one: an array of every resident page plus a sort of it — 0.29 ms per
296
+ * access measured at 20,000 resident pages. So this is for a tool, a panel or a test, and **not
297
+ * for anything that runs per frame**. {@link resident_pages} is the same set in arrival order
298
+ * and allocates nothing, which is what a per-frame sweep should read.
299
+ *
156
300
  * @returns {VGeoPage[]}
157
301
  */
158
302
  get pages() {
159
303
  return Array.from(this.#pages.values()).sort((a, b) => a.index - b.index);
160
304
  }
161
305
 
306
+ /**
307
+ * Every resident page, in arrival order, allocating nothing.
308
+ *
309
+ * @returns {IterableIterator<VGeoPage>}
310
+ */
311
+ resident_pages() {
312
+ return this.#pages.values();
313
+ }
314
+
162
315
  /**
163
316
  * Open a container: header, level table, root page.
164
317
  *
@@ -199,7 +352,8 @@ export class VGeoContainerReader {
199
352
  §10's always-resident set: the header, the level table, and the root frame — in that order,
200
353
  contiguously, and bounded by two fields of the fixed header. Whatever the prefix already
201
354
  covered, one range brings the rest, so a cold start is two requests at worst and one
202
- whenever the prefix was generous. Nothing is fetched twice: the head only grows at its tail.
355
+ whenever the prefix was generous. Nothing is fetched twice: the head only grows at its tail,
356
+ and it only grows here, once, before anything else has read a byte of the file.
203
357
  */
204
358
  await this.#grow_head(vgeo_resident_head_size(this.#head));
205
359
 
@@ -267,16 +421,366 @@ export class VGeoContainerReader {
267
421
  return this.#pages.has(page_index);
268
422
  }
269
423
 
424
+ /**
425
+ * How many of a page's child pages are resident.
426
+ *
427
+ * §10's eviction rule is written in terms of this: within a residency tier, a page is evictable
428
+ * only while it has no resident child pages in that tier, checked against its own child table.
429
+ * `SAME_PAGE` references never pin and are in no child table by construction (§11.2), so the
430
+ * table is the whole answer. The *rule* is a policy and lives with the budget owner; this
431
+ * lookup is about one page's own bytes and lives here.
432
+ *
433
+ * @param {number} page_index
434
+ * @returns {number} zero for a page that is not resident, and for one no child of which is
435
+ */
436
+ resident_child_count(page_index) {
437
+ const page = this.#pages.get(page_index);
438
+
439
+ if (page === undefined) {
440
+ return 0;
441
+ }
442
+
443
+ const children = page.child_page_index;
444
+
445
+ let count = 0;
446
+
447
+ for (let i = 0; i < children.length; i++) {
448
+ if (this.#pages.has(children[i])) {
449
+ count++;
450
+ }
451
+ }
452
+
453
+ return count;
454
+ }
455
+
456
+ /**
457
+ * Whether a group may be selected from — §10's activation invariant, and **not** the same
458
+ * question as {@link is_resident}.
459
+ *
460
+ * A group is selectable iff every one of its `parent_cluster_count` references is live: the
461
+ * referencing cluster's page is installed and that cluster's own group is selectable. Groups
462
+ * with no parents at all — exactly the root page's topmost level — are selectable the moment
463
+ * their page is.
464
+ *
465
+ * The distinction is load-bearing and it is invisible until an asset is big enough to put one
466
+ * group's parents in two pages. Refining into a group whose page merely *arrived* draws it
467
+ * underneath the coarse cluster still standing in for the parent that did not, and the two
468
+ * surfaces fight over the same pixels. Residency says the bytes are here; selectability says
469
+ * nothing above them is missing, which is what "no holes and no double-draw, in any arrival
470
+ * order" actually rests on.
471
+ *
472
+ * Synchronous and total, like {@link page}: the traversal asks it per cluster and acts on a
473
+ * `false` by clamping.
474
+ *
475
+ * @param {number} page_index
476
+ * @param {number} group index within that page
477
+ * @returns {boolean}
478
+ */
479
+ is_selectable(page_index, group) {
480
+ const selectable = this.#selectable.get(page_index);
481
+
482
+ if (selectable === undefined) {
483
+ return false;
484
+ }
485
+
486
+ return selectable[group] === 1;
487
+ }
488
+
489
+ /**
490
+ * Bring a freshly installed page into the activation state.
491
+ *
492
+ * @param {VGeoPage} page
493
+ */
494
+ #activate_page(page) {
495
+ const group_count = page.group_cluster_first.length;
496
+
497
+ const live = new Uint16Array(group_count);
498
+ const selectable = new Uint8Array(group_count);
499
+
500
+ const pending = this.#pending_refs.get(page.index);
501
+
502
+ if (pending !== undefined) {
503
+ for (const [group, count] of pending) {
504
+ if (group < group_count) {
505
+ live[group] = count;
506
+ }
507
+ }
508
+
509
+ this.#pending_refs.delete(page.index);
510
+ }
511
+
512
+ this.#live_refs.set(page.index, live);
513
+ this.#selectable.set(page.index, selectable);
514
+
515
+ /**
516
+ * Page and group index, interleaved, as {@link vgeo_select_cut}'s own stack is.
517
+ * @type {number[]}
518
+ */
519
+ const queue = [];
520
+
521
+ for (let group = 0; group < group_count; group++) {
522
+ if (live[group] === page.group_parent_count[group]) {
523
+ queue.push(page.index, group);
524
+ }
525
+ }
526
+
527
+ this.#cascade_activate(queue);
528
+ }
529
+
530
+ /**
531
+ * Flip the queued groups selectable, and follow their references down.
532
+ *
533
+ * A group becoming selectable makes every reference its clusters hold live, which can complete
534
+ * the count of a group one level down, and so on. The cascade is what lets a page arrive in any
535
+ * order: whatever it unblocks, it unblocks now, and whatever it does not stays clamped without
536
+ * anybody having to ask again.
537
+ *
538
+ * @param {number[]} queue page and group index, interleaved
539
+ */
540
+ #cascade_activate(queue) {
541
+ while (queue.length > 0) {
542
+ const group = queue.pop();
543
+ const page_index = queue.pop();
544
+
545
+ const page = this.#pages.get(page_index);
546
+ const selectable = this.#selectable.get(page_index);
547
+
548
+ if (page === undefined || selectable[group] === 1) {
549
+ continue;
550
+ }
551
+
552
+ selectable[group] = 1;
553
+
554
+ const first = page.group_cluster_first[group];
555
+ const count = page.group_cluster_count[group];
556
+
557
+ for (let i = 0; i < count; i++) {
558
+ const cluster = first + i;
559
+
560
+ const child_page = this.#child_page_of(page, cluster);
561
+
562
+ if (child_page < 0) {
563
+ continue;
564
+ }
565
+
566
+ const child_group = page.child_group[cluster];
567
+
568
+ const live = this.#live_refs.get(child_page);
569
+
570
+ if (live === undefined) {
571
+ this.#hold_reference(child_page, child_group);
572
+
573
+ continue;
574
+ }
575
+
576
+ if (child_group >= live.length) {
577
+ // a `child_group` outside the child page's table; the traversal reports the
578
+ // broken reference, and counting it here would corrupt a neighbour's counter
579
+ continue;
580
+ }
581
+
582
+ live[child_group]++;
583
+
584
+ if (live[child_group] === this.#pages.get(child_page).group_parent_count[child_group]) {
585
+ queue.push(child_page, child_group);
586
+ }
587
+ }
588
+ }
589
+ }
590
+
591
+ /**
592
+ * Retract a group's selectability and everything that rested on it.
593
+ *
594
+ * The mirror of the cascade, and the reason eviction is not simply forgetting a page: a group
595
+ * one level down was selectable *because* of the references this one made, and leaving those
596
+ * counted would leave it drawable with a hole above it.
597
+ *
598
+ * @param {number} page_index
599
+ * @param {number} group
600
+ */
601
+ #cascade_deactivate(page_index, group) {
602
+ const page = this.#pages.get(page_index);
603
+ const selectable = this.#selectable.get(page_index);
604
+
605
+ if (page === undefined || selectable === undefined || selectable[group] !== 1) {
606
+ return;
607
+ }
608
+
609
+ selectable[group] = 0;
610
+
611
+ const first = page.group_cluster_first[group];
612
+ const count = page.group_cluster_count[group];
613
+
614
+ for (let i = 0; i < count; i++) {
615
+ const cluster = first + i;
616
+
617
+ const child_page = this.#child_page_of(page, cluster);
618
+
619
+ if (child_page < 0) {
620
+ continue;
621
+ }
622
+
623
+ const child_group = page.child_group[cluster];
624
+
625
+ const live = this.#live_refs.get(child_page);
626
+
627
+ if (live === undefined) {
628
+ this.#release_reference(child_page, child_group);
629
+
630
+ continue;
631
+ }
632
+
633
+ if (child_group >= live.length) {
634
+ continue;
635
+ }
636
+
637
+ live[child_group]--;
638
+
639
+ if (live[child_group] < this.#pages.get(child_page).group_parent_count[child_group]) {
640
+ this.#cascade_deactivate(child_page, child_group);
641
+ }
642
+ }
643
+ }
644
+
645
+ /**
646
+ * The page a cluster's child group lives in, or `-1` where there is none to resolve — a leaf, or
647
+ * a `child_ref` outside this page's child table.
648
+ *
649
+ * `SAME_PAGE` resolves to the page itself and is *not* a shortcut past activation: page-local
650
+ * says nothing about where the group's other parents are, and a group referenced from inside its
651
+ * own page can still be waiting on one that is not.
652
+ *
653
+ * @param {VGeoPage} page
654
+ * @param {number} cluster
655
+ * @returns {number}
656
+ */
657
+ #child_page_of(page, cluster) {
658
+ const child_ref = page.child_ref[cluster];
659
+
660
+ if (child_ref === VGEO_NO_CHILD) {
661
+ return -1;
662
+ }
663
+
664
+ if (child_ref === VGEO_SAME_PAGE) {
665
+ return page.index;
666
+ }
667
+
668
+ if (child_ref >= page.child_page_index.length) {
669
+ return -1;
670
+ }
671
+
672
+ return page.child_page_index[child_ref];
673
+ }
674
+
675
+ /**
676
+ * @param {number} page_index a page that is not resident
677
+ * @param {number} group
678
+ */
679
+ #hold_reference(page_index, group) {
680
+ let held = this.#pending_refs.get(page_index);
681
+
682
+ if (held === undefined) {
683
+ held = new Map();
684
+
685
+ this.#pending_refs.set(page_index, held);
686
+ }
687
+
688
+ held.set(group, (held.get(group) ?? 0) + 1);
689
+ }
690
+
691
+ /**
692
+ * @param {number} page_index a page that is not resident
693
+ * @param {number} group
694
+ */
695
+ #release_reference(page_index, group) {
696
+ const held = this.#pending_refs.get(page_index);
697
+
698
+ if (held === undefined) {
699
+ return;
700
+ }
701
+
702
+ const left = (held.get(group) ?? 0) - 1;
703
+
704
+ if (left > 0) {
705
+ held.set(group, left);
706
+ } else {
707
+ held.delete(group);
708
+ }
709
+
710
+ if (held.size === 0) {
711
+ this.#pending_refs.delete(page_index);
712
+ }
713
+ }
714
+
715
+ /**
716
+ * Whether a page has failed its retries and been quarantined.
717
+ *
718
+ * @param {number} page_index
719
+ * @returns {boolean}
720
+ */
721
+ is_quarantined(page_index) {
722
+ return this.#quarantined.has(page_index);
723
+ }
724
+
725
+ /**
726
+ * Why a page was quarantined, or `undefined` if it was not.
727
+ *
728
+ * §10 asks for the quarantine *and* for telemetry, because a page that stopped arriving is the
729
+ * difference between a coarse asset and a broken deployment, and on screen the two are the same
730
+ * picture.
731
+ *
732
+ * @param {number} page_index
733
+ * @returns {string|undefined}
734
+ */
735
+ quarantine_reason(page_index) {
736
+ return this.#quarantined.get(page_index);
737
+ }
738
+
739
+ /**
740
+ * Every quarantined page and its reason.
741
+ * @returns {IterableIterator<[number, string]>}
742
+ */
743
+ quarantine() {
744
+ return this.#quarantined.entries();
745
+ }
746
+
747
+ /**
748
+ * Let a quarantined page be asked for again.
749
+ *
750
+ * **When** is a policy and is not decided here. A frame checksum that failed at a
751
+ * content-addressed URL will fail again and lifting its quarantine buys nothing; a run of 503s
752
+ * from one edge node is a different thing, and a budget owner that has watched other pages of
753
+ * other assets arrive since has evidence this reader does not have. So the reader quarantines
754
+ * for its own lifetime and offers this, and `VGeoResidencyManager` is where the decision to use
755
+ * it lives.
756
+ *
757
+ * @param {number} [page_index] omit to lift every quarantine
758
+ * @returns {number} how many pages were released
759
+ */
760
+ clear_quarantine(page_index = undefined) {
761
+ if (page_index === undefined) {
762
+ const released = this.#quarantined.size;
763
+
764
+ this.#quarantined.clear();
765
+
766
+ return released;
767
+ }
768
+
769
+ return this.#quarantined.delete(page_index) ? 1 : 0;
770
+ }
771
+
270
772
  /**
271
773
  * Fetch and install one page, from the exact range something already resident named.
272
774
  *
273
775
  * Concurrent calls for the same page share one fetch; a page already resident is returned
274
- * without one.
776
+ * without one; a page in quarantine is refused without one.
275
777
  *
276
778
  * @param {number} page_index
277
779
  * @param {number} frame_offset absolute
278
780
  * @param {number} fetch_size
279
781
  * @returns {Promise<VGeoPage>}
782
+ * @throws {Error} asynchronously — when the page is already quarantined, when it fails every
783
+ * attempt and is quarantined by doing so, or when {@link cancel} abandoned it
280
784
  */
281
785
  install(page_index, frame_offset, fetch_size) {
282
786
  const resident = this.#pages.get(page_index);
@@ -291,8 +795,21 @@ export class VGeoContainerReader {
291
795
  return in_flight;
292
796
  }
293
797
 
294
- const fetch = this.#fetch_page(page_index, frame_offset, fetch_size)
295
- .finally(() => this.#pending.delete(page_index));
798
+ const quarantined = this.#quarantined.get(page_index);
799
+
800
+ if (quarantined !== undefined) {
801
+ return Promise.reject(new Error(`page ${page_index} is quarantined: ${quarantined}`));
802
+ }
803
+
804
+ const abort = new AbortController();
805
+
806
+ this.#aborts.set(page_index, abort);
807
+
808
+ const fetch = this.#fetch_page(page_index, frame_offset, fetch_size, abort.signal)
809
+ .finally(() => {
810
+ this.#pending.delete(page_index);
811
+ this.#aborts.delete(page_index);
812
+ });
296
813
 
297
814
  this.#pending.set(page_index, fetch);
298
815
 
@@ -300,13 +817,97 @@ export class VGeoContainerReader {
300
817
  }
301
818
 
302
819
  /**
820
+ * Abandon a fetch that is still in flight.
821
+ *
822
+ * **What a want that goes stale mid-flight should do, decided:** abort it while it can still be
823
+ * aborted, and install it once it cannot. The camera moved, nothing wants the page now, and the
824
+ * request is worth closing — but once the bytes have landed, refusing to install them is the one
825
+ * choice that pays for the fetch *and* throws the page away. So an abort that arrives too late
826
+ * does nothing, the page installs, and it enters residency untouched — which under LRU on
827
+ * last-touched (design §6) makes it the first candidate for eviction if the camera really is
828
+ * done with it, and free if it is not.
829
+ *
830
+ * The pending promise rejects, so a caller awaiting it sees the abort rather than a page. A
831
+ * cancelled page is **not** quarantined: nothing was wrong with it.
832
+ *
833
+ * @param {number} page_index
834
+ * @returns {boolean} whether there was a fetch to abandon
835
+ */
836
+ cancel(page_index) {
837
+ const abort = this.#aborts.get(page_index);
838
+
839
+ if (abort === undefined) {
840
+ return false;
841
+ }
842
+
843
+ abort.abort(new Error(`page ${page_index}: the fetch was cancelled`));
844
+
845
+ return true;
846
+ }
847
+
848
+ /**
849
+ * Abandon every fetch in flight.
850
+ * @returns {number} how many were abandoned
851
+ */
852
+ cancel_all() {
853
+ let cancelled = 0;
854
+
855
+ for (const page_index of Array.from(this.#aborts.keys())) {
856
+ if (this.cancel(page_index)) {
857
+ cancelled++;
858
+ }
859
+ }
860
+
861
+ return cancelled;
862
+ }
863
+
864
+ /**
865
+ * One page, retried a bounded number of times and then quarantined — §10.
866
+ *
303
867
  * @param {number} page_index
304
868
  * @param {number} frame_offset
305
869
  * @param {number} fetch_size
870
+ * @param {AbortSignal} signal
306
871
  * @returns {Promise<VGeoPage>}
307
872
  */
308
- async #fetch_page(page_index, frame_offset, fetch_size) {
309
- const bytes = await this.#read(frame_offset, fetch_size);
873
+ async #fetch_page(page_index, frame_offset, fetch_size, signal) {
874
+ const retries = this.#options.fetch_retries;
875
+
876
+ for (let attempt = 0; ; attempt++) {
877
+ try {
878
+ return await this.#read_page(page_index, frame_offset, fetch_size, signal);
879
+ } catch (e) {
880
+ if (signal.aborted) {
881
+ // cancelled rather than failed: nothing is wrong with this page
882
+ throw signal.reason ?? e;
883
+ }
884
+
885
+ const reason = String(e?.message ?? e);
886
+
887
+ if (attempt >= retries) {
888
+ this.#quarantined.set(page_index, reason);
889
+
890
+ throw new Error(
891
+ `page ${page_index} is quarantined after ${attempt + 1} attempt(s): ${reason}`
892
+ );
893
+ }
894
+
895
+ await delay(this.#options.fetch_retry_backoff_ms * (1 << attempt), signal);
896
+ }
897
+ }
898
+ }
899
+
900
+ /**
901
+ * One attempt: the bytes, the checks, the decode, and the residency it becomes.
902
+ *
903
+ * @param {number} page_index
904
+ * @param {number} frame_offset
905
+ * @param {number} fetch_size
906
+ * @param {AbortSignal} signal
907
+ * @returns {Promise<VGeoPage>}
908
+ */
909
+ async #read_page(page_index, frame_offset, fetch_size, signal) {
910
+ const bytes = await this.#read(frame_offset, fetch_size, signal);
310
911
 
311
912
  if (this.#options.verify_frames) {
312
913
  this.#verify_frame(bytes, page_index);
@@ -323,6 +924,10 @@ export class VGeoContainerReader {
323
924
  this.#pages.set(page_index, page);
324
925
 
325
926
  this.#resident_bytes += page.decoded_size;
927
+
928
+ // after the page is resident, because the cascade reads residency to decide whether a
929
+ // reference lands on a counter or waits in the pending index — including this page's own
930
+ this.#activate_page(page);
326
931
  }
327
932
 
328
933
  return this.#pages.get(page_index);
@@ -345,25 +950,58 @@ export class VGeoContainerReader {
345
950
  * clamped cluster projected — so a caller that stops early has fetched the pages that would fix
346
951
  * the most visible coarseness, not an arbitrary prefix of the list.
347
952
  *
953
+ * **A page that will not arrive does not take the batch down.** One flaky edge node, or one
954
+ * corrupt frame out of a thousand assets' worth of pages, must cost exactly that page: it is
955
+ * retried, then quarantined, then skipped, and what comes back is what did install. *Which*
956
+ * pages failed is durable rather than a per-call return — see {@link quarantine} — because a
957
+ * failure that lived only in one call's result is one the next call would repeat.
958
+ *
959
+ * The concurrency bound here is this reader's own. A runtime holding many assets wants a bound
960
+ * across all of them and should install through `VGeoResidencyManager`, which admits every
961
+ * registered reader's fetches through one scheduler: eight readers calling this at the default
962
+ * were measured issuing 48 concurrent range requests.
963
+ *
348
964
  * @param {VGeoPageWant[]} wants
349
965
  * @param {number} [limit] most pages to install; the rest are left for the next traversal to
350
966
  * want again, which it will, from a cut taken with everything this call did install
967
+ * @param {AbortSignal} [signal] stops the batch taking new wants, and abandons what is in flight
351
968
  * @returns {Promise<VGeoPage[]>} the pages installed, in completion order
352
969
  */
353
- async install_wants(wants, limit = wants.length) {
970
+ async install_wants(wants, limit = wants.length, signal = undefined) {
354
971
  // Sorted before it is cut, not after: a limit applied to the caller's order would install an
355
972
  // arbitrary prefix and the ranking would have bought nothing.
356
973
  const queue = wants.slice().sort((a, b) => b.priority - a.priority).slice(0, limit);
357
974
 
358
975
  const installed = [];
359
976
 
977
+ /**
978
+ * Pages *this* batch has on the wire, so that aborting it abandons those and not whatever
979
+ * another caller started. A signal belongs to one want list; {@link cancel_all} belongs to
980
+ * the reader, and using the second for the first would make two concurrent batches able to
981
+ * cancel each other.
982
+ * @type {Set<number>}
983
+ */
984
+ const mine = new Set();
985
+
360
986
  let next = 0;
361
987
 
362
988
  const worker = async () => {
363
989
  while (next < queue.length) {
990
+ if (signal !== undefined && signal.aborted) {
991
+ return;
992
+ }
993
+
364
994
  const want = queue[next++];
365
995
 
366
- installed.push(await this.install_want(want));
996
+ mine.add(want.page_index);
997
+
998
+ try {
999
+ installed.push(await this.install_want(want));
1000
+ } catch {
1001
+ // quarantined, or cancelled — either way, not this batch's business
1002
+ } finally {
1003
+ mine.delete(want.page_index);
1004
+ }
367
1005
  }
368
1006
  };
369
1007
 
@@ -375,7 +1013,19 @@ export class VGeoContainerReader {
375
1013
  workers.push(worker());
376
1014
  }
377
1015
 
378
- await Promise.all(workers);
1016
+ const abandon = () => {
1017
+ for (const page_index of mine) {
1018
+ this.cancel(page_index);
1019
+ }
1020
+ };
1021
+
1022
+ signal?.addEventListener('abort', abandon, { once: true });
1023
+
1024
+ try {
1025
+ await Promise.all(workers);
1026
+ } finally {
1027
+ signal?.removeEventListener('abort', abandon);
1028
+ }
379
1029
 
380
1030
  return installed;
381
1031
  }
@@ -385,7 +1035,8 @@ export class VGeoContainerReader {
385
1035
  *
386
1036
  * The eviction *rule* — a page is evictable only while it has no resident child pages, and the
387
1037
  * root is pinned (§10) — is a residency policy and belongs to whatever is managing the budget,
388
- * not here. What this does is the dropping.
1038
+ * not here. What this does is the dropping; {@link resident_child_count} is the lookup the rule
1039
+ * is written in terms of.
389
1040
  *
390
1041
  * @param {number} page_index
391
1042
  * @returns {boolean} whether a page was there to drop
@@ -397,6 +1048,44 @@ export class VGeoContainerReader {
397
1048
  return false;
398
1049
  }
399
1050
 
1051
+ /*
1052
+ Retract before dropping: the references this page's selectable groups made are read out of
1053
+ its own cluster records, and a page that has already been forgotten cannot say what it was
1054
+ holding up. Under §10's eviction rule — a page is evictable only while it has no resident
1055
+ child pages — this decrements nothing that is still resident and costs a walk of the page.
1056
+ When a caller evicts against that rule anyway, the cascade is what stops a child page from
1057
+ staying drawable with nothing above it.
1058
+ */
1059
+ const selectable = this.#selectable.get(page_index);
1060
+
1061
+ for (let group = 0; group < selectable.length; group++) {
1062
+ this.#cascade_deactivate(page_index, group);
1063
+ }
1064
+
1065
+ /*
1066
+ References *into* this page do not go away with it — the clusters making them are in pages
1067
+ that are still here and still selectable — so they move back to the pending index, and a
1068
+ re-install starts its counters where they left off rather than at zero.
1069
+ */
1070
+ const live = this.#live_refs.get(page_index);
1071
+
1072
+ const held = new Map();
1073
+
1074
+ for (let group = 0; group < live.length; group++) {
1075
+ if (live[group] > 0) {
1076
+ held.set(group, live[group]);
1077
+ }
1078
+ }
1079
+
1080
+ if (held.size > 0) {
1081
+ this.#pending_refs.set(page_index, held);
1082
+ } else {
1083
+ this.#pending_refs.delete(page_index);
1084
+ }
1085
+
1086
+ this.#live_refs.delete(page_index);
1087
+ this.#selectable.delete(page_index);
1088
+
400
1089
  this.#pages.delete(page_index);
401
1090
 
402
1091
  this.#resident_bytes -= page.decoded_size;
@@ -451,47 +1140,38 @@ export class VGeoContainerReader {
451
1140
  /**
452
1141
  * Install every page the directory lists.
453
1142
  *
454
- * The opposite of what this reader is for, and exactly what a tool wants when the question is
455
- * about the file rather than about a view of it — the pages no cut reaches are the ones a bug
456
- * hides in.
457
- *
1143
+ * @deprecated it reads the whole file, and a renderer holding a reader must not be able to reach
1144
+ * that from the reader. Call `vgeo_install_all_pages` in `tool/` instead, which is a tool
1145
+ * and says so. Kept as a shim because the playground and the specs are what it is for.
458
1146
  * @param {function(number, number): void} [on_progress] called with pages installed and total
459
1147
  * @returns {Promise<void>}
460
1148
  */
461
1149
  async install_all_pages(on_progress = undefined) {
462
- const directory = await this.read_directory();
463
-
464
- let done = 0;
1150
+ const { vgeo_install_all_pages } = await import('./tool/vgeo_install_all_pages.js');
465
1151
 
466
- for (let index = 0; index < directory.page_count; index++) {
467
- await this.install(index, directory.frame_offset[index], directory.fetch_size[index]);
468
-
469
- done++;
470
-
471
- if (on_progress !== undefined) {
472
- on_progress(done, directory.page_count);
473
- }
474
- }
1152
+ await vgeo_install_all_pages(this, on_progress);
475
1153
  }
476
1154
 
477
1155
  /**
478
1156
  * The whole-file audit — every build invariant of §11, every checksum, and the directory against
479
1157
  * what a frame scan reconstructs.
480
1158
  *
481
- * **This reads the entire file**, which is the one thing the rest of this class exists to avoid,
482
- * and it is why it is a separate call and off by default. It answers a question about whoever
483
- * produced the file; nothing about reading one depends on it having been asked.
484
- *
1159
+ * @deprecated it reads the entire file into one `ArrayBuffer`, which is the one thing the rest
1160
+ * of this class exists to avoid and which a multi-GB asset does not survive. Call
1161
+ * `vgeo_audit_container` in `tool/` instead, which refuses a file too large to audit this
1162
+ * way rather than attempting it. Kept as a shim for the playground and the specs.
485
1163
  * @returns {Promise<VGeoDefect[]>} empty is the only good answer
486
1164
  */
487
1165
  async validate() {
488
- const bytes = await this.#source.read(0, this.#source.byte_length);
489
-
490
- const whole = bytes.byteOffset === 0 && bytes.byteLength === bytes.buffer.byteLength
491
- ? bytes.buffer
492
- : bytes.slice().buffer;
1166
+ /*
1167
+ Imported here rather than at the top of the file on purpose: a static import would put
1168
+ `vgeo_validate_container` — and the whole-file scan it carries — in the same module graph as
1169
+ every runtime that opens a container. The dynamic import is what makes "a runtime path
1170
+ cannot reach the audit" true of the bundle and not only of the documentation.
1171
+ */
1172
+ const { vgeo_audit_container } = await import('./tool/vgeo_audit_container.js');
493
1173
 
494
- return vgeo_validate_container(BinaryBuffer.fromArrayBuffer(whole));
1174
+ return vgeo_audit_container(this);
495
1175
  }
496
1176
 
497
1177
  /**
@@ -499,21 +1179,55 @@ export class VGeoContainerReader {
499
1179
  *
500
1180
  * @param {number} offset
501
1181
  * @param {number} length
1182
+ * @param {AbortSignal} [signal]
502
1183
  * @returns {Promise<Uint8Array>}
503
1184
  */
504
- #read(offset, length) {
505
- if (offset + length <= this.#head.byteLength) {
506
- return Promise.resolve(this.#head.subarray(offset, offset + length));
1185
+ #read(offset, length, signal = undefined) {
1186
+ const head = this.#head;
1187
+
1188
+ if (offset + length <= head.byteLength) {
1189
+ return Promise.resolve(head.subarray(offset, offset + length));
1190
+ }
1191
+
1192
+ /*
1193
+ The prefix has stopped paying for itself. File order is coarse-first, so a read past the end
1194
+ of the head is a traversal that has walked past the band the head covered, and the pages
1195
+ inside it that were going to be free already were. Holding it from here on holds bytes
1196
+ nothing will read: measured, a 256 KiB prefix over a 22 MB container covered 105 of its
1197
+ 4,000 pages, and once those installed the whole prefix served nothing — while staying
1198
+ outside `resident_bytes` and outside anything `evict` could reach. Across a thousand open
1199
+ assets that was a quarter of a gigabyte no budget could see.
1200
+ */
1201
+ if (head.byteLength > 0) {
1202
+ this.release_head();
507
1203
  }
508
1204
 
509
- return this.#source.read(offset, length);
1205
+ return this.#source.read(offset, length, signal);
1206
+ }
1207
+
1208
+ /**
1209
+ * Drop the speculative head prefix.
1210
+ *
1211
+ * Nothing depends on it afterwards: the header and level table are parsed into {@link header}
1212
+ * before anything else runs, the root page owns its own decoded bytes, and every later read
1213
+ * names a range the source can serve. A page whose frame lay inside the prefix costs one request
1214
+ * if it is wanted after this — the same request it would have cost had the prefix been smaller.
1215
+ *
1216
+ * @returns {number} bytes released
1217
+ */
1218
+ release_head() {
1219
+ const released = this.#head.byteLength;
1220
+
1221
+ this.#head = NO_HEAD;
1222
+
1223
+ return released;
510
1224
  }
511
1225
 
512
1226
  /**
513
1227
  * Extend the kept head prefix to `to` bytes, fetching only the part that is missing.
514
1228
  *
515
- * Only ever at the tail, which is what keeps a cold start from paying for the same bytes twice:
516
- * the header is read once even when the prefix that carried it stopped short of the level table.
1229
+ * Called exactly once, from {@link #open}, before anything else has read a byte — so the copy it
1230
+ * makes happens once per reader, and it never re-copies a prefix that is already in use.
517
1231
  *
518
1232
  * @param {number} to
519
1233
  * @returns {Promise<void>}
@@ -570,3 +1284,41 @@ export class VGeoContainerReader {
570
1284
  }
571
1285
  }
572
1286
  }
1287
+
1288
+ /**
1289
+ * Wait, unless the caller stops wanting to.
1290
+ *
1291
+ * The timer is cleared on abort rather than left to fire, because a backoff between retries of a
1292
+ * page nobody wants any more is exactly the wait a cancelled fetch should not sit through.
1293
+ *
1294
+ * @param {number} ms
1295
+ * @param {AbortSignal} signal
1296
+ * @returns {Promise<void>}
1297
+ */
1298
+ function delay(ms, signal) {
1299
+ if (ms <= 0) {
1300
+ return Promise.resolve();
1301
+ }
1302
+
1303
+ // Checked rather than relied on: `addEventListener` on a signal that has already aborted never
1304
+ // fires, so a wait started on one would run to term with nobody left who wanted it.
1305
+ if (signal.aborted) {
1306
+ return Promise.reject(signal.reason ?? new Error('the wait was cancelled'));
1307
+ }
1308
+
1309
+ return new Promise((resolve, reject) => {
1310
+ const on_abort = () => {
1311
+ clearTimeout(timer);
1312
+
1313
+ reject(signal.reason ?? new Error('the wait was cancelled'));
1314
+ };
1315
+
1316
+ const timer = setTimeout(() => {
1317
+ signal.removeEventListener('abort', on_abort);
1318
+
1319
+ resolve();
1320
+ }, ms);
1321
+
1322
+ signal.addEventListener('abort', on_abort, { once: true });
1323
+ });
1324
+ }