@woosh/meep-engine 3.40.0 → 3.42.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 (539) hide show
  1. package/build/bundle-worker-image-decoder.js +1 -1
  2. package/build/bundle-worker-terrain.js +1 -1
  3. package/editor/selection/editor_pick.d.ts.map +1 -1
  4. package/editor/selection/editor_pick.js +2 -1
  5. package/editor/tools/TransformToolV2.d.ts.map +1 -1
  6. package/editor/tools/TransformToolV2.js +7 -1
  7. package/editor/tools/engine/ToolEngine.d.ts.map +1 -1
  8. package/editor/tools/engine/ToolEngine.js +10 -0
  9. package/editor/tools/v2/TransformControls.d.ts.map +1 -1
  10. package/editor/tools/v2/TransformControls.js +7 -20
  11. package/editor/tools/v2/handle/gizmo_drag_plane.d.ts.map +1 -1
  12. package/editor/tools/v2/handle/gizmo_drag_plane.js +4 -0
  13. package/editor/view/ecs/EntityEditor.d.ts.map +1 -1
  14. package/editor/view/ecs/EntityEditor.js +3 -1
  15. package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
  16. package/editor/view/node-graph/NodeGraphView.js +28 -12
  17. package/package.json +1 -1
  18. package/samples/engine/first-scene/index.html +4 -1
  19. package/samples/engine/first-scene/main.js +14 -9
  20. package/src/core/binary/utf8/utf8_decode.js +3 -3
  21. package/src/core/bvh2/binary/2/bvh32_query_user_data_ray.d.ts.map +1 -1
  22. package/src/core/bvh2/binary/2/bvh32_query_user_data_ray.js +112 -113
  23. package/src/core/bvh2/bvh3/ebvh_nodes_sort_sah_local4.js +2 -2
  24. package/src/core/cache/wtinylfu/benchmark/CacheWTinylfu.bench.md +14 -14
  25. package/src/core/collection/RingBuffer.d.ts.map +1 -1
  26. package/src/core/collection/RingBuffer.js +4 -0
  27. package/src/core/collection/array/array_contains_duplicates.d.ts.map +1 -1
  28. package/src/core/collection/array/array_contains_duplicates.js +2 -1
  29. package/src/core/collection/array/array_copy.d.ts.map +1 -1
  30. package/src/core/collection/array/array_copy.js +23 -0
  31. package/src/core/collection/array/typed/sparse_typed_array_hash.d.ts +2 -2
  32. package/src/core/collection/array/typed/sparse_typed_array_hash.d.ts.map +1 -1
  33. package/src/core/collection/array/typed/sparse_typed_array_hash.js +9 -8
  34. package/src/core/collection/array/typed/uint16_array_hash.d.ts +2 -2
  35. package/src/core/collection/array/typed/uint16_array_hash.js +4 -4
  36. package/src/core/collection/array/typed/uint8_array_hash.d.ts +2 -2
  37. package/src/core/collection/array/typed/uint8_array_hash.js +4 -4
  38. package/src/core/collection/array/weightedRandomFromArray.d.ts +1 -0
  39. package/src/core/collection/array/weightedRandomFromArray.d.ts.map +1 -1
  40. package/src/core/collection/array/weightedRandomFromArray.js +9 -1
  41. package/src/core/collection/heap/BinaryHeap.d.ts.map +1 -1
  42. package/src/core/collection/heap/BinaryHeap.js +4 -0
  43. package/src/core/collection/list/List.d.ts.map +1 -1
  44. package/src/core/collection/list/List.js +4 -2
  45. package/src/core/collection/set/ArraySet.js +1 -1
  46. package/src/core/collection/set/HashSet.d.ts +1 -1
  47. package/src/core/collection/set/HashSet.d.ts.map +1 -1
  48. package/src/core/collection/set/HashSet.js +4 -2
  49. package/src/core/debug/matchers/IsEqual.js +1 -1
  50. package/src/core/debug/matchers/IsIterableContaining.d.ts.map +1 -1
  51. package/src/core/debug/matchers/IsIterableContaining.js +61 -74
  52. package/src/core/events/signal/SignalBinding.js +101 -101
  53. package/src/core/function/extractFunctionBody.js +13 -13
  54. package/src/core/function/objectsEqual.d.ts.map +1 -1
  55. package/src/core/function/objectsEqual.js +15 -14
  56. package/src/core/geom/3d/frustum/frustum3_compute_closest_point.d.ts.map +1 -1
  57. package/src/core/geom/3d/frustum/frustum3_compute_closest_point.js +207 -172
  58. package/src/core/geom/3d/gjk/gjk_epa_penetration.d.ts.map +1 -1
  59. package/src/core/geom/3d/gjk/gjk_epa_penetration.js +5 -4
  60. package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.d.ts.map +1 -1
  61. package/src/core/geom/3d/line/line3_compute_segment_point_distance_eikonal.js +8 -2
  62. package/src/core/geom/3d/quaternion/swing_twist_clamp.d.ts +24 -0
  63. package/src/core/geom/3d/quaternion/swing_twist_clamp.d.ts.map +1 -0
  64. package/src/core/geom/3d/quaternion/swing_twist_clamp.js +62 -0
  65. package/src/core/geom/3d/quaternion/swing_twist_compose.d.ts +15 -0
  66. package/src/core/geom/3d/quaternion/swing_twist_compose.d.ts.map +1 -0
  67. package/src/core/geom/3d/quaternion/swing_twist_compose.js +36 -0
  68. package/src/core/geom/3d/quaternion/swing_twist_error.d.ts +39 -0
  69. package/src/core/geom/3d/quaternion/swing_twist_error.d.ts.map +1 -0
  70. package/src/core/geom/3d/quaternion/swing_twist_error.js +85 -0
  71. package/src/core/geom/3d/triangle/tri3_ray_intersection.d.ts +20 -0
  72. package/src/core/geom/3d/triangle/tri3_ray_intersection.d.ts.map +1 -1
  73. package/src/core/geom/3d/triangle/tri3_ray_intersection.js +182 -0
  74. package/src/core/geom/vec3/v3_rigid_align_paired_unit_vectors.d.ts +11 -6
  75. package/src/core/geom/vec3/v3_rigid_align_paired_unit_vectors.d.ts.map +1 -1
  76. package/src/core/geom/vec3/v3_rigid_align_paired_unit_vectors.js +27 -13
  77. package/src/core/math/linalg/eigen/matrix_symmetric_4x4_eigen.d.ts +25 -0
  78. package/src/core/math/linalg/eigen/matrix_symmetric_4x4_eigen.d.ts.map +1 -0
  79. package/src/core/math/linalg/eigen/matrix_symmetric_4x4_eigen.js +166 -0
  80. package/src/core/math/linalg/eigen/matrix_top_eigenvector_power_iteration.d.ts +5 -3
  81. package/src/core/math/linalg/eigen/matrix_top_eigenvector_power_iteration.d.ts.map +1 -1
  82. package/src/core/math/linalg/eigen/matrix_top_eigenvector_power_iteration.js +5 -3
  83. package/src/core/math/noise/curl_noise_3dt.d.ts.map +1 -1
  84. package/src/core/math/noise/curl_noise_3dt.js +20 -10
  85. package/src/core/math/noise/sdnoise.d.ts +16 -5
  86. package/src/core/math/noise/sdnoise.d.ts.map +1 -1
  87. package/src/core/math/noise/sdnoise.js +43 -9
  88. package/src/core/math/spline/spline3_hermite_nearest_point.d.ts +16 -1
  89. package/src/core/math/spline/spline3_hermite_nearest_point.d.ts.map +1 -1
  90. package/src/core/math/spline/spline3_hermite_nearest_point.js +44 -3
  91. package/src/engine/Engine.d.ts.map +1 -1
  92. package/src/engine/Engine.js +6 -2
  93. package/src/engine/animation/curve/AnimationCurve.d.ts +3 -0
  94. package/src/engine/animation/curve/AnimationCurve.d.ts.map +1 -1
  95. package/src/engine/animation/curve/AnimationCurve.js +6 -1
  96. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +9 -0
  97. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -1
  98. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts +26 -0
  99. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts.map +1 -1
  100. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.js +2 -0
  101. package/src/engine/control/first-person/abilities/AbilitySet.d.ts.map +1 -1
  102. package/src/engine/control/first-person/abilities/AbilitySet.js +9 -0
  103. package/src/engine/control/first-person/abilities/LedgeGrab.d.ts.map +1 -1
  104. package/src/engine/control/first-person/abilities/LedgeGrab.js +6 -0
  105. package/src/engine/control/first-person/abilities/Slide.d.ts.map +1 -1
  106. package/src/engine/control/first-person/abilities/Slide.js +1 -0
  107. package/src/engine/control/first-person/abilities/WallRun.d.ts +4 -1
  108. package/src/engine/control/first-person/abilities/WallRun.d.ts.map +1 -1
  109. package/src/engine/control/first-person/abilities/WallRun.js +13 -1
  110. package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.d.ts +1 -1
  111. package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.d.ts.map +1 -1
  112. package/src/engine/control/first-person/mastery/SlideInitiationTimingEvaluator.js +6 -5
  113. package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.d.ts +3 -3
  114. package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.d.ts.map +1 -1
  115. package/src/engine/control/first-person/mastery/StrideTimingJumpEvaluator.js +9 -8
  116. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
  117. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +13 -4
  118. package/src/engine/ecs/EntityManager.d.ts +9 -1
  119. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  120. package/src/engine/ecs/EntityManager.js +44 -42
  121. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts.map +1 -1
  122. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js +2 -1
  123. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.d.ts.map +1 -1
  124. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.js +1 -0
  125. package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts.map +1 -1
  126. package/src/engine/ecs/fow/FogOfWarRevealerSystem.js +3 -0
  127. package/src/engine/ecs/gpu/GPUStateAuthority.d.ts +20 -0
  128. package/src/engine/ecs/gpu/GPUStateAuthority.d.ts.map +1 -1
  129. package/src/engine/ecs/gpu/GPUStateAuthority.js +21 -0
  130. package/src/engine/ecs/gpu/GPU_AUTHORITY_EVENT_HOLD_CHANGE.d.ts +13 -0
  131. package/src/engine/ecs/gpu/GPU_AUTHORITY_EVENT_HOLD_CHANGE.d.ts.map +1 -0
  132. package/src/engine/ecs/gpu/GPU_AUTHORITY_EVENT_HOLD_CHANGE.js +12 -0
  133. package/src/engine/ecs/gpu/gpu_authority_grant.d.ts +6 -0
  134. package/src/engine/ecs/gpu/gpu_authority_grant.d.ts.map +1 -1
  135. package/src/engine/ecs/gpu/gpu_authority_grant.js +7 -1
  136. package/src/engine/ecs/gpu/gpu_authority_held.d.ts +14 -0
  137. package/src/engine/ecs/gpu/gpu_authority_held.d.ts.map +1 -0
  138. package/src/engine/ecs/gpu/gpu_authority_held.js +23 -0
  139. package/src/engine/ecs/gpu/gpu_authority_hold.d.ts +23 -0
  140. package/src/engine/ecs/gpu/gpu_authority_hold.d.ts.map +1 -0
  141. package/src/engine/ecs/gpu/gpu_authority_hold.js +41 -0
  142. package/src/engine/ecs/gpu/gpu_authority_unhold.d.ts +14 -0
  143. package/src/engine/ecs/gpu/gpu_authority_unhold.d.ts.map +1 -0
  144. package/src/engine/ecs/gpu/gpu_authority_unhold.js +32 -0
  145. package/src/engine/ecs/ik/IKGoal.d.ts +59 -0
  146. package/src/engine/ecs/ik/IKGoal.d.ts.map +1 -0
  147. package/src/engine/ecs/ik/IKGoal.js +83 -0
  148. package/src/engine/ecs/ik/IKGoalSystem.d.ts +75 -0
  149. package/src/engine/ecs/ik/IKGoalSystem.d.ts.map +1 -0
  150. package/src/engine/ecs/ik/IKGoalSystem.js +1456 -0
  151. package/src/engine/ecs/ik/PLAN.md +179 -0
  152. package/src/engine/ecs/parent/EntityNode.js +3 -3
  153. package/src/engine/ecs/speaker/VoiceSystem.d.ts +2 -2
  154. package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
  155. package/src/engine/ecs/speaker/VoiceSystem.js +4 -0
  156. package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +5 -5
  157. package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts.map +1 -1
  158. package/src/engine/ecs/storage/BinaryBufferSerializer.js +4 -5
  159. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts.map +1 -1
  160. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +3 -2
  161. package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +7 -3
  162. package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter2.js +1 -1
  163. package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.d.ts.map +1 -1
  164. package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.js +8 -1
  165. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  166. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +9 -2
  167. package/src/engine/ecs/system/orderSystemsByDeclaredAccess.d.ts +33 -0
  168. package/src/engine/ecs/system/orderSystemsByDeclaredAccess.d.ts.map +1 -0
  169. package/src/engine/ecs/system/orderSystemsByDeclaredAccess.js +282 -0
  170. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
  171. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +5 -2
  172. package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.d.ts.map +1 -1
  173. package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.js +3 -0
  174. package/src/engine/ecs/terrain/ecs/splat/SplatMapping.d.ts.map +1 -1
  175. package/src/engine/ecs/terrain/ecs/splat/SplatMapping.js +1 -0
  176. package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +1 -1
  177. package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
  178. package/src/engine/ecs/terrain/tiles/TerrainTile.js +13 -1
  179. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  180. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +1 -0
  181. package/src/engine/ecs/transform/T64WorldCache.js +139 -139
  182. package/src/engine/ecs/transform/t64_evaluate_local.d.ts +25 -0
  183. package/src/engine/ecs/transform/t64_evaluate_local.d.ts.map +1 -0
  184. package/src/engine/ecs/transform/t64_evaluate_local.js +35 -0
  185. package/src/engine/ecs/transform/t64_evaluate_world.d.ts +5 -3
  186. package/src/engine/ecs/transform/t64_evaluate_world.d.ts.map +1 -1
  187. package/src/engine/ecs/transform/t64_evaluate_world.js +128 -126
  188. package/src/engine/graphics/ecs/light/LightSerializationAdapter.d.ts.map +1 -1
  189. package/src/engine/graphics/ecs/light/LightSerializationAdapter.js +13 -1
  190. package/src/engine/graphics/ecs/light/LightSerializationUpgrader_0_1.d.ts +5 -0
  191. package/src/engine/graphics/ecs/light/LightSerializationUpgrader_0_1.d.ts.map +1 -0
  192. package/src/engine/graphics/ecs/light/LightSerializationUpgrader_0_1.js +27 -0
  193. package/src/engine/graphics/ecs/water/Water.d.ts +11 -0
  194. package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
  195. package/src/engine/graphics/ecs/water/Water.js +17 -0
  196. package/src/engine/graphics/ecs/water/WaterSerializationAdapter.d.ts.map +1 -1
  197. package/src/engine/graphics/ecs/water/WaterSerializationAdapter.js +3 -1
  198. package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_4_5.d.ts +9 -0
  199. package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_4_5.d.ts.map +1 -0
  200. package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_4_5.js +24 -0
  201. package/src/engine/graphics/ecs/water/WaterWaves.d.ts +30 -9
  202. package/src/engine/graphics/ecs/water/WaterWaves.d.ts.map +1 -1
  203. package/src/engine/graphics/ecs/water/WaterWaves.js +41 -9
  204. package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.d.ts.map +1 -1
  205. package/src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js +30 -26
  206. package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_0_1.d.ts +6 -0
  207. package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_0_1.d.ts.map +1 -0
  208. package/src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_0_1.js +22 -0
  209. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.d.ts.map +1 -1
  210. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.js +3 -5
  211. package/src/engine/graphics/texture/3d/scs3d_sample_linear3.d.ts +20 -0
  212. package/src/engine/graphics/texture/3d/scs3d_sample_linear3.d.ts.map +1 -1
  213. package/src/engine/graphics/texture/3d/scs3d_sample_linear3.js +36 -0
  214. package/src/engine/graphics3/AnimationGraphSystem.d.ts +2 -0
  215. package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -1
  216. package/src/engine/graphics3/AnimationGraphSystem.js +337 -329
  217. package/src/engine/graphics3/AnimationSystem.d.ts +2 -0
  218. package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -1
  219. package/src/engine/graphics3/AnimationSystem.js +360 -352
  220. package/src/engine/graphics3/WaterSystem.d.ts +12 -3
  221. package/src/engine/graphics3/WaterSystem.d.ts.map +1 -1
  222. package/src/engine/graphics3/WaterSystem.js +78 -46
  223. package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
  224. package/src/engine/input/devices/PointerDevice.js +29 -4
  225. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +1 -0
  226. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts.map +1 -1
  227. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +14 -3
  228. package/src/engine/physics/cloth/MEASUREMENTS.md +130 -0
  229. package/src/engine/physics/cloth/PLAN.md +16 -1
  230. package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts +5 -6
  231. package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts.map +1 -1
  232. package/src/engine/physics/cloth/ecs/ClothColliderSystem.js +5 -6
  233. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +4 -7
  234. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
  235. package/src/engine/physics/cloth/ecs/ClothInstance.js +4 -7
  236. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +4 -3
  237. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
  238. package/src/engine/physics/cloth/ecs/ClothSystem.js +4 -3
  239. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
  240. package/src/engine/physics/cloth/ecs/ClothWorld.js +10 -0
  241. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +24 -24
  242. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -1
  243. package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +46 -43
  244. package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts +1 -1
  245. package/src/engine/physics/cloth/ecs/cloth_write_back.js +1 -1
  246. package/src/engine/physics/constraint/solve_constraints.d.ts +0 -35
  247. package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
  248. package/src/engine/physics/constraint/solve_constraints.js +1 -83
  249. package/src/engine/physics/ecs/ContactProbe.d.ts +73 -0
  250. package/src/engine/physics/ecs/ContactProbe.d.ts.map +1 -0
  251. package/src/engine/physics/ecs/ContactProbe.js +103 -0
  252. package/src/engine/physics/ecs/ContactProbeSystem.d.ts +44 -0
  253. package/src/engine/physics/ecs/ContactProbeSystem.d.ts.map +1 -0
  254. package/src/engine/physics/ecs/ContactProbeSystem.js +397 -0
  255. package/src/engine/physics/fluid/ecs/FluidComponent.d.ts +1 -1
  256. package/src/engine/physics/fluid/ecs/FluidComponent.js +1 -1
  257. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  258. package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.d.ts.map +1 -1
  259. package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.js +12 -3
  260. package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.d.ts.map +1 -1
  261. package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.js +8 -2
  262. package/src/engine/physics/fluid/solver/v3_grid_sample_scalar_masked.d.ts +19 -0
  263. package/src/engine/physics/fluid/solver/v3_grid_sample_scalar_masked.d.ts.map +1 -1
  264. package/src/engine/physics/fluid/solver/v3_grid_sample_scalar_masked.js +41 -2
  265. package/src/engine/physics/fluid/solver/v3_mac_advect_scalar.d.ts.map +1 -1
  266. package/src/engine/physics/fluid/solver/v3_mac_advect_scalar.js +9 -3
  267. package/src/engine/physics/fluid/solver/v3_mac_advect_sl_velocity.d.ts.map +1 -1
  268. package/src/engine/physics/fluid/solver/v3_mac_advect_sl_velocity.js +26 -10
  269. package/src/engine/physics/inverse_kinematics/frame_fabrik/FrameFabrikProblem.d.ts +205 -0
  270. package/src/engine/physics/inverse_kinematics/frame_fabrik/FrameFabrikProblem.d.ts.map +1 -0
  271. package/src/engine/physics/inverse_kinematics/frame_fabrik/FrameFabrikProblem.js +245 -0
  272. package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_limit_from_joint.d.ts +21 -0
  273. package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_limit_from_joint.d.ts.map +1 -0
  274. package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_limit_from_joint.js +63 -0
  275. package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.d.ts +33 -0
  276. package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.d.ts.map +1 -0
  277. package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.js +874 -0
  278. package/src/engine/physics/inverse_kinematics/joint_hinge_mid_axis.d.ts +27 -0
  279. package/src/engine/physics/inverse_kinematics/joint_hinge_mid_axis.d.ts.map +1 -0
  280. package/src/engine/physics/inverse_kinematics/joint_hinge_mid_axis.js +77 -0
  281. package/src/engine/physics/inverse_kinematics/two_bone_path_solve.d.ts +36 -0
  282. package/src/engine/physics/inverse_kinematics/two_bone_path_solve.d.ts.map +1 -0
  283. package/src/engine/physics/inverse_kinematics/two_bone_path_solve.js +97 -0
  284. package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts +33 -11
  285. package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts.map +1 -1
  286. package/src/engine/physics/inverse_kinematics/two_joint_ik.js +158 -67
  287. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts +3 -6
  288. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts.map +1 -1
  289. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +22 -9
  290. package/src/engine/ui/DraggableAspect.d.ts +5 -1
  291. package/src/engine/ui/DraggableAspect.d.ts.map +1 -1
  292. package/src/engine/ui/DraggableAspect.js +61 -4
  293. package/src/format/image/avif/heif/ItemProperty.d.ts +1 -1
  294. package/src/format/image/avif/heif/ItemProperty.js +1 -1
  295. package/src/format/image/png/chunk/png_chunk_decode_iTXt.d.ts.map +1 -1
  296. package/src/format/image/png/chunk/png_chunk_decode_iTXt.js +17 -6
  297. package/src/shade/device/mock/SoftwareGPUDevice.d.ts +2 -4
  298. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  299. package/src/shade/device/mock/SoftwareGPUDevice.js +20 -13
  300. package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -1
  301. package/src/shade/playground/skinned_blas_refit/sweep_views.js +2 -1
  302. package/src/shade/playground/water_refraction/README.md +10 -11
  303. package/src/shade/playground/water_refraction/main.js +9 -8
  304. package/src/shade/playground/water_refraction/world.js +1 -1
  305. package/src/shade/playground/water_surface/README.md +43 -0
  306. package/src/shade/playground/water_surface/index.html +30 -0
  307. package/src/shade/playground/water_surface/main.d.ts +2 -0
  308. package/src/shade/playground/water_surface/main.d.ts.map +1 -0
  309. package/src/shade/playground/water_surface/main.js +154 -0
  310. package/src/shade/playground/water_surface/world.d.ts +44 -0
  311. package/src/shade/playground/water_surface/world.d.ts.map +1 -0
  312. package/src/shade/playground/water_surface/world.js +160 -0
  313. package/src/shade/renderer/animation/ANIMATION_TRACK_BINDING_STRUCT.d.ts.map +1 -1
  314. package/src/shade/renderer/animation/ANIMATION_TRACK_BINDING_STRUCT.js +10 -1
  315. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +10 -4
  316. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  317. package/src/shade/renderer/animation/GPUAnimationManager.js +251 -23
  318. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts +12 -4
  319. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.d.ts.map +1 -1
  320. package/src/shade/renderer/animation/POSE_ACCUMULATOR_LAYOUT.js +12 -4
  321. package/src/shade/renderer/animation/chunk_pose_accumulator.d.ts.map +1 -1
  322. package/src/shade/renderer/animation/chunk_pose_accumulator.js +14 -1
  323. package/src/shade/renderer/animation/pose/PoseChannelIndex.d.ts +78 -0
  324. package/src/shade/renderer/animation/pose/PoseChannelIndex.d.ts.map +1 -0
  325. package/src/shade/renderer/animation/pose/PoseChannelIndex.js +274 -0
  326. package/src/shade/renderer/animation/pose/PosePlayback.d.ts +40 -3
  327. package/src/shade/renderer/animation/pose/PosePlayback.d.ts.map +1 -1
  328. package/src/shade/renderer/animation/pose/PosePlayback.js +77 -3
  329. package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts +21 -3
  330. package/src/shade/renderer/animation/pose/pose_evaluate_local.d.ts.map +1 -1
  331. package/src/shade/renderer/animation/pose/pose_evaluate_local.js +79 -11
  332. package/src/shade/renderer/animation/shader_animation_apply.js +1 -1
  333. package/src/shade/renderer/animation/shader_animation_pose_resolve.d.ts +3 -2
  334. package/src/shade/renderer/animation/shader_animation_pose_resolve.d.ts.map +1 -1
  335. package/src/shade/renderer/animation/shader_animation_pose_resolve.js +187 -176
  336. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  337. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +5 -0
  338. package/src/shade/renderer/binding/BufferBinding.js +2 -2
  339. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
  340. package/src/shade/renderer/buffer/table/GPUTypedTable.js +5 -3
  341. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts +10 -3
  342. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts.map +1 -1
  343. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.js +17 -9
  344. package/src/shade/renderer/camera/orbital/OrbitalCameraInput.d.ts +3 -0
  345. package/src/shade/renderer/camera/orbital/OrbitalCameraInput.d.ts.map +1 -1
  346. package/src/shade/renderer/camera/orbital/OrbitalCameraInput.js +16 -0
  347. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts +2 -0
  348. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts.map +1 -1
  349. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.js +11 -0
  350. package/src/shade/renderer/geometry/meshlet/build/meshoptimizer/geometry_to_meshlets_meshoptimizer.d.ts +1 -1
  351. package/src/shade/renderer/geometry/meshlet/build/meshoptimizer/geometry_to_meshlets_meshoptimizer.d.ts.map +1 -1
  352. package/src/shade/renderer/geometry/meshlet/build/meshoptimizer/geometry_to_meshlets_meshoptimizer.js +9 -3
  353. package/src/shade/renderer/geometry/util/geometry_simplify_redundant_topology.d.ts.map +1 -1
  354. package/src/shade/renderer/geometry/util/geometry_simplify_redundant_topology.js +2 -2
  355. package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.d.ts.map +1 -1
  356. package/src/shade/renderer/geometry/virtual/format/vgeo_validate_container.js +85 -0
  357. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.d.ts.map +1 -1
  358. package/src/shade/renderer/geometry/virtual/runtime/GPUVirtualGeometryRuntime.js +12 -6
  359. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts.map +1 -1
  360. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.js +7 -0
  361. package/src/shade/renderer/geometry/virtual/runtime/VGeoRuntimeTables.d.ts.map +1 -1
  362. package/src/shade/renderer/geometry/virtual/runtime/VGeoRuntimeTables.js +3 -1
  363. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  364. package/src/shade/renderer/object_property/chunk_write_object_property.d.ts +3 -1
  365. package/src/shade/renderer/object_property/chunk_write_object_property.d.ts.map +1 -1
  366. package/src/shade/renderer/object_property/chunk_write_object_property.js +5 -2
  367. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts +4 -0
  368. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts.map +1 -1
  369. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.js +6 -1
  370. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  371. package/src/shade/renderer/scene/SCENE_DATABASE_SPEC.js +2 -1
  372. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts +1 -1
  373. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts.map +1 -1
  374. package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.js +135 -73
  375. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts +7 -0
  376. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts.map +1 -1
  377. package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.js +29 -1
  378. package/src/shade/renderer/scene/optimization/geometry/internal/face_neighbourhood_hash.d.ts +19 -0
  379. package/src/shade/renderer/scene/optimization/geometry/internal/face_neighbourhood_hash.d.ts.map +1 -0
  380. package/src/shade/renderer/scene/optimization/geometry/internal/face_neighbourhood_hash.js +167 -0
  381. package/src/shade/renderer/scene/optimization/geometry/internal/neighbourhood_anchor_index.d.ts +25 -0
  382. package/src/shade/renderer/scene/optimization/geometry/internal/neighbourhood_anchor_index.d.ts.map +1 -0
  383. package/src/shade/renderer/scene/optimization/geometry/internal/neighbourhood_anchor_index.js +124 -0
  384. package/src/shade/renderer/scene/optimization/geometry/internal/seed_correspondence_from_face_pair.d.ts +19 -0
  385. package/src/shade/renderer/scene/optimization/geometry/internal/seed_correspondence_from_face_pair.d.ts.map +1 -0
  386. package/src/shade/renderer/scene/optimization/geometry/internal/seed_correspondence_from_face_pair.js +48 -0
  387. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +17 -1
  388. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -1
  389. package/src/shade/renderer/scene/rows/GPUSceneRows.js +29 -3
  390. package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128_inverse.d.ts +13 -0
  391. package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128_inverse.d.ts.map +1 -0
  392. package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128_inverse.js +42 -0
  393. package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128x4_inverse_workgroup.d.ts +15 -0
  394. package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128x4_inverse_workgroup.d.ts.map +1 -0
  395. package/src/shade/renderer/shader/chunk/math/fft/chunk_fft128x4_inverse_workgroup.js +39 -0
  396. package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts.map +1 -1
  397. package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.js +2 -0
  398. package/src/shade/renderer/water/GPUWaterRenderer.d.ts +15 -0
  399. package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
  400. package/src/shade/renderer/water/GPUWaterRenderer.js +110 -30
  401. package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts +16 -8
  402. package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts.map +1 -1
  403. package/src/shade/renderer/water/medium/GPUWaterBodies.js +31 -26
  404. package/src/shade/renderer/water/medium/shader_water_meshlets.d.ts +0 -1
  405. package/src/shade/renderer/water/medium/shader_water_meshlets.d.ts.map +1 -1
  406. package/src/shade/renderer/water/medium/shader_water_meshlets.js +1 -39
  407. package/src/shade/renderer/water/shader_water.d.ts +0 -1
  408. package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
  409. package/src/shade/renderer/water/shader_water.js +201 -72
  410. package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts +70 -0
  411. package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts.map +1 -0
  412. package/src/shade/renderer/water/surface/GPUWaterSurface.js +199 -0
  413. package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.d.ts +5 -2
  414. package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.d.ts.map +1 -1
  415. package/src/shade/renderer/water/surface/WATER_WAVE_RECORD_STRUCT.js +32 -12
  416. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +22 -0
  417. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts.map +1 -0
  418. package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +217 -0
  419. package/src/shade/renderer/water/surface/graph_water_tessellation.d.ts +65 -11
  420. package/src/shade/renderer/water/surface/graph_water_tessellation.d.ts.map +1 -1
  421. package/src/shade/renderer/water/surface/graph_water_tessellation.js +163 -28
  422. package/src/shade/renderer/water/surface/lod/WATER_LOD.d.ts +51 -0
  423. package/src/shade/renderer/water/surface/lod/WATER_LOD.d.ts.map +1 -0
  424. package/src/shade/renderer/water/surface/lod/WATER_LOD.js +95 -0
  425. package/src/shade/renderer/water/surface/lod/chunk_water_lod.d.ts +10 -0
  426. package/src/shade/renderer/water/surface/lod/chunk_water_lod.d.ts.map +1 -0
  427. package/src/shade/renderer/water/surface/lod/chunk_water_lod.js +127 -0
  428. package/src/shade/renderer/water/surface/lod/chunk_water_lod_cell.d.ts +17 -0
  429. package/src/shade/renderer/water/surface/lod/chunk_water_lod_cell.d.ts.map +1 -0
  430. package/src/shade/renderer/water/surface/lod/chunk_water_lod_cell.js +246 -0
  431. package/src/shade/renderer/water/surface/lod/shader_water_lod.d.ts +118 -0
  432. package/src/shade/renderer/water/surface/lod/shader_water_lod.d.ts.map +1 -0
  433. package/src/shade/renderer/water/surface/lod/shader_water_lod.js +727 -0
  434. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts +60 -0
  435. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -0
  436. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +228 -0
  437. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts +17 -0
  438. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -0
  439. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +49 -0
  440. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +22 -0
  441. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -0
  442. package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +143 -0
  443. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +15 -0
  444. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -0
  445. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +121 -0
  446. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +83 -0
  447. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -0
  448. package/src/shade/renderer/water/surface/particles/shader_water_particles.js +502 -0
  449. package/src/shade/renderer/water/surface/shader_water_cull.d.ts +42 -0
  450. package/src/shade/renderer/water/surface/shader_water_cull.d.ts.map +1 -0
  451. package/src/shade/renderer/water/surface/shader_water_cull.js +269 -0
  452. package/src/shade/renderer/water/surface/shader_water_waves_combine.d.ts +15 -0
  453. package/src/shade/renderer/water/surface/shader_water_waves_combine.d.ts.map +1 -0
  454. package/src/shade/renderer/water/surface/shader_water_waves_combine.js +73 -0
  455. package/src/shade/renderer/water/surface/shader_water_waves_derive.d.ts +11 -0
  456. package/src/shade/renderer/water/surface/shader_water_waves_derive.d.ts.map +1 -0
  457. package/src/shade/renderer/water/surface/shader_water_waves_derive.js +78 -0
  458. package/src/shade/renderer/water/surface/spectrum/GPUWaterSpectrum.d.ts +35 -0
  459. package/src/shade/renderer/water/surface/spectrum/GPUWaterSpectrum.d.ts.map +1 -0
  460. package/src/shade/renderer/water/surface/spectrum/GPUWaterSpectrum.js +103 -0
  461. package/src/shade/renderer/water/surface/spectrum/WATER_BAND_STATE.d.ts +22 -0
  462. package/src/shade/renderer/water/surface/spectrum/WATER_BAND_STATE.d.ts.map +1 -0
  463. package/src/shade/renderer/water/surface/spectrum/WATER_BAND_STATE.js +57 -0
  464. package/src/shade/renderer/water/surface/spectrum/WATER_SPECTRUM.d.ts +22 -0
  465. package/src/shade/renderer/water/surface/spectrum/WATER_SPECTRUM.d.ts.map +1 -0
  466. package/src/shade/renderer/water/surface/spectrum/WATER_SPECTRUM.js +25 -0
  467. package/src/shade/renderer/water/surface/spectrum/chunk_water_jonswap.d.ts +14 -0
  468. package/src/shade/renderer/water/surface/spectrum/chunk_water_jonswap.d.ts.map +1 -0
  469. package/src/shade/renderer/water/surface/spectrum/chunk_water_jonswap.js +48 -0
  470. package/src/shade/renderer/water/surface/spectrum/chunk_water_spectrum.d.ts +23 -0
  471. package/src/shade/renderer/water/surface/spectrum/chunk_water_spectrum.d.ts.map +1 -0
  472. package/src/shade/renderer/water/surface/spectrum/chunk_water_spectrum.js +169 -0
  473. package/src/shade/renderer/water/surface/spectrum/shader_water_spectrum.d.ts +26 -0
  474. package/src/shade/renderer/water/surface/spectrum/shader_water_spectrum.d.ts.map +1 -0
  475. package/src/shade/renderer/water/surface/spectrum/shader_water_spectrum.js +161 -0
  476. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  477. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +18 -6
  478. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  479. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +11 -3
  480. package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.d.ts +0 -28
  481. package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.d.ts.map +0 -1
  482. package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.js +0 -86
  483. package/src/engine/ecs/ik/IKConstraint.d.ts +0 -52
  484. package/src/engine/ecs/ik/IKConstraint.d.ts.map +0 -1
  485. package/src/engine/ecs/ik/IKConstraint.js +0 -95
  486. package/src/engine/ecs/ik/IKProblem.d.ts +0 -45
  487. package/src/engine/ecs/ik/IKProblem.d.ts.map +0 -1
  488. package/src/engine/ecs/ik/IKProblem.js +0 -58
  489. package/src/engine/ecs/ik/IKSolver.d.ts +0 -8
  490. package/src/engine/ecs/ik/IKSolver.d.ts.map +0 -1
  491. package/src/engine/ecs/ik/IKSolver.js +0 -9
  492. package/src/engine/ecs/ik/InverseKinematics.d.ts +0 -48
  493. package/src/engine/ecs/ik/InverseKinematics.d.ts.map +0 -1
  494. package/src/engine/ecs/ik/InverseKinematics.js +0 -119
  495. package/src/engine/ecs/ik/InverseKinematicsSerializationAdapter.d.ts +0 -19
  496. package/src/engine/ecs/ik/InverseKinematicsSerializationAdapter.d.ts.map +0 -1
  497. package/src/engine/ecs/ik/InverseKinematicsSerializationAdapter.js +0 -72
  498. package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts +0 -54
  499. package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +0 -1
  500. package/src/engine/ecs/ik/InverseKinematicsSystem.js +0 -212
  501. package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.d.ts +0 -8
  502. package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.d.ts.map +0 -1
  503. package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +0 -153
  504. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts +0 -5
  505. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +0 -1
  506. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +0 -120
  507. package/src/engine/ecs/ik/ik_bone_chain.d.ts +0 -64
  508. package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +0 -1
  509. package/src/engine/ecs/ik/ik_bone_chain.js +0 -142
  510. package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts +0 -42
  511. package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts.map +0 -1
  512. package/src/engine/ecs/ik/ik_probe_terrain_contact.js +0 -123
  513. package/src/engine/ecs/ik/ik_write_local_rotation.d.ts +0 -18
  514. package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +0 -1
  515. package/src/engine/ecs/ik/ik_write_local_rotation.js +0 -32
  516. package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts +0 -29
  517. package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts.map +0 -1
  518. package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.js +0 -44
  519. package/src/shade/renderer/water/medium/shader_water_bodies_derive.d.ts +0 -4
  520. package/src/shade/renderer/water/medium/shader_water_bodies_derive.d.ts.map +0 -1
  521. package/src/shade/renderer/water/medium/shader_water_bodies_derive.js +0 -32
  522. package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.d.ts +0 -25
  523. package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.d.ts.map +0 -1
  524. package/src/shade/renderer/water/surface/GPUWaterWaveSimulation.js +0 -128
  525. package/src/shade/renderer/water/surface/chunk_water_tessellation.d.ts +0 -9
  526. package/src/shade/renderer/water/surface/chunk_water_tessellation.d.ts.map +0 -1
  527. package/src/shade/renderer/water/surface/chunk_water_tessellation.js +0 -144
  528. package/src/shade/renderer/water/surface/chunk_water_wave.d.ts +0 -13
  529. package/src/shade/renderer/water/surface/chunk_water_wave.d.ts.map +0 -1
  530. package/src/shade/renderer/water/surface/chunk_water_wave.js +0 -40
  531. package/src/shade/renderer/water/surface/shader_water_tiles.d.ts +0 -4
  532. package/src/shade/renderer/water/surface/shader_water_tiles.d.ts.map +0 -1
  533. package/src/shade/renderer/water/surface/shader_water_tiles.js +0 -123
  534. package/src/shade/renderer/water/surface/shader_water_wave_batch.d.ts +0 -6
  535. package/src/shade/renderer/water/surface/shader_water_wave_batch.d.ts.map +0 -1
  536. package/src/shade/renderer/water/surface/shader_water_wave_batch.js +0 -85
  537. package/src/shade/renderer/water/surface/shader_water_wave_domain.d.ts +0 -6
  538. package/src/shade/renderer/water/surface/shader_water_wave_domain.d.ts.map +0 -1
  539. package/src/shade/renderer/water/surface/shader_water_wave_domain.js +0 -83
@@ -5,7 +5,7 @@ import { Light } from "./Light.js";
5
5
  export class LightSerializationAdapter extends BinaryClassSerializationAdapter {
6
6
 
7
7
  klass = Light;
8
- version = 0;
8
+ version = 1;
9
9
 
10
10
  /**
11
11
  *
@@ -24,6 +24,12 @@ export class LightSerializationAdapter extends BinaryClassSerializationAdapter {
24
24
  value.penumbra.toBinaryBuffer(buffer);
25
25
  value.distance.toBinaryBuffer(buffer);
26
26
  }
27
+
28
+ value.radius.toBinaryBuffer(buffer);
29
+
30
+ if (value.type.getValue() === LightType.POINT) {
31
+ value.distance.toBinaryBuffer(buffer);
32
+ }
27
33
  }
28
34
 
29
35
  /**
@@ -43,5 +49,11 @@ export class LightSerializationAdapter extends BinaryClassSerializationAdapter {
43
49
  value.penumbra.fromBinaryBuffer(buffer);
44
50
  value.distance.fromBinaryBuffer(buffer);
45
51
  }
52
+
53
+ value.radius.fromBinaryBuffer(buffer);
54
+
55
+ if (value.type.getValue() === LightType.POINT) {
56
+ value.distance.fromBinaryBuffer(buffer);
57
+ }
46
58
  }
47
59
  }
@@ -0,0 +1,5 @@
1
+ export class LightSerializationUpgrader_0_1 extends BinaryClassUpgrader {
2
+ upgrade(source: any, target: any): void;
3
+ }
4
+ import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
5
+ //# sourceMappingURL=LightSerializationUpgrader_0_1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightSerializationUpgrader_0_1.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/LightSerializationUpgrader_0_1.js"],"names":[],"mappings":"AAGA;IAII,wCAkBC;CACJ;oCA1BmC,oDAAoD"}
@@ -0,0 +1,27 @@
1
+ import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
2
+ import { LightType } from "./LightType.js";
3
+
4
+ export class LightSerializationUpgrader_0_1 extends BinaryClassUpgrader {
5
+ __startVersion = 0;
6
+ __targetVersion = 1;
7
+
8
+ upgrade(source, target) {
9
+ const type = source.readUint8();
10
+ target.writeUint8(type);
11
+ target.writeUint32(source.readUint32());
12
+ target.writeFloat64(source.readFloat64());
13
+ target.writeUint8(source.readUint8());
14
+
15
+ if (type === LightType.SPOT) {
16
+ target.writeFloat64(source.readFloat64());
17
+ target.writeFloat64(source.readFloat64());
18
+ target.writeFloat64(source.readFloat64());
19
+ }
20
+
21
+ target.writeFloat64(0);
22
+
23
+ if (type === LightType.POINT) {
24
+ target.writeFloat64(1);
25
+ }
26
+ }
27
+ }
@@ -28,6 +28,15 @@ declare class Water {
28
28
  * @type {Vector1}
29
29
  */
30
30
  roughness: Vector1;
31
+ /**
32
+ * Whether the body's surface keeps moving while no view sees it. Off (the default), a hidden body is paused:
33
+ * its wave particles stand still and its wind turn holds until it comes back into view, and it costs one
34
+ * culling test a frame. On, it is simulated every frame wherever the camera looks, at the cost of a visible
35
+ * body's simulation — for water whose ripples must have travelled on when the camera turns back.
36
+ * Ambient waves follow time, not state: they are current either way.
37
+ * @type {ObservedBoolean}
38
+ */
39
+ simulateWhenHidden: ObservedBoolean;
31
40
  /** Optical edits queue a scene row update. */
32
41
  onChanged: Signal;
33
42
  /** @param {ParticipatingMedium} value */
@@ -42,6 +51,7 @@ declare class Water {
42
51
  toJSON(): {
43
52
  ior: number;
44
53
  roughness: number;
54
+ simulateWhenHidden: boolean;
45
55
  medium: any;
46
56
  };
47
57
  #private;
@@ -50,6 +60,7 @@ declare namespace Water {
50
60
  let typeName: string;
51
61
  }
52
62
  import Vector1 from "../../../../core/geom/Vector1.js";
63
+ import ObservedBoolean from "../../../../core/model/ObservedBoolean.js";
53
64
  import Signal from "../../../../core/events/signal/Signal.js";
54
65
  import { ParticipatingMedium } from "../../../../shade/renderer/medium/ParticipatingMedium.js";
55
66
  //# sourceMappingURL=Water.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Water.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/Water.js"],"names":[],"mappings":";AASA;;;;;;;;;;;;;;;GAeG;AACH;IAmCI,0BAQC;IA1CD;;;OAGG;IACH,KAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,WAFU,OAAO,CAEa;IAE9B,8CAA8C;IAC9C,kBAAyB;IAWzB,yCAAyC;IACzC,uCAMC;IAbD;;;;OAIG;IACH,kCAAqC;IAoBrC,0BAgBC;IAED;;;;MAMC;;CACJ;;;;oBA9FmB,kCAAkC;mBADnC,0CAA0C;oCAEzB,0DAA0D"}
1
+ {"version":3,"file":"Water.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/Water.js"],"names":[],"mappings":";AAUA;;;;;;;;;;;;;;;GAeG;AACH;IA6CI,0BASC;IArDD;;;OAGG;IACH,KAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,WAFU,OAAO,CAEa;IAE9B;;;;;;;OAOG;IACH,oBAFU,eAAe,CAEuB;IAEhD,8CAA8C;IAC9C,kBAAyB;IAWzB,yCAAyC;IACzC,uCAMC;IAbD;;;;OAIG;IACH,kCAAqC;IAqBrC,0BAoBC;IAED;;;;;MAOC;;CACJ;;;;oBA/GmB,kCAAkC;4BAC1B,2CAA2C;mBAFpD,0CAA0C;oCAGzB,0DAA0D"}
@@ -1,5 +1,6 @@
1
1
  import Signal from "../../../../core/events/signal/Signal.js";
2
2
  import Vector1 from "../../../../core/geom/Vector1.js";
3
+ import ObservedBoolean from "../../../../core/model/ObservedBoolean.js";
3
4
  import { ParticipatingMedium } from "../../../../shade/renderer/medium/ParticipatingMedium.js";
4
5
  import {
5
6
  participating_medium_from_json,
@@ -37,6 +38,16 @@ class Water {
37
38
  */
38
39
  roughness = new Vector1(0.02);
39
40
 
41
+ /**
42
+ * Whether the body's surface keeps moving while no view sees it. Off (the default), a hidden body is paused:
43
+ * its wave particles stand still and its wind turn holds until it comes back into view, and it costs one
44
+ * culling test a frame. On, it is simulated every frame wherever the camera looks, at the cost of a visible
45
+ * body's simulation — for water whose ripples must have travelled on when the camera turns back.
46
+ * Ambient waves follow time, not state: they are current either way.
47
+ * @type {ObservedBoolean}
48
+ */
49
+ simulateWhenHidden = new ObservedBoolean(false);
50
+
40
51
  /** Optical edits queue a scene row update. */
41
52
  onChanged = new Signal();
42
53
  /** @type {ParticipatingMedium|null} */
@@ -61,6 +72,7 @@ class Water {
61
72
  constructor(options) {
62
73
  this.ior.onChanged.add(this.#changed);
63
74
  this.roughness.onChanged.add(this.#changed);
75
+ this.simulateWhenHidden.onChanged.add(this.#changed);
64
76
  this.medium = water_medium_default();
65
77
  if (options !== undefined) {
66
78
  console.error('Constructor options are deprecated');
@@ -81,6 +93,10 @@ class Water {
81
93
  this.roughness.fromJSON(json.roughness);
82
94
  }
83
95
 
96
+ if (typeof json.simulateWhenHidden === 'boolean') {
97
+ this.simulateWhenHidden.fromJSON(json.simulateWhenHidden);
98
+ }
99
+
84
100
  if (json.medium !== null && typeof json.medium === 'object') {
85
101
  participating_medium_from_json(this.medium, json.medium);
86
102
  }
@@ -90,6 +106,7 @@ class Water {
90
106
  return {
91
107
  ior: this.ior.toJSON(),
92
108
  roughness: this.roughness.toJSON(),
109
+ simulateWhenHidden: this.simulateWhenHidden.toJSON(),
93
110
  medium: participating_medium_to_json(this.medium),
94
111
  };
95
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WaterSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSerializationAdapter.js"],"names":[],"mappings":"AAOA;;IAEI,oBAAc;IAGd;;;;OAIG;IACH,uCAFW,KAAK,QAOf;IAED;;;;OAIG;IACH,yCAFW,KAAK,QAOf;CACJ;gDAnC+C,gEAAgE;kBAK9F,YAAY"}
1
+ {"version":3,"file":"WaterSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSerializationAdapter.js"],"names":[],"mappings":"AAOA;;IAEI,oBAAc;IAGd;;;;OAIG;IACH,uCAFW,KAAK,QAQf;IAED;;;;OAIG;IACH,yCAFW,KAAK,QAQf;CACJ;gDArC+C,gEAAgE;kBAK9F,YAAY"}
@@ -8,7 +8,7 @@ import Water from "./Water.js";
8
8
  export class WaterSerializationAdapter extends BinaryClassSerializationAdapter {
9
9
 
10
10
  klass = Water;
11
- version = 4;
11
+ version = 5;
12
12
 
13
13
  /**
14
14
  *
@@ -20,6 +20,7 @@ export class WaterSerializationAdapter extends BinaryClassSerializationAdapter {
20
20
  buffer.writeFloat32(value.roughness.getValue());
21
21
 
22
22
  serialize_participating_medium(buffer, value.medium);
23
+ value.simulateWhenHidden.toBinaryBuffer(buffer);
23
24
  }
24
25
 
25
26
  /**
@@ -32,5 +33,6 @@ export class WaterSerializationAdapter extends BinaryClassSerializationAdapter {
32
33
  value.roughness.set(buffer.readFloat32());
33
34
 
34
35
  deserialize_participating_medium(buffer, value.medium);
36
+ value.simulateWhenHidden.fromBinaryBuffer(buffer);
35
37
  }
36
38
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Keep version 4's optics and append `simulateWhenHidden` as version 5 introduced it: off, so a body saved before
3
+ * pauses while hidden, like every body by default.
4
+ */
5
+ export class WaterSerializationUpgrader_4_5 extends BinaryClassUpgrader {
6
+ upgrade(source: any, target: any): void;
7
+ }
8
+ import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
9
+ //# sourceMappingURL=WaterSerializationUpgrader_4_5.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaterSerializationUpgrader_4_5.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSerializationUpgrader_4_5.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH;IAII,wCAOC;CACJ;oCAvBmC,oDAAoD"}
@@ -0,0 +1,24 @@
1
+ import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
2
+ import {
3
+ deserialize_participating_medium,
4
+ serialize_participating_medium
5
+ } from "../../../../shade/renderer/medium/participating_medium_serialization.js";
6
+ import { water_medium_default } from "../../../../shade/renderer/medium/water/water_presets.js";
7
+
8
+ /**
9
+ * Keep version 4's optics and append `simulateWhenHidden` as version 5 introduced it: off, so a body saved before
10
+ * pauses while hidden, like every body by default.
11
+ */
12
+ export class WaterSerializationUpgrader_4_5 extends BinaryClassUpgrader {
13
+ __startVersion = 4;
14
+ __targetVersion = 5;
15
+
16
+ upgrade(source, target) {
17
+ target.writeFloat32(source.readFloat32());
18
+ target.writeFloat32(source.readFloat32());
19
+ const medium = water_medium_default();
20
+ deserialize_participating_medium(source, medium);
21
+ serialize_participating_medium(target, medium);
22
+ target.writeUint8(0);
23
+ }
24
+ }
@@ -1,29 +1,50 @@
1
+ /** Amplitude reflection coefficient of a water body's outline when nothing says otherwise. */
2
+ export const WATER_WAVES_SHORE_REFLECTION_DEFAULT: 0.5;
1
3
  export default WaterWaves;
2
4
  /**
3
- * What drives the waves of the {@link Water} on the same entity, for the primitive wave
4
- * simulation.
5
+ * The waves of the {@link Water} on the same entity: the wind that raises them and how the body's outline
6
+ * treats them (WATER_SURFACE_SIMULATION_PLAN_2026_10_06.md §6.1).
5
7
  *
6
- * Kept apart from `Water` on purpose: `Water` describes the body and its optics, and says nothing
7
- * about how the surface moves. The production surface simulation replaces this component, its
8
- * system and its producer together, and `Water` stays as it is. A body without this component
9
- * tessellates its authored rest surface and allocates no wave grid until a splash is queued.
8
+ * Kept apart from `Water`, which describes the body and its optics and says nothing about how the surface
9
+ * moves. A body without this component is calm, and its outline reflects wave particles (from
10
+ * `WaterSystem.splash`) at the default coefficient.
11
+ *
12
+ * The wind's waves follow from physics: a fetch-limited JONSWAP sea of this wind speed over the water upwind
13
+ * — the body's own extent along the wind plus {@link upwindFetch} — so the same wind raises centimetre ripples
14
+ * on a puddle and swell on an open sea.
10
15
  */
11
16
  declare class WaterWaves {
12
17
  /**
13
- * Wind speed at 10 m, m/s. Sets the forcing, which grows as its square, and the slope variance
14
- * of the waves the simulation's grid does not resolve (Cox-Munk).
18
+ * Wind speed at 10 m, m/s.
15
19
  * @type {Vector1}
16
20
  */
17
21
  windSpeed: Vector1;
18
22
  /**
19
- * Direction the wind blows towards, radians in the mesh's local xz plane, measured from +x towards +z.
23
+ * Direction the wind blows towards, radians in the body's local xz plane, measured from +x towards +z.
24
+ * The angle turns with the body's rotation and is not skewed by its scale. A change turns the waves over
25
+ * a few seconds.
20
26
  * @type {Vector1}
21
27
  */
22
28
  windDirection: Vector1;
29
+ /**
30
+ * Open water upwind of the mesh, metres, added to the mesh's own extent along the wind. Zero for a body
31
+ * that is all the water there is (a pool, a lake); an open sea states the distance to its far shore
32
+ * (a fully developed sea at 10 m/s needs about 170 km).
33
+ * @type {Vector1}
34
+ */
35
+ upwindFetch: Vector1;
36
+ /**
37
+ * Amplitude reflection coefficient of the mesh's outline for wave particles: 0 a beach that absorbs
38
+ * them, 1 a wall that returns them whole.
39
+ * @type {Vector1}
40
+ */
41
+ shoreReflection: Vector1;
23
42
  fromJSON(json: any): void;
24
43
  toJSON(): {
25
44
  windSpeed: number;
26
45
  windDirection: number;
46
+ upwindFetch: number;
47
+ shoreReflection: number;
27
48
  };
28
49
  }
29
50
  declare namespace WaterWaves {
@@ -1 +1 @@
1
- {"version":3,"file":"WaterWaves.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWaves.js"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AACH;IACI;;;;OAIG;IACH,WAFU,OAAO,CAEU;IAE3B;;;OAGG;IACH,eAFU,OAAO,CAEc;IAE/B,0BAQC;IAED;;;MAKC;CACJ;;;;oBAzCmB,kCAAkC"}
1
+ {"version":3,"file":"WaterWaves.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWaves.js"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,uDAAwD;;AAExD;;;;;;;;;;;GAWG;AACH;IACI;;;OAGG;IACH,WAFU,OAAO,CAEU;IAE3B;;;;;OAKG;IACH,eAFU,OAAO,CAEc;IAE/B;;;;;OAKG;IACH,aAFU,OAAO,CAEY;IAE7B;;;;OAIG;IACH,iBAFU,OAAO,CAEmD;IAEpE,0BAgBC;IAED;;;;;MAOC;CACJ;;;;oBAzEmB,kCAAkC"}
@@ -1,28 +1,50 @@
1
1
  import Vector1 from "../../../../core/geom/Vector1.js";
2
2
 
3
+ /** Amplitude reflection coefficient of a water body's outline when nothing says otherwise. */
4
+ export const WATER_WAVES_SHORE_REFLECTION_DEFAULT = 0.5;
5
+
3
6
  /**
4
- * What drives the waves of the {@link Water} on the same entity, for the primitive wave
5
- * simulation.
7
+ * The waves of the {@link Water} on the same entity: the wind that raises them and how the body's outline
8
+ * treats them (WATER_SURFACE_SIMULATION_PLAN_2026_10_06.md §6.1).
9
+ *
10
+ * Kept apart from `Water`, which describes the body and its optics and says nothing about how the surface
11
+ * moves. A body without this component is calm, and its outline reflects wave particles (from
12
+ * `WaterSystem.splash`) at the default coefficient.
6
13
  *
7
- * Kept apart from `Water` on purpose: `Water` describes the body and its optics, and says nothing
8
- * about how the surface moves. The production surface simulation replaces this component, its
9
- * system and its producer together, and `Water` stays as it is. A body without this component
10
- * tessellates its authored rest surface and allocates no wave grid until a splash is queued.
14
+ * The wind's waves follow from physics: a fetch-limited JONSWAP sea of this wind speed over the water upwind
15
+ * — the body's own extent along the wind plus {@link upwindFetch} — so the same wind raises centimetre ripples
16
+ * on a puddle and swell on an open sea.
11
17
  */
12
18
  class WaterWaves {
13
19
  /**
14
- * Wind speed at 10 m, m/s. Sets the forcing, which grows as its square, and the slope variance
15
- * of the waves the simulation's grid does not resolve (Cox-Munk).
20
+ * Wind speed at 10 m, m/s.
16
21
  * @type {Vector1}
17
22
  */
18
23
  windSpeed = new Vector1(3);
19
24
 
20
25
  /**
21
- * Direction the wind blows towards, radians in the mesh's local xz plane, measured from +x towards +z.
26
+ * Direction the wind blows towards, radians in the body's local xz plane, measured from +x towards +z.
27
+ * The angle turns with the body's rotation and is not skewed by its scale. A change turns the waves over
28
+ * a few seconds.
22
29
  * @type {Vector1}
23
30
  */
24
31
  windDirection = new Vector1(0);
25
32
 
33
+ /**
34
+ * Open water upwind of the mesh, metres, added to the mesh's own extent along the wind. Zero for a body
35
+ * that is all the water there is (a pool, a lake); an open sea states the distance to its far shore
36
+ * (a fully developed sea at 10 m/s needs about 170 km).
37
+ * @type {Vector1}
38
+ */
39
+ upwindFetch = new Vector1(0);
40
+
41
+ /**
42
+ * Amplitude reflection coefficient of the mesh's outline for wave particles: 0 a beach that absorbs
43
+ * them, 1 a wall that returns them whole.
44
+ * @type {Vector1}
45
+ */
46
+ shoreReflection = new Vector1(WATER_WAVES_SHORE_REFLECTION_DEFAULT);
47
+
26
48
  fromJSON(json) {
27
49
  if (typeof json.windSpeed === 'number') {
28
50
  this.windSpeed.fromJSON(json.windSpeed);
@@ -31,12 +53,22 @@ class WaterWaves {
31
53
  if (typeof json.windDirection === 'number') {
32
54
  this.windDirection.fromJSON(json.windDirection);
33
55
  }
56
+
57
+ if (typeof json.upwindFetch === 'number') {
58
+ this.upwindFetch.fromJSON(json.upwindFetch);
59
+ }
60
+
61
+ if (typeof json.shoreReflection === 'number') {
62
+ this.shoreReflection.fromJSON(json.shoreReflection);
63
+ }
34
64
  }
35
65
 
36
66
  toJSON() {
37
67
  return {
38
68
  windSpeed: this.windSpeed.toJSON(),
39
69
  windDirection: this.windDirection.toJSON(),
70
+ upwindFetch: this.upwindFetch.toJSON(),
71
+ shoreReflection: this.shoreReflection.toJSON(),
40
72
  };
41
73
  }
42
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WaterWavesSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js"],"names":[],"mappings":"AAGA;;IAEI,yBAAmB;IAGnB;;;OAGG;IACH,uCAFW,UAAU,QAKpB;IAED;;;OAGG;IACH,yCAFW,UAAU,QAKpB;CACJ;gDAzB+C,gEAAgE;uBACzF,iBAAiB"}
1
+ {"version":3,"file":"WaterWavesSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWavesSerializationAdapter.js"],"names":[],"mappings":"AAGA;;IAEI,yBAAmB;IAGnB;;;OAGG;IACH,uCAFW,UAAU,QAOpB;IAED;;;OAGG;IACH,yCAFW,UAAU,QAOpB;CACJ;gDA7B+C,gEAAgE;uBACzF,iBAAiB"}
@@ -1,26 +1,30 @@
1
- import { BinaryClassSerializationAdapter } from "../../../ecs/storage/binary/BinaryClassSerializationAdapter.js";
2
- import WaterWaves from "./WaterWaves.js";
3
-
4
- export class WaterWavesSerializationAdapter extends BinaryClassSerializationAdapter {
5
-
6
- klass = WaterWaves;
7
- version = 0;
8
-
9
- /**
10
- * @param {BinaryBuffer} buffer
11
- * @param {WaterWaves} value
12
- */
13
- serialize(buffer, value) {
14
- buffer.writeFloat32(value.windSpeed.getValue());
15
- buffer.writeFloat32(value.windDirection.getValue());
16
- }
17
-
18
- /**
19
- * @param {BinaryBuffer} buffer
20
- * @param {WaterWaves} value
21
- */
22
- deserialize(buffer, value) {
23
- value.windSpeed.set(buffer.readFloat32());
24
- value.windDirection.set(buffer.readFloat32());
25
- }
26
- }
1
+ import { BinaryClassSerializationAdapter } from "../../../ecs/storage/binary/BinaryClassSerializationAdapter.js";
2
+ import WaterWaves from "./WaterWaves.js";
3
+
4
+ export class WaterWavesSerializationAdapter extends BinaryClassSerializationAdapter {
5
+
6
+ klass = WaterWaves;
7
+ version = 1;
8
+
9
+ /**
10
+ * @param {BinaryBuffer} buffer
11
+ * @param {WaterWaves} value
12
+ */
13
+ serialize(buffer, value) {
14
+ buffer.writeFloat32(value.windSpeed.getValue());
15
+ buffer.writeFloat32(value.windDirection.getValue());
16
+ buffer.writeFloat32(value.upwindFetch.getValue());
17
+ buffer.writeFloat32(value.shoreReflection.getValue());
18
+ }
19
+
20
+ /**
21
+ * @param {BinaryBuffer} buffer
22
+ * @param {WaterWaves} value
23
+ */
24
+ deserialize(buffer, value) {
25
+ value.windSpeed.set(buffer.readFloat32());
26
+ value.windDirection.set(buffer.readFloat32());
27
+ value.upwindFetch.set(buffer.readFloat32());
28
+ value.shoreReflection.set(buffer.readFloat32());
29
+ }
30
+ }
@@ -0,0 +1,6 @@
1
+ /** Keep version 0's wind and append the version-1 defaults. */
2
+ export class WaterWavesSerializationUpgrader_0_1 extends BinaryClassUpgrader {
3
+ upgrade(source: any, target: any): void;
4
+ }
5
+ import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
6
+ //# sourceMappingURL=WaterWavesSerializationUpgrader_0_1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaterWavesSerializationUpgrader_0_1.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterWavesSerializationUpgrader_0_1.js"],"names":[],"mappings":"AAWA,+DAA+D;AAC/D;IAII,wCAIC;CACJ;oCArBmC,oDAAoD"}
@@ -0,0 +1,22 @@
1
+ import { BinaryClassUpgrader } from "../../../ecs/storage/binary/BinaryClassUpgrader.js";
2
+
3
+ /**
4
+ * The fields version 1 appended, with the defaults they had at that version: constants, not read off the
5
+ * current `WaterWaves`, since an upgrader writes the format of its target version.
6
+ */
7
+ const VERSION_1_DEFAULTS = [
8
+ 0, // upwind fetch, metres
9
+ 0.5, // shore reflection
10
+ ];
11
+
12
+ /** Keep version 0's wind and append the version-1 defaults. */
13
+ export class WaterWavesSerializationUpgrader_0_1 extends BinaryClassUpgrader {
14
+ __startVersion = 0;
15
+ __targetVersion = 1;
16
+
17
+ upgrade(source, target) {
18
+ target.writeFloat32(source.readFloat32());
19
+ target.writeFloat32(source.readFloat32());
20
+ for (const value of VERSION_1_DEFAULTS) { target.writeFloat32(value); }
21
+ }
22
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"bvh32_geometry_raycast.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.js"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;GAiBG;AACH,+CAhBW,aAAa,kCAEb,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,iBAC1B,MAAM,iBACN,MAAM,0BACN,OAAO,WACP,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,SAAS,YACpC,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,gBACN,MAAM,GACJ,OAAO,CA+DnB;8BA5F6B,8CAA8C"}
1
+ {"version":3,"file":"bvh32_geometry_raycast.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.js"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;GAiBG;AACH,+CAhBW,aAAa,kCAEb,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,iBAC1B,MAAM,iBACN,MAAM,0BACN,OAAO,WACP,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,SAAS,YACpC,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,gBACN,MAAM,GACJ,OAAO,CA6DnB;8BA1F6B,8CAA8C"}
@@ -1,7 +1,7 @@
1
1
  import { assert } from "../../../../../core/assert.js";
2
2
  import { bvh32_query_user_data_ray } from "../../../../../core/bvh2/binary/2/bvh32_query_user_data_ray.js";
3
3
  import { SurfacePoint3 } from "../../../../../core/geom/3d/SurfacePoint3.js";
4
- import { tri3_ray_intersection } from "../../../../../core/geom/3d/triangle/tri3_ray_intersection.js";
4
+ import { tri3_ray_intersection_triangle_array } from "../../../../../core/geom/3d/triangle/tri3_ray_intersection.js";
5
5
  import { read_triangle_vertices } from "../read_triangle_vertices.js";
6
6
 
7
7
  const scratch_array = []
@@ -68,13 +68,11 @@ export function bvh32_geometry_raycast(
68
68
  triangle_index
69
69
  );
70
70
 
71
- const triangle_hit_found = tri3_ray_intersection(
71
+ const triangle_hit_found = tri3_ray_intersection_triangle_array(
72
72
  scratch_hit,
73
73
  origin_x, origin_y, origin_z,
74
74
  direction_x, direction_y, direction_z,
75
- triangle_scratch[0], triangle_scratch[1], triangle_scratch[2],
76
- triangle_scratch[3], triangle_scratch[4], triangle_scratch[5],
77
- triangle_scratch[6], triangle_scratch[7], triangle_scratch[8]
75
+ triangle_scratch, 0
78
76
  )
79
77
 
80
78
  if (!triangle_hit_found) {
@@ -24,4 +24,24 @@
24
24
  * @return {Float32Array|number[]} `out`, for chaining.
25
25
  */
26
26
  export function scs3d_sample_linear3(out: Float32Array | number[], data_0: Float32Array, data_1: Float32Array, data_2: Float32Array, res_x: number, res_y: number, res_z: number, x: number, y: number, z: number): Float32Array | number[];
27
+ /**
28
+ * {@link scs3d_sample_linear3} with the position read from `position[position_offset ..+2]`.
29
+ * For per-cell callers, passing fractional coordinates in a reusable array avoids numeric argument
30
+ * boxes when the sampler is not inlined. Float64 coordinates preserve the scalar form's precision.
31
+ *
32
+ * The three coordinates are read before any output store, so `position` may overlap `out` and a
33
+ * reentrant output setter cannot change the coordinates used by the scalar facade's sample.
34
+ *
35
+ * @param {Float32Array|Float64Array|number[]} out length >= 3
36
+ * @param {Float32Array} data_0
37
+ * @param {Float32Array} data_1
38
+ * @param {Float32Array} data_2
39
+ * @param {number} res_x
40
+ * @param {number} res_y
41
+ * @param {number} res_z
42
+ * @param {Float64Array} position `[x, y, z]`, in grid index space
43
+ * @param {number} position_offset
44
+ * @return {Float32Array|Float64Array|number[]} `out`, for chaining.
45
+ */
46
+ export function scs3d_sample_linear3_array(out: Float32Array | Float64Array | number[], data_0: Float32Array, data_1: Float32Array, data_2: Float32Array, res_x: number, res_y: number, res_z: number, position: Float64Array, position_offset: number): Float32Array | Float64Array | number[];
27
47
  //# sourceMappingURL=scs3d_sample_linear3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scs3d_sample_linear3.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/3d/scs3d_sample_linear3.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,0CAZW,YAAY,GAAC,MAAM,EAAE,UACrB,YAAY,UACZ,YAAY,UACZ,YAAY,SACZ,MAAM,SACN,MAAM,SACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACL,YAAY,GAAC,MAAM,EAAE,CAsDhC"}
1
+ {"version":3,"file":"scs3d_sample_linear3.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/3d/scs3d_sample_linear3.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,0CAZW,YAAY,GAAC,MAAM,EAAE,UACrB,YAAY,UACZ,YAAY,UACZ,YAAY,SACZ,MAAM,SACN,MAAM,SACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACL,YAAY,GAAC,MAAM,EAAE,CAWhC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,gDAXW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,UAClC,YAAY,UACZ,YAAY,UACZ,YAAY,SACZ,MAAM,SACN,MAAM,SACN,MAAM,YACN,YAAY,mBACZ,MAAM,GACL,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,CA0D7C"}
@@ -1,6 +1,8 @@
1
1
  import { clamp } from "../../../../core/math/clamp.js";
2
2
  import { lerp } from "../../../../core/math/lerp.js";
3
3
 
4
+ const scratch_position = new Float64Array(3);
5
+
4
6
  /**
5
7
  * Trilinearly sample THREE single-channel 3D grids at the same fractional
6
8
  * position, sharing one set of corner indices and interpolation weights.
@@ -27,6 +29,40 @@ import { lerp } from "../../../../core/math/lerp.js";
27
29
  * @return {Float32Array|number[]} `out`, for chaining.
28
30
  */
29
31
  export function scs3d_sample_linear3(out, data_0, data_1, data_2, res_x, res_y, res_z, x, y, z) {
32
+ const position = scratch_position;
33
+ position[0] = x;
34
+ position[1] = y;
35
+ position[2] = z;
36
+
37
+ scs3d_sample_linear3_array(out, data_0, data_1, data_2, res_x, res_y, res_z, position, 0);
38
+
39
+ return out;
40
+ }
41
+
42
+ /**
43
+ * {@link scs3d_sample_linear3} with the position read from `position[position_offset ..+2]`.
44
+ * For per-cell callers, passing fractional coordinates in a reusable array avoids numeric argument
45
+ * boxes when the sampler is not inlined. Float64 coordinates preserve the scalar form's precision.
46
+ *
47
+ * The three coordinates are read before any output store, so `position` may overlap `out` and a
48
+ * reentrant output setter cannot change the coordinates used by the scalar facade's sample.
49
+ *
50
+ * @param {Float32Array|Float64Array|number[]} out length >= 3
51
+ * @param {Float32Array} data_0
52
+ * @param {Float32Array} data_1
53
+ * @param {Float32Array} data_2
54
+ * @param {number} res_x
55
+ * @param {number} res_y
56
+ * @param {number} res_z
57
+ * @param {Float64Array} position `[x, y, z]`, in grid index space
58
+ * @param {number} position_offset
59
+ * @return {Float32Array|Float64Array|number[]} `out`, for chaining.
60
+ */
61
+ export function scs3d_sample_linear3_array(out, data_0, data_1, data_2, res_x, res_y, res_z, position, position_offset) {
62
+ const x = position[position_offset];
63
+ const y = position[position_offset + 1];
64
+ const z = position[position_offset + 2];
65
+
30
66
  const x_max = res_x - 1;
31
67
  const y_max = res_y - 1;
32
68
  const z_max = res_z - 1;
@@ -20,6 +20,7 @@ export class AnimationGraphSystem extends System<any> {
20
20
  */
21
21
  constructor(graphics: GraphicsEngine, meshes: MeshSystem);
22
22
  dependencies: (typeof SGMesh | typeof AnimationGraphController)[];
23
+ components_used: ResourceAccessSpecification<typeof AnimationGraphController>[];
23
24
  /**
24
25
  * @param {AnimationGraphController} controller
25
26
  * @param {SGMesh} model
@@ -61,5 +62,6 @@ export class AnimationGraphSystem extends System<any> {
61
62
  import { System } from "../ecs/System.js";
62
63
  import { SGMesh } from "../graphics/ecs/mesh-v2/aggregate/SGMesh.js";
63
64
  import { AnimationGraphController } from "./animation/AnimationGraphController.js";
65
+ import { ResourceAccessSpecification } from "../../core/model/ResourceAccessSpecification.js";
64
66
  import { PosePlayback } from "../../shade/renderer/animation/pose/PosePlayback.js";
65
67
  //# sourceMappingURL=AnimationGraphSystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationGraphSystem.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/AnimationGraphSystem.js"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;GAcG;AACH;IAmBI;;;OAGG;IACH,0DAUC;IADG,kEAAsD;IAG1D;;;;OAIG;IACH,iBAJW,wBAAwB,SACxB,MAAM,UACN,MAAM,QAahB;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,6BALW,YAAY,EAAE,UACd,MAAM,GACJ,OAAO,CA+CnB;IAED;;;;OAIG;IACH,mBAJW,wBAAwB,SACxB,MAAM,UACN,MAAM,QAYhB;IAED,4CAQC;;CA4JJ;uBAtUsB,kBAAkB;uBAClB,6CAA6C;yCAC3B,yCAAyC;6BAHrD,qDAAqD"}
1
+ {"version":3,"file":"AnimationGraphSystem.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics3/AnimationGraphSystem.js"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;GAcG;AACH;IAmBI;;;OAGG;IACH,0DAgBC;IAPG,kEAAsD;IAItD,gFAEC;IAGL;;;;OAIG;IACH,iBAJW,wBAAwB,SACxB,MAAM,UACN,MAAM,QAahB;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,6BALW,YAAY,EAAE,UACd,MAAM,GACJ,OAAO,CA+CnB;IAED;;;;OAIG;IACH,mBAJW,wBAAwB,SACxB,MAAM,UACN,MAAM,QAYhB;IAED,4CAQC;;CA4JJ;uBA5UsB,kBAAkB;uBAClB,6CAA6C;yCAC3B,yCAAyC;4CAJtC,iDAAiD;6BAChE,qDAAqD"}