@woosh/meep-engine 3.14.6 → 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 (1089) 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/orchestrator/ServerAuthoritativeClient.d.ts +48 -0
  400. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
  401. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +246 -3
  402. package/src/engine/network/replication/Replicator.d.ts +5 -3
  403. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  404. package/src/engine/network/replication/Replicator.js +65 -16
  405. package/src/engine/physics/broadphase/compute_fat_world_aabb.js +3 -3
  406. package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
  407. package/src/engine/physics/ccd/linear_sweep.js +9 -3
  408. package/src/engine/physics/constraint/solve_constraints.js +10 -10
  409. package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +8 -8
  410. package/src/engine/physics/ecs/ColliderObserverSystem.d.ts.map +1 -1
  411. package/src/engine/physics/ecs/ColliderObserverSystem.js +6 -6
  412. package/src/engine/physics/ecs/PhysicsSystem.d.ts +22 -32
  413. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  414. package/src/engine/physics/ecs/PhysicsSystem.js +2337 -2310
  415. package/src/engine/physics/ecs/find_non_finite_physics_state.js +6 -6
  416. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +7 -7
  417. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
  418. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +16 -8
  419. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +4 -4
  420. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -1
  421. package/src/engine/physics/fluid/ecs/FluidSystem.js +6 -6
  422. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts +2 -2
  423. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts.map +1 -1
  424. package/src/engine/physics/fluid/ecs/WorkerFluidSystem.js +4 -4
  425. package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +7 -7
  426. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +4 -4
  427. package/src/engine/physics/fluid/effector/WakeFluidEffector.js +7 -7
  428. package/src/engine/physics/inertia/world_inverse_inertia.js +1 -1
  429. package/src/engine/physics/integration/integrate_position.d.ts.map +1 -1
  430. package/src/engine/physics/integration/integrate_position.js +13 -12
  431. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts.map +1 -1
  432. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.js +23 -5
  433. package/src/engine/physics/narrowphase/compute_penetration.js +18 -14
  434. package/src/engine/physics/narrowphase/convex_convex_manifold.js +2 -2
  435. package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.js +9 -9
  436. package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
  437. package/src/engine/physics/narrowphase/narrowphase_step.js +95 -68
  438. package/src/engine/physics/narrowphase/refine_ray_concave.js +1 -1
  439. package/src/engine/physics/narrowphase/refine_ray_hit.js +3 -3
  440. package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -1
  441. package/src/engine/physics/queries/overlap_shape.js +19 -7
  442. package/src/engine/physics/queries/raycast.js +3 -3
  443. package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
  444. package/src/engine/physics/queries/shape_cast.js +628 -620
  445. package/src/engine/physics/solver/solve_contacts.js +10 -10
  446. package/src/engine/physics/vehicle/RaycastVehicle.d.ts +6 -5
  447. package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -1
  448. package/src/engine/physics/vehicle/RaycastVehicle.js +10 -5
  449. package/src/engine/sound/ecs/SoundListenerSystem.d.ts +16 -4
  450. package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
  451. package/src/engine/sound/ecs/SoundListenerSystem.js +70 -11
  452. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +7 -7
  453. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
  454. package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +343 -338
  455. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +2 -2
  456. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
  457. package/src/engine/sound/ecs/audio/LiveEmitterSet.js +356 -345
  458. package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts +23 -2
  459. package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts.map +1 -1
  460. package/src/engine/sound/ecs/audio/SpatialAudioIndex.js +174 -140
  461. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts +6 -6
  462. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -1
  463. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +185 -184
  464. package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.js +1 -1
  465. package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts +2 -1
  466. package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts.map +1 -1
  467. package/src/engine/sound/simulation/core/AcousticRegionIndex.js +4 -3
  468. package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts +3 -2
  469. package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts.map +1 -1
  470. package/src/engine/sound/simulation/core/AcousticVolumeRegion.js +6 -4
  471. package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts +10 -6
  472. package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts.map +1 -1
  473. package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.js +32 -7
  474. package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts +7 -7
  475. package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts.map +1 -1
  476. package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.js +6 -6
  477. package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
  478. package/src/engine/sound/sopra/runtime/EventInstance.js +8 -2
  479. package/src/format/scene/gltf/gltf_component_type.d.ts.map +1 -1
  480. package/src/format/scene/gltf/gltf_component_type.js +3 -1
  481. package/src/format/texture/ktx2/ktx2_read.d.ts.map +1 -1
  482. package/src/format/texture/ktx2/ktx2_read.js +2 -1
  483. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.d.ts.map +1 -1
  484. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.js +8 -1
  485. package/src/generation/markers/GridCellActionPlaceMarker.d.ts +4 -4
  486. package/src/generation/markers/GridCellActionPlaceMarker.d.ts.map +1 -1
  487. package/src/generation/markers/GridCellActionPlaceMarker.js +16 -6
  488. package/src/generation/markers/MarkerNode.d.ts +3 -3
  489. package/src/generation/markers/MarkerNode.d.ts.map +1 -1
  490. package/src/generation/markers/MarkerNode.js +3 -3
  491. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts +4 -4
  492. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts.map +1 -1
  493. package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.js +7 -7
  494. package/src/generation/markers/actions/MarkerNodeActionImaginary.d.ts.map +1 -1
  495. package/src/generation/markers/actions/MarkerNodeActionImaginary.js +20 -2
  496. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.js +1 -1
  497. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.d.ts.map +1 -1
  498. package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.js +13 -3
  499. package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.d.ts.map +1 -1
  500. package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.js +11 -1
  501. package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.d.ts.map +1 -1
  502. package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.js +8 -4
  503. package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.d.ts.map +1 -1
  504. package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.js +13 -5
  505. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.d.ts.map +1 -1
  506. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.js +8 -2
  507. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.d.ts.map +1 -1
  508. package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.js +16 -2
  509. package/src/shade/RENDERER_CONTRACT.md +584 -580
  510. package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
  511. package/src/shade/device/graph/BufferResourceDescriptor.js +193 -184
  512. package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
  513. package/src/shade/device/graph/TextureResourceDescriptor.js +12 -0
  514. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  515. package/src/shade/device/mock/SoftwareGPUDevice.js +8 -0
  516. package/src/shade/playground/avboit/README.md +117 -0
  517. package/src/shade/playground/avboit/index.html +215 -0
  518. package/src/shade/playground/avboit/main.d.ts +2 -0
  519. package/src/shade/playground/avboit/main.d.ts.map +1 -0
  520. package/src/shade/playground/avboit/main.js +875 -0
  521. package/src/shade/playground/basis_textures/main.js +1 -1
  522. package/src/shade/playground/ground_seam/main.js +1 -1
  523. package/src/shade/playground/particle_editor/README.md +175 -0
  524. package/src/shade/playground/particle_editor/index.html +76 -0
  525. package/src/shade/playground/particle_editor/main.d.ts +2 -0
  526. package/src/shade/playground/particle_editor/main.d.ts.map +1 -0
  527. package/src/shade/playground/particle_editor/main.js +139 -0
  528. package/src/shade/playground/particle_system/README.md +92 -62
  529. package/src/shade/playground/particle_system/index.html +67 -21
  530. package/src/shade/playground/particle_system/main.js +247 -102
  531. package/src/shade/{renderer/particles → playground/particle_system}/particle_prototype.d.ts +21 -18
  532. package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -0
  533. package/src/shade/{renderer/particles → playground/particle_system}/particle_prototype.js +197 -181
  534. package/src/shade/playground/particle_system/particle_scene.d.ts +136 -20
  535. package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
  536. package/src/shade/playground/particle_system/particle_scene.js +487 -670
  537. package/src/shade/playground/skinned_blas_refit/sweep_views.js +2 -2
  538. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
  539. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +2 -1
  540. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
  541. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +2 -1
  542. package/src/shade/playground/sponza_path_trace/main.js +1 -1
  543. package/src/shade/playground/volumetrics_froxel/main.js +917 -917
  544. package/src/shade/playground/volumetrics_froxel/measure.js +559 -559
  545. package/src/shade/renderer/Renderer.d.ts +44 -0
  546. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  547. package/src/shade/renderer/Renderer.js +169 -36
  548. package/src/shade/renderer/ShadeTransparencyMode.d.ts +13 -0
  549. package/src/shade/renderer/ShadeTransparencyMode.d.ts.map +1 -0
  550. package/src/shade/renderer/ShadeTransparencyMode.js +30 -0
  551. package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
  552. package/src/shade/renderer/atmosphere/GPUSky.js +4 -2
  553. package/src/shade/renderer/buffer/graph_read_buffer.d.ts.map +1 -1
  554. package/src/shade/renderer/buffer/graph_read_buffer.js +8 -1
  555. package/src/shade/renderer/buffer/table/GPUTypedTable.js +1 -1
  556. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts +30 -0
  557. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts.map +1 -1
  558. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.js +84 -0
  559. package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts +27 -0
  560. package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts.map +1 -0
  561. package/src/shade/renderer/buffer/table/gpu_database_words.d.ts +24 -0
  562. package/src/shade/renderer/buffer/table/gpu_database_words.d.ts.map +1 -0
  563. package/src/shade/renderer/buffer/table/gpu_database_words.js +92 -0
  564. package/src/shade/renderer/camera/Camera.d.ts +2 -2
  565. package/src/shade/renderer/camera/Camera.d.ts.map +1 -1
  566. package/src/shade/renderer/camera/Camera.js +11 -5
  567. package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
  568. package/src/shade/renderer/camera/GPUCameraContext.js +2 -1
  569. package/src/shade/renderer/camera/OrbitalCameraController.d.ts +3 -3
  570. package/src/shade/renderer/camera/OrbitalCameraController.d.ts.map +1 -1
  571. package/src/shade/renderer/camera/OrbitalCameraController.js +31 -16
  572. package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts +2 -2
  573. package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts.map +1 -1
  574. package/src/shade/renderer/camera/orbital/OrbitalCameraController.js +4 -3
  575. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts +10 -5
  576. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts.map +1 -1
  577. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.js +8 -4
  578. package/src/shade/renderer/extension/FrameContext.d.ts.map +1 -1
  579. package/src/shade/renderer/extension/FrameContext.js +5 -0
  580. package/src/shade/renderer/extension/FrameRecord.d.ts +16 -0
  581. package/src/shade/renderer/extension/FrameRecord.d.ts.map +1 -1
  582. package/src/shade/renderer/extension/FrameRecord.js +31 -0
  583. package/src/shade/renderer/extension/GBufferTextures.d.ts +11 -0
  584. package/src/shade/renderer/extension/GBufferTextures.d.ts.map +1 -1
  585. package/src/shade/renderer/extension/GBufferTextures.js +14 -0
  586. package/src/shade/renderer/geometry/attribute/gpu_vertex_buffer_layout_from_spec.js +1 -1
  587. package/src/shade/renderer/geometry/util/geometry_stripify.js +6 -6
  588. package/src/shade/renderer/geometry/virtual/format/prototypeVGEOFormatViewer.js +8 -8
  589. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
  590. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +14 -5
  591. package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.d.ts.map +1 -1
  592. package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +17 -9
  593. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts +2 -1
  594. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts.map +1 -1
  595. package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.js +4 -1
  596. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts +2 -1
  597. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
  598. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +11 -1
  599. package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.d.ts +1 -1
  600. package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.d.ts.map +1 -1
  601. package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.js +4 -2
  602. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
  603. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.js +5 -1
  604. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
  605. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +35 -11
  606. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  607. package/src/shade/renderer/particles/DESIGN.md +271 -112
  608. package/src/shade/renderer/particles/GPUParticleSystem.d.ts +251 -86
  609. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  610. package/src/shade/renderer/particles/GPUParticleSystem.js +822 -146
  611. package/src/shade/renderer/particles/ParticleConstants.d.ts +96 -3
  612. package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
  613. package/src/shade/renderer/particles/ParticleConstants.js +103 -4
  614. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +5 -4
  615. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -1
  616. package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +11 -15
  617. package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts +2 -2
  618. package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts.map +1 -1
  619. package/src/shade/renderer/particles/coherence/shader_particle_bucket.js +20 -15
  620. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts +7 -8
  621. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts.map +1 -1
  622. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.js +7 -17
  623. package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts +56 -0
  624. package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts.map +1 -0
  625. package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.js +68 -0
  626. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts +39 -0
  627. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts.map +1 -0
  628. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.js +52 -0
  629. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +83 -0
  630. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -0
  631. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +166 -0
  632. package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts +21 -5
  633. package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts.map +1 -1
  634. package/src/shade/renderer/particles/data/chunk_particle_emitter.js +44 -85
  635. package/src/shade/renderer/particles/data/particle_header.d.ts +62 -0
  636. package/src/shade/renderer/particles/data/particle_header.d.ts.map +1 -0
  637. package/src/shade/renderer/particles/data/particle_header.js +103 -0
  638. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts +179 -0
  639. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts.map +1 -0
  640. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.js +303 -0
  641. package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts +120 -1
  642. package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts.map +1 -1
  643. package/src/shade/renderer/particles/graph/ParticleNodeDescription.js +90 -1
  644. package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts +283 -0
  645. package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts.map +1 -0
  646. package/src/shade/renderer/particles/graph/ParticleNodeGroup.js +419 -0
  647. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts +44 -2
  648. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
  649. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +476 -40
  650. package/src/shade/renderer/particles/graph/ParticleValueType.d.ts +188 -0
  651. package/src/shade/renderer/particles/graph/ParticleValueType.d.ts.map +1 -0
  652. package/src/shade/renderer/particles/graph/ParticleValueType.js +287 -0
  653. package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts +16 -9
  654. package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts.map +1 -1
  655. package/src/shade/renderer/particles/graph/compile_particle_graph.js +464 -205
  656. package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts +11 -0
  657. package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts.map +1 -0
  658. package/src/shade/renderer/particles/graph/flatten_particle_graph.js +213 -0
  659. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts +27 -0
  660. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts.map +1 -0
  661. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.js +75 -0
  662. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts +83 -0
  663. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts.map +1 -0
  664. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.js +319 -0
  665. package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts +22 -0
  666. package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts.map +1 -0
  667. package/src/shade/renderer/particles/graph/groups/particle_groups_noise.js +517 -0
  668. package/src/shade/renderer/particles/graph/groups/particle_groups_utility.d.ts +70 -0
  669. package/src/shade/renderer/particles/graph/groups/particle_groups_utility.d.ts.map +1 -0
  670. package/src/shade/renderer/particles/graph/groups/particle_groups_utility.js +161 -0
  671. package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts +8 -0
  672. package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts.map +1 -0
  673. package/src/shade/renderer/particles/graph/groups/simplex_reference.js +159 -0
  674. package/src/shade/renderer/particles/graph/infer_particle_graph_types.d.ts +88 -0
  675. package/src/shade/renderer/particles/graph/infer_particle_graph_types.d.ts.map +1 -0
  676. package/src/shade/renderer/particles/graph/infer_particle_graph_types.js +234 -0
  677. package/src/shade/renderer/particles/graph/make_particle_group.d.ts +98 -0
  678. package/src/shade/renderer/particles/graph/make_particle_group.d.ts.map +1 -0
  679. package/src/shade/renderer/particles/graph/make_particle_group.js +427 -0
  680. package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts +11 -4
  681. package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts.map +1 -1
  682. package/src/shade/renderer/particles/graph/particle_graph_authoring.js +121 -108
  683. package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts +38 -0
  684. package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts.map +1 -0
  685. package/src/shade/renderer/particles/graph/particle_graph_diagnostic.js +25 -0
  686. package/src/shade/renderer/particles/graph/particle_graph_distributions.d.ts +29 -0
  687. package/src/shade/renderer/particles/graph/particle_graph_distributions.d.ts.map +1 -0
  688. package/src/shade/renderer/particles/graph/particle_graph_distributions.js +170 -0
  689. package/src/shade/renderer/particles/graph/particle_graph_json.d.ts +87 -0
  690. package/src/shade/renderer/particles/graph/particle_graph_json.d.ts.map +1 -0
  691. package/src/shade/renderer/particles/graph/particle_graph_json.js +196 -0
  692. package/src/shade/renderer/particles/graph/particle_group_json.d.ts +86 -0
  693. package/src/shade/renderer/particles/graph/particle_group_json.d.ts.map +1 -0
  694. package/src/shade/renderer/particles/graph/particle_group_json.js +182 -0
  695. package/src/shade/renderer/particles/graph/particle_group_library.d.ts +33 -0
  696. package/src/shade/renderer/particles/graph/particle_group_library.d.ts.map +1 -0
  697. package/src/shade/renderer/particles/graph/particle_group_library.js +75 -0
  698. package/src/shade/renderer/particles/graph/particle_node_library.d.ts +37 -0
  699. package/src/shade/renderer/particles/graph/particle_node_library.d.ts.map +1 -0
  700. package/src/shade/renderer/particles/graph/particle_node_library.js +64 -0
  701. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts +146 -0
  702. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -0
  703. package/src/shade/renderer/particles/graph/particle_node_parameters.js +234 -0
  704. package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts +30 -0
  705. package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -0
  706. package/src/shade/renderer/particles/graph/particle_node_presentation.js +286 -0
  707. package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts +66 -0
  708. package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts.map +1 -0
  709. package/src/shade/renderer/particles/graph/validate_particle_graph.js +439 -0
  710. package/src/shade/renderer/particles/graph_particles.d.ts +143 -68
  711. package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
  712. package/src/shade/renderer/particles/graph_particles.js +424 -71
  713. package/src/shade/renderer/particles/graph_particles_avboit.d.ts +107 -0
  714. package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -0
  715. package/src/shade/renderer/particles/graph_particles_avboit.js +312 -0
  716. package/src/shade/renderer/particles/isa/InstructionStream.d.ts +41 -8
  717. package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
  718. package/src/shade/renderer/particles/isa/InstructionStream.js +111 -33
  719. package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts +13 -10
  720. package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts.map +1 -1
  721. package/src/shade/renderer/particles/isa/ParticleAssembler.js +30 -26
  722. package/src/shade/renderer/particles/isa/ParticleProgram.d.ts +27 -15
  723. package/src/shade/renderer/particles/isa/ParticleProgram.d.ts.map +1 -1
  724. package/src/shade/renderer/particles/isa/ParticleProgram.js +139 -34
  725. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +117 -9
  726. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
  727. package/src/shade/renderer/particles/isa/ParticleVMISA.js +296 -37
  728. package/src/shade/renderer/particles/isa/particle_assembly.d.ts +149 -0
  729. package/src/shade/renderer/particles/isa/particle_assembly.d.ts.map +1 -0
  730. package/src/shade/renderer/particles/isa/particle_assembly.js +999 -0
  731. package/src/shade/renderer/particles/layout/ParticleLayout.d.ts +25 -3
  732. package/src/shade/renderer/particles/layout/ParticleLayout.d.ts.map +1 -1
  733. package/src/shade/renderer/particles/layout/ParticleLayout.js +33 -5
  734. package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts +160 -0
  735. package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts.map +1 -0
  736. package/src/shade/renderer/particles/optimizer/optimize_particle_program.js +478 -0
  737. package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts +291 -0
  738. package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -0
  739. package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +647 -0
  740. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts +95 -0
  741. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -0
  742. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +213 -0
  743. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts +16 -0
  744. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts.map +1 -0
  745. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +223 -0
  746. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts +121 -0
  747. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -0
  748. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +206 -0
  749. package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts +11 -0
  750. package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts.map +1 -0
  751. package/src/shade/renderer/particles/optimizer/pass_dedup_constants.js +197 -0
  752. package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts +4 -0
  753. package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts.map +1 -0
  754. package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.js +51 -0
  755. package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts +4 -0
  756. package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts.map +1 -0
  757. package/src/shade/renderer/particles/optimizer/pass_fold_constants.js +561 -0
  758. package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts +4 -0
  759. package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts.map +1 -0
  760. package/src/shade/renderer/particles/optimizer/pass_narrow_widths.js +72 -0
  761. package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts +4 -0
  762. package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts.map +1 -0
  763. package/src/shade/renderer/particles/optimizer/pass_pack_registers.js +86 -0
  764. package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts +4 -0
  765. package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts.map +1 -0
  766. package/src/shade/renderer/particles/optimizer/pass_peephole.js +271 -0
  767. package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts +4 -0
  768. package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts.map +1 -0
  769. package/src/shade/renderer/particles/optimizer/pass_propagate_copies.js +268 -0
  770. package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts +4 -0
  771. package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts.map +1 -0
  772. package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.js +151 -0
  773. package/src/shade/renderer/particles/particle_test_fixtures.d.ts +131 -0
  774. package/src/shade/renderer/particles/particle_test_fixtures.d.ts.map +1 -0
  775. package/src/shade/renderer/particles/particle_test_fixtures.js +203 -0
  776. package/src/shade/renderer/particles/runtime/Emitter.d.ts +219 -0
  777. package/src/shade/renderer/particles/runtime/Emitter.d.ts.map +1 -0
  778. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +128 -60
  779. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
  780. package/src/shade/renderer/particles/runtime/EmitterRegistry.js +286 -117
  781. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +264 -0
  782. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -0
  783. package/src/shade/renderer/particles/runtime/ParticleEmitter.js +404 -0
  784. package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts +49 -15
  785. package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts.map +1 -1
  786. package/src/shade/renderer/particles/runtime/ProgramArena.d.ts +51 -18
  787. package/src/shade/renderer/particles/runtime/ProgramArena.d.ts.map +1 -1
  788. package/src/shade/renderer/particles/runtime/ProgramArena.js +72 -32
  789. package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts +4 -4
  790. package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts.map +1 -1
  791. package/src/shade/renderer/particles/runtime/create_particle_effect.js +4 -4
  792. package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts +15 -0
  793. package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts.map +1 -0
  794. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts +17 -0
  795. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts.map +1 -0
  796. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +75 -0
  797. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts +20 -0
  798. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -0
  799. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +94 -0
  800. package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts +15 -5
  801. package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts.map +1 -1
  802. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts +1 -2
  803. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts.map +1 -1
  804. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js +1 -2
  805. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts +11 -0
  806. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts.map +1 -0
  807. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.js +13 -0
  808. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.d.ts +17 -0
  809. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.d.ts.map +1 -0
  810. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.js +22 -0
  811. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts +14 -0
  812. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts.map +1 -0
  813. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.js +23 -0
  814. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +1 -1
  815. package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.d.ts +18 -0
  816. package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.d.ts.map +1 -0
  817. package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.js +24 -0
  818. package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.d.ts +26 -0
  819. package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.d.ts.map +1 -0
  820. package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.js +59 -0
  821. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts +14 -0
  822. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -0
  823. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +153 -0
  824. package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts +3 -0
  825. package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts.map +1 -0
  826. package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.js +124 -0
  827. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts +19 -0
  828. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts.map +1 -0
  829. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.js +147 -0
  830. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts +18 -8
  831. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
  832. package/src/shade/renderer/particles/shaders/shader_particle_emit.js +72 -37
  833. package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts +5 -0
  834. package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts.map +1 -0
  835. package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.js +216 -0
  836. package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
  837. package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +7 -3
  838. package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +1 -1
  839. package/src/shade/renderer/particles/shaders/shader_particle_render.js +132 -197
  840. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
  841. package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +78 -24
  842. package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.d.ts +26 -0
  843. package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.d.ts.map +1 -0
  844. package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.js +66 -0
  845. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts +1 -1
  846. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
  847. package/src/shade/renderer/particles/sort/shader_particle_sort.js +21 -36
  848. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +2 -2
  849. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
  850. package/src/shade/renderer/particles/vm/ParticleVMReference.js +100 -90
  851. package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
  852. package/src/shade/renderer/particles/vm/chunk_particle_vm.js +270 -138
  853. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts +9 -0
  854. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
  855. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +26 -0
  856. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts +1 -2
  857. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts.map +1 -1
  858. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +0 -3
  859. package/src/shade/renderer/postprocess/dof/gather/DepthOfFieldU.js +1 -1
  860. package/src/shade/renderer/postprocess/dof/raymarch/DepthOfField.js +1 -1
  861. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  862. package/src/shade/renderer/postprocess/nss/NSS.d.ts.map +1 -1
  863. package/src/shade/renderer/postprocess/nss/NSS.js +3 -2
  864. package/src/shade/renderer/postprocess/nss/generate_NSS_WEIGHTS_ACTUAL.js +3 -2
  865. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts +7 -2
  866. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
  867. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +12 -1
  868. package/src/shade/renderer/rasterize/expand/shader_filter_triangle_by_material_side.js +1 -1
  869. package/src/shade/renderer/rasterize/forward/FORWARD_VERTEX_SHADER_STRUCT.d.ts +3 -0
  870. package/src/shade/renderer/rasterize/forward/FORWARD_VERTEX_SHADER_STRUCT.d.ts.map +1 -0
  871. package/src/shade/renderer/rasterize/{native/oit → forward}/FORWARD_VERTEX_SHADER_STRUCT.js +4 -4
  872. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.d.ts +3 -0
  873. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.d.ts.map +1 -0
  874. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.js +17 -0
  875. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_forward_shade_standard_fragment_brick4.d.ts +1 -1
  876. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts.map +1 -0
  877. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_forward_shade_standard_fragment_brick4.js +16 -16
  878. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_forward_shade_standard_fragment_ibl.d.ts +1 -1
  879. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts.map +1 -0
  880. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_forward_shade_standard_fragment_ibl.js +17 -17
  881. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_material_side_should_draw.d.ts +1 -1
  882. package/src/shade/renderer/rasterize/forward/chunk_material_side_should_draw.d.ts.map +1 -0
  883. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_material_side_should_draw.js +2 -2
  884. package/src/shade/renderer/rasterize/forward/vertex_shader_chunk.d.ts +3 -0
  885. package/src/shade/renderer/rasterize/forward/vertex_shader_chunk.d.ts.map +1 -0
  886. package/src/shade/renderer/rasterize/{native/oit → forward}/vertex_shader_chunk.js +4 -4
  887. package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.d.ts +27 -0
  888. package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.d.ts.map +1 -0
  889. package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.js +27 -0
  890. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +87 -0
  891. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -0
  892. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +61 -0
  893. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.d.ts +107 -0
  894. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.d.ts.map +1 -0
  895. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.js +120 -0
  896. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +642 -0
  897. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +534 -0
  898. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_WARP_STRUCT.d.ts +15 -0
  899. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_WARP_STRUCT.d.ts.map +1 -0
  900. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_WARP_STRUCT.js +33 -0
  901. package/src/shade/renderer/rasterize/native/avboit/avboit_build_depth_curve.d.ts +20 -0
  902. package/src/shade/renderer/rasterize/native/avboit/avboit_build_depth_curve.d.ts.map +1 -0
  903. package/src/shade/renderer/rasterize/native/avboit/avboit_build_depth_curve.js +38 -0
  904. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts +45 -0
  905. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -0
  906. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +139 -0
  907. package/src/shade/renderer/rasterize/native/avboit/avboit_spec_support.d.ts +37 -0
  908. package/src/shade/renderer/rasterize/native/avboit/avboit_spec_support.d.ts.map +1 -0
  909. package/src/shade/renderer/rasterize/native/avboit/avboit_spec_support.js +73 -0
  910. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_counts_to_extinction.d.ts +9 -0
  911. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_counts_to_extinction.d.ts.map +1 -0
  912. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_counts_to_extinction.js +17 -0
  913. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_dilate_word.d.ts +11 -0
  914. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_dilate_word.d.ts.map +1 -0
  915. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_dilate_word.js +18 -0
  916. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_counts.d.ts +9 -0
  917. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_counts.d.ts.map +1 -0
  918. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_counts.js +17 -0
  919. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_transmittance.d.ts +9 -0
  920. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_transmittance.d.ts.map +1 -0
  921. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_transmittance.js +17 -0
  922. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.d.ts +15 -0
  923. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.d.ts.map +1 -0
  924. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.js +25 -0
  925. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.d.ts +17 -0
  926. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.d.ts.map +1 -0
  927. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.js +35 -0
  928. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_range.d.ts +11 -0
  929. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_range.d.ts.map +1 -0
  930. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_range.js +21 -0
  931. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_word_mask.d.ts +9 -0
  932. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_word_mask.d.ts.map +1 -0
  933. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_word_mask.js +26 -0
  934. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_overflows.d.ts +11 -0
  935. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_overflows.d.ts.map +1 -0
  936. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_overflows.js +22 -0
  937. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_pack_counts.d.ts +10 -0
  938. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_pack_counts.d.ts.map +1 -0
  939. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_pack_counts.js +21 -0
  940. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.d.ts +10 -0
  941. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.d.ts.map +1 -0
  942. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.js +32 -0
  943. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.d.ts +18 -0
  944. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.d.ts.map +1 -0
  945. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.js +58 -0
  946. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmission_tint.d.ts +20 -0
  947. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmission_tint.d.ts.map +1 -0
  948. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmission_tint.js +27 -0
  949. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmittance_to_extinction.d.ts +10 -0
  950. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmittance_to_extinction.d.ts.map +1 -0
  951. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmittance_to_extinction.js +18 -0
  952. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unpack_counts.d.ts +9 -0
  953. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unpack_counts.d.ts.map +1 -0
  954. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unpack_counts.js +21 -0
  955. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_physical.d.ts +9 -0
  956. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_physical.d.ts.map +1 -0
  957. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_physical.js +23 -0
  958. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_virtual.d.ts +13 -0
  959. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_virtual.d.ts.map +1 -0
  960. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_virtual.js +27 -0
  961. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp.d.ts +22 -0
  962. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp.d.ts.map +1 -0
  963. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp.js +38 -0
  964. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +141 -0
  965. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -0
  966. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +994 -0
  967. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.d.ts +8 -0
  968. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.d.ts.map +1 -0
  969. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.js +135 -0
  970. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts +3 -0
  971. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts.map +1 -0
  972. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.js +101 -0
  973. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts +3 -0
  974. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts.map +1 -0
  975. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.js +96 -0
  976. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_integrate.d.ts +3 -0
  977. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_integrate.d.ts.map +1 -0
  978. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_integrate.js +83 -0
  979. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.d.ts +9 -0
  980. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.d.ts.map +1 -0
  981. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.js +119 -0
  982. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.d.ts +3 -0
  983. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.d.ts.map +1 -0
  984. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.js +87 -0
  985. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts +15 -0
  986. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -0
  987. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +202 -0
  988. package/src/shade/renderer/rasterize/native/material_draw_indirect.d.ts +22 -0
  989. package/src/shade/renderer/rasterize/native/material_draw_indirect.d.ts.map +1 -0
  990. package/src/shade/renderer/rasterize/native/material_draw_indirect.js +69 -0
  991. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts.map +1 -1
  992. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +665 -722
  993. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +3 -3
  994. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.js +4 -4
  995. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.js +4 -4
  996. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +7 -2
  997. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
  998. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +16 -2
  999. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts +3 -3
  1000. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts.map +1 -1
  1001. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.js +29 -23
  1002. package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts +2 -2
  1003. package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts.map +1 -1
  1004. package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.js +3 -3
  1005. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts +4 -4
  1006. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts.map +1 -1
  1007. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.js +2 -2
  1008. package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.d.ts +2 -2
  1009. package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.d.ts.map +1 -1
  1010. package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.js +2 -2
  1011. package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.d.ts +7 -7
  1012. package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.d.ts.map +1 -1
  1013. package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.js +79 -71
  1014. package/src/shade/renderer/shader/chunk/math/chunk_lower_bound_branchless.d.ts.map +1 -1
  1015. package/src/shade/renderer/shader/chunk/math/chunk_lower_bound_branchless.js +3 -1
  1016. package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.d.ts +13 -3
  1017. package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.d.ts.map +1 -1
  1018. package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.js +15 -5
  1019. package/src/shade/renderer/shader/chunk/random/chunk_random_uint.d.ts +8 -0
  1020. package/src/shade/renderer/shader/chunk/random/chunk_random_uint.d.ts.map +1 -1
  1021. package/src/shade/renderer/shader/chunk/random/chunk_random_uint.js +15 -5
  1022. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.d.ts +7 -0
  1023. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.d.ts.map +1 -1
  1024. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.js +17 -7
  1025. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.d.ts +17 -0
  1026. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.d.ts.map +1 -0
  1027. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.js +26 -0
  1028. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.d.ts +15 -0
  1029. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.d.ts.map +1 -0
  1030. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.js +26 -0
  1031. package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
  1032. package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +8 -2
  1033. package/src/shade/renderer/shadow/map/PointLightShadowmap.d.ts.map +1 -1
  1034. package/src/shade/renderer/shadow/map/PointLightShadowmap.js +7 -2
  1035. package/src/shade/renderer/shadow/map/SpotLightShadowmap.d.ts.map +1 -1
  1036. package/src/shade/renderer/shadow/map/SpotLightShadowmap.js +3 -15
  1037. package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.d.ts.map +1 -1
  1038. package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.js +10 -4
  1039. package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.d.ts.map +1 -1
  1040. package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.js +7 -2
  1041. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +2 -2
  1042. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +3 -3
  1043. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
  1044. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +3 -3
  1045. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  1046. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +66 -5
  1047. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  1048. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +35 -4
  1049. package/src/view/minimap/Minimap.d.ts.map +1 -1
  1050. package/src/view/minimap/Minimap.js +227 -225
  1051. package/src/view/minimap/MinimapCanvasView.js +3 -3
  1052. package/src/view/minimap/MinimapMarker.d.ts +45 -0
  1053. package/src/view/minimap/MinimapMarker.d.ts.map +1 -0
  1054. package/src/view/minimap/MinimapMarker.js +80 -0
  1055. package/src/view/minimap/MinimapMarkerCollection.d.ts +6 -5
  1056. package/src/view/minimap/MinimapMarkerCollection.d.ts.map +1 -1
  1057. package/src/view/minimap/MinimapMarkerCollection.js +6 -6
  1058. package/src/view/minimap/MinimapMarkerSerializationAdapter.d.ts +19 -0
  1059. package/src/view/minimap/MinimapMarkerSerializationAdapter.d.ts.map +1 -0
  1060. package/src/view/minimap/MinimapMarkerSerializationAdapter.js +42 -0
  1061. package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -1
  1062. package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
  1063. package/src/view/minimap/dom/MinimapCameraView.js +23 -4
  1064. package/src/view/minimap/dom/MinimapMarkerView.js +3 -3
  1065. package/src/view/minimap/gl/MarkerGL.js +3 -3
  1066. package/src/view/util/DomLayoutFrame.d.ts +53 -0
  1067. package/src/view/util/DomLayoutFrame.d.ts.map +1 -0
  1068. package/src/view/util/DomLayoutFrame.js +122 -0
  1069. package/src/core/model/node-graph/visual/layout/BoxLayoutSpec.js +0 -19
  1070. package/src/core/model/node-graph/visual/layout/ConnectedBoxLayouter.js +0 -241
  1071. package/src/core/model/node-graph/visual/layout/ConnectionEndpointLayoutSpec.js +0 -40
  1072. package/src/core/model/node-graph/visual/layout/ConnectionLayoutSpec.js +0 -28
  1073. package/src/engine/ecs/util/hideEntityGracefully.js +0 -196
  1074. package/src/shade/renderer/particles/cull/chunk_particle_cull.js +0 -38
  1075. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.js +0 -214
  1076. package/src/shade/renderer/particles/particle_prototype.d.ts.map +0 -1
  1077. package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.js +0 -86
  1078. package/src/shade/renderer/particles/runtime/spawn_request_encoding.js +0 -52
  1079. package/src/shade/renderer/particles/shaders/chunk_particle_context.js +0 -58
  1080. package/src/shade/renderer/rasterize/native/oit/FORWARD_VERTEX_SHADER_STRUCT.d.ts +0 -3
  1081. package/src/shade/renderer/rasterize/native/oit/FORWARD_VERTEX_SHADER_STRUCT.d.ts.map +0 -1
  1082. package/src/shade/renderer/rasterize/native/oit/SHADING_SCENE_RESOURCE_GROUP.d.ts +0 -3
  1083. package/src/shade/renderer/rasterize/native/oit/SHADING_SCENE_RESOURCE_GROUP.d.ts.map +0 -1
  1084. package/src/shade/renderer/rasterize/native/oit/SHADING_SCENE_RESOURCE_GROUP.js +0 -17
  1085. package/src/shade/renderer/rasterize/native/oit/chunk_forward_shade_standard_fragment_brick4.d.ts.map +0 -1
  1086. package/src/shade/renderer/rasterize/native/oit/chunk_forward_shade_standard_fragment_ibl.d.ts.map +0 -1
  1087. package/src/shade/renderer/rasterize/native/oit/chunk_material_side_should_draw.d.ts.map +0 -1
  1088. package/src/shade/renderer/rasterize/native/oit/vertex_shader_chunk.d.ts +0 -3
  1089. package/src/shade/renderer/rasterize/native/oit/vertex_shader_chunk.d.ts.map +0 -1
@@ -0,0 +1,80 @@
1
+ import Quaternion from "../../../../core/geom/Quaternion.js";
2
+ import { BoundValueWriter } from "./BoundValueWriter.js";
3
+
4
+ /**
5
+ * @enum {string}
6
+ */
7
+ export const Transform64Channel = {
8
+ Translation: "translation",
9
+ Rotation: "rotation",
10
+ Scale: "scale"
11
+ };
12
+
13
+ /**
14
+ * @type {Quaternion}
15
+ */
16
+ const SCRATCH_ROTATION = new Quaternion();
17
+
18
+ /**
19
+ * Animate one component of an {@link EntityNode}'s pose.
20
+ *
21
+ * A {@link Transform64} keeps its three components as spans of one array, so there is no
22
+ * {@link Vector3} or {@link Quaternion} on it for {@link BoundVector3Writer} to hold on to - which
23
+ * is why the pose gets a writer of its own rather than reusing those.
24
+ *
25
+ * The writer owns three obligations a curve should not have to know about: only a translation write
26
+ * lands in the matrix by itself, so a rotation or a scale write recomposes; and the node's pose is
27
+ * not the entity's, so the write is followed by the sync that pushes it into the components the
28
+ * rest of the engine reads.
29
+ */
30
+ export class BoundTransform64Writer extends BoundValueWriter {
31
+ /**
32
+ * @type {EntityNode|null}
33
+ */
34
+ #node = null;
35
+
36
+ /**
37
+ * @type {string}
38
+ */
39
+ #channel = Transform64Channel.Translation;
40
+
41
+ /**
42
+ * @param {EntityNode} node
43
+ * @param {string} channel one of {@link Transform64Channel}
44
+ */
45
+ constructor(node, channel) {
46
+ super();
47
+
48
+ this.#node = node;
49
+ this.#channel = channel;
50
+ }
51
+
52
+ write(data) {
53
+ const transform = this.#node.transform;
54
+
55
+ switch (this.#channel) {
56
+ case Transform64Channel.Translation:
57
+ // the translation IS the matrix's fourth column, so this is already whole
58
+ transform.setTranslation(data[0], data[1], data[2]);
59
+ break;
60
+
61
+ case Transform64Channel.Rotation:
62
+ // curve output is interpolated, so it is very slightly off unit length
63
+ SCRATCH_ROTATION.set(data[0], data[1], data[2], data[3]).normalize();
64
+
65
+ transform.setRotation(
66
+ SCRATCH_ROTATION.x, SCRATCH_ROTATION.y,
67
+ SCRATCH_ROTATION.z, SCRATCH_ROTATION.w
68
+ );
69
+ transform.updateMatrix();
70
+ break;
71
+
72
+ case Transform64Channel.Scale:
73
+ transform.setScale(data[0], data[1], data[2]);
74
+ transform.updateMatrix();
75
+ break;
76
+ }
77
+
78
+ this.#node.transform_changed();
79
+ }
80
+ }
@@ -3,7 +3,7 @@ import { SerializationMetadata } from "../ecs/components/SerializationMetadata.j
3
3
  import { removeComponentsExcept } from "../ecs/util/removeComponentsExcept.js";
4
4
  import { ParticleEmitter } from "../graphics/particles/particular/engine/emitter/ParticleEmitter.js";
5
5
  import Trail2D from "../graphics/ecs/trail2d/Trail2D.js";
6
- import { Transform } from "../ecs/transform/Transform.js";
6
+ import { Transform64 } from "../ecs/transform/Transform64.js";
7
7
  import Entity from "../ecs/Entity.js";
8
8
  import { stopEntityAndNotifyWhenStopped } from "./AnimatedActions.js";
9
9
 
@@ -157,7 +157,7 @@ export function removeEntityWithMeshParticlesEffect(
157
157
  const emitter = ParticleEmitter.fromJSON(lib[particles]);
158
158
 
159
159
  //prevent further interactions
160
- removeComponentsExcept(ecd, entity, [SGMesh, ParticleEmitter, Trail2D, Transform]);
160
+ removeComponentsExcept(ecd, entity, [SGMesh, ParticleEmitter, Trail2D, Transform64]);
161
161
 
162
162
  //make entity volatile so it does not end up in game saves. The entity is mid-death here;
163
163
  //without this a save taken during the effect would restore a corpse that never finishes dying.
@@ -165,9 +165,9 @@ export function removeEntityWithMeshParticlesEffect(
165
165
 
166
166
  /**
167
167
  *
168
- * @type {Transform}
168
+ * @type {Transform64}
169
169
  */
170
- const originalTransform = ecd.getComponent(entity, Transform);
170
+ const originalTransform = ecd.getComponent(entity, Transform64);
171
171
 
172
172
  if (originalTransform === undefined) {
173
173
  throw new Error(`entity ${entity} doesn't have Transform`);
@@ -1 +1 @@
1
- {"version":3,"file":"gltf_test_fixtures.d.ts","sourceRoot":"","sources":["../../../../../src/engine/asset/loaders/gltf_test_fixtures.js"],"names":[],"mappings":"AAoBA;;GAEG;AACH,sCAFa,WAAW,CAWvB;AAED;;;GAGG;AACH,qDAHW,MAAM,GAAC,SAAS,GACd,MAAM,CA+BlB;AAED;;;;;;;;;;GAUG;AACH,8DAJW,MAAM,aACN,MAAM,GACJ,MAAM,CAiBlB;AAED;;;;GAIG;AACH,sCAFa,WAAW,CAiCvB;AAsCD;;;;;;;;;;;;;;;;;GAiBG;AACH;IAJ4B,aAAa,GAA9B,MAAM;IACY,MAAM,GAAxB,OAAO;;YACI,WAAW;;oBAAsB,MAAM;oBAAa,MAAM;;EA2C/E;AAED;;;;;;;GAOG;AACH,iEAPW,MAAM,cACN,MAAM,GAAC,SAAS;IAEC,aAAa,GAA9B,MAAM;IACY,MAAM,GAAxB,OAAO;IACL,MAAM,CA8ElB;AAED;;;;;;GAMG;AACH,2DAJW,MAAM,kBAEJ,WAAW,CAkCvB;AA3VD,iDAAkD;AAClD,iDAAkD;AAElD;;;;GAIG;AACH,2CAFU,MAAM,CAEgC;AA2HhD;;;;;GAKG;AACH,gDAFU,MAAM,CAE8D;AAa9E;;;;GAIG;AACH,mCAFU,MAAM,EAAE,CAMhB"}
1
+ {"version":3,"file":"gltf_test_fixtures.d.ts","sourceRoot":"","sources":["../../../../../src/engine/asset/loaders/gltf_test_fixtures.js"],"names":[],"mappings":"AAqBA;;GAEG;AACH,sCAFa,WAAW,CAWvB;AAED;;;GAGG;AACH,qDAHW,MAAM,GAAC,SAAS,GACd,MAAM,CA+BlB;AAED;;;;;;;;;;GAUG;AACH,8DAJW,MAAM,aACN,MAAM,GACJ,MAAM,CAiBlB;AAED;;;;GAIG;AACH,sCAFa,WAAW,CAiCvB;AAsCD;;;;;;;;;;;;;;;;;GAiBG;AACH;IAJ4B,aAAa,GAA9B,MAAM;IACY,MAAM,GAAxB,OAAO;;YACI,WAAW;;oBAAsB,MAAM;oBAAa,MAAM;;EA2C/E;AAED;;;;;;;GAOG;AACH,iEAPW,MAAM,cACN,MAAM,GAAC,SAAS;IAEC,aAAa,GAA9B,MAAM;IACY,MAAM,GAAxB,OAAO;IACL,MAAM,CA8ElB;AAED;;;;;;GAMG;AACH,2DAJW,MAAM,kBAEJ,WAAW,CAkCvB;AA3VD,iDAAkD;AAClD,iDAAkD;AAElD;;;;GAIG;AACH,2CAFU,MAAM,CAEgC;AA2HhD;;;;;GAKG;AACH,gDAFU,MAAM,CAE8D;AAa9E;;;;GAIG;AACH,mCAFU,MAAM,EAAE,CAMhB"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
 
9
9
  import { encode_meshopt_attributes } from "../../../core/binary/meshopt/__meshopt_test_streams.js";
10
+ import { align_4 } from "../../../core/binary/align_4.js";
10
11
 
11
12
  export const GLTF_FIXTURE_NODE_NAME = 'unit_root';
12
13
  export const GLTF_FIXTURE_MESH_NAME = 'unit_body';
@@ -104,10 +105,10 @@ export function build_triangle_glb() {
104
105
  const json_bytes = new TextEncoder().encode(JSON.stringify(build_triangle_gltf_json(undefined)));
105
106
 
106
107
  // both chunks are padded to a four byte boundary, per the container's own rule
107
- const json_length = Math.ceil(json_bytes.byteLength / 4) * 4;
108
+ const json_length = align_4(json_bytes.byteLength);
108
109
 
109
110
  const bin = new Uint8Array(build_triangle_bin());
110
- const bin_length = Math.ceil(bin.byteLength / 4) * 4;
111
+ const bin_length = align_4(bin.byteLength);
111
112
 
112
113
  const total = 12 + 8 + json_length + 8 + bin_length;
113
114
 
@@ -328,10 +329,10 @@ export function build_meshopt_triangle_glb(extension_name, options = {}) {
328
329
  JSON.stringify(build_meshopt_triangle_gltf_json(extension_name, undefined, options))
329
330
  );
330
331
 
331
- const json_length = Math.ceil(json_bytes.byteLength / 4) * 4;
332
+ const json_length = align_4(json_bytes.byteLength);
332
333
 
333
334
  const bin = new Uint8Array(build_meshopt_triangle_bin(options).buffer);
334
- const bin_length = Math.ceil(bin.byteLength / 4) * 4;
335
+ const bin_length = align_4(bin.byteLength);
335
336
 
336
337
  const total = 12 + 8 + json_length + 8 + bin_length;
337
338
 
@@ -18,8 +18,8 @@
18
18
  */
19
19
  export class FirstPersonPlayerControllerSystem extends System<any> {
20
20
  constructor();
21
- dependencies: (typeof Transform | typeof FirstPersonPlayerController)[];
22
- components_used: (ResourceAccessSpecification<typeof Transform> | ResourceAccessSpecification<typeof RigidBody> | ResourceAccessSpecification<typeof Camera>)[];
21
+ dependencies: (typeof Transform64 | typeof FirstPersonPlayerController)[];
22
+ components_used: (ResourceAccessSpecification<typeof Transform64> | ResourceAccessSpecification<typeof RigidBody> | ResourceAccessSpecification<typeof Camera>)[];
23
23
  /**
24
24
  * Per-entity runtime, keyed by entity id.
25
25
  * @type {Map<number, PerEntityRuntime>}
@@ -83,16 +83,16 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
83
83
  startup(entityManager: any): Promise<void>;
84
84
  /**
85
85
  * @param {FirstPersonPlayerController} controller
86
- * @param {Transform} bodyTransform
86
+ * @param {Transform64} bodyTransform
87
87
  * @param {number} entity
88
88
  */
89
- link(controller: FirstPersonPlayerController, bodyTransform: Transform, entity: number): void;
89
+ link(controller: FirstPersonPlayerController, bodyTransform: Transform64, entity: number): void;
90
90
  /**
91
91
  * @param {FirstPersonPlayerController} controller
92
- * @param {Transform} bodyTransform
92
+ * @param {Transform64} bodyTransform
93
93
  * @param {number} entity
94
94
  */
95
- unlink(controller: FirstPersonPlayerController, bodyTransform: Transform, entity: number): void;
95
+ unlink(controller: FirstPersonPlayerController, bodyTransform: Transform64, entity: number): void;
96
96
  /**
97
97
  * Look up the per-entity runtime for an entity that has this
98
98
  * controller. Used by cross-system code (sensors system, future
@@ -163,7 +163,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
163
163
  * @private
164
164
  * @param {FirstPersonPlayerController} controller
165
165
  * @param {PerEntityRuntime} runtime
166
- * @param {Transform} bodyTransform
166
+ * @param {Transform64} bodyTransform
167
167
  * @param {number} dt
168
168
  */
169
169
  private _advanceJumpFsm;
@@ -178,7 +178,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
178
178
  * @private
179
179
  * @param {FirstPersonPlayerController} controller
180
180
  * @param {PerEntityRuntime} runtime
181
- * @param {Transform} bodyTransform
181
+ * @param {Transform64} bodyTransform
182
182
  * @param {number} dt
183
183
  */
184
184
  private _integrateVerticalAndResolveGround;
@@ -247,7 +247,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
247
247
  * @private
248
248
  * @param {FirstPersonPlayerController} controller
249
249
  * @param {PerEntityRuntime} runtime
250
- * @param {Transform} bodyTransform
250
+ * @param {Transform64} bodyTransform
251
251
  * @param {number} dt
252
252
  * @param {boolean} isCrouchActive
253
253
  * @param {boolean} isSprintIntent
@@ -280,7 +280,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
280
280
  * @private
281
281
  * @param {FirstPersonPlayerController} controller
282
282
  * @param {PerEntityRuntime} runtime
283
- * @param {Transform} bodyTransform
283
+ * @param {Transform64} bodyTransform
284
284
  */
285
285
  private _publishPose;
286
286
  /**
@@ -330,7 +330,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
330
330
  private _composeEye;
331
331
  }
332
332
  import { System } from "../../ecs/System.js";
333
- import { Transform } from "../../ecs/transform/Transform.js";
333
+ import { Transform64 } from "../../ecs/transform/Transform64.js";
334
334
  import { FirstPersonPlayerController } from "./FirstPersonPlayerController.js";
335
335
  import { ResourceAccessSpecification } from "../../../core/model/ResourceAccessSpecification.js";
336
336
  import { RigidBody } from "../../physics/ecs/RigidBody.js";
@@ -344,7 +344,7 @@ import { Camera } from "../../graphics/ecs/camera/Camera.js";
344
344
  declare class PerEntityRuntime {
345
345
  /**
346
346
  * Co-attached kinematic body. Set by {@link FirstPersonPlayerControllerSystem.link}
347
- * after asserting it's present. The controller writes Transform.position
347
+ * after asserting it's present. The controller writes Transform64.position
348
348
  * directly (existing motion logic); physics derives the body's velocity
349
349
  * from the per-step delta. Other physics systems (raycasts, contact
350
350
  * events) see the player through this body.
@@ -1 +1 @@
1
- {"version":3,"file":"FirstPersonPlayerControllerSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/control/first-person/FirstPersonPlayerControllerSystem.js"],"names":[],"mappings":"AAsXA;;;;;;;;;;;;;;;;;GAiBG;AACH;;IAOI,wEAAwD;IAExD,gKAIE;IAEF;;;OAGG;IACH,SAFU,IAAI,MAAM,EAAE,gBAAgB,CAAC,CAEnB;IAEpB;;;;OAIG;IACH,sBAFU,OAAO,CAEW;IAE5B;;;;OAIG;IACH,SAFU,MAAM,CAEJ;IAEZ;;;;;;;;;;;;;;;;OAgBG;IACH,oBAFc,MAAM,KAAI,MAAM,KAAI,MAAM,KAAK,MAAM,GAAC,IAAI,CAElC;IAEtB;;;;;;;OAOG;IACH,eAFU,aAAa,GAAC,IAAI,CAEP;IAErB;;;;;;;;OAQG;IACH,eAAc;IAEd,+DAA+D;IAC/D,uBAA+B;IAE/B,yDAAyD;IACzD,oBAAyB;IAEzB,2CAA2C;IAC3C,oBAAwC;IAExC,2CAMC;IAED;;;;OAIG;IACH,iBAJW,2BAA2B,iBAC3B,SAAS,UACT,MAAM,QAqIhB;IAED;;;;OAIG;IACH,mBAJW,2BAA2B,iBAC3B,SAAS,UACT,MAAM,QAWhB;IAED;;;;;;;;OAQG;IACH,mBAHW,MAAM,GACJ,gBAAgB,GAAC,SAAS,CAItC;IAUG,mBAAoB;IAYpB,yBAA0B;IAI9B;;;;OAIG;IACH,oBAsUC;IAED;;;;;OAKG;IACH;;;;;;;;;;;;;;OAcG;IACH,2BAaC;IAED,2EA0CC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,2BASC;IAED;;;;;;;;;;;OAWG;IACH,wBA+EC;IAED;;;;;;;;;;;;;OAaG;IACH,2CAIC;IAED;;;;;;;;;;;OAWG;IACH,uBAMC;IAED;;;;;OAKG;IACH,sBAWC;IAED;;;;;OAKG;IACH,sBAgDC;IAED;;;;;;;;OAQG;IACH,wBA4CC;IAED;;;;;;OAMG;IACH,gBAsBC;IAED;;;;OAIG;IACH,uBAIC;IAED;;;OAGG;IACH,wBASC;IAED;;;;;;;;;;;;;;OAcG;IACH,2BA4IC;IAED;;;;;;;;;;;;;;;OAeG;IACH,kCAsDC;IAED;;;;;;;;;;OAUG;IACH,qBAiDC;IAED;;;;;;;;OAQG;IACH,4BAUC;IAED;;;;;;;;;OASG;IACH,8BAkBC;IAED;;;;;;;;;;;;;;;OAeG;IACH,qBA0BC;IAED;;;;;OAKG;IACH,oBA+KC;CACJ;uBAz8DsB,qBAAqB;0BAClB,kCAAkC;4CAShB,kCAAkC;4CAblC,oDAAoD;0BAStE,gCAAgC;uBAJnC,qCAAqC;AA8E5D;;;;;GAKG;AACH;IACI;;;;;;;OAOG;IACH,WAFU,SAAS,GAAC,IAAI,CAEP;IAEjB;;;;;OAKG;IACH,UAFU,QAAQ,GAAC,IAAI,CAEP;IAEhB;;;;;;;;;;;OAWG;IACH,2BAA0B;IAE1B,+CAA+C;IAC/C,4BAA2B;IAE3B,+CAA+C;IAC/C,2BAA0B;IAE1B,eAAe;IACf,oBAAiB;IAEjB,2DAA2D;IAC3D,iBAAa;IAEb,6CAA6C;IAC7C,gBAAY;IAEZ,sEAAsE;IACtE,yBAAqB;IAWrB;;wBAEoB;IACpB,qBAAiB;IAEjB,uBAA8B;IAC9B,sBAA6B;IAE7B;;gDAE4C;IAC5C,oBAAmB;IAEnB;sDACkD;IAClD,kBAAc;IAEd,kBAAc;IACd,kBAAc;IAEd,qEAAqE;IACrE,sBAAqB;IAErB,oEAAoE;IACpE,wBAAuB;IAEvB,yEAAyE;IACzE,uBAAsB;IAEtB,wEAAwE;IACxE,8BAA0B;IAE1B,mEAAmE;IACnE,gBAAe;IAEf;;;;;OAKG;IACH,kBAAc;IAEd,mEAAmE;IACnE,sBAAoB;IAEpB;;;;OAIG;IACH,gBAAkB;IAElB,kEAAkE;IAClE,mBAA0B;IAE1B,0CAA0C;IAC1C,kBAA2B;IAE3B,iDAAiD;IACjD,wBAAmC;IAEnC,wEAAwE;IACxE,mBAA0B;IAE1B;;;;;;;OAOG;IACH,sBAAkB;IAElB,sEAAsE;IACtE,sBAAkB;IAElB,sBAAkB;IAElB,iDAAiD;IACjD,sBAAoB;IAEpB,uDAAuD;IACvD,kBAAc;IAEd,0EAA0E;IAC1E,qBAAiB;IAEjB,+DAA+D;IAC/D,iBAAgB;IAEhB,oDAAoD;IACpD,mBAAkB;IAElB,2EAA2E;IAC3E,wBAAoB;IAEpB,gFAAgF;IAChF,wBAAoB;IAEpB,+DAA+D;IAC/D,qBAAmB;IAEnB;;;;;;;;;;OAUG;IACH,qBAAmB;IAEnB;;;;;;OAMG;IACH,qBAAiB;IAEjB;;;;OAIG;IACH,2BAAkC;IAElC;;;;OAIG;IACH,6BAAoC;IAEpC;;;;;OAKG;IACH,4BAAmC;IAEnC;;;;OAIG;IACH,wBAA+B;IAE/B;;;;OAIG;IACH,mBAAe;IAEf;;;;;OAKG;IACH,eAAW;IAEX,eAAW;IAEX,8EAA8E;IAC9E,mBAAe;IAEf,4FAA4F;IAC5F,qBAAiB;IAEjB;;;;;OAKG;IACH,+BAAsC;IAEtC;;;;;OAKG;IACH,4BAAmC;IAEnC,sDAAsD;IACtD,kBAAe;IAEf;;;;;OAKG;IACH,4BAA2B;IAE3B;;;;;;OAMG;IACH,4BAAwB;CAC3B;8BAlW6B,oCAAoC;yBADzC,+BAA+B;oBAZpC,+BAA+B;uBAwB5B,kBAAkB;+BAPV,8BAA8B;mCAW1B,iCAAiC"}
1
+ {"version":3,"file":"FirstPersonPlayerControllerSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/control/first-person/FirstPersonPlayerControllerSystem.js"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import { ResourceAccessSpecification } from "../../../core/model/ResourceAccessS
12
12
  import { SerializationMetadata } from "../../ecs/components/SerializationMetadata.js";
13
13
  import Entity from "../../ecs/Entity.js";
14
14
  import { System } from "../../ecs/System.js";
15
- import { Transform } from "../../ecs/transform/Transform.js";
15
+ import { Transform64 } from "../../ecs/transform/Transform64.js";
16
16
  import { Camera } from "../../graphics/ecs/camera/Camera.js";
17
17
  import { BodyKind } from "../../physics/ecs/BodyKind.js";
18
18
  import { Collider } from "../../physics/ecs/Collider.js";
@@ -32,6 +32,7 @@ import { stepTowards } from "./math/stepTowards.js";
32
32
  import { FirstPersonActionState, FirstPersonLocomotionMode } from "./pose/FirstPersonPose.js";
33
33
  import { FirstPersonPosture } from "./pose/FirstPersonPosture.js";
34
34
  import { FirstPersonSensors } from "./sensors/FirstPersonSensors.js";
35
+ import { t64_announce_change } from "../../ecs/transform/t64_announce_change.js";
35
36
 
36
37
  // ---------------------------------------------------------------------------
37
38
  // Scratch allocations — reused per frame to avoid GC pressure
@@ -42,6 +43,8 @@ const SCRATCH_V3_C = new Vector3();
42
43
  const SCRATCH_Q_A = new Quaternion();
43
44
  const SCRATCH_Q_B = new Quaternion();
44
45
  const SCRATCH_Q_C = new Quaternion();
46
+ /** the transform holds its rotation as four numbers, so euler and axis-angle work goes through here */
47
+ const SCRATCH_Q_EULER = new Quaternion();
45
48
 
46
49
  const TWO_PI = Math.PI * 2;
47
50
  const LN2 = Math.log(2);
@@ -100,7 +103,7 @@ function makePostureCapsule(radius, totalHeight) {
100
103
  class PerEntityRuntime {
101
104
  /**
102
105
  * Co-attached kinematic body. Set by {@link FirstPersonPlayerControllerSystem.link}
103
- * after asserting it's present. The controller writes Transform.position
106
+ * after asserting it's present. The controller writes Transform64.position
104
107
  * directly (existing motion logic); physics derives the body's velocity
105
108
  * from the per-step delta. Other physics systems (raycasts, contact
106
109
  * events) see the player through this body.
@@ -397,10 +400,10 @@ export class FirstPersonPlayerControllerSystem extends System {
397
400
  // never link — the controller would appear inert with no
398
401
  // diagnostic. The assert below catches the missing-body case
399
402
  // explicitly.
400
- dependencies = [FirstPersonPlayerController, Transform];
403
+ dependencies = [FirstPersonPlayerController, Transform64];
401
404
 
402
405
  components_used = [
403
- ResourceAccessSpecification.from(Transform, ResourceAccessKind.Write),
406
+ ResourceAccessSpecification.from(Transform64, ResourceAccessKind.Write),
404
407
  ResourceAccessSpecification.from(Camera, ResourceAccessKind.Write),
405
408
  ResourceAccessSpecification.from(RigidBody, ResourceAccessKind.Write),
406
409
  ];
@@ -484,7 +487,7 @@ export class FirstPersonPlayerControllerSystem extends System {
484
487
 
485
488
  /**
486
489
  * @param {FirstPersonPlayerController} controller
487
- * @param {Transform} bodyTransform
490
+ * @param {Transform64} bodyTransform
488
491
  * @param {number} entity
489
492
  */
490
493
  link(controller, bodyTransform, entity) {
@@ -578,14 +581,20 @@ export class FirstPersonPlayerControllerSystem extends System {
578
581
 
579
582
  // Seed yaw from the starting body rotation. `toEulerAnglesYXZ`
580
583
  // returns (pitch, yaw, roll) — we only care about y.
581
- bodyTransform.rotation.toEulerAnglesYXZ(SCRATCH_V3_A);
584
+ SCRATCH_Q_EULER.set(
585
+ bodyTransform.rotation_x,
586
+ bodyTransform.rotation_y,
587
+ bodyTransform.rotation_z,
588
+ bodyTransform.rotation_w
589
+ );
590
+ SCRATCH_Q_EULER.toEulerAnglesYXZ(SCRATCH_V3_A);
582
591
  runtime.bodyYaw = SCRATCH_V3_A.y;
583
592
  runtime.eyePitch = 0;
584
593
 
585
594
  // Seed render-rate-look + position-interpolation state to the spawn pose.
586
595
  runtime.prevFixedYaw = runtime.bodyYaw;
587
- runtime.renderPrevPos.copy(bodyTransform.position);
588
- runtime.renderCurPos.copy(bodyTransform.position);
596
+ runtime.renderPrevPos.set(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
597
+ runtime.renderCurPos.set(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
589
598
 
590
599
  // Initialize springs to standing-eye-height baseline
591
600
  runtime.eyeHeightSpring.settle(controller.config.body.height);
@@ -596,10 +605,10 @@ export class FirstPersonPlayerControllerSystem extends System {
596
605
  if (controller.eyeEntity === -1 || !ecd.entityExists(controller.eyeEntity)) {
597
606
  const eye = new Entity();
598
607
 
599
- const eyeTransform = new Transform();
600
- const baseEyePos = SCRATCH_V3_A.copy(bodyTransform.position);
608
+ const eyeTransform = new Transform64();
609
+ const baseEyePos = SCRATCH_V3_A.set(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
601
610
  baseEyePos.y += controller.config.body.height;
602
- eyeTransform.position.copy(baseEyePos);
611
+ eyeTransform.setTranslation(baseEyePos.x, baseEyePos.y, baseEyePos.z);
603
612
 
604
613
  const camera = new Camera();
605
614
  camera.active.set(true);
@@ -622,7 +631,7 @@ export class FirstPersonPlayerControllerSystem extends System {
622
631
 
623
632
  /**
624
633
  * @param {FirstPersonPlayerController} controller
625
- * @param {Transform} bodyTransform
634
+ * @param {Transform64} bodyTransform
626
635
  * @param {number} entity
627
636
  */
628
637
  unlink(controller, bodyTransform, entity) {
@@ -689,7 +698,7 @@ export class FirstPersonPlayerControllerSystem extends System {
689
698
  const state = controller.state;
690
699
  const sig = controller.signals;
691
700
 
692
- const bodyTransform = ecd.getComponent(entity, Transform);
701
+ const bodyTransform = ecd.getComponent(entity, Transform64);
693
702
  if (bodyTransform === undefined) return;
694
703
 
695
704
  // Decay the mastery score's EMA. Doing this once per tick keeps the
@@ -716,7 +725,11 @@ export class FirstPersonPlayerControllerSystem extends System {
716
725
  // Write body yaw back to the transform (pure yaw, no pitch on body) —
717
726
  // the collision sweep + sensors use it. The camera uses runtime.bodyYaw
718
727
  // directly, which _consumeLook keeps current at render rate.
719
- bodyTransform.rotation.fromAxisAngle(Vector3.up, runtime.bodyYaw);
728
+ SCRATCH_Q_EULER.fromAxisAngle(Vector3.up, runtime.bodyYaw);
729
+ bodyTransform.setRotation(
730
+ SCRATCH_Q_EULER.x, SCRATCH_Q_EULER.y, SCRATCH_Q_EULER.z, SCRATCH_Q_EULER.w
731
+ );
732
+ bodyTransform.updateMatrix();
720
733
 
721
734
  // -- Shared flags. Computed BEFORE the ability tick so abilities
722
735
  // can read them. `isCrouchActive` is deliberately computed
@@ -996,6 +1009,13 @@ export class FirstPersonPlayerControllerSystem extends System {
996
1009
  // -- L2.h: Publish pose channels --------------------------------
997
1010
  this._publishPose(controller, runtime, bodyTransform);
998
1011
 
1012
+ // -- L2.h.1: Say that the body moved ----------------------------
1013
+ // The yaw write above and the mover's write into the translation both land straight on the
1014
+ // component, and a Transform64 announces nothing on its own. One event here, at the point
1015
+ // where the pose is final, covers every writer in the tick and covers them once - which is
1016
+ // what wakes the mesh placement, the audio emitter and anything else that follows a player.
1017
+ t64_announce_change(ecd, entity, bodyTransform);
1018
+
999
1019
  // -- L2.i: Sync collider shape to posture -----------------------
1000
1020
  // All posture-writers (base locomotion + any active ability)
1001
1021
  // have run for this tick. Swap the collider's shape to the
@@ -1110,7 +1130,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1110
1130
  const ownCollider = runtime.collider;
1111
1131
  const filter = (_e, c) => c !== ownCollider;
1112
1132
  const ray = this._postureRay;
1113
- ray.setOrigin(bodyTransform.position.x, bodyTransform.position.y, bodyTransform.position.z);
1133
+ ray.setOrigin(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
1114
1134
  ray.setDirection(0, 1, 0);
1115
1135
  ray.tMax = growDelta;
1116
1136
  return !this.physicsSystem.shapeCast(ray, fromShape, bodyTransform.rotation, this._postureHit, filter);
@@ -1125,7 +1145,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1125
1145
  * @private
1126
1146
  * @param {FirstPersonPlayerController} controller
1127
1147
  * @param {PerEntityRuntime} runtime
1128
- * @param {Transform} bodyTransform
1148
+ * @param {Transform64} bodyTransform
1129
1149
  * @param {number} dt
1130
1150
  */
1131
1151
  _advanceJumpFsm(controller, runtime, bodyTransform, dt) {
@@ -1189,7 +1209,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1189
1209
  runtime.velocityY = runtime.jumpInitialVy * masteryMul;
1190
1210
  runtime.midJump = true;
1191
1211
  runtime.apexFired = false;
1192
- runtime.peakAltitude = bodyTransform.position.y;
1212
+ runtime.peakAltitude = bodyTransform.translation_y;
1193
1213
  state.inJumpAnticipation = false;
1194
1214
  state.isVariableJumpCut = false;
1195
1215
  state.isAscending = true;
@@ -1220,7 +1240,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1220
1240
  * @private
1221
1241
  * @param {FirstPersonPlayerController} controller
1222
1242
  * @param {PerEntityRuntime} runtime
1223
- * @param {Transform} bodyTransform
1243
+ * @param {Transform64} bodyTransform
1224
1244
  * @param {number} dt
1225
1245
  */
1226
1246
  _integrateVerticalAndResolveGround(controller, runtime, bodyTransform, dt) {
@@ -1292,7 +1312,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1292
1312
  const filter = (_e, c) => c !== ownCollider;
1293
1313
 
1294
1314
  const result = this._mover.move(
1295
- bodyTransform.position,
1315
+ bodyTransform.translation,
1296
1316
  bodyTransform.rotation,
1297
1317
  runtime.collider.shape,
1298
1318
  v, dt, filter,
@@ -1336,8 +1356,11 @@ export class FirstPersonPlayerControllerSystem extends System {
1336
1356
  _moveFlatGround(controller, runtime, bodyTransform, dt) {
1337
1357
  const state = controller.state;
1338
1358
 
1339
- bodyTransform.position._add(
1340
- runtime.velocityX * dt, runtime.velocityY * dt, runtime.velocityZ * dt,
1359
+ // translation lands in the matrix as it is written, so no updateMatrix is owed here
1360
+ bodyTransform.setTranslation(
1361
+ bodyTransform.translation_x + runtime.velocityX * dt,
1362
+ bodyTransform.translation_y + runtime.velocityY * dt,
1363
+ bodyTransform.translation_z + runtime.velocityZ * dt
1341
1364
  );
1342
1365
 
1343
1366
  if (this.useBuiltInFlatGround || this.groundResolver !== null) {
@@ -1345,13 +1368,13 @@ export class FirstPersonPlayerControllerSystem extends System {
1345
1368
  let testY = this.useBuiltInFlatGround ? this.groundY : Number.NEGATIVE_INFINITY;
1346
1369
  if (this.groundResolver !== null) {
1347
1370
  const resolved = this.groundResolver(
1348
- bodyTransform.position.x, bodyTransform.position.y, bodyTransform.position.z,
1371
+ bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z,
1349
1372
  );
1350
1373
  if (resolved !== null && resolved > testY) testY = resolved;
1351
1374
  }
1352
1375
  const haveGround = testY !== Number.NEGATIVE_INFINITY;
1353
- if (haveGround && bodyTransform.position.y <= testY) {
1354
- bodyTransform.position.setY(testY);
1376
+ if (haveGround && bodyTransform.translation_y <= testY) {
1377
+ bodyTransform.setTranslation(bodyTransform.translation_x, testY, bodyTransform.translation_z);
1355
1378
  if (!state.grounded) this._onLand(controller, runtime, -runtime.velocityY);
1356
1379
  state.grounded = true;
1357
1380
  state.groundNormal.set(0, 1, 0);
@@ -1418,7 +1441,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1418
1441
  _onLeaveGround(controller, runtime, bodyTransform) {
1419
1442
  controller.signals.onLeaveGround.send1({ reason: runtime.midJump ? "jump" : "fall" });
1420
1443
  runtime.takeoffVy = runtime.velocityY;
1421
- runtime.peakAltitude = bodyTransform.position.y;
1444
+ runtime.peakAltitude = bodyTransform.translation_y;
1422
1445
  }
1423
1446
 
1424
1447
  /**
@@ -1427,8 +1450,8 @@ export class FirstPersonPlayerControllerSystem extends System {
1427
1450
  */
1428
1451
  _detectJumpApex(controller, runtime, bodyTransform) {
1429
1452
  if (runtime.midJump && !runtime.apexFired) {
1430
- if (bodyTransform.position.y > runtime.peakAltitude) {
1431
- runtime.peakAltitude = bodyTransform.position.y;
1453
+ if (bodyTransform.translation_y > runtime.peakAltitude) {
1454
+ runtime.peakAltitude = bodyTransform.translation_y;
1432
1455
  } else if (runtime.velocityY <= 0) {
1433
1456
  controller.signals.onJumpApex.send0();
1434
1457
  runtime.apexFired = true;
@@ -1445,7 +1468,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1445
1468
  * @private
1446
1469
  * @param {FirstPersonPlayerController} controller
1447
1470
  * @param {PerEntityRuntime} runtime
1448
- * @param {Transform} bodyTransform
1471
+ * @param {Transform64} bodyTransform
1449
1472
  * @param {number} dt
1450
1473
  * @param {boolean} isCrouchActive
1451
1474
  * @param {boolean} isSprintIntent
@@ -1674,14 +1697,14 @@ export class FirstPersonPlayerControllerSystem extends System {
1674
1697
  * @private
1675
1698
  * @param {FirstPersonPlayerController} controller
1676
1699
  * @param {PerEntityRuntime} runtime
1677
- * @param {Transform} bodyTransform
1700
+ * @param {Transform64} bodyTransform
1678
1701
  */
1679
1702
  _publishPose(controller, runtime, bodyTransform) {
1680
1703
  const cfg = controller.config;
1681
1704
  const state = controller.state;
1682
1705
  const pose = controller.pose;
1683
1706
 
1684
- pose.rootPosition.copy(bodyTransform.position);
1707
+ pose.rootPosition.set(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
1685
1708
  pose.rootYawRad = runtime.bodyYaw;
1686
1709
  pose.headYawRad = runtime.bodyYaw;
1687
1710
  pose.headPitchRad = runtime.eyePitch;
@@ -1737,15 +1760,15 @@ export class FirstPersonPlayerControllerSystem extends System {
1737
1760
  * @private
1738
1761
  */
1739
1762
  _snapshotRenderPose(runtime, bodyTransform) {
1740
- const p = bodyTransform.position;
1763
+ const p = bodyTransform;
1741
1764
  if (runtime.renderSnap) {
1742
1765
  runtime.renderSnap = false;
1743
- runtime.renderPrevPos.set(p.x, p.y, p.z);
1744
- runtime.renderCurPos.set(p.x, p.y, p.z);
1766
+ runtime.renderPrevPos.set(p.translation_x, p.translation_y, p.translation_z);
1767
+ runtime.renderCurPos.set(p.translation_x, p.translation_y, p.translation_z);
1745
1768
  return;
1746
1769
  }
1747
1770
  runtime.renderPrevPos.copy(runtime.renderCurPos);
1748
- runtime.renderCurPos.set(p.x, p.y, p.z);
1771
+ runtime.renderCurPos.set(p.translation_x, p.translation_y, p.translation_z);
1749
1772
  }
1750
1773
 
1751
1774
  /**
@@ -1759,7 +1782,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1759
1782
  * @private
1760
1783
  */
1761
1784
  _assertTickInvariants(controller, runtime, bodyTransform) {
1762
- const p = bodyTransform.position;
1785
+ const p = bodyTransform;
1763
1786
  assert.ok(Number.isFinite(runtime.bodyYaw),
1764
1787
  "FP invariant: runtime.bodyYaw is non-finite (camera yaw corrupted)");
1765
1788
  assert.ok(Number.isFinite(runtime.eyePitch),
@@ -1773,7 +1796,7 @@ export class FirstPersonPlayerControllerSystem extends System {
1773
1796
  "FP invariant: runtime.velocity is non-finite",
1774
1797
  );
1775
1798
  assert.ok(
1776
- Number.isFinite(p.x) && Number.isFinite(p.y) && Number.isFinite(p.z),
1799
+ Number.isFinite(p.translation_x) && Number.isFinite(p.translation_y) && Number.isFinite(p.translation_z),
1777
1800
  "FP invariant: body position is non-finite",
1778
1801
  );
1779
1802
  }
@@ -1841,11 +1864,11 @@ export class FirstPersonPlayerControllerSystem extends System {
1841
1864
  const cfg = controller.config;
1842
1865
  const state = controller.state;
1843
1866
 
1844
- const bodyTransform = ecd.getComponent(entity, Transform);
1867
+ const bodyTransform = ecd.getComponent(entity, Transform64);
1845
1868
  if (bodyTransform === undefined) return;
1846
1869
 
1847
1870
  if (controller.eyeEntity === -1) return;
1848
- const eyeTransform = ecd.getComponent(controller.eyeEntity, Transform);
1871
+ const eyeTransform = ecd.getComponent(controller.eyeEntity, Transform64);
1849
1872
  const camera = ecd.getComponent(controller.eyeEntity, Camera);
1850
1873
  if (eyeTransform === undefined || camera === undefined) return;
1851
1874
 
@@ -1928,8 +1951,11 @@ export class FirstPersonPlayerControllerSystem extends System {
1928
1951
  const worldOffset = SCRATCH_V3_B.copy(stack.offset);
1929
1952
  worldOffset.applyQuaternion(qYaw0);
1930
1953
 
1931
- eyeTransform.position.set(iPosX, iPosY, iPosZ);
1932
- eyeTransform.position._add(worldOffset.x, worldOffset.y, worldOffset.z);
1954
+ eyeTransform.setTranslation(
1955
+ iPosX + worldOffset.x,
1956
+ iPosY + worldOffset.y,
1957
+ iPosZ + worldOffset.z
1958
+ );
1933
1959
 
1934
1960
  // -- Eye rotation: body yaw × eye pitch × roll -------------------
1935
1961
  // Bob roll mixes in for a subtle head sway (in phase with lateral bob).
@@ -1981,16 +2007,23 @@ export class FirstPersonPlayerControllerSystem extends System {
1981
2007
  const qPitch = SCRATCH_Q_B.fromAxisAngle(Vector3.right, pitchTotal);
1982
2008
  const qRoll = SCRATCH_Q_C.fromAxisAngle(Vector3.forward, rollTotal);
1983
2009
 
1984
- eyeTransform.rotation.multiplyQuaternions(qYaw, qPitch);
1985
- eyeTransform.rotation.multiply(qRoll);
2010
+ // composed in a scratch: a transform keeps its rotation as four numbers and has no
2011
+ // quaternion product of its own
2012
+ SCRATCH_Q_EULER.multiplyQuaternions(qYaw, qPitch);
2013
+ SCRATCH_Q_EULER.multiply(qRoll);
2014
+
2015
+ eyeTransform.setRotation(
2016
+ SCRATCH_Q_EULER.x, SCRATCH_Q_EULER.y, SCRATCH_Q_EULER.z, SCRATCH_Q_EULER.w
2017
+ );
2018
+
2019
+ eyeTransform.updateMatrix();
1986
2020
 
1987
2021
  // Dev-only camera-output guard (compiled out of prod). The composed eye
1988
2022
  // direction is exactly what the player sees; if a spring (head-droop,
1989
2023
  // breath nod) or lean ever drove pitch/roll to NaN, the camera would
1990
2024
  // snap to garbage. Assert it here, at the source of the visible jump.
1991
- const er = eyeTransform.rotation;
1992
2025
  assert.ok(
1993
- Number.isFinite(er.x) && Number.isFinite(er.y) && Number.isFinite(er.z) && Number.isFinite(er.w),
2026
+ Number.isFinite(eyeTransform.rotation_x) && Number.isFinite(eyeTransform.rotation_y) && Number.isFinite(eyeTransform.rotation_z) && Number.isFinite(eyeTransform.rotation_w),
1994
2027
  "FP invariant: composed eye rotation is non-finite (camera direction corrupted)",
1995
2028
  );
1996
2029
 
@@ -267,7 +267,7 @@ export class LedgeGrab extends Ability {
267
267
  // when the ledge was reached obliquely (a facing-relative offset
268
268
  // would sink it into a thin wall).
269
269
  const standoff = controller.config.body.radius + cfg.hangOffsetForward;
270
- bodyTransform.position.set(
270
+ bodyTransform.setTranslation(
271
271
  this._anchorX + this._nx * standoff,
272
272
  this._edgeY + cfg.hangOffsetY,
273
273
  this._anchorZ + this._nz * standoff,
@@ -201,7 +201,7 @@ export class Mantle extends Ability {
201
201
  } else {
202
202
  y = this._startY + (this._endY - this._startY) * easeOutCubic(t);
203
203
  }
204
- bodyTransform.position.set(x, y, z);
204
+ bodyTransform.setTranslation(x, y, z);
205
205
  // On the path — no integration; velocity stays 0 until release.
206
206
  runtime.velocityX = 0;
207
207
  runtime.velocityY = 0;
@@ -126,7 +126,7 @@ export class Slide extends Ability {
126
126
  runtime.velocityY = runtime.jumpInitialVy * cfg.slideJumpUpFactor;
127
127
  runtime.midJump = true;
128
128
  runtime.apexFired = false;
129
- runtime.peakAltitude = bodyTransform.position.y;
129
+ runtime.peakAltitude = bodyTransform.translation_y;
130
130
  controller.state.isVariableJumpCut = false;
131
131
  controller.state.isAscending = true;
132
132
  // Mastery: scale the impulse via JumpImpulse evaluators if any.