@woosh/meep-engine 3.15.0 → 3.16.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 (952) hide show
  1. package/editor/Editor.js +7 -7
  2. package/editor/actions/concrete/TransformModifyAction.d.ts +4 -4
  3. package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -1
  4. package/editor/actions/concrete/TransformModifyAction.js +4 -4
  5. package/editor/camera/camera_framing.js +7 -7
  6. package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts +20 -0
  7. package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts.map +1 -0
  8. package/editor/ecs/component/editors/ecs/Transform64Editor.js +70 -0
  9. package/editor/ecs/component/prototypeObjectEditor.js +2 -2
  10. package/editor/ecs/component/registerEngineComponentEditors.js +3 -3
  11. package/editor/particles/effect/ParticleEffectDocument.d.ts +396 -0
  12. package/editor/particles/effect/ParticleEffectDocument.d.ts.map +1 -0
  13. package/editor/particles/effect/ParticleEffectDocument.js +989 -0
  14. package/editor/particles/effect/ParticleReferenceSimulation.d.ts +113 -0
  15. package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -0
  16. package/editor/particles/effect/ParticleReferenceSimulation.js +377 -0
  17. package/editor/particles/effect/actions/ParticleGroupDefineAction.d.ts +35 -0
  18. package/editor/particles/effect/actions/ParticleGroupDefineAction.d.ts.map +1 -0
  19. package/editor/particles/effect/actions/ParticleGroupDefineAction.js +45 -0
  20. package/editor/particles/effect/make_starter_particle_effect.d.ts +23 -0
  21. package/editor/particles/effect/make_starter_particle_effect.d.ts.map +1 -0
  22. package/editor/particles/effect/make_starter_particle_effect.js +177 -0
  23. package/editor/persistence/buildNewSceneDataset.d.ts.map +1 -1
  24. package/editor/persistence/buildNewSceneDataset.js +10 -8
  25. package/editor/process/symbolic/AudioEmitterSymbolicDisplay.js +67 -67
  26. package/editor/process/symbolic/CameraSymbolicDisplay.js +146 -146
  27. package/editor/process/symbolic/GridPositionSymbolicDisplay.js +6 -6
  28. package/editor/process/symbolic/LightSymbolicDisplay.js +172 -172
  29. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts.map +1 -1
  30. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.js +6 -3
  31. package/editor/process/symbolic/PositionedMarkerSymbolicDisplay.js +6 -6
  32. package/editor/selection/editor_pick.js +130 -130
  33. package/editor/templates/entity_templates.js +7 -7
  34. package/editor/tools/TransformToolV2.d.ts +3 -3
  35. package/editor/tools/TransformToolV2.d.ts.map +1 -1
  36. package/editor/tools/TransformToolV2.js +58 -25
  37. package/editor/tools/paint/TerrainHeightPaintTool.d.ts.map +1 -1
  38. package/editor/tools/paint/TerrainHeightPaintTool.js +11 -9
  39. package/editor/tools/v2/GizmoNode.js +2 -2
  40. package/editor/tools/v2/TransformControls.d.ts +3 -3
  41. package/editor/tools/v2/TransformControls.d.ts.map +1 -1
  42. package/editor/tools/v2/TransformControls.js +1003 -971
  43. package/editor/tools/v2/handle/gizmo_drag_plane.d.ts.map +1 -1
  44. package/editor/tools/v2/handle/gizmo_drag_plane.js +6 -1
  45. package/editor/view/ecs/components/common/AutoCanvasView.js +17 -0
  46. package/editor/view/node-graph/NodeGraphEditorView.d.ts +143 -2
  47. package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
  48. package/editor/view/node-graph/NodeGraphEditorView.js +358 -6
  49. package/editor/view/node-graph/NodeGraphMinimapView.d.ts +120 -0
  50. package/editor/view/node-graph/NodeGraphMinimapView.d.ts.map +1 -0
  51. package/editor/view/node-graph/NodeGraphMinimapView.js +859 -0
  52. package/editor/view/node-graph/NodeGraphPaletteView.d.ts +112 -0
  53. package/editor/view/node-graph/NodeGraphPaletteView.d.ts.map +1 -0
  54. package/editor/view/node-graph/NodeGraphPaletteView.js +352 -0
  55. package/editor/view/node-graph/NodeGraphSearchMenuView.d.ts +76 -0
  56. package/editor/view/node-graph/NodeGraphSearchMenuView.d.ts.map +1 -0
  57. package/editor/view/node-graph/NodeGraphSearchMenuView.js +247 -0
  58. package/editor/view/node-graph/NodeGraphView.d.ts +147 -5
  59. package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
  60. package/editor/view/node-graph/NodeGraphView.js +809 -76
  61. package/editor/view/node-graph/NodeIconView.d.ts +33 -0
  62. package/editor/view/node-graph/NodeIconView.d.ts.map +1 -0
  63. package/editor/view/node-graph/NodeIconView.js +54 -0
  64. package/editor/view/node-graph/NodeView.d.ts +71 -1
  65. package/editor/view/node-graph/NodeView.d.ts.map +1 -1
  66. package/editor/view/node-graph/NodeView.js +318 -17
  67. package/editor/view/node-graph/PortView.d.ts +41 -1
  68. package/editor/view/node-graph/PortView.d.ts.map +1 -1
  69. package/editor/view/node-graph/PortView.js +121 -69
  70. package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts +16 -3
  71. package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts.map +1 -1
  72. package/editor/view/node-graph/actions/ConnectionDeleteAction.js +29 -3
  73. package/editor/view/node-graph/actions/NodeCreateAction.d.ts +65 -0
  74. package/editor/view/node-graph/actions/NodeCreateAction.d.ts.map +1 -0
  75. package/editor/view/node-graph/actions/NodeCreateAction.js +108 -0
  76. package/editor/view/node-graph/actions/NodeDeleteAction.d.ts +6 -0
  77. package/editor/view/node-graph/actions/NodeDeleteAction.d.ts.map +1 -1
  78. package/editor/view/node-graph/actions/NodeDeleteAction.js +24 -2
  79. package/editor/view/node-graph/connection_wire_geometry.d.ts +34 -0
  80. package/editor/view/node-graph/connection_wire_geometry.d.ts.map +1 -1
  81. package/editor/view/node-graph/connection_wire_geometry.js +79 -3
  82. package/editor/view/node-graph/node-graph.css +678 -0
  83. package/editor/view/particles/effect/ParticleCodeEditorView.d.ts +37 -0
  84. package/editor/view/particles/effect/ParticleCodeEditorView.d.ts.map +1 -0
  85. package/editor/view/particles/effect/ParticleCodeEditorView.js +479 -0
  86. package/editor/view/particles/effect/ParticleEffectEditorView.d.ts +61 -0
  87. package/editor/view/particles/effect/ParticleEffectEditorView.d.ts.map +1 -0
  88. package/editor/view/particles/effect/ParticleEffectEditorView.js +223 -0
  89. package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts +25 -0
  90. package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts.map +1 -0
  91. package/editor/view/particles/effect/ParticleEmitterInspectorView.js +606 -0
  92. package/editor/view/particles/effect/ParticleGraphEditorView.d.ts +156 -0
  93. package/editor/view/particles/effect/ParticleGraphEditorView.d.ts.map +1 -0
  94. package/editor/view/particles/effect/ParticleGraphEditorView.js +1636 -0
  95. package/editor/view/particles/effect/ParticleNodeParametersView.d.ts +22 -0
  96. package/editor/view/particles/effect/ParticleNodeParametersView.d.ts.map +1 -0
  97. package/editor/view/particles/effect/ParticleNodeParametersView.js +520 -0
  98. package/editor/view/particles/effect/ParticlePreviewView.d.ts +52 -0
  99. package/editor/view/particles/effect/ParticlePreviewView.d.ts.map +1 -0
  100. package/editor/view/particles/effect/ParticlePreviewView.js +533 -0
  101. package/editor/view/particles/effect/particle-editor.css +556 -0
  102. package/editor/view/prepareMeshLibrary.d.ts.map +1 -1
  103. package/editor/view/prepareMeshLibrary.js +8 -4
  104. package/package.json +1 -1
  105. package/samples/engine/first-scene/main.js +152 -152
  106. package/samples/generation/generators/mir_generator_place_bases.js +3 -3
  107. package/src/core/assert.d.ts +28 -24
  108. package/src/core/assert.d.ts.map +1 -1
  109. package/src/core/assert.js +34 -26
  110. package/src/core/geom/3d/shape/PosedShape3D.d.ts +17 -0
  111. package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
  112. package/src/core/geom/3d/shape/PosedShape3D.js +34 -2
  113. package/src/core/graph/format/graphviz/graphviz_escape_html_label.d.ts +17 -0
  114. package/src/core/graph/format/graphviz/graphviz_escape_html_label.d.ts.map +1 -0
  115. package/src/core/graph/format/graphviz/graphviz_escape_html_label.js +25 -0
  116. package/src/core/graph/format/graphviz/graphviz_escape_quoted.d.ts +16 -0
  117. package/src/core/graph/format/graphviz/graphviz_escape_quoted.d.ts.map +1 -0
  118. package/src/core/graph/format/graphviz/graphviz_escape_quoted.js +24 -0
  119. package/src/core/model/node-graph/NodeGraph.d.ts +12 -0
  120. package/src/core/model/node-graph/NodeGraph.d.ts.map +1 -1
  121. package/src/core/model/node-graph/NodeGraph.js +21 -6
  122. package/src/core/model/node-graph/node/NodeDescription.d.ts +36 -0
  123. package/src/core/model/node-graph/node/NodeDescription.d.ts.map +1 -1
  124. package/src/core/model/node-graph/node/NodeDescription.js +41 -0
  125. package/src/core/model/node-graph/visual/ConnectionVisualData.d.ts +119 -0
  126. package/src/core/model/node-graph/visual/ConnectionVisualData.d.ts.map +1 -0
  127. package/src/core/model/node-graph/visual/ConnectionVisualData.js +317 -0
  128. package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.d.ts +4 -0
  129. package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.d.ts.map +1 -1
  130. package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.js +125 -22
  131. package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts +91 -2
  132. package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts.map +1 -1
  133. package/src/core/model/node-graph/visual/NodeGraphVisualData.js +164 -113
  134. package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.d.ts +162 -0
  135. package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.d.ts.map +1 -0
  136. package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.js +288 -0
  137. package/src/core/model/node-graph/visual/layout/LayoutProblem.d.ts +109 -0
  138. package/src/core/model/node-graph/visual/layout/LayoutProblem.d.ts.map +1 -0
  139. package/src/core/model/node-graph/visual/layout/LayoutProblem.js +141 -0
  140. package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts +149 -0
  141. package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts.map +1 -0
  142. package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.js +175 -0
  143. package/src/core/model/node-graph/visual/layout/RouteGrid.d.ts +137 -0
  144. package/src/core/model/node-graph/visual/layout/RouteGrid.d.ts.map +1 -0
  145. package/src/core/model/node-graph/visual/layout/RouteGrid.js +242 -0
  146. package/src/core/model/node-graph/visual/layout/RouteSearch.d.ts +114 -0
  147. package/src/core/model/node-graph/visual/layout/RouteSearch.d.ts.map +1 -0
  148. package/src/core/model/node-graph/visual/layout/RouteSearch.js +300 -0
  149. package/src/core/model/node-graph/visual/layout/RouteSet.d.ts +86 -0
  150. package/src/core/model/node-graph/visual/layout/RouteSet.d.ts.map +1 -0
  151. package/src/core/model/node-graph/visual/layout/RouteSet.js +168 -0
  152. package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.d.ts +48 -0
  153. package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.d.ts.map +1 -0
  154. package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.js +555 -0
  155. package/src/core/model/node-graph/visual/layout/layout_assign_layers.d.ts +34 -0
  156. package/src/core/model/node-graph/visual/layout/layout_assign_layers.d.ts.map +1 -0
  157. package/src/core/model/node-graph/visual/layout/layout_assign_layers.js +202 -0
  158. package/src/core/model/node-graph/visual/layout/layout_break_cycles.d.ts +34 -0
  159. package/src/core/model/node-graph/visual/layout/layout_break_cycles.d.ts.map +1 -0
  160. package/src/core/model/node-graph/visual/layout/layout_break_cycles.js +254 -0
  161. package/src/core/model/node-graph/visual/layout/layout_build_problem.d.ts +29 -0
  162. package/src/core/model/node-graph/visual/layout/layout_build_problem.d.ts.map +1 -0
  163. package/src/core/model/node-graph/visual/layout/layout_build_problem.js +184 -0
  164. package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts +29 -0
  165. package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts.map +1 -0
  166. package/src/core/model/node-graph/visual/layout/layout_insert_lanes.js +95 -0
  167. package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts +56 -0
  168. package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts.map +1 -0
  169. package/src/core/model/node-graph/visual/layout/layout_node_graph.js +131 -0
  170. package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts +36 -0
  171. package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts.map +1 -0
  172. package/src/core/model/node-graph/visual/layout/layout_order_layers.js +415 -0
  173. package/src/core/model/node-graph/visual/layout/layout_orient_links.d.ts +21 -0
  174. package/src/core/model/node-graph/visual/layout/layout_orient_links.d.ts.map +1 -0
  175. package/src/core/model/node-graph/visual/layout/layout_orient_links.js +49 -0
  176. package/src/core/model/node-graph/visual/layout/route_connections.d.ts +41 -0
  177. package/src/core/model/node-graph/visual/layout/route_connections.d.ts.map +1 -0
  178. package/src/core/model/node-graph/visual/layout/route_connections.js +309 -0
  179. package/src/core/model/node-graph/visual/layout/route_grid_build.d.ts +33 -0
  180. package/src/core/model/node-graph/visual/layout/route_grid_build.d.ts.map +1 -0
  181. package/src/core/model/node-graph/visual/layout/route_grid_build.js +237 -0
  182. package/src/core/model/node-graph/visual/layout/route_nudge.d.ts +25 -0
  183. package/src/core/model/node-graph/visual/layout/route_nudge.d.ts.map +1 -0
  184. package/src/core/model/node-graph/visual/layout/route_nudge.js +220 -0
  185. package/src/core/model/node-graph/visual/layout/route_to_spline.d.ts +29 -0
  186. package/src/core/model/node-graph/visual/layout/route_to_spline.d.ts.map +1 -0
  187. package/src/core/model/node-graph/visual/layout/route_to_spline.js +120 -0
  188. package/src/engine/EngineHarness.d.ts.map +1 -1
  189. package/src/engine/EngineHarness.js +593 -586
  190. package/src/engine/EntityCreator.js +116 -116
  191. package/src/engine/achievements/AchievementManager.js +437 -437
  192. package/src/engine/animation/AnimatedActions.js +111 -111
  193. package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
  194. package/src/engine/animation/AnimationUtils.js +246 -234
  195. package/src/engine/animation/Animations.d.ts +1 -0
  196. package/src/engine/animation/Animations.d.ts.map +1 -1
  197. package/src/engine/animation/Animations.js +13 -5
  198. package/src/engine/animation/clip/bind_property_writer.d.ts.map +1 -1
  199. package/src/engine/animation/clip/bind_property_writer.js +12 -5
  200. package/src/engine/animation/curve/binding/BoundTransform64Writer.d.ts +29 -0
  201. package/src/engine/animation/curve/binding/BoundTransform64Writer.d.ts.map +1 -0
  202. package/src/engine/animation/curve/binding/BoundTransform64Writer.js +80 -0
  203. package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +4 -4
  204. package/src/engine/asset/loaders/gltf_test_fixtures.d.ts.map +1 -1
  205. package/src/engine/asset/loaders/gltf_test_fixtures.js +5 -4
  206. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +12 -12
  207. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
  208. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +77 -44
  209. package/src/engine/control/first-person/abilities/LedgeGrab.js +1 -1
  210. package/src/engine/control/first-person/abilities/Mantle.js +1 -1
  211. package/src/engine/control/first-person/abilities/Slide.js +1 -1
  212. package/src/engine/control/first-person/collision/KinematicMover.d.ts +5 -9
  213. package/src/engine/control/first-person/collision/KinematicMover.d.ts.map +1 -1
  214. package/src/engine/control/first-person/collision/KinematicMover.js +59 -29
  215. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts +2 -2
  216. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
  217. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +7 -7
  218. package/src/engine/ecs/EventType.d.ts +1 -0
  219. package/src/engine/ecs/EventType.js +35 -10
  220. package/src/engine/ecs/dynamic_actions/actions/definition/SendRequestActionDescription.d.ts.map +1 -1
  221. package/src/engine/ecs/dynamic_actions/actions/definition/SendRequestActionDescription.js +12 -4
  222. package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts +4 -4
  223. package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts.map +1 -1
  224. package/src/engine/ecs/fow/FogOfWarRevealerSystem.js +10 -11
  225. package/src/engine/ecs/grid/pick.js +1 -1
  226. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts +1 -1
  227. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +13 -13
  228. package/src/engine/ecs/gui/hud/testHudEdgeStick.js +3 -3
  229. package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts +10 -10
  230. package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +1 -1
  231. package/src/engine/ecs/ik/InverseKinematicsSystem.js +8 -8
  232. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +1 -1
  233. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +120 -97
  234. package/src/engine/ecs/ik/ik_bone_chain.d.ts +16 -5
  235. package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +1 -1
  236. package/src/engine/ecs/ik/ik_bone_chain.js +16 -4
  237. package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts +7 -3
  238. package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts.map +1 -1
  239. package/src/engine/ecs/ik/ik_probe_terrain_contact.js +20 -16
  240. package/src/engine/ecs/ik/ik_write_local_rotation.d.ts +18 -0
  241. package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +1 -0
  242. package/src/engine/ecs/ik/ik_write_local_rotation.js +30 -0
  243. package/src/engine/ecs/parent/EntityNode.d.ts +24 -6
  244. package/src/engine/ecs/parent/EntityNode.d.ts.map +1 -1
  245. package/src/engine/ecs/parent/EntityNode.js +54 -42
  246. package/src/engine/ecs/parent/EntityNodeFlags.d.ts +0 -1
  247. package/src/engine/ecs/parent/EntityNodeFlags.js +7 -8
  248. package/src/engine/ecs/speaker/VoiceSystem.d.ts +2 -2
  249. package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
  250. package/src/engine/ecs/speaker/VoiceSystem.js +4 -4
  251. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  252. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +2 -0
  253. package/src/engine/ecs/terrain/ecs/Terrain.d.ts +5 -2
  254. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  255. package/src/engine/ecs/terrain/ecs/Terrain.js +7 -4
  256. package/src/engine/ecs/terrain/ecs/TerrainSystem.js +3 -3
  257. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts +7 -7
  258. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
  259. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +84 -36
  260. package/src/engine/ecs/transform/TRANSFORM64_MIGRATION_PLAN_2026_09_04.md +513 -0
  261. package/src/engine/ecs/transform/Transform64.d.ts +48 -11
  262. package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
  263. package/src/engine/ecs/transform/Transform64.js +54 -15
  264. package/src/engine/ecs/transform/Transform64SerializationAdapter.d.ts +37 -0
  265. package/src/engine/ecs/transform/Transform64SerializationAdapter.d.ts.map +1 -0
  266. package/src/engine/ecs/transform/Transform64SerializationAdapter.js +75 -0
  267. package/src/engine/ecs/transform/__probe.d.ts +4 -0
  268. package/src/engine/ecs/transform/__probe.d.ts.map +1 -0
  269. package/src/engine/ecs/transform/t64_allocation_probe.d.ts +31 -0
  270. package/src/engine/ecs/transform/t64_allocation_probe.d.ts.map +1 -0
  271. package/src/engine/ecs/transform/t64_allocation_probe.js +78 -0
  272. package/src/engine/ecs/transform/t64_announce_change.d.ts +33 -0
  273. package/src/engine/ecs/transform/t64_announce_change.d.ts.map +1 -0
  274. package/src/engine/ecs/transform/t64_announce_change.js +39 -0
  275. package/src/engine/ecs/transform/t64_equals_components.d.ts +30 -0
  276. package/src/engine/ecs/transform/t64_equals_components.d.ts.map +1 -0
  277. package/src/engine/ecs/transform/t64_equals_components.js +59 -0
  278. package/src/engine/ecs/transform/t64_read_rotation.d.ts +13 -0
  279. package/src/engine/ecs/transform/t64_read_rotation.d.ts.map +1 -0
  280. package/src/engine/ecs/transform/t64_read_rotation.js +16 -0
  281. package/src/engine/ecs/transform/t64_read_translation.d.ts +14 -0
  282. package/src/engine/ecs/transform/t64_read_translation.d.ts.map +1 -0
  283. package/src/engine/ecs/transform/t64_read_translation.js +17 -0
  284. package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts +5 -5
  285. package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts.map +1 -1
  286. package/src/engine/ecs/transform-attachment/TransformAttachment.js +4 -4
  287. package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +10 -10
  288. package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
  289. package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +71 -20
  290. package/src/engine/graphics/debug/createDebugLabel.js +3 -3
  291. package/src/engine/graphics/ecs/camera/pp/PerfectPanner.d.ts.map +1 -1
  292. package/src/engine/graphics/ecs/camera/pp/PerfectPanner.js +5 -4
  293. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
  294. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +8 -3
  295. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts +6 -6
  296. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  297. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +25 -13
  298. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLanderSystem.js +1 -1
  299. package/src/engine/graphics/ecs/mesh/setMesh.js +2 -2
  300. package/src/engine/graphics/ecs/path/entity/EntityPath.d.ts.map +1 -1
  301. package/src/engine/graphics/ecs/path/entity/EntityPath.js +21 -7
  302. package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts +4 -4
  303. package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts.map +1 -1
  304. package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.js +4 -4
  305. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts +2 -2
  306. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +1 -1
  307. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +145 -135
  308. package/src/engine/graphics/geometry/MikkT/Build4RuleGroups.js +2 -2
  309. package/src/engine/graphics/geometry/MikkT/DegenEpilogue.js +1 -1
  310. package/src/engine/graphics/geometry/MikkT/DegenPrologue.js +1 -1
  311. package/src/engine/graphics/geometry/MikkT/EvalTspace.js +1 -1
  312. package/src/engine/graphics/geometry/MikkT/GenerateTSpaces.js +3 -3
  313. package/src/engine/graphics/render/frame_graph/CORRECTNESS_FIXES_2026_09_04.md +659 -0
  314. package/src/engine/graphics/render/frame_graph/FRAME_GRAPH_RECOMMENDATIONS.md +21 -5
  315. package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts +45 -0
  316. package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts.map +1 -1
  317. package/src/engine/graphics/render/frame_graph/FrameGraph.js +282 -60
  318. package/src/engine/graphics/render/frame_graph/FramePassBuilder.d.ts.map +1 -1
  319. package/src/engine/graphics/render/frame_graph/FramePassBuilder.js +20 -9
  320. package/src/engine/graphics/render/frame_graph/FramePassNode.d.ts +12 -0
  321. package/src/engine/graphics/render/frame_graph/FramePassNode.d.ts.map +1 -1
  322. package/src/engine/graphics/render/frame_graph/FramePassNode.js +13 -0
  323. package/src/engine/graphics/render/frame_graph/FramePassResources.d.ts.map +1 -1
  324. package/src/engine/graphics/render/frame_graph/FramePassResources.js +5 -0
  325. package/src/engine/graphics/render/frame_graph/ResourceEntry.d.ts +19 -1
  326. package/src/engine/graphics/render/frame_graph/ResourceEntry.d.ts.map +1 -1
  327. package/src/engine/graphics/render/frame_graph/ResourceEntry.js +23 -1
  328. package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.d.ts +15 -1
  329. package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.d.ts.map +1 -1
  330. package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.js +33 -16
  331. package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.d.ts.map +1 -1
  332. package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.js +19 -1
  333. package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +6 -6
  334. package/src/engine/graphics3/CameraSystem.d.ts +6 -6
  335. package/src/engine/graphics3/CameraSystem.d.ts.map +1 -1
  336. package/src/engine/graphics3/CameraSystem.js +170 -170
  337. package/src/engine/graphics3/DecalSystem.d.ts +6 -6
  338. package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
  339. package/src/engine/graphics3/DecalSystem.js +449 -449
  340. package/src/engine/graphics3/LightSystem.d.ts +6 -6
  341. package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
  342. package/src/engine/graphics3/LightSystem.js +234 -221
  343. package/src/engine/graphics3/MeshSystem.d.ts +6 -6
  344. package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
  345. package/src/engine/graphics3/MeshSystem.js +53 -22
  346. package/src/engine/graphics3/ParticipatingMediaSystem.d.ts +20 -15
  347. package/src/engine/graphics3/ParticipatingMediaSystem.d.ts.map +1 -1
  348. package/src/engine/graphics3/ParticipatingMediaSystem.js +198 -184
  349. package/src/engine/graphics3/ParticleEmitterSystem.d.ts +6 -6
  350. package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +1 -1
  351. package/src/engine/graphics3/ParticleEmitterSystem.js +310 -289
  352. package/src/engine/graphics3/PickingSystem.d.ts +6 -6
  353. package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
  354. package/src/engine/graphics3/PickingSystem.js +273 -273
  355. package/src/engine/graphics3/ShadedGeometrySystem.d.ts +6 -6
  356. package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
  357. package/src/engine/graphics3/ShadedGeometrySystem.js +180 -169
  358. package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -1
  359. package/src/engine/graphics3/TerrainSystem.js +565 -566
  360. package/src/engine/graphics3/Trail3DSystem.d.ts +6 -6
  361. package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
  362. package/src/engine/graphics3/Trail3DSystem.js +221 -221
  363. package/src/engine/graphics3/camera_sync_from_transform.d.ts +2 -2
  364. package/src/engine/graphics3/camera_sync_from_transform.d.ts.map +1 -1
  365. package/src/engine/graphics3/camera_sync_from_transform.js +2 -1
  366. package/src/engine/graphics3/debug/gizmo_view_from_camera.js +4 -4
  367. package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts +6 -0
  368. package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts.map +1 -1
  369. package/src/engine/graphics3/particles/GPUParticularRenderer.js +82 -53
  370. package/src/engine/graphics3/particles/particle_gpu_records.d.ts +12 -8
  371. package/src/engine/graphics3/particles/particle_gpu_records.d.ts.map +1 -1
  372. package/src/engine/graphics3/particles/particle_gpu_records.js +53 -45
  373. package/src/engine/graphics3/preview/make_model_preview_scene.js +1 -1
  374. package/src/engine/graphics3/shade_camera_projection_ray.js +4 -4
  375. package/src/engine/graphics3/shade_node_to_entity_composition.d.ts.map +1 -1
  376. package/src/engine/graphics3/shade_node_to_entity_composition.js +88 -84
  377. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts +7 -7
  378. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
  379. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +8 -8
  380. package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts +9 -8
  381. package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts.map +1 -1
  382. package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +29 -8
  383. package/src/engine/input/ecs/controllers/KeyboardCameraController.js +2 -2
  384. package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.d.ts.map +1 -1
  385. package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.js +35 -21
  386. package/src/engine/intelligence/behavior/util/RotationBehavior.js +5 -5
  387. package/src/engine/intelligence/mcts/StateNode.js +1 -1
  388. package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts +7 -7
  389. package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts.map +1 -1
  390. package/src/engine/interpolation/TransformPoseSerializationAdapter.js +14 -15
  391. package/src/engine/interpolation/pose_interpoland.d.ts +2 -2
  392. package/src/engine/interpolation/pose_interpoland.js +4 -4
  393. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts +4 -4
  394. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
  395. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +39 -14
  396. package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +7 -7
  397. package/src/engine/network/adapters/TransformReplicationAdapter.d.ts.map +1 -1
  398. package/src/engine/network/adapters/TransformReplicationAdapter.js +19 -20
  399. package/src/engine/network/replication/Replicator.d.ts +5 -3
  400. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  401. package/src/engine/network/replication/Replicator.js +65 -16
  402. package/src/engine/physics/broadphase/compute_fat_world_aabb.js +3 -3
  403. package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
  404. package/src/engine/physics/ccd/linear_sweep.js +9 -3
  405. package/src/engine/physics/constraint/solve_constraints.js +10 -10
  406. package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +8 -8
  407. package/src/engine/physics/ecs/ColliderObserverSystem.d.ts.map +1 -1
  408. package/src/engine/physics/ecs/ColliderObserverSystem.js +6 -6
  409. package/src/engine/physics/ecs/PhysicsSystem.d.ts +22 -32
  410. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  411. package/src/engine/physics/ecs/PhysicsSystem.js +2337 -2310
  412. package/src/engine/physics/ecs/find_non_finite_physics_state.js +6 -6
  413. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +7 -7
  414. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
  415. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +16 -8
  416. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +4 -4
  417. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -1
  418. package/src/engine/physics/fluid/ecs/FluidSystem.js +6 -6
  419. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts +2 -2
  420. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts.map +1 -1
  421. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.js +4 -4
  422. package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +7 -7
  423. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +4 -4
  424. package/src/engine/physics/fluid/effector/WakeFluidEffector.js +7 -7
  425. package/src/engine/physics/inertia/world_inverse_inertia.js +1 -1
  426. package/src/engine/physics/integration/integrate_position.d.ts.map +1 -1
  427. package/src/engine/physics/integration/integrate_position.js +13 -12
  428. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts.map +1 -1
  429. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.js +23 -5
  430. package/src/engine/physics/narrowphase/compute_penetration.js +18 -14
  431. package/src/engine/physics/narrowphase/convex_convex_manifold.js +2 -2
  432. package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.js +9 -9
  433. package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
  434. package/src/engine/physics/narrowphase/narrowphase_step.js +95 -68
  435. package/src/engine/physics/narrowphase/refine_ray_concave.js +1 -1
  436. package/src/engine/physics/narrowphase/refine_ray_hit.js +3 -3
  437. package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -1
  438. package/src/engine/physics/queries/overlap_shape.js +19 -7
  439. package/src/engine/physics/queries/raycast.js +3 -3
  440. package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
  441. package/src/engine/physics/queries/shape_cast.js +628 -620
  442. package/src/engine/physics/solver/solve_contacts.js +10 -10
  443. package/src/engine/physics/vehicle/RaycastVehicle.d.ts +6 -5
  444. package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -1
  445. package/src/engine/physics/vehicle/RaycastVehicle.js +10 -5
  446. package/src/engine/sound/ecs/SoundListenerSystem.d.ts +16 -4
  447. package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
  448. package/src/engine/sound/ecs/SoundListenerSystem.js +70 -11
  449. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +7 -7
  450. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
  451. package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +343 -338
  452. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +2 -2
  453. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
  454. package/src/engine/sound/ecs/audio/LiveEmitterSet.js +356 -345
  455. package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts +23 -2
  456. package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts.map +1 -1
  457. package/src/engine/sound/ecs/audio/SpatialAudioIndex.js +174 -140
  458. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts +6 -6
  459. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -1
  460. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +185 -184
  461. package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.js +1 -1
  462. package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts +2 -1
  463. package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts.map +1 -1
  464. package/src/engine/sound/simulation/core/AcousticRegionIndex.js +4 -3
  465. package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts +3 -2
  466. package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts.map +1 -1
  467. package/src/engine/sound/simulation/core/AcousticVolumeRegion.js +6 -4
  468. package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts +10 -6
  469. package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts.map +1 -1
  470. package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.js +32 -7
  471. package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts +7 -7
  472. package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts.map +1 -1
  473. package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.js +6 -6
  474. package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
  475. package/src/engine/sound/sopra/runtime/EventInstance.js +8 -2
  476. package/src/format/scene/gltf/gltf_component_type.d.ts.map +1 -1
  477. package/src/format/scene/gltf/gltf_component_type.js +3 -1
  478. package/src/format/texture/ktx2/ktx2_read.d.ts.map +1 -1
  479. package/src/format/texture/ktx2/ktx2_read.js +2 -1
  480. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.d.ts.map +1 -1
  481. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.js +8 -1
  482. package/src/generation/markers/GridCellActionPlaceMarker.d.ts +4 -4
  483. package/src/generation/markers/GridCellActionPlaceMarker.d.ts.map +1 -1
  484. package/src/generation/markers/GridCellActionPlaceMarker.js +16 -6
  485. package/src/generation/markers/MarkerNode.d.ts +3 -3
  486. package/src/generation/markers/MarkerNode.d.ts.map +1 -1
  487. package/src/generation/markers/MarkerNode.js +3 -3
  488. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts +4 -4
  489. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts.map +1 -1
  490. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.js +7 -7
  491. package/src/generation/markers/actions/MarkerNodeActionImaginary.d.ts.map +1 -1
  492. package/src/generation/markers/actions/MarkerNodeActionImaginary.js +20 -2
  493. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.js +1 -1
  494. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.d.ts.map +1 -1
  495. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.js +13 -3
  496. package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.d.ts.map +1 -1
  497. package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.js +11 -1
  498. package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.d.ts.map +1 -1
  499. package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.js +8 -4
  500. package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.d.ts.map +1 -1
  501. package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.js +13 -5
  502. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.d.ts.map +1 -1
  503. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.js +8 -2
  504. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.d.ts.map +1 -1
  505. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.js +16 -2
  506. package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
  507. package/src/shade/device/graph/BufferResourceDescriptor.js +193 -184
  508. package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
  509. package/src/shade/device/graph/TextureResourceDescriptor.js +12 -0
  510. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  511. package/src/shade/device/mock/SoftwareGPUDevice.js +8 -0
  512. package/src/shade/playground/avboit/main.js +3 -3
  513. package/src/shade/playground/basis_textures/main.js +1 -1
  514. package/src/shade/playground/ground_seam/main.js +1 -1
  515. package/src/shade/playground/particle_editor/README.md +175 -0
  516. package/src/shade/playground/particle_editor/index.html +76 -0
  517. package/src/shade/playground/particle_editor/main.d.ts +2 -0
  518. package/src/shade/playground/particle_editor/main.d.ts.map +1 -0
  519. package/src/shade/playground/particle_editor/main.js +139 -0
  520. package/src/shade/playground/particle_system/README.md +92 -62
  521. package/src/shade/playground/particle_system/index.html +67 -21
  522. package/src/shade/playground/particle_system/main.js +247 -102
  523. package/src/shade/{renderer/particles → playground/particle_system}/particle_prototype.d.ts +21 -18
  524. package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -0
  525. package/src/shade/{renderer/particles → playground/particle_system}/particle_prototype.js +197 -181
  526. package/src/shade/playground/particle_system/particle_scene.d.ts +136 -20
  527. package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
  528. package/src/shade/playground/particle_system/particle_scene.js +487 -670
  529. package/src/shade/playground/skinned_blas_refit/sweep_views.js +2 -2
  530. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
  531. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +2 -1
  532. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
  533. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +2 -1
  534. package/src/shade/playground/sponza_path_trace/main.js +1 -1
  535. package/src/shade/playground/volumetrics_froxel/main.js +917 -917
  536. package/src/shade/playground/volumetrics_froxel/measure.js +559 -559
  537. package/src/shade/renderer/Renderer.d.ts +28 -0
  538. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  539. package/src/shade/renderer/Renderer.js +140 -8
  540. package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
  541. package/src/shade/renderer/atmosphere/GPUSky.js +4 -2
  542. package/src/shade/renderer/buffer/graph_read_buffer.d.ts.map +1 -1
  543. package/src/shade/renderer/buffer/graph_read_buffer.js +8 -1
  544. package/src/shade/renderer/buffer/table/GPUTypedTable.js +1 -1
  545. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts +30 -0
  546. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts.map +1 -1
  547. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.js +84 -0
  548. package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts +27 -0
  549. package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts.map +1 -0
  550. package/src/shade/renderer/buffer/table/gpu_database_words.d.ts +24 -0
  551. package/src/shade/renderer/buffer/table/gpu_database_words.d.ts.map +1 -0
  552. package/src/shade/renderer/buffer/table/gpu_database_words.js +92 -0
  553. package/src/shade/renderer/camera/Camera.d.ts +2 -2
  554. package/src/shade/renderer/camera/Camera.d.ts.map +1 -1
  555. package/src/shade/renderer/camera/Camera.js +11 -5
  556. package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
  557. package/src/shade/renderer/camera/GPUCameraContext.js +2 -1
  558. package/src/shade/renderer/camera/OrbitalCameraController.d.ts +3 -3
  559. package/src/shade/renderer/camera/OrbitalCameraController.d.ts.map +1 -1
  560. package/src/shade/renderer/camera/OrbitalCameraController.js +31 -16
  561. package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts +2 -2
  562. package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts.map +1 -1
  563. package/src/shade/renderer/camera/orbital/OrbitalCameraController.js +4 -3
  564. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts +10 -5
  565. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts.map +1 -1
  566. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.js +8 -4
  567. package/src/shade/renderer/extension/FrameContext.d.ts.map +1 -1
  568. package/src/shade/renderer/extension/FrameContext.js +5 -0
  569. package/src/shade/renderer/extension/FrameRecord.d.ts +16 -0
  570. package/src/shade/renderer/extension/FrameRecord.d.ts.map +1 -1
  571. package/src/shade/renderer/extension/FrameRecord.js +31 -0
  572. package/src/shade/renderer/extension/GBufferTextures.d.ts +11 -0
  573. package/src/shade/renderer/extension/GBufferTextures.d.ts.map +1 -1
  574. package/src/shade/renderer/extension/GBufferTextures.js +14 -0
  575. package/src/shade/renderer/geometry/attribute/gpu_vertex_buffer_layout_from_spec.js +1 -1
  576. package/src/shade/renderer/geometry/util/geometry_stripify.js +6 -6
  577. package/src/shade/renderer/geometry/virtual/format/prototypeVGEOFormatViewer.js +8 -8
  578. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
  579. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +14 -5
  580. package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.d.ts.map +1 -1
  581. package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +17 -9
  582. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts +2 -1
  583. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts.map +1 -1
  584. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.js +4 -1
  585. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts +2 -1
  586. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
  587. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +11 -1
  588. package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.d.ts +1 -1
  589. package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.d.ts.map +1 -1
  590. package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.js +4 -2
  591. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
  592. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.js +5 -1
  593. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
  594. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +35 -11
  595. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  596. package/src/shade/renderer/particles/DESIGN.md +271 -112
  597. package/src/shade/renderer/particles/GPUParticleSystem.d.ts +251 -86
  598. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  599. package/src/shade/renderer/particles/GPUParticleSystem.js +822 -146
  600. package/src/shade/renderer/particles/ParticleConstants.d.ts +96 -3
  601. package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
  602. package/src/shade/renderer/particles/ParticleConstants.js +103 -4
  603. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +5 -4
  604. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -1
  605. package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +11 -15
  606. package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts +2 -2
  607. package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts.map +1 -1
  608. package/src/shade/renderer/particles/coherence/shader_particle_bucket.js +20 -15
  609. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts +7 -8
  610. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts.map +1 -1
  611. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.js +7 -17
  612. package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts +56 -0
  613. package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts.map +1 -0
  614. package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.js +68 -0
  615. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts +39 -0
  616. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts.map +1 -0
  617. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.js +52 -0
  618. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +83 -0
  619. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -0
  620. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +166 -0
  621. package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts +21 -5
  622. package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts.map +1 -1
  623. package/src/shade/renderer/particles/data/chunk_particle_emitter.js +44 -85
  624. package/src/shade/renderer/particles/data/particle_header.d.ts +62 -0
  625. package/src/shade/renderer/particles/data/particle_header.d.ts.map +1 -0
  626. package/src/shade/renderer/particles/data/particle_header.js +103 -0
  627. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts +179 -0
  628. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts.map +1 -0
  629. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.js +303 -0
  630. package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts +120 -1
  631. package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts.map +1 -1
  632. package/src/shade/renderer/particles/graph/ParticleNodeDescription.js +90 -1
  633. package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts +283 -0
  634. package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts.map +1 -0
  635. package/src/shade/renderer/particles/graph/ParticleNodeGroup.js +419 -0
  636. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts +44 -2
  637. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
  638. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +476 -40
  639. package/src/shade/renderer/particles/graph/ParticleValueType.d.ts +188 -0
  640. package/src/shade/renderer/particles/graph/ParticleValueType.d.ts.map +1 -0
  641. package/src/shade/renderer/particles/graph/ParticleValueType.js +287 -0
  642. package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts +16 -9
  643. package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts.map +1 -1
  644. package/src/shade/renderer/particles/graph/compile_particle_graph.js +464 -205
  645. package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts +11 -0
  646. package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts.map +1 -0
  647. package/src/shade/renderer/particles/graph/flatten_particle_graph.js +213 -0
  648. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts +27 -0
  649. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts.map +1 -0
  650. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.js +75 -0
  651. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts +83 -0
  652. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts.map +1 -0
  653. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.js +319 -0
  654. package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts +22 -0
  655. package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts.map +1 -0
  656. package/src/shade/renderer/particles/graph/groups/particle_groups_noise.js +517 -0
  657. package/src/shade/renderer/particles/graph/groups/particle_groups_utility.d.ts +70 -0
  658. package/src/shade/renderer/particles/graph/groups/particle_groups_utility.d.ts.map +1 -0
  659. package/src/shade/renderer/particles/graph/groups/particle_groups_utility.js +161 -0
  660. package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts +8 -0
  661. package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts.map +1 -0
  662. package/src/shade/renderer/particles/graph/groups/simplex_reference.js +159 -0
  663. package/src/shade/renderer/particles/graph/infer_particle_graph_types.d.ts +88 -0
  664. package/src/shade/renderer/particles/graph/infer_particle_graph_types.d.ts.map +1 -0
  665. package/src/shade/renderer/particles/graph/infer_particle_graph_types.js +234 -0
  666. package/src/shade/renderer/particles/graph/make_particle_group.d.ts +98 -0
  667. package/src/shade/renderer/particles/graph/make_particle_group.d.ts.map +1 -0
  668. package/src/shade/renderer/particles/graph/make_particle_group.js +427 -0
  669. package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts +11 -4
  670. package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts.map +1 -1
  671. package/src/shade/renderer/particles/graph/particle_graph_authoring.js +121 -108
  672. package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts +38 -0
  673. package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts.map +1 -0
  674. package/src/shade/renderer/particles/graph/particle_graph_diagnostic.js +25 -0
  675. package/src/shade/renderer/particles/graph/particle_graph_distributions.d.ts +29 -0
  676. package/src/shade/renderer/particles/graph/particle_graph_distributions.d.ts.map +1 -0
  677. package/src/shade/renderer/particles/graph/particle_graph_distributions.js +170 -0
  678. package/src/shade/renderer/particles/graph/particle_graph_json.d.ts +87 -0
  679. package/src/shade/renderer/particles/graph/particle_graph_json.d.ts.map +1 -0
  680. package/src/shade/renderer/particles/graph/particle_graph_json.js +196 -0
  681. package/src/shade/renderer/particles/graph/particle_group_json.d.ts +86 -0
  682. package/src/shade/renderer/particles/graph/particle_group_json.d.ts.map +1 -0
  683. package/src/shade/renderer/particles/graph/particle_group_json.js +182 -0
  684. package/src/shade/renderer/particles/graph/particle_group_library.d.ts +33 -0
  685. package/src/shade/renderer/particles/graph/particle_group_library.d.ts.map +1 -0
  686. package/src/shade/renderer/particles/graph/particle_group_library.js +75 -0
  687. package/src/shade/renderer/particles/graph/particle_node_library.d.ts +37 -0
  688. package/src/shade/renderer/particles/graph/particle_node_library.d.ts.map +1 -0
  689. package/src/shade/renderer/particles/graph/particle_node_library.js +64 -0
  690. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts +146 -0
  691. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -0
  692. package/src/shade/renderer/particles/graph/particle_node_parameters.js +234 -0
  693. package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts +30 -0
  694. package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -0
  695. package/src/shade/renderer/particles/graph/particle_node_presentation.js +286 -0
  696. package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts +66 -0
  697. package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts.map +1 -0
  698. package/src/shade/renderer/particles/graph/validate_particle_graph.js +439 -0
  699. package/src/shade/renderer/particles/graph_particles.d.ts +143 -68
  700. package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
  701. package/src/shade/renderer/particles/graph_particles.js +424 -71
  702. package/src/shade/renderer/particles/graph_particles_avboit.d.ts +107 -0
  703. package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -0
  704. package/src/shade/renderer/particles/graph_particles_avboit.js +312 -0
  705. package/src/shade/renderer/particles/isa/InstructionStream.d.ts +41 -8
  706. package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
  707. package/src/shade/renderer/particles/isa/InstructionStream.js +111 -33
  708. package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts +13 -10
  709. package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts.map +1 -1
  710. package/src/shade/renderer/particles/isa/ParticleAssembler.js +30 -26
  711. package/src/shade/renderer/particles/isa/ParticleProgram.d.ts +27 -15
  712. package/src/shade/renderer/particles/isa/ParticleProgram.d.ts.map +1 -1
  713. package/src/shade/renderer/particles/isa/ParticleProgram.js +139 -34
  714. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +117 -9
  715. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
  716. package/src/shade/renderer/particles/isa/ParticleVMISA.js +296 -37
  717. package/src/shade/renderer/particles/isa/particle_assembly.d.ts +149 -0
  718. package/src/shade/renderer/particles/isa/particle_assembly.d.ts.map +1 -0
  719. package/src/shade/renderer/particles/isa/particle_assembly.js +999 -0
  720. package/src/shade/renderer/particles/layout/ParticleLayout.d.ts +25 -3
  721. package/src/shade/renderer/particles/layout/ParticleLayout.d.ts.map +1 -1
  722. package/src/shade/renderer/particles/layout/ParticleLayout.js +33 -5
  723. package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts +160 -0
  724. package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts.map +1 -0
  725. package/src/shade/renderer/particles/optimizer/optimize_particle_program.js +478 -0
  726. package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts +291 -0
  727. package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -0
  728. package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +647 -0
  729. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts +95 -0
  730. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -0
  731. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +213 -0
  732. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts +16 -0
  733. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts.map +1 -0
  734. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +223 -0
  735. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts +121 -0
  736. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -0
  737. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +206 -0
  738. package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts +11 -0
  739. package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts.map +1 -0
  740. package/src/shade/renderer/particles/optimizer/pass_dedup_constants.js +197 -0
  741. package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts +4 -0
  742. package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts.map +1 -0
  743. package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.js +51 -0
  744. package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts +4 -0
  745. package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts.map +1 -0
  746. package/src/shade/renderer/particles/optimizer/pass_fold_constants.js +561 -0
  747. package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts +4 -0
  748. package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts.map +1 -0
  749. package/src/shade/renderer/particles/optimizer/pass_narrow_widths.js +72 -0
  750. package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts +4 -0
  751. package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts.map +1 -0
  752. package/src/shade/renderer/particles/optimizer/pass_pack_registers.js +86 -0
  753. package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts +4 -0
  754. package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts.map +1 -0
  755. package/src/shade/renderer/particles/optimizer/pass_peephole.js +271 -0
  756. package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts +4 -0
  757. package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts.map +1 -0
  758. package/src/shade/renderer/particles/optimizer/pass_propagate_copies.js +268 -0
  759. package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts +4 -0
  760. package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts.map +1 -0
  761. package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.js +151 -0
  762. package/src/shade/renderer/particles/particle_test_fixtures.d.ts +131 -0
  763. package/src/shade/renderer/particles/particle_test_fixtures.d.ts.map +1 -0
  764. package/src/shade/renderer/particles/particle_test_fixtures.js +203 -0
  765. package/src/shade/renderer/particles/runtime/Emitter.d.ts +219 -0
  766. package/src/shade/renderer/particles/runtime/Emitter.d.ts.map +1 -0
  767. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +128 -60
  768. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
  769. package/src/shade/renderer/particles/runtime/EmitterRegistry.js +286 -117
  770. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +264 -0
  771. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -0
  772. package/src/shade/renderer/particles/runtime/ParticleEmitter.js +404 -0
  773. package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts +49 -15
  774. package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts.map +1 -1
  775. package/src/shade/renderer/particles/runtime/ProgramArena.d.ts +51 -18
  776. package/src/shade/renderer/particles/runtime/ProgramArena.d.ts.map +1 -1
  777. package/src/shade/renderer/particles/runtime/ProgramArena.js +72 -32
  778. package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts +4 -4
  779. package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts.map +1 -1
  780. package/src/shade/renderer/particles/runtime/create_particle_effect.js +4 -4
  781. package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts +15 -0
  782. package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts.map +1 -0
  783. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts +17 -0
  784. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts.map +1 -0
  785. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +75 -0
  786. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts +20 -0
  787. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -0
  788. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +94 -0
  789. package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts +15 -5
  790. package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts.map +1 -1
  791. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts +1 -2
  792. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts.map +1 -1
  793. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js +1 -2
  794. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts +11 -0
  795. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts.map +1 -0
  796. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.js +13 -0
  797. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.d.ts +17 -0
  798. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.d.ts.map +1 -0
  799. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.js +22 -0
  800. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts +14 -0
  801. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts.map +1 -0
  802. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.js +23 -0
  803. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +1 -1
  804. package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.d.ts +18 -0
  805. package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.d.ts.map +1 -0
  806. package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.js +24 -0
  807. package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.d.ts +26 -0
  808. package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.d.ts.map +1 -0
  809. package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.js +59 -0
  810. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts +14 -0
  811. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -0
  812. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +153 -0
  813. package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts +3 -0
  814. package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts.map +1 -0
  815. package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.js +124 -0
  816. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts +19 -0
  817. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts.map +1 -0
  818. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.js +147 -0
  819. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts +18 -8
  820. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
  821. package/src/shade/renderer/particles/shaders/shader_particle_emit.js +72 -37
  822. package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts +5 -0
  823. package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts.map +1 -0
  824. package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.js +216 -0
  825. package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
  826. package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +7 -3
  827. package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +1 -1
  828. package/src/shade/renderer/particles/shaders/shader_particle_render.js +132 -197
  829. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
  830. package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +78 -24
  831. package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.d.ts +26 -0
  832. package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.d.ts.map +1 -0
  833. package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.js +66 -0
  834. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts +1 -1
  835. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
  836. package/src/shade/renderer/particles/sort/shader_particle_sort.js +21 -36
  837. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +2 -2
  838. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
  839. package/src/shade/renderer/particles/vm/ParticleVMReference.js +100 -90
  840. package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
  841. package/src/shade/renderer/particles/vm/chunk_particle_vm.js +270 -138
  842. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts +1 -2
  843. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts.map +1 -1
  844. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +0 -3
  845. package/src/shade/renderer/postprocess/dof/gather/DepthOfFieldU.js +1 -1
  846. package/src/shade/renderer/postprocess/dof/raymarch/DepthOfField.js +1 -1
  847. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  848. package/src/shade/renderer/postprocess/nss/NSS.d.ts.map +1 -1
  849. package/src/shade/renderer/postprocess/nss/NSS.js +3 -2
  850. package/src/shade/renderer/postprocess/nss/generate_NSS_WEIGHTS_ACTUAL.js +3 -2
  851. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +87 -0
  852. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -0
  853. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +61 -0
  854. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +179 -0
  855. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +27 -2
  856. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts +9 -2
  857. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
  858. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +12 -3
  859. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.d.ts +18 -0
  860. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.d.ts.map +1 -0
  861. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.js +58 -0
  862. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +25 -1
  863. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
  864. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +69 -10
  865. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.d.ts.map +1 -1
  866. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.js +10 -4
  867. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -1
  868. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +4 -39
  869. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +7 -2
  870. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
  871. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +16 -2
  872. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts +3 -3
  873. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts.map +1 -1
  874. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.js +29 -23
  875. package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts +2 -2
  876. package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts.map +1 -1
  877. package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.js +3 -3
  878. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts +4 -4
  879. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts.map +1 -1
  880. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.js +2 -2
  881. package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.d.ts +2 -2
  882. package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.d.ts.map +1 -1
  883. package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.js +2 -2
  884. package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.d.ts +7 -7
  885. package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.d.ts.map +1 -1
  886. package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.js +79 -71
  887. package/src/shade/renderer/shader/chunk/math/chunk_lower_bound_branchless.d.ts.map +1 -1
  888. package/src/shade/renderer/shader/chunk/math/chunk_lower_bound_branchless.js +3 -1
  889. package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.d.ts +13 -3
  890. package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.d.ts.map +1 -1
  891. package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.js +15 -5
  892. package/src/shade/renderer/shader/chunk/random/chunk_random_uint.d.ts +8 -0
  893. package/src/shade/renderer/shader/chunk/random/chunk_random_uint.d.ts.map +1 -1
  894. package/src/shade/renderer/shader/chunk/random/chunk_random_uint.js +15 -5
  895. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.d.ts +7 -0
  896. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.d.ts.map +1 -1
  897. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.js +17 -7
  898. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.d.ts +17 -0
  899. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.d.ts.map +1 -0
  900. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.js +26 -0
  901. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.d.ts +15 -0
  902. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.d.ts.map +1 -0
  903. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.js +26 -0
  904. package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
  905. package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +8 -2
  906. package/src/shade/renderer/shadow/map/PointLightShadowmap.d.ts.map +1 -1
  907. package/src/shade/renderer/shadow/map/PointLightShadowmap.js +7 -2
  908. package/src/shade/renderer/shadow/map/SpotLightShadowmap.d.ts.map +1 -1
  909. package/src/shade/renderer/shadow/map/SpotLightShadowmap.js +3 -15
  910. package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.d.ts.map +1 -1
  911. package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.js +10 -4
  912. package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.d.ts.map +1 -1
  913. package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.js +7 -2
  914. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +2 -2
  915. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +3 -3
  916. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
  917. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +3 -3
  918. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  919. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +66 -5
  920. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  921. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +35 -4
  922. package/src/view/minimap/Minimap.d.ts.map +1 -1
  923. package/src/view/minimap/Minimap.js +227 -225
  924. package/src/view/minimap/MinimapCanvasView.js +3 -3
  925. package/src/view/minimap/MinimapMarker.d.ts +45 -0
  926. package/src/view/minimap/MinimapMarker.d.ts.map +1 -0
  927. package/src/view/minimap/MinimapMarker.js +80 -0
  928. package/src/view/minimap/MinimapMarkerCollection.d.ts +6 -5
  929. package/src/view/minimap/MinimapMarkerCollection.d.ts.map +1 -1
  930. package/src/view/minimap/MinimapMarkerCollection.js +6 -6
  931. package/src/view/minimap/MinimapMarkerSerializationAdapter.d.ts +19 -0
  932. package/src/view/minimap/MinimapMarkerSerializationAdapter.d.ts.map +1 -0
  933. package/src/view/minimap/MinimapMarkerSerializationAdapter.js +42 -0
  934. package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -1
  935. package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
  936. package/src/view/minimap/dom/MinimapCameraView.js +23 -4
  937. package/src/view/minimap/dom/MinimapMarkerView.js +3 -3
  938. package/src/view/minimap/gl/MarkerGL.js +3 -3
  939. package/src/view/util/DomLayoutFrame.d.ts +53 -0
  940. package/src/view/util/DomLayoutFrame.d.ts.map +1 -0
  941. package/src/view/util/DomLayoutFrame.js +122 -0
  942. package/src/core/model/node-graph/visual/layout/BoxLayoutSpec.js +0 -19
  943. package/src/core/model/node-graph/visual/layout/ConnectedBoxLayouter.js +0 -241
  944. package/src/core/model/node-graph/visual/layout/ConnectionEndpointLayoutSpec.js +0 -40
  945. package/src/core/model/node-graph/visual/layout/ConnectionLayoutSpec.js +0 -28
  946. package/src/engine/ecs/util/hideEntityGracefully.js +0 -196
  947. package/src/shade/renderer/particles/cull/chunk_particle_cull.js +0 -38
  948. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.js +0 -214
  949. package/src/shade/renderer/particles/particle_prototype.d.ts.map +0 -1
  950. package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.js +0 -86
  951. package/src/shade/renderer/particles/runtime/spawn_request_encoding.js +0 -52
  952. package/src/shade/renderer/particles/shaders/chunk_particle_context.js +0 -58
@@ -1,108 +1,121 @@
1
- import { PortDirection } from "../../../../core/model/node-graph/node/PortDirection.js";
2
- import { get_particle_node_description, PARTICLE_NODE_OUTPUT_PORT } from "./ParticleNodeRegistry.js";
3
-
4
- /**
5
- * Authoring sugar for building particle effects on a plain
6
- * {@link ../../../../core/model/node-graph/NodeGraph.js NodeGraph}.
7
- *
8
- * These are convenience wrappers only the graph, its nodes and its connections are the standard
9
- * node-graph model, so the editor, serializers and graph utilities all work on particle effects
10
- * unchanged. Everything downstream (see {@link ./compile_particle_graph.js}) consumes `NodeGraph`
11
- * directly and never sees these helpers.
12
- */
13
-
14
- /**
15
- * Add a node to a particle graph.
16
- *
17
- * @param {NodeGraph} graph
18
- * @param {string} type a node type name registered in {@link ./ParticleNodeRegistry.js}
19
- * @param {object} [parameters] static parameters (attribute name, builtin id, constant value, …)
20
- * @returns {number} the new node instance id
21
- */
22
- export function particle_node(graph, type, parameters = {}) {
23
- const description = get_particle_node_description(type);
24
-
25
- const id = graph.createNode(description);
26
-
27
- graph.getNodeSafe(id).setParameters(parameters);
28
-
29
- return id;
30
- }
31
-
32
- /**
33
- * Bind an input port of a node to a source, replacing whatever was bound to it before.
34
- *
35
- * The source may be:
36
- * - a node id (number) that node's `out` port,
37
- * - `{ node, port }` → an explicit port,
38
- * - a number array → a literal `vec4`, materialised as a `const` node (scalar broadcast is NOT
39
- * applied; `[5]` means `[5,0,0,0]`).
40
- *
41
- * @param {NodeGraph} graph
42
- * @param {number} node_id
43
- * @param {string} port input port name
44
- * @param {number|number[]|{node: number, port?: string}} source
45
- * @returns {number} connection id
46
- */
47
- export function particle_wire(graph, node_id, port, source) {
48
- const node = graph.getNodeSafe(node_id);
49
-
50
- const port_object = node.description.findPortByNameAndDirection(port, PortDirection.In);
51
-
52
- if (port_object === undefined) {
53
- throw new Error(`Node ${node_id} (${node.description.name}) has no input port '${port}'`);
54
- }
55
-
56
- // snapshot before connecting, so the replacement is only committed once the new wiring holds
57
- const previous = node.getEndpoint(port_object.id).inConnections;
58
-
59
- const resolved = resolve_source(graph, source);
60
-
61
- const connection_id = graph.createConnectionByPortName(
62
- resolved.node, resolved.port,
63
- node_id, port
64
- );
65
-
66
- // an input may have at most one source, so binding it again replaces rather than adds
67
- for (const connection of previous) {
68
- graph.deleteConnection(connection.id);
69
- }
70
-
71
- return connection_id;
72
- }
73
-
74
- /**
75
- * @param {NodeGraph} graph
76
- * @param {number|number[]|{node: number, port?: string}} source
77
- * @returns {{node: number, port: string}}
78
- */
79
- function resolve_source(graph, source) {
80
- if (typeof source === "number") {
81
- // Could be a node id or a scalar literal — ambiguous, so literals must use the array form.
82
- return { node: source, port: PARTICLE_NODE_OUTPUT_PORT };
83
- }
84
-
85
- if (Array.isArray(source)) {
86
- const value = [source[0] ?? 0, source[1] ?? 0, source[2] ?? 0, source[3] ?? 0];
87
-
88
- return {
89
- node: particle_node(graph, "const", { value }),
90
- port: PARTICLE_NODE_OUTPUT_PORT
91
- };
92
- }
93
-
94
- if (source !== null && typeof source === "object" && typeof source.node === "number") {
95
- return { node: source.node, port: source.port ?? PARTICLE_NODE_OUTPUT_PORT };
96
- }
97
-
98
- throw new Error(`Invalid input source: ${JSON.stringify(source)}`);
99
- }
100
-
101
- /**
102
- * Wrap a scalar or vector as a literal source (so it is unambiguous vs. a node id).
103
- * @param {...number} components
104
- * @returns {number[]}
105
- */
106
- export function literal(...components) {
107
- return components;
108
- }
1
+ import { PortDirection } from "../../../../core/model/node-graph/node/PortDirection.js";
2
+ import { get_particle_library_description } from "./particle_node_library.js";
3
+ import { particle_node_default_parameters } from "./particle_node_parameters.js";
4
+ import { is_particle_group_description } from "./ParticleNodeGroup.js";
5
+ import { PARTICLE_NODE_OUTPUT_PORT } from "./ParticleNodeRegistry.js";
6
+
7
+ /**
8
+ * Authoring sugar for building particle effects on a plain
9
+ * {@link ../../../../core/model/node-graph/NodeGraph.js NodeGraph}.
10
+ *
11
+ * These are convenience wrappers only — the graph, its nodes and its connections are the standard
12
+ * node-graph model, so the editor, serializers and graph utilities all work on particle effects
13
+ * unchanged. Everything downstream (see {@link ./compile_particle_graph.js}) consumes `NodeGraph`
14
+ * directly and never sees these helpers.
15
+ */
16
+
17
+ /**
18
+ * Add a node to a particle graph.
19
+ *
20
+ * Parameters the caller leaves out take the type's defaults (see
21
+ * {@link ./particle_node_parameters.js particle_node_default_parameters}), so what lands in the
22
+ * graph is a node that compiles — the same footing a node dropped from the editor's palette
23
+ * starts on. An attribute reference has no default worth having and is left empty.
24
+ *
25
+ * @param {NodeGraph} graph
26
+ * @param {string} type a node type name from the library — a stock type or a
27
+ * {@link ./ParticleNodeGroup.js group}
28
+ * @param {object} [parameters] static parameters (attribute name, builtin id, constant value, …)
29
+ * @returns {number} the new node instance id
30
+ */
31
+ export function particle_node(graph, type, parameters = {}) {
32
+ const description = get_particle_library_description(type);
33
+
34
+ const id = graph.createNode(description);
35
+
36
+ // a group declares no parameters of its own; its configuration is the wiring inside it
37
+ const defaults = is_particle_group_description(description)
38
+ ? {}
39
+ : particle_node_default_parameters(type);
40
+
41
+ graph.getNodeSafe(id).setParameters({ ...defaults, ...parameters });
42
+
43
+ return id;
44
+ }
45
+
46
+ /**
47
+ * Bind an input port of a node to a source, replacing whatever was bound to it before.
48
+ *
49
+ * The source may be:
50
+ * - a node id (number) → that node's `out` port,
51
+ * - `{ node, port }` → an explicit port,
52
+ * - a number array → a literal, materialised as a `const` node as wide as the array: `[5]` is a
53
+ * scalar, and a scalar meeting a vector input broadcasts; `[5, 0, 0]` is a `vec3`.
54
+ *
55
+ * @param {NodeGraph} graph
56
+ * @param {number} node_id
57
+ * @param {string} port input port name
58
+ * @param {number|number[]|{node: number, port?: string}} source
59
+ * @returns {number} connection id
60
+ */
61
+ export function particle_wire(graph, node_id, port, source) {
62
+ const node = graph.getNodeSafe(node_id);
63
+
64
+ const port_object = node.description.findPortByNameAndDirection(port, PortDirection.In);
65
+
66
+ if (port_object === undefined) {
67
+ throw new Error(`Node ${node_id} (${node.description.name}) has no input port '${port}'`);
68
+ }
69
+
70
+ // snapshot before connecting, so the replacement is only committed once the new wiring holds
71
+ const previous = node.getEndpoint(port_object.id).inConnections;
72
+
73
+ const resolved = resolve_source(graph, source);
74
+
75
+ const connection_id = graph.createConnectionByPortName(
76
+ resolved.node, resolved.port,
77
+ node_id, port
78
+ );
79
+
80
+ // an input may have at most one source, so binding it again replaces rather than adds
81
+ for (const connection of previous) {
82
+ graph.deleteConnection(connection.id);
83
+ }
84
+
85
+ return connection_id;
86
+ }
87
+
88
+ /**
89
+ * @param {NodeGraph} graph
90
+ * @param {number|number[]|{node: number, port?: string}} source
91
+ * @returns {{node: number, port: string}}
92
+ */
93
+ function resolve_source(graph, source) {
94
+ if (typeof source === "number") {
95
+ // Could be a node id or a scalar literal — ambiguous, so literals must use the array form.
96
+ return { node: source, port: PARTICLE_NODE_OUTPUT_PORT };
97
+ }
98
+
99
+ if (Array.isArray(source)) {
100
+ return {
101
+ node: particle_node(graph, "const", { value: source.slice() }),
102
+ port: PARTICLE_NODE_OUTPUT_PORT
103
+ };
104
+ }
105
+
106
+ if (source !== null && typeof source === "object" && typeof source.node === "number") {
107
+ return { node: source.node, port: source.port ?? PARTICLE_NODE_OUTPUT_PORT };
108
+ }
109
+
110
+ throw new Error(`Invalid input source: ${JSON.stringify(source)}`);
111
+ }
112
+
113
+ /**
114
+ * Wrap a scalar or vector as a literal source (so it is unambiguous vs. a node id). One component
115
+ * is a scalar, two to four a vector of that many lanes.
116
+ * @param {...number} components
117
+ * @returns {number[]}
118
+ */
119
+ export function literal(...components) {
120
+ return components;
121
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * What a check of a particle graph has to say about it, one finding at a time.
3
+ *
4
+ * Findings come from more than one place — the structural checks in
5
+ * {@link ./validate_particle_graph.js} and the type resolution in
6
+ * {@link ./infer_particle_graph_types.js} — and go to one place, a view that marks nodes and
7
+ * lists messages. This is the shape they agree on, kept where both can import it without either
8
+ * importing the other.
9
+ */
10
+ /**
11
+ * One problem with a graph.
12
+ *
13
+ * @typedef {object} ParticleGraphDiagnostic
14
+ * @property {number} node the offending node's id, or -1 for a problem with the graph as a whole
15
+ * @property {string} message
16
+ * @property {string} severity {@link PARTICLE_GRAPH_ERROR} — the graph will not compile — or
17
+ * {@link PARTICLE_GRAPH_WARNING}
18
+ */
19
+ /** @type {string} */
20
+ export const PARTICLE_GRAPH_ERROR: string;
21
+ /** @type {string} */
22
+ export const PARTICLE_GRAPH_WARNING: string;
23
+ /**
24
+ * One problem with a graph.
25
+ */
26
+ export type ParticleGraphDiagnostic = {
27
+ /**
28
+ * the offending node's id, or -1 for a problem with the graph as a whole
29
+ */
30
+ node: number;
31
+ message: string;
32
+ /**
33
+ * {@link PARTICLE_GRAPH_ERROR } — the graph will not compile — or
34
+ * {@link PARTICLE_GRAPH_WARNING }
35
+ */
36
+ severity: string;
37
+ };
38
+ //# sourceMappingURL=particle_graph_diagnostic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particle_graph_diagnostic.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/particles/graph/particle_graph_diagnostic.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AAEH,qBAAqB;AACrB,mCADW,MAAM,CAC2B;AAE5C,qBAAqB;AACrB,qCADW,MAAM,CAC+B;;;;;;;;UAVlC,MAAM;aACN,MAAM;;;;;cACN,MAAM"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * What a check of a particle graph has to say about it, one finding at a time.
3
+ *
4
+ * Findings come from more than one place — the structural checks in
5
+ * {@link ./validate_particle_graph.js} and the type resolution in
6
+ * {@link ./infer_particle_graph_types.js} — and go to one place, a view that marks nodes and
7
+ * lists messages. This is the shape they agree on, kept where both can import it without either
8
+ * importing the other.
9
+ */
10
+
11
+ /**
12
+ * One problem with a graph.
13
+ *
14
+ * @typedef {object} ParticleGraphDiagnostic
15
+ * @property {number} node the offending node's id, or -1 for a problem with the graph as a whole
16
+ * @property {string} message
17
+ * @property {string} severity {@link PARTICLE_GRAPH_ERROR} — the graph will not compile — or
18
+ * {@link PARTICLE_GRAPH_WARNING}
19
+ */
20
+
21
+ /** @type {string} */
22
+ export const PARTICLE_GRAPH_ERROR = "error";
23
+
24
+ /** @type {string} */
25
+ export const PARTICLE_GRAPH_WARNING = "warning";
@@ -0,0 +1,29 @@
1
+ /**
2
+ * A uniform draw in `[-1, 1)`, one independent value per lane.
3
+ *
4
+ * @param {NodeGraph} graph
5
+ * @param {number} [components] how many lanes, each its own draw; one is a scalar
6
+ * @returns {number} node id of the result
7
+ */
8
+ export function particle_uniform_signed(graph: NodeGraph, components?: number): number;
9
+ /**
10
+ * A uniformly distributed point in the unit disk, a `vec2`.
11
+ *
12
+ * `sqrt` on the radius is what makes it uniform by area rather than crowded at the centre.
13
+ *
14
+ * @param {NodeGraph} graph
15
+ * @returns {number} node id of the result
16
+ */
17
+ export function particle_unit_disk(graph: NodeGraph): number;
18
+ /**
19
+ * A uniformly distributed point on the unit sphere, a `vec3`.
20
+ *
21
+ * Archimedes' hat-box: the projection of the sphere onto its bounding cylinder preserves area, so a
22
+ * uniform height and a uniform angle around it give a uniform point. It is also the only shape of
23
+ * sampler this VM can run — rejection sampling needs a loop, and there is no control flow.
24
+ *
25
+ * @param {NodeGraph} graph
26
+ * @returns {number} node id of the result
27
+ */
28
+ export function particle_unit_sphere(graph: NodeGraph): number;
29
+ //# sourceMappingURL=particle_graph_distributions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particle_graph_distributions.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/particles/graph/particle_graph_distributions.js"],"names":[],"mappings":"AA2CA;;;;;;GAMG;AACH,uEAHW,MAAM,GACJ,MAAM,CAWlB;AAED;;;;;;;GAOG;AACH,sDAFa,MAAM,CAalB;AAED;;;;;;;;;GASG;AACH,wDAFa,MAAM,CAyClB"}
@@ -0,0 +1,170 @@
1
+ import { particle_node, particle_wire } from "./particle_graph_authoring.js";
2
+
3
+ /**
4
+ * Shaped random distributions, built out of the particle node library.
5
+ *
6
+ * The VM's `RANDOM` opcode is one uniform draw in `[0, 1)` per lane and nothing else. It used to
7
+ * carry a distribution mode — signed, unit disk, unit sphere — and the modes went because every one
8
+ * of them is arithmetic over that draw, and there is no principled place to stop adding the next
9
+ * one. A sampler is still a useful thing to have, so it lives here, one level up, where it is a
10
+ * graph an author can open and change rather than a switch arm in the interpreter.
11
+ *
12
+ * These are ordinary functions over {@link ./particle_graph_authoring.js}: they add nodes to a
13
+ * graph and return the id of the one carrying the result. Nothing downstream knows they were used.
14
+ *
15
+ * ## Shape
16
+ *
17
+ * Each result has the type its shape has: a disk is a `vec2`, a sphere a `vec3`. What is wired
18
+ * past that is a conversion the compiler makes and the validator names — a disk written to a
19
+ * three-component position reads zero in `z`, as it always did — and what is wired narrower keeps
20
+ * its leading lanes. A scalar draw meeting a vector broadcasts, so a signed draw that is meant to
21
+ * differ per lane says how many lanes it wants.
22
+ *
23
+ * ## What they cost
24
+ *
25
+ * As the graph compiler lowers them: a disk is 10 instructions and a sphere 19, against a section
26
+ * budget of {@link ../ParticleConstants.js PARTICLE_VM_MAX_INSTRUCTIONS}. The vector constructors
27
+ * are what brought that down from 15 and 24: assembling `(cos a, sin a)` used to take a broadcast
28
+ * of each and a masked select, and is now a `MOV` per lane. Writing the disk to a three-component
29
+ * attribute is one more, the zero for `z`. {@link ../optimizer/optimize_particle_program.js} takes
30
+ * the sphere to 17 on top of that; hand-written assembly does the same work in 7 and 10.
31
+ *
32
+ * ## Draw order
33
+ *
34
+ * A composition consumes the same number of draws the opcode mode did (two for the geometric ones,
35
+ * one per lane for {@link particle_uniform_signed}), but *which* draw feeds which term is now the
36
+ * compiler's scheduling of two independent `random` nodes rather than a fixed order inside an
37
+ * opcode. Samples therefore differ from the old modes' even from the same seed; the distributions
38
+ * do not.
39
+ */
40
+
41
+ /** @type {number} */
42
+ const TWO_PI = Math.PI * 2;
43
+
44
+ /**
45
+ * A uniform draw in `[-1, 1)`, one independent value per lane.
46
+ *
47
+ * @param {NodeGraph} graph
48
+ * @param {number} [components] how many lanes, each its own draw; one is a scalar
49
+ * @returns {number} node id of the result
50
+ */
51
+ export function particle_uniform_signed(graph, components = 1) {
52
+ const uniform = particle_node(graph, "random", { components });
53
+ const signed = particle_node(graph, "mad");
54
+
55
+ particle_wire(graph, signed, "a", uniform);
56
+ particle_wire(graph, signed, "b", [2]);
57
+ particle_wire(graph, signed, "c", [-1]);
58
+
59
+ return signed;
60
+ }
61
+
62
+ /**
63
+ * A uniformly distributed point in the unit disk, a `vec2`.
64
+ *
65
+ * `sqrt` on the radius is what makes it uniform by area rather than crowded at the centre.
66
+ *
67
+ * @param {NodeGraph} graph
68
+ * @returns {number} node id of the result
69
+ */
70
+ export function particle_unit_disk(graph) {
71
+ const radius = particle_node(graph, "sqrt");
72
+
73
+ particle_wire(graph, radius, "x", particle_node(graph, "random", { components: 1 }));
74
+
75
+ const point = particle_node(graph, "scale");
76
+
77
+ particle_wire(graph, point, "v", unit_circle(graph));
78
+ particle_wire(graph, point, "s", radius);
79
+
80
+ return point;
81
+ }
82
+
83
+ /**
84
+ * A uniformly distributed point on the unit sphere, a `vec3`.
85
+ *
86
+ * Archimedes' hat-box: the projection of the sphere onto its bounding cylinder preserves area, so a
87
+ * uniform height and a uniform angle around it give a uniform point. It is also the only shape of
88
+ * sampler this VM can run — rejection sampling needs a loop, and there is no control flow.
89
+ *
90
+ * @param {NodeGraph} graph
91
+ * @returns {number} node id of the result
92
+ */
93
+ export function particle_unit_sphere(graph) {
94
+ // height, uniform in [-1, 1)
95
+ const height = particle_uniform_signed(graph, 1);
96
+
97
+ // radius of the circle of latitude at that height: sqrt(1 - z^2)
98
+ const height_squared = particle_node(graph, "mul");
99
+
100
+ particle_wire(graph, height_squared, "a", height);
101
+ particle_wire(graph, height_squared, "b", height);
102
+
103
+ const radius_squared = particle_node(graph, "sub");
104
+
105
+ particle_wire(graph, radius_squared, "a", [1]);
106
+ particle_wire(graph, radius_squared, "b", height_squared);
107
+
108
+ const radius = particle_node(graph, "sqrt");
109
+
110
+ particle_wire(graph, radius, "x", radius_squared);
111
+
112
+ // the point on that circle, and the height dropped in beside it
113
+ const { cosine, sine } = unit_angle(graph);
114
+
115
+ const x = particle_node(graph, "mul");
116
+
117
+ particle_wire(graph, x, "a", cosine);
118
+ particle_wire(graph, x, "b", radius);
119
+
120
+ const y = particle_node(graph, "mul");
121
+
122
+ particle_wire(graph, y, "a", sine);
123
+ particle_wire(graph, y, "b", radius);
124
+
125
+ const point = particle_node(graph, "vec3");
126
+
127
+ particle_wire(graph, point, "x", x);
128
+ particle_wire(graph, point, "y", y);
129
+ particle_wire(graph, point, "z", height);
130
+
131
+ return point;
132
+ }
133
+
134
+ /**
135
+ * A uniformly distributed point on the unit circle, a `vec2`.
136
+ *
137
+ * @param {NodeGraph} graph
138
+ * @returns {number} node id of the result
139
+ */
140
+ function unit_circle(graph) {
141
+ const { cosine, sine } = unit_angle(graph);
142
+
143
+ const circle = particle_node(graph, "vec2");
144
+
145
+ particle_wire(graph, circle, "x", cosine);
146
+ particle_wire(graph, circle, "y", sine);
147
+
148
+ return circle;
149
+ }
150
+
151
+ /**
152
+ * The cosine and sine of a uniform angle, as two scalars off one draw.
153
+ *
154
+ * @param {NodeGraph} graph
155
+ * @returns {{cosine: number, sine: number}} node ids
156
+ */
157
+ function unit_angle(graph) {
158
+ const angle = particle_node(graph, "mul");
159
+
160
+ particle_wire(graph, angle, "a", particle_node(graph, "random", { components: 1 }));
161
+ particle_wire(graph, angle, "b", [TWO_PI]);
162
+
163
+ const cosine = particle_node(graph, "cos");
164
+ const sine = particle_node(graph, "sin");
165
+
166
+ particle_wire(graph, cosine, "x", angle);
167
+ particle_wire(graph, sine, "x", angle);
168
+
169
+ return { cosine, sine };
170
+ }
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Read and write a particle {@link NodeGraph} as JSON.
3
+ *
4
+ * The engine's generic graph serializer writes each {@link NodeDescription} out by value. That
5
+ * cannot work here: a {@link ./ParticleNodeDescription.js} carries an `emit` closure, which is the
6
+ * whole of what the node *is*, and no amount of JSON brings a closure back. So a particle node is
7
+ * written as its **type name** and looked up in the library on the way in — the same thing authoring
8
+ * does, and the reason node type names, not ids, are the stable identity of the library.
9
+ *
10
+ * Ports are written by name for the same reason. A particle node's ports are uniquely named within
11
+ * a direction, so a name survives the library gaining a port where a positional id would not.
12
+ *
13
+ * Node positions ride along when a {@link NodeGraphVisualData} is supplied. An effect whose layout
14
+ * is not saved with it is an effect that has to be re-arranged every time it is opened, so they
15
+ * belong in the same document even though one is model and the other is presentation.
16
+ */
17
+ /**
18
+ * @typedef {object} ParticleGraphJSON
19
+ * @property {Array<{id: number, type: string, parameters: object, x?: number, y?: number}>} nodes
20
+ * @property {Array<{from: number, fromPort: string, to: number, toPort: string}>} connections
21
+ */
22
+ /**
23
+ * @param {object} params
24
+ * @param {NodeGraph} params.graph
25
+ * @param {NodeGraphVisualData} [params.visual] source of node positions; omitted, no positions are written
26
+ * @returns {ParticleGraphJSON}
27
+ */
28
+ export function serialize_particle_graph({ graph, visual }: {
29
+ graph: NodeGraph;
30
+ visual?: NodeGraphVisualData;
31
+ }): ParticleGraphJSON;
32
+ /**
33
+ * Fill a graph from JSON, replacing whatever it held.
34
+ *
35
+ * Node ids are preserved exactly, holes and all: an author who deleted a node left a gap in the
36
+ * numbering, and everything written alongside — connections, positions — is written against the ids
37
+ * that survived it.
38
+ *
39
+ * @param {object} params
40
+ * @param {ParticleGraphJSON} params.json
41
+ * @param {NodeGraph} params.graph filled in place
42
+ * @param {NodeGraphVisualData} [params.visual] receives the saved positions
43
+ * @param {NodeDescriptionVisualRegistry} [params.visualRegistry] required when `visual` is given
44
+ * @param {function(string):(ParticleNodeDescription|undefined)} [params.resolve] types this document
45
+ * carries of its own — the groups an author made — consulted before the standard library. A
46
+ * group is addressed by name exactly as a stock type is, and one that lives in the file
47
+ * rather than in the library has to be found somewhere.
48
+ * @returns {NodeGraph} `graph`
49
+ */
50
+ export function deserialize_particle_graph({ json, graph, visual, visualRegistry, resolve }: {
51
+ json: ParticleGraphJSON;
52
+ graph: NodeGraph;
53
+ visual?: NodeGraphVisualData;
54
+ visualRegistry?: NodeDescriptionVisualRegistry;
55
+ resolve?: (arg0: string) => (ParticleNodeDescription | undefined);
56
+ }): NodeGraph;
57
+ /**
58
+ * Whether a graph can be written and read back — every node a particle node whose type the library
59
+ * still has, and every type's ports uniquely named within a direction so a connection can be
60
+ * written by name. Used to fail an export with something an author can act on rather than at the
61
+ * far end of a load.
62
+ *
63
+ * @param {NodeGraph} graph
64
+ * @param {object} [options]
65
+ * @param {function(string):(ParticleNodeDescription|undefined)} [options.resolve] the document's own
66
+ * types, as in {@link deserialize_particle_graph}
67
+ * @returns {string[]} one message per problem; empty when the graph is serializable
68
+ */
69
+ export function particle_graph_serialization_problems(graph: NodeGraph, { resolve }?: {
70
+ resolve?: (arg0: string) => (ParticleNodeDescription | undefined);
71
+ }): string[];
72
+ export type ParticleGraphJSON = {
73
+ nodes: Array<{
74
+ id: number;
75
+ type: string;
76
+ parameters: object;
77
+ x?: number;
78
+ y?: number;
79
+ }>;
80
+ connections: Array<{
81
+ from: number;
82
+ fromPort: string;
83
+ to: number;
84
+ toPort: string;
85
+ }>;
86
+ };
87
+ //# sourceMappingURL=particle_graph_json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particle_graph_json.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/particles/graph/particle_graph_json.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AAEH;;;;;GAKG;AACH;IAJ6B,KAAK;IACM,MAAM;IACjC,iBAAiB,CAiC7B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH;IAVqC,IAAI,EAA9B,iBAAiB;IACC,KAAK;IACM,MAAM;IACI,cAAc;IACS,OAAO,UAA5D,MAAM,KAAE,CAAC,0BAAwB,SAAS,CAAC;cAwD9D;AAED;;;;;;;;;;;GAWG;AACH;IAJ0E,OAAO,UAA7D,MAAM,KAAE,CAAC,0BAAwB,SAAS,CAAC;IAElD,MAAM,EAAE,CA6CpB;;WAxKa,MAAM;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;iBAC7E,MAAM;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC"}