@woosh/meep-engine 3.30.0 → 3.31.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 (1579) hide show
  1. package/build/bundle-worker-image-decoder.js +1 -1
  2. package/build/bundle-worker-terrain.js +1 -1
  3. package/package.json +3 -1
  4. package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
  5. package/src/core/binary/BinaryBuffer.js +42 -14
  6. package/src/core/binary/BitImage2.d.ts.map +1 -1
  7. package/src/core/binary/BitImage2.js +2 -6
  8. package/src/core/binary/BitSet.js +5 -5
  9. package/src/core/binary/compression/chunks_to_stream.d.ts +24 -0
  10. package/src/core/binary/compression/chunks_to_stream.d.ts.map +1 -0
  11. package/src/core/binary/compression/chunks_to_stream.js +35 -0
  12. package/src/core/binary/compression/compress_bytes.d.ts +3 -4
  13. package/src/core/binary/compression/compress_bytes.d.ts.map +1 -1
  14. package/src/core/binary/compression/compress_bytes.js +6 -17
  15. package/src/core/binary/compression/decompress_bytes.d.ts +1 -2
  16. package/src/core/binary/compression/decompress_bytes.d.ts.map +1 -1
  17. package/src/core/binary/compression/decompress_bytes.js +4 -15
  18. package/src/core/binary/compression/decompress_bytes_into.d.ts.map +1 -1
  19. package/src/core/binary/compression/decompress_bytes_into.js +2 -13
  20. package/src/core/binary/ctz32.d.ts +12 -4
  21. package/src/core/binary/ctz32.d.ts.map +1 -1
  22. package/src/core/binary/ctz32.js +23 -41
  23. package/src/core/binary/lsb_32.d.ts +10 -2
  24. package/src/core/binary/lsb_32.d.ts.map +1 -1
  25. package/src/core/binary/lsb_32.js +17 -12
  26. package/src/core/binary/lz4/lz4_compress_block_hc.js +2 -2
  27. package/src/core/binary/type/DataTypeIndices.d.ts +39 -0
  28. package/src/core/binary/type/DataTypeIndices.d.ts.map +1 -1
  29. package/src/core/binary/type/DataTypeIndices.js +38 -1
  30. package/src/core/binary/type/Type.d.ts.map +1 -1
  31. package/src/core/binary/type/Type.js +6 -1
  32. package/src/core/bvh2/bvh3/ebvh_optimize_treelet.js +3 -3
  33. package/src/core/bvh8/bvh8_geometry_validate.d.ts.map +1 -1
  34. package/src/core/bvh8/bvh8_geometry_validate.js +2 -88
  35. package/src/core/bvh8/bvh8_geometry_validate_bounds.d.ts +25 -0
  36. package/src/core/bvh8/bvh8_geometry_validate_bounds.d.ts.map +1 -0
  37. package/src/core/bvh8/bvh8_geometry_validate_bounds.js +105 -0
  38. package/src/core/bvh8/bvh8_geometry_validate_indirect.d.ts.map +1 -1
  39. package/src/core/bvh8/bvh8_geometry_validate_indirect.js +2 -91
  40. package/src/core/clipboard/obtainClipBoard.d.ts +4 -0
  41. package/src/core/clipboard/obtainClipBoard.d.ts.map +1 -1
  42. package/src/core/clipboard/obtainClipBoard.js +29 -8
  43. package/src/core/clipboard/safeClipboardReadText.d.ts.map +1 -1
  44. package/src/core/clipboard/safeClipboardReadText.js +73 -38
  45. package/src/core/clipboard/safeClipboardWriteText.d.ts.map +1 -1
  46. package/src/core/clipboard/safeClipboardWriteText.js +11 -9
  47. package/src/core/collection/array/iterator/ArrayIteratorRandom.d.ts.map +1 -1
  48. package/src/core/collection/array/iterator/ArrayIteratorRandom.js +6 -0
  49. package/src/core/collection/heap/IndexedFloatMinHeap.d.ts +6 -0
  50. package/src/core/collection/heap/IndexedFloatMinHeap.d.ts.map +1 -1
  51. package/src/core/collection/heap/IndexedFloatMinHeap.js +14 -0
  52. package/src/core/collection/list/FilteredListProjection.d.ts.map +1 -1
  53. package/src/core/collection/list/FilteredListProjection.js +7 -54
  54. package/src/core/collection/list/List.d.ts +4 -0
  55. package/src/core/collection/list/List.d.ts.map +1 -1
  56. package/src/core/collection/list/List.js +10 -52
  57. package/src/core/collection/list/SortedListProjection.d.ts +7 -0
  58. package/src/core/collection/list/SortedListProjection.d.ts.map +1 -1
  59. package/src/core/collection/list/SortedListProjection.js +12 -0
  60. package/src/core/collection/list/list_apply_ordered_diff.d.ts +37 -0
  61. package/src/core/collection/list/list_apply_ordered_diff.d.ts.map +1 -0
  62. package/src/core/collection/list/list_apply_ordered_diff.js +87 -0
  63. package/src/core/collection/map/BiMap.d.ts.map +1 -1
  64. package/src/core/collection/map/BiMap.js +19 -6
  65. package/src/core/collection/map/HashMap.d.ts.map +1 -1
  66. package/src/core/collection/map/HashMap.js +38 -11
  67. package/src/core/collection/queue/Deque.d.ts +2 -2
  68. package/src/core/collection/queue/Deque.d.ts.map +1 -1
  69. package/src/core/collection/queue/Deque.js +12 -1
  70. package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
  71. package/src/core/collection/table/RowFirstTable.js +15 -2
  72. package/src/core/collection/table/serializeRowFirstTable.d.ts.map +1 -1
  73. package/src/core/collection/table/serializeRowFirstTable.js +2 -3
  74. package/src/core/color/operations/color_lerp.d.ts.map +1 -1
  75. package/src/core/color/operations/color_lerp.js +77 -55
  76. package/src/core/color/sRGB/linear_to_sRGB.d.ts.map +1 -1
  77. package/src/core/color/sRGB/linear_to_sRGB.js +3 -1
  78. package/src/core/debug/matchers/AllOf.d.ts +2 -1
  79. package/src/core/debug/matchers/AllOf.d.ts.map +1 -1
  80. package/src/core/debug/matchers/AllOf.js +1 -1
  81. package/src/core/debug/matchers/AnyOf.d.ts +2 -1
  82. package/src/core/debug/matchers/AnyOf.d.ts.map +1 -1
  83. package/src/core/debug/matchers/AnyOf.js +1 -1
  84. package/src/core/debug/matchers/CombinableMatcher.d.ts +2 -1
  85. package/src/core/debug/matchers/CombinableMatcher.d.ts.map +1 -1
  86. package/src/core/debug/matchers/CombinableMatcher.js +1 -1
  87. package/src/core/debug/matchers/DescribeAs.d.ts +2 -1
  88. package/src/core/debug/matchers/DescribeAs.d.ts.map +1 -1
  89. package/src/core/debug/matchers/DescribeAs.js +2 -1
  90. package/src/core/debug/matchers/IsAnything.d.ts +2 -1
  91. package/src/core/debug/matchers/IsAnything.d.ts.map +1 -1
  92. package/src/core/debug/matchers/IsAnything.js +2 -1
  93. package/src/core/debug/matchers/IsEqual.d.ts +2 -1
  94. package/src/core/debug/matchers/IsEqual.d.ts.map +1 -1
  95. package/src/core/debug/matchers/IsEqual.js +2 -1
  96. package/src/core/debug/matchers/IsFinite.d.ts +2 -1
  97. package/src/core/debug/matchers/IsFinite.d.ts.map +1 -1
  98. package/src/core/debug/matchers/IsFinite.js +2 -1
  99. package/src/core/debug/matchers/IsIn.d.ts +2 -1
  100. package/src/core/debug/matchers/IsIn.d.ts.map +1 -1
  101. package/src/core/debug/matchers/IsIn.js +2 -1
  102. package/src/core/debug/matchers/IsInteger.d.ts +2 -1
  103. package/src/core/debug/matchers/IsInteger.d.ts.map +1 -1
  104. package/src/core/debug/matchers/IsInteger.js +2 -1
  105. package/src/core/debug/matchers/IsIterableContaining.d.ts +2 -1
  106. package/src/core/debug/matchers/IsIterableContaining.d.ts.map +1 -1
  107. package/src/core/debug/matchers/IsIterableContaining.js +1 -1
  108. package/src/core/debug/matchers/IsNot.d.ts +2 -1
  109. package/src/core/debug/matchers/IsNot.d.ts.map +1 -1
  110. package/src/core/debug/matchers/IsNot.js +2 -1
  111. package/src/core/debug/matchers/IsNull.d.ts +2 -1
  112. package/src/core/debug/matchers/IsNull.d.ts.map +1 -1
  113. package/src/core/debug/matchers/IsNull.js +2 -1
  114. package/src/core/debug/matchers/IsUndefined.d.ts +2 -1
  115. package/src/core/debug/matchers/IsUndefined.d.ts.map +1 -1
  116. package/src/core/debug/matchers/IsUndefined.js +2 -1
  117. package/src/core/events/signal/Signal.d.ts +15 -0
  118. package/src/core/events/signal/Signal.d.ts.map +1 -1
  119. package/src/core/events/signal/Signal.js +857 -820
  120. package/src/core/fsm/simple/SimpleStateMachineDescription.d.ts.map +1 -1
  121. package/src/core/fsm/simple/SimpleStateMachineDescription.js +4 -3
  122. package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_bruteforce.d.ts.map +1 -1
  123. package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_bruteforce.js +6 -1
  124. package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_relaxation.d.ts +1 -1
  125. package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_relaxation.d.ts.map +1 -1
  126. package/src/core/geom/2d/convex-hull/convex_hull_fixed_count_2d_relaxation.js +6 -7
  127. package/src/core/geom/2d/hash-grid/SpatialHashGrid.d.ts.map +1 -1
  128. package/src/core/geom/2d/hash-grid/SpatialHashGrid.js +23 -6
  129. package/src/core/geom/2d/line/ray2_ray2_compute_intersection_array_2d.d.ts.map +1 -1
  130. package/src/core/geom/2d/line/ray2_ray2_compute_intersection_array_2d.js +13 -1
  131. package/src/core/geom/3d/aabb/aabb3_raycast_hit_point.d.ts.map +1 -1
  132. package/src/core/geom/3d/aabb/aabb3_raycast_hit_point.js +53 -32
  133. package/src/core/geom/3d/atlas/segment/atlas_chart_growth_cost.d.ts +40 -0
  134. package/src/core/geom/3d/atlas/segment/atlas_chart_growth_cost.d.ts.map +1 -0
  135. package/src/core/geom/3d/atlas/segment/atlas_chart_growth_cost.js +54 -0
  136. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts +21 -3
  137. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts.map +1 -1
  138. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.js +24 -15
  139. package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts +6 -3
  140. package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts.map +1 -1
  141. package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.js +9 -15
  142. package/src/core/geom/3d/cone/cone_compute_plane_side.d.ts.map +1 -1
  143. package/src/core/geom/3d/cone/cone_compute_plane_side.js +31 -19
  144. package/src/core/geom/3d/equirectangular/equirectangular_direction_to_uv.d.ts +11 -1
  145. package/src/core/geom/3d/equirectangular/equirectangular_direction_to_uv.d.ts.map +1 -1
  146. package/src/core/geom/3d/equirectangular/equirectangular_direction_to_uv.js +11 -1
  147. package/src/core/geom/3d/equirectangular/equirectangular_uv_to_direction.d.ts +11 -1
  148. package/src/core/geom/3d/equirectangular/equirectangular_uv_to_direction.d.ts.map +1 -1
  149. package/src/core/geom/3d/equirectangular/equirectangular_uv_to_direction.js +11 -1
  150. package/src/core/geom/3d/frustum/frustum3_compute_closest_point.d.ts.map +1 -1
  151. package/src/core/geom/3d/frustum/frustum3_compute_closest_point.js +55 -0
  152. package/src/core/geom/3d/frustum/frustum_from_projection_matrix_array.d.ts +14 -0
  153. package/src/core/geom/3d/frustum/frustum_from_projection_matrix_array.d.ts.map +1 -1
  154. package/src/core/geom/3d/frustum/frustum_from_projection_matrix_array.js +17 -1
  155. package/src/core/geom/3d/gjk/gjk.d.ts +15 -0
  156. package/src/core/geom/3d/gjk/gjk.d.ts.map +1 -1
  157. package/src/core/geom/3d/gjk/gjk.js +15 -0
  158. package/src/core/geom/3d/gjk/gjk_epa_penetration.d.ts.map +1 -1
  159. package/src/core/geom/3d/gjk/gjk_epa_penetration.js +18 -0
  160. package/src/core/geom/3d/hash-grid/PointHashGrid3.d.ts +32 -3
  161. package/src/core/geom/3d/hash-grid/PointHashGrid3.d.ts.map +1 -1
  162. package/src/core/geom/3d/hash-grid/PointHashGrid3.js +36 -3
  163. package/src/core/geom/3d/morton/v3_morton_encode_lut.d.ts.map +1 -1
  164. package/src/core/geom/3d/morton/v3_morton_encode_lut.js +11 -4
  165. package/src/core/geom/3d/morton/v3_morton_encode_normalized.d.ts +16 -4
  166. package/src/core/geom/3d/morton/v3_morton_encode_normalized.d.ts.map +1 -1
  167. package/src/core/geom/3d/morton/v3_morton_encode_normalized.js +21 -8
  168. package/src/core/geom/3d/normal/spherical/encode_unit_to_spheremap.d.ts.map +1 -1
  169. package/src/core/geom/3d/normal/spherical/encode_unit_to_spheremap.js +17 -3
  170. package/src/core/geom/3d/octahedra/octahedral_direction_to_uv.d.ts +10 -0
  171. package/src/core/geom/3d/octahedra/octahedral_direction_to_uv.d.ts.map +1 -1
  172. package/src/core/geom/3d/octahedra/octahedral_direction_to_uv.js +46 -49
  173. package/src/core/geom/3d/octahedra/octahedral_uv_to_direction.d.ts +13 -1
  174. package/src/core/geom/3d/octahedra/octahedral_uv_to_direction.d.ts.map +1 -1
  175. package/src/core/geom/3d/octahedra/octahedral_uv_to_direction.js +36 -39
  176. package/src/core/geom/3d/quadric/quadric3_to_tensor_m3_inverse.d.ts +4 -1
  177. package/src/core/geom/3d/quadric/quadric3_to_tensor_m3_inverse.d.ts.map +1 -1
  178. package/src/core/geom/3d/quadric/quadric3_to_tensor_m3_inverse.js +22 -4
  179. package/src/core/geom/3d/quaternion/quat3_canonicalize_sign_run.d.ts +38 -0
  180. package/src/core/geom/3d/quaternion/quat3_canonicalize_sign_run.d.ts.map +1 -0
  181. package/src/core/geom/3d/quaternion/quat3_canonicalize_sign_run.js +76 -0
  182. package/src/core/geom/3d/quaternion/quat3_encode_to_uint32.d.ts +11 -0
  183. package/src/core/geom/3d/quaternion/quat3_encode_to_uint32.d.ts.map +1 -1
  184. package/src/core/geom/3d/quaternion/quat3_encode_to_uint32.js +14 -34
  185. package/src/core/geom/3d/shape/PosedShape3D.d.ts +9 -0
  186. package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
  187. package/src/core/geom/3d/shape/PosedShape3D.js +43 -0
  188. package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
  189. package/src/core/geom/3d/shape/UnionShape3D.js +20 -3
  190. package/src/core/geom/3d/shape/json/type_adapters.d.ts +11 -2
  191. package/src/core/geom/3d/shape/json/type_adapters.d.ts.map +1 -1
  192. package/src/core/geom/3d/shape/json/type_adapters.js +36 -12
  193. package/src/core/geom/3d/sphere/harmonics/sh3_sample_irradiance_by_direction.d.ts +13 -0
  194. package/src/core/geom/3d/sphere/harmonics/sh3_sample_irradiance_by_direction.d.ts.map +1 -1
  195. package/src/core/geom/3d/sphere/harmonics/sh3_sample_irradiance_by_direction.js +17 -4
  196. package/src/core/geom/3d/tetrahedra/tetrahedral_flip_layouts.d.ts +88 -0
  197. package/src/core/geom/3d/tetrahedra/tetrahedral_flip_layouts.d.ts.map +1 -0
  198. package/src/core/geom/3d/tetrahedra/tetrahedral_flip_layouts.js +108 -0
  199. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_23.d.ts.map +1 -1
  200. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_23.js +13 -31
  201. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_32.d.ts.map +1 -1
  202. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_flip_32.js +14 -22
  203. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_improve_quality.d.ts.map +1 -1
  204. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_improve_quality.js +96 -26
  205. package/src/core/geom/3d/tetrahedra/tetrahedron_contains_point.d.ts.map +1 -1
  206. package/src/core/geom/3d/tetrahedra/tetrahedron_contains_point.js +17 -6
  207. package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.d.ts +27 -0
  208. package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.d.ts.map +1 -1
  209. package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.js +101 -0
  210. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.d.ts +3 -0
  211. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.d.ts.map +1 -1
  212. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.js +5 -57
  213. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.d.ts.map +1 -1
  214. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.js +2 -34
  215. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_fill_small_holes.d.ts.map +1 -1
  216. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_fill_small_holes.js +2 -43
  217. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts +54 -33
  218. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts.map +1 -1
  219. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.js +229 -68
  220. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.d.ts.map +1 -1
  221. package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.js +4 -15
  222. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_mesh_split_pinched_vertices.d.ts.map +1 -1
  223. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_mesh_split_pinched_vertices.js +13 -1
  224. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_fuse_duplicate_edges.d.ts.map +1 -1
  225. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_fuse_duplicate_edges.js +3 -1
  226. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.d.ts.map +1 -1
  227. package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vertex_replace.js +22 -3
  228. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_count_faces.d.ts +17 -2
  229. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_count_faces.d.ts.map +1 -1
  230. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_count_faces.js +28 -4
  231. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_get.d.ts.map +1 -1
  232. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_get.js +8 -1
  233. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_edge_adjacent_faces_weighted.d.ts.map +1 -1
  234. package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_edge_adjacent_faces_weighted.js +10 -2
  235. package/src/core/geom/3d/topology/struct/binary/query/bt_face_island_flood_fill.d.ts.map +1 -1
  236. package/src/core/geom/3d/topology/struct/binary/query/bt_face_island_flood_fill.js +2 -0
  237. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_distance_field.d.ts.map +1 -1
  238. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_build_boundary_distance_field.js +25 -5
  239. package/src/core/geom/3d/triangle/tri3_compute_normal.d.ts +5 -1
  240. package/src/core/geom/3d/triangle/tri3_compute_normal.d.ts.map +1 -1
  241. package/src/core/geom/3d/triangle/tri3_compute_normal.js +8 -1
  242. package/src/core/geom/3d/triangle/tri3_ray_intersection.d.ts.map +1 -1
  243. package/src/core/geom/3d/triangle/tri3_ray_intersection.js +15 -3
  244. package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric.d.ts +2 -1
  245. package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric.d.ts.map +1 -1
  246. package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric.js +2 -1
  247. package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric_edge.d.ts +1 -1
  248. package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric_edge.d.ts.map +1 -1
  249. package/src/core/geom/3d/triangle/tri3_ray_intersection_barycentric_edge.js +8 -1
  250. package/src/core/geom/vec/vector_normalize.d.ts.map +1 -1
  251. package/src/core/geom/vec/vector_normalize.js +5 -1
  252. package/src/core/geom/vec3/v3_slerp.d.ts.map +1 -1
  253. package/src/core/geom/vec3/v3_slerp.js +69 -4
  254. package/src/core/geom/vec4/v4_max_axis.d.ts +28 -0
  255. package/src/core/geom/vec4/v4_max_axis.d.ts.map +1 -0
  256. package/src/core/geom/vec4/v4_max_axis.js +41 -0
  257. package/src/core/graph/coloring/colorizeGraph.js +10 -7
  258. package/src/core/graph/layout/graph_peel_topological_layer.d.ts.map +1 -1
  259. package/src/core/graph/layout/graph_peel_topological_layer.js +16 -2
  260. package/src/core/json/JsonUtils.d.ts.map +1 -1
  261. package/src/core/json/JsonUtils.js +6 -2
  262. package/src/core/json/abstractJSONSerializer.d.ts.map +1 -1
  263. package/src/core/json/abstractJSONSerializer.js +5 -1
  264. package/src/core/lang/reactive/ReactiveOperatorType.d.ts +20 -0
  265. package/src/core/lang/reactive/ReactiveOperatorType.d.ts.map +1 -1
  266. package/src/core/lang/reactive/ReactiveOperatorType.js +34 -12
  267. package/src/core/localization/LanguageMetadata.d.ts +2 -1
  268. package/src/core/localization/LanguageMetadata.d.ts.map +1 -1
  269. package/src/core/localization/LanguageMetadata.js +6 -0
  270. package/src/core/localization/Localization.d.ts.map +1 -1
  271. package/src/core/localization/Localization.js +23 -10
  272. package/src/core/localization/LocalizationEngine.d.ts.map +1 -1
  273. package/src/core/localization/LocalizationEngine.js +4 -0
  274. package/src/core/math/fract.d.ts.map +1 -1
  275. package/src/core/math/fract.js +4 -3
  276. package/src/core/math/hash/squirrel3.d.ts +10 -2
  277. package/src/core/math/hash/squirrel3.d.ts.map +1 -1
  278. package/src/core/math/hash/squirrel3.js +16 -8
  279. package/src/core/math/linalg/m2/m2_polar_decomp_noS.d.ts +7 -0
  280. package/src/core/math/linalg/m2/m2_polar_decomp_noS.d.ts.map +1 -1
  281. package/src/core/math/linalg/m2/m2_polar_decomp_noS.js +20 -1
  282. package/src/core/math/physics/pdf/pdf_normal.d.ts +11 -3
  283. package/src/core/math/physics/pdf/pdf_normal.d.ts.map +1 -1
  284. package/src/core/math/physics/pdf/pdf_normal.js +25 -11
  285. package/src/core/math/solveQuadratic.d.ts.map +1 -1
  286. package/src/core/math/solveQuadratic.js +22 -3
  287. package/src/core/math/statistics/computeStatisticalPartialMedian.d.ts +9 -2
  288. package/src/core/math/statistics/computeStatisticalPartialMedian.d.ts.map +1 -1
  289. package/src/core/math/statistics/computeStatisticalPartialMedian.js +12 -6
  290. package/src/core/math/statistics/computeStatisticalPercentile.d.ts.map +1 -1
  291. package/src/core/math/statistics/computeStatisticalPercentile.js +9 -2
  292. package/src/core/math/statistics/gaussian_amplitude.d.ts +10 -1
  293. package/src/core/math/statistics/gaussian_amplitude.d.ts.map +1 -1
  294. package/src/core/math/statistics/gaussian_amplitude.js +20 -15
  295. package/src/core/model/BooleanVector3.d.ts.map +1 -1
  296. package/src/core/model/BooleanVector3.js +18 -2
  297. package/src/core/model/BoundedValue.d.ts +9 -0
  298. package/src/core/model/BoundedValue.d.ts.map +1 -1
  299. package/src/core/model/BoundedValue.js +30 -3
  300. package/src/core/model/ObservedBoolean.d.ts.map +1 -1
  301. package/src/core/model/ObservedBoolean.js +22 -2
  302. package/src/core/model/ObservedEnum.d.ts.map +1 -1
  303. package/src/core/model/ObservedEnum.js +6 -2
  304. package/src/core/model/node-graph/NodeGraph.d.ts +6 -1
  305. package/src/core/model/node-graph/NodeGraph.d.ts.map +1 -1
  306. package/src/core/model/node-graph/NodeGraph.js +22 -4
  307. package/src/core/model/node-graph/json/deserializeNodeGraphFromJSON.d.ts.map +1 -1
  308. package/src/core/model/node-graph/json/deserializeNodeGraphFromJSON.js +3 -1
  309. package/src/core/model/node-graph/json/serializeNodeGraphToJSON.d.ts.map +1 -1
  310. package/src/core/model/node-graph/json/serializeNodeGraphToJSON.js +5 -0
  311. package/src/core/model/node-graph/type/DataType.d.ts.map +1 -1
  312. package/src/core/model/node-graph/type/DataType.js +8 -0
  313. package/src/core/model/node-graph/type/ParametricDataType.d.ts.map +1 -1
  314. package/src/core/model/node-graph/type/ParametricDataType.js +19 -0
  315. package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts.map +1 -1
  316. package/src/core/model/node-graph/visual/NodeGraphVisualData.js +5 -0
  317. package/src/core/model/reactive/js/compileReactiveToJS.d.ts +22 -0
  318. package/src/core/model/reactive/js/compileReactiveToJS.d.ts.map +1 -1
  319. package/src/core/model/reactive/js/compileReactiveToJS.js +113 -219
  320. package/src/core/model/reactive/model/ReactiveBinaryExpression.d.ts.map +1 -1
  321. package/src/core/model/reactive/model/ReactiveBinaryExpression.js +8 -2
  322. package/src/core/model/reactive/model/comparative/ReactiveEquals.d.ts.map +1 -1
  323. package/src/core/model/reactive/model/comparative/ReactiveEquals.js +3 -1
  324. package/src/core/model/reactive/model/comparative/ReactiveNotEquals.d.ts.map +1 -1
  325. package/src/core/model/reactive/model/comparative/ReactiveNotEquals.js +2 -1
  326. package/src/core/model/reactive/model/terminal/ReactiveLiteralString.d.ts.map +1 -1
  327. package/src/core/model/reactive/model/terminal/ReactiveLiteralString.js +4 -2
  328. package/src/core/model/stat/Stat.d.ts.map +1 -1
  329. package/src/core/model/stat/Stat.js +4 -0
  330. package/src/core/parser/seedVariablesIntoTemplateString.d.ts.map +1 -1
  331. package/src/core/parser/seedVariablesIntoTemplateString.js +5 -0
  332. package/src/core/parser/simple/readArrayLiteral.d.ts.map +1 -1
  333. package/src/core/parser/simple/readArrayLiteral.js +7 -0
  334. package/src/core/parser/simple/readHexToken.d.ts +3 -0
  335. package/src/core/parser/simple/readHexToken.d.ts.map +1 -1
  336. package/src/core/parser/simple/readHexToken.js +39 -106
  337. package/src/core/parser/simple/readNumberToken.d.ts.map +1 -1
  338. package/src/core/parser/simple/readNumberToken.js +13 -4
  339. package/src/core/parser/simple/readUnsignedIntegerToken.d.ts +2 -0
  340. package/src/core/parser/simple/readUnsignedIntegerToken.d.ts.map +1 -1
  341. package/src/core/parser/simple/readUnsignedIntegerToken.js +31 -71
  342. package/src/core/parser/simple/read_digits.d.ts +31 -0
  343. package/src/core/parser/simple/read_digits.d.ts.map +1 -0
  344. package/src/core/parser/simple/read_digits.js +74 -0
  345. package/src/core/primitives/numbers/number_format_by_thousands.d.ts.map +1 -1
  346. package/src/core/primitives/numbers/number_format_by_thousands.js +16 -1
  347. package/src/core/primitives/numbers/number_pretty_print.d.ts.map +1 -1
  348. package/src/core/primitives/numbers/number_pretty_print.js +6 -1
  349. package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
  350. package/src/core/process/executor/ConcurrentExecutor.js +36 -0
  351. package/src/core/process/task/Task.d.ts +8 -0
  352. package/src/core/process/task/Task.d.ts.map +1 -1
  353. package/src/core/process/task/Task.js +12 -1
  354. package/src/core/process/task/TaskGroup.d.ts +6 -0
  355. package/src/core/process/task/TaskGroup.d.ts.map +1 -1
  356. package/src/core/process/task/TaskGroup.js +7 -1
  357. package/src/core/process/undo/ActionProcessor.d.ts +12 -0
  358. package/src/core/process/undo/ActionProcessor.d.ts.map +1 -1
  359. package/src/core/process/undo/ActionProcessor.js +41 -15
  360. package/src/core/process/worker/OnDemandWorkerManager.d.ts.map +1 -1
  361. package/src/core/process/worker/OnDemandWorkerManager.js +6 -1
  362. package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
  363. package/src/core/process/worker/WorkerBuilder.js +27 -5
  364. package/src/engine/Clock.d.ts.map +1 -1
  365. package/src/engine/Clock.js +11 -0
  366. package/src/engine/Engine.d.ts.map +1 -1
  367. package/src/engine/Engine.js +107 -6
  368. package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
  369. package/src/engine/achievements/AchievementManager.js +16 -1
  370. package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts.map +1 -1
  371. package/src/engine/animation/clip/ecd_bind_animation_curve.js +17 -6
  372. package/src/engine/animation/clip/hemisphere_align_quaternion_values.d.ts +19 -10
  373. package/src/engine/animation/clip/hemisphere_align_quaternion_values.d.ts.map +1 -1
  374. package/src/engine/animation/clip/hemisphere_align_quaternion_values.js +19 -23
  375. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts +1 -1
  376. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
  377. package/src/engine/animation/keyed2/AnimationTrackPlayback.js +21 -4
  378. package/src/engine/asset/AssetManager.d.ts.map +1 -1
  379. package/src/engine/asset/AssetManager.js +11 -3
  380. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +1 -0
  381. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -1
  382. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts +28 -0
  383. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts.map +1 -1
  384. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.js +14 -0
  385. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +23 -2
  386. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
  387. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +2122 -2078
  388. package/src/engine/ecs/Entity.d.ts.map +1 -1
  389. package/src/engine/ecs/Entity.js +43 -7
  390. package/src/engine/ecs/EntityBlueprint.d.ts.map +1 -1
  391. package/src/engine/ecs/EntityBlueprint.js +13 -4
  392. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  393. package/src/engine/ecs/EntityComponentDataset.js +95 -9
  394. package/src/engine/ecs/EntityManager.d.ts +16 -0
  395. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  396. package/src/engine/ecs/EntityManager.js +112 -37
  397. package/src/engine/ecs/EntityObserver.d.ts +7 -0
  398. package/src/engine/ecs/EntityObserver.d.ts.map +1 -1
  399. package/src/engine/ecs/EntityObserver.js +8 -1
  400. package/src/engine/ecs/System.d.ts +23 -0
  401. package/src/engine/ecs/System.d.ts.map +1 -1
  402. package/src/engine/ecs/System.js +25 -0
  403. package/src/engine/ecs/components/Tag.d.ts.map +1 -1
  404. package/src/engine/ecs/components/Tag.js +4 -1
  405. package/src/engine/ecs/computeComponentClassName.d.ts +13 -1
  406. package/src/engine/ecs/computeComponentClassName.d.ts.map +1 -1
  407. package/src/engine/ecs/computeComponentClassName.js +11 -1
  408. package/src/engine/ecs/dynamic_actions/DynamicActorSystem.d.ts.map +1 -1
  409. package/src/engine/ecs/dynamic_actions/DynamicActorSystem.js +11 -0
  410. package/src/engine/ecs/fow/FogOfWar.d.ts.map +1 -1
  411. package/src/engine/ecs/fow/FogOfWar.js +37 -11
  412. package/src/engine/ecs/parent/EntityNode.d.ts.map +1 -1
  413. package/src/engine/ecs/parent/EntityNode.js +8 -0
  414. package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
  415. package/src/engine/ecs/speaker/VoiceSystem.js +9 -0
  416. package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.d.ts +15 -0
  417. package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.d.ts.map +1 -1
  418. package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.js +18 -0
  419. package/src/engine/ecs/system/AbstractContextSystem.d.ts.map +1 -1
  420. package/src/engine/ecs/system/AbstractContextSystem.js +14 -4
  421. package/src/engine/ecs/system/SystemEntityContext.d.ts +12 -0
  422. package/src/engine/ecs/system/SystemEntityContext.d.ts.map +1 -1
  423. package/src/engine/ecs/system/SystemEntityContext.js +23 -0
  424. package/src/engine/ecs/system_validate_class.d.ts.map +1 -1
  425. package/src/engine/ecs/system_validate_class.js +6 -2
  426. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +37 -8
  427. package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
  428. package/src/engine/ecs/terrain/tiles/TerrainTile.js +45 -3
  429. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  430. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +5 -8
  431. package/src/engine/graphics/ecs/camera/pp/PerfectPanner.d.ts.map +1 -1
  432. package/src/engine/graphics/ecs/camera/pp/PerfectPanner.js +62 -7
  433. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.d.ts +9 -0
  434. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.d.ts.map +1 -1
  435. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.js +13 -0
  436. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationControllerSystem.d.ts +11 -0
  437. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationControllerSystem.d.ts.map +1 -1
  438. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationControllerSystem.js +78 -13
  439. package/src/engine/graphics/ecs/path/tube/build/make_ring_vertices.d.ts.map +1 -1
  440. package/src/engine/graphics/ecs/path/tube/build/make_ring_vertices.js +22 -8
  441. package/src/engine/graphics/geometry/buffered/geometry_compute_vertex_normals_indexed.d.ts.map +1 -1
  442. package/src/engine/graphics/geometry/buffered/geometry_compute_vertex_normals_indexed.js +18 -2
  443. package/src/engine/graphics/geometry/geometry_construct_triangle_normal.d.ts +3 -1
  444. package/src/engine/graphics/geometry/geometry_construct_triangle_normal.d.ts.map +1 -1
  445. package/src/engine/graphics/geometry/geometry_construct_triangle_normal.js +3 -1
  446. package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.d.ts +32 -0
  447. package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.d.ts.map +1 -0
  448. package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.js +53 -0
  449. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +22 -2
  450. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +1 -1
  451. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +1201 -1160
  452. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts +0 -1
  453. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.d.ts.map +1 -1
  454. package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.js +10 -5
  455. package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.d.ts.map +1 -1
  456. package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.js +23 -0
  457. package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.d.ts +1 -1
  458. package/src/engine/graphics/sh3/path_tracer/texture/apply_texture_clamping_to_coordinate.d.ts.map +1 -1
  459. package/src/engine/graphics/sh3/path_tracer/texture/apply_texture_clamping_to_coordinate.js +6 -1
  460. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.d.ts.map +1 -1
  461. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.js +20 -0
  462. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts +1 -0
  463. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts.map +1 -1
  464. package/src/engine/graphics/texture/atlas/TextureAtlas.js +24 -5
  465. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  466. package/src/engine/graphics/texture/sampler/Sampler2D.js +14 -1
  467. package/src/engine/graphics/texture/sampler/sampler2d_sub_copy_same_item_size.d.ts.map +1 -1
  468. package/src/engine/graphics/texture/sampler/sampler2d_sub_copy_same_item_size.js +16 -5
  469. package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.d.ts.map +1 -1
  470. package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.js +29 -8
  471. package/src/engine/graphics/texture/sampler/serialization/TextureBinaryBufferSerializer.d.ts.map +1 -1
  472. package/src/engine/graphics/texture/sampler/serialization/TextureBinaryBufferSerializer.js +8 -3
  473. package/src/engine/graphics3/DecalSystem.d.ts +5 -4
  474. package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
  475. package/src/engine/graphics3/DecalSystem.js +5 -4
  476. package/src/engine/graphics3/GraphicsEngine.d.ts +40 -7
  477. package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
  478. package/src/engine/graphics3/GraphicsEngine.js +92 -7
  479. package/src/engine/graphics3/MeshSystem.d.ts +7 -0
  480. package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
  481. package/src/engine/graphics3/MeshSystem.js +681 -661
  482. package/src/engine/graphics3/ParticleEmitterSystem.d.ts +1 -0
  483. package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +1 -1
  484. package/src/engine/graphics3/ParticleEmitterSystem.js +1 -0
  485. package/src/engine/graphics3/TerrainSystem.d.ts +10 -40
  486. package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -1
  487. package/src/engine/graphics3/TerrainSystem.js +186 -185
  488. package/src/engine/graphics3/Trail3DSystem.d.ts +28 -19
  489. package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
  490. package/src/engine/graphics3/Trail3DSystem.js +57 -64
  491. package/src/engine/graphics3/debug/gizmo_write_geometry.d.ts.map +1 -1
  492. package/src/engine/graphics3/debug/gizmo_write_geometry.js +7 -59
  493. package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
  494. package/src/engine/graphics3/decal/GPUDecalRenderer.js +23 -7
  495. package/src/engine/graphics3/decal/shader_cluster_assign_decals.d.ts.map +1 -1
  496. package/src/engine/graphics3/decal/shader_cluster_assign_decals.js +29 -6
  497. package/src/engine/graphics3/path/tube_stream_write_geometry.d.ts.map +1 -1
  498. package/src/engine/graphics3/path/tube_stream_write_geometry.js +7 -56
  499. package/src/engine/graphics3/register_instance_animation.d.ts +3 -3
  500. package/src/engine/graphics3/register_instance_animation.js +3 -3
  501. package/src/engine/graphics3/terrain/GPUTerrainSplatRenderer.d.ts.map +1 -1
  502. package/src/engine/graphics3/terrain/TERRAIN_MATERIAL_TEMPLATE.d.ts +77 -0
  503. package/src/engine/graphics3/terrain/TERRAIN_MATERIAL_TEMPLATE.d.ts.map +1 -0
  504. package/src/engine/graphics3/terrain/TERRAIN_MATERIAL_TEMPLATE.js +485 -0
  505. package/src/engine/graphics3/terrain/TerrainShadeMaterial.d.ts +103 -0
  506. package/src/engine/graphics3/terrain/TerrainShadeMaterial.d.ts.map +1 -0
  507. package/src/engine/graphics3/terrain/TerrainShadeMaterial.js +130 -0
  508. package/src/engine/graphics3/terrain/chunk_terrain_material_surface.d.ts +23 -0
  509. package/src/engine/graphics3/terrain/chunk_terrain_material_surface.d.ts.map +1 -0
  510. package/src/engine/graphics3/terrain/chunk_terrain_material_surface.js +68 -0
  511. package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts.map +1 -1
  512. package/src/engine/graphics3/trail/trail_tube_write_geometry.js +8 -59
  513. package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts.map +1 -1
  514. package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +10 -0
  515. package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
  516. package/src/engine/input/devices/PointerDevice.js +58 -5
  517. package/src/engine/input/ecs/ism/InputMapProgram.d.ts.map +1 -1
  518. package/src/engine/input/ecs/ism/InputMapProgram.js +13 -0
  519. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts +1 -0
  520. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
  521. package/src/engine/input/ecs/systems/InputControllerSystem.js +52 -2
  522. package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts.map +1 -1
  523. package/src/engine/intelligence/behavior/composite/ParallelBehavior.js +8 -0
  524. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts.map +1 -1
  525. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.js +7 -0
  526. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts.map +1 -1
  527. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.js +14 -0
  528. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts.map +1 -1
  529. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.js +13 -0
  530. package/src/engine/interpolation/InterpolationLog.d.ts +51 -4
  531. package/src/engine/interpolation/InterpolationLog.d.ts.map +1 -1
  532. package/src/engine/interpolation/InterpolationLog.js +132 -2
  533. package/src/engine/interpolation/InterpolationSystem.d.ts +113 -35
  534. package/src/engine/interpolation/InterpolationSystem.d.ts.map +1 -1
  535. package/src/engine/interpolation/InterpolationSystem.js +674 -50
  536. package/src/engine/network/NetworkSession.d.ts +176 -47
  537. package/src/engine/network/NetworkSession.d.ts.map +1 -1
  538. package/src/engine/network/NetworkSession.js +1462 -272
  539. package/src/engine/network/README.md +106 -3
  540. package/src/engine/network/SMOOTHNESS_DESIGN.md +392 -0
  541. package/src/engine/network/adapters/PoseCorrection.d.ts +50 -0
  542. package/src/engine/network/adapters/PoseCorrection.d.ts.map +1 -0
  543. package/src/engine/network/adapters/PoseCorrection.js +211 -0
  544. package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +1 -0
  545. package/src/engine/network/adapters/TransformReplicationAdapter.d.ts.map +1 -1
  546. package/src/engine/network/adapters/TransformReplicationAdapter.js +17 -0
  547. package/src/engine/network/adapters/VelocityCorrection.d.ts +31 -0
  548. package/src/engine/network/adapters/VelocityCorrection.d.ts.map +1 -0
  549. package/src/engine/network/adapters/VelocityCorrection.js +71 -0
  550. package/src/engine/network/adapters/replicate_transform64.d.ts +13 -0
  551. package/src/engine/network/adapters/replicate_transform64.d.ts.map +1 -0
  552. package/src/engine/network/adapters/replicate_transform64.js +18 -0
  553. package/src/engine/network/adapters/rigid_body_of.d.ts +22 -0
  554. package/src/engine/network/adapters/rigid_body_of.d.ts.map +1 -0
  555. package/src/engine/network/adapters/rigid_body_of.js +33 -0
  556. package/src/engine/network/correction/Correction.d.ts +120 -0
  557. package/src/engine/network/correction/Correction.d.ts.map +1 -0
  558. package/src/engine/network/correction/Correction.js +143 -0
  559. package/src/engine/network/ecs/NetworkSystem.d.ts +36 -7
  560. package/src/engine/network/ecs/NetworkSystem.d.ts.map +1 -1
  561. package/src/engine/network/ecs/NetworkSystem.js +49 -7
  562. package/src/engine/network/orchestrator/NetworkPeer.d.ts +50 -1
  563. package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
  564. package/src/engine/network/orchestrator/NetworkPeer.js +143 -10
  565. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +38 -2
  566. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
  567. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +58 -10
  568. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +68 -2
  569. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
  570. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +299 -18
  571. package/src/engine/network/replication/Replicator.d.ts +8 -1
  572. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  573. package/src/engine/network/replication/Replicator.js +50 -6
  574. package/src/engine/network/sim/ActionLog.d.ts +5 -2
  575. package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
  576. package/src/engine/network/sim/ActionLog.js +5 -2
  577. package/src/engine/network/sim/RewindEngine.d.ts.map +1 -1
  578. package/src/engine/network/sim/RewindEngine.js +6 -0
  579. package/src/engine/network/sim/SimActionExecutor.d.ts +48 -3
  580. package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
  581. package/src/engine/network/sim/SimActionExecutor.js +152 -6
  582. package/src/engine/network/sim/SmoothingState.d.ts +54 -2
  583. package/src/engine/network/sim/SmoothingState.d.ts.map +1 -1
  584. package/src/engine/network/sim/SmoothingState.js +107 -3
  585. package/src/engine/network/state/MutationLedger.d.ts.map +1 -1
  586. package/src/engine/network/state/MutationLedger.js +18 -2
  587. package/src/engine/network/state/PredictionHistory.d.ts +67 -0
  588. package/src/engine/network/state/PredictionHistory.d.ts.map +1 -0
  589. package/src/engine/network/state/PredictionHistory.js +145 -0
  590. package/src/engine/network/time/RenderPlayout.d.ts +2 -1
  591. package/src/engine/network/time/RenderPlayout.d.ts.map +1 -1
  592. package/src/engine/network/time/RenderPlayout.js +174 -163
  593. package/src/engine/network/transport/DeferredTransport.d.ts +57 -0
  594. package/src/engine/network/transport/DeferredTransport.d.ts.map +1 -0
  595. package/src/engine/network/transport/DeferredTransport.js +143 -0
  596. package/src/engine/network/transport/LoopbackTransport.d.ts +8 -0
  597. package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -1
  598. package/src/engine/network/transport/LoopbackTransport.js +12 -1
  599. package/src/engine/network/transport/ReliableCommandPipeline.d.ts.map +1 -1
  600. package/src/engine/network/transport/ReliableCommandPipeline.js +20 -0
  601. package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts.map +1 -1
  602. package/src/engine/network/transport/adapters/NodeUDPTransport.js +11 -2
  603. package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -1
  604. package/src/engine/network/transport/adapters/WebTransportTransport.js +8 -1
  605. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts +2 -1
  606. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts.map +1 -1
  607. package/src/engine/network/transport/fragments/FragmentAssembler.js +67 -3
  608. package/src/engine/network/transport/fragments/fragment_send.d.ts +8 -0
  609. package/src/engine/network/transport/fragments/fragment_send.d.ts.map +1 -1
  610. package/src/engine/network/transport/fragments/fragment_send.js +17 -7
  611. package/src/engine/network/transport/fragments/packet_size.d.ts +6 -0
  612. package/src/engine/network/transport/fragments/packet_size.d.ts.map +1 -1
  613. package/src/engine/network/transport/fragments/packet_size.js +6 -0
  614. package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
  615. package/src/engine/physics/ccd/linear_sweep.js +19 -1
  616. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts +7 -3
  617. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
  618. package/src/engine/physics/cloth/ecs/ClothWorld.js +34 -4
  619. package/src/engine/physics/cloth/solver/cloth_self_find.js +17 -0
  620. package/src/engine/physics/contact/ManifoldStore.d.ts +20 -1
  621. package/src/engine/physics/contact/ManifoldStore.d.ts.map +1 -1
  622. package/src/engine/physics/contact/ManifoldStore.js +24 -2
  623. package/src/engine/physics/ecs/PhysicsSystem.d.ts +51 -88
  624. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  625. package/src/engine/physics/ecs/PhysicsSystem.js +82 -217
  626. package/src/engine/physics/ecs/is_sensor.d.ts +24 -0
  627. package/src/engine/physics/ecs/is_sensor.d.ts.map +1 -1
  628. package/src/engine/physics/ecs/is_sensor.js +39 -0
  629. package/src/engine/physics/fluid/ecs/FluidComponent.d.ts +18 -4
  630. package/src/engine/physics/fluid/ecs/FluidComponent.d.ts.map +1 -1
  631. package/src/engine/physics/fluid/ecs/FluidComponent.js +29 -8
  632. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  633. package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +8 -0
  634. package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts.map +1 -1
  635. package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +8 -0
  636. package/src/engine/physics/fluid/solver/NOTES.md +46 -0
  637. package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_scalar.js +1 -1
  638. package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.js +1 -1
  639. package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.js +1 -1
  640. package/src/engine/physics/fluid/solver/v3_grid_apply_advection_forward.js +1 -1
  641. package/src/engine/physics/fluid/solver/v3_grid_apply_scalar_advection.js +1 -1
  642. package/src/engine/physics/fluid/solver/v3_grid_apply_vorticity_confinement.d.ts.map +1 -1
  643. package/src/engine/physics/fluid/solver/v3_grid_apply_vorticity_confinement.js +8 -0
  644. package/src/engine/physics/fluid/solver/v3_grid_compute_divergence.d.ts.map +1 -1
  645. package/src/engine/physics/fluid/solver/v3_grid_compute_divergence.js +8 -0
  646. package/src/engine/physics/fluid/solver/v3_grid_subtract_pressure_gradient.d.ts.map +1 -1
  647. package/src/engine/physics/fluid/solver/v3_grid_subtract_pressure_gradient.js +8 -0
  648. package/src/engine/physics/fluid/solver/v3_mac_advect_scalar.d.ts +5 -0
  649. package/src/engine/physics/fluid/solver/v3_mac_advect_scalar.d.ts.map +1 -1
  650. package/src/engine/physics/fluid/solver/v3_mac_advect_scalar.js +5 -0
  651. package/src/engine/physics/integration/integrate_velocity.d.ts +15 -0
  652. package/src/engine/physics/integration/integrate_velocity.d.ts.map +1 -1
  653. package/src/engine/physics/integration/integrate_velocity.js +15 -0
  654. package/src/engine/physics/island/IslandBuilder.d.ts.map +1 -1
  655. package/src/engine/physics/island/IslandBuilder.js +6 -7
  656. package/src/engine/physics/mls-mpm/MLS_MPM.d.ts.map +1 -1
  657. package/src/engine/physics/mls-mpm/MLS_MPM.js +29 -13
  658. package/src/engine/physics/mls-mpm/mls_mpm_demo_scene.d.ts +29 -0
  659. package/src/engine/physics/mls-mpm/mls_mpm_demo_scene.d.ts.map +1 -0
  660. package/src/engine/physics/mls-mpm/mls_mpm_demo_scene.js +44 -0
  661. package/src/engine/physics/mls-mpm/testMLS_MPM.js +3 -3
  662. package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
  663. package/src/engine/physics/narrowphase/narrowphase_step.js +74 -11
  664. package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -1
  665. package/src/engine/physics/queries/overlap_shape.js +92 -45
  666. package/src/engine/physics/queries/raycast.d.ts.map +1 -1
  667. package/src/engine/physics/queries/raycast.js +55 -43
  668. package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
  669. package/src/engine/physics/queries/shape_cast.js +185 -174
  670. package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -1
  671. package/src/engine/physics/solver/solve_contacts.js +42 -19
  672. package/src/engine/plugin/EnginePluginManager.d.ts +10 -0
  673. package/src/engine/plugin/EnginePluginManager.d.ts.map +1 -1
  674. package/src/engine/plugin/EnginePluginManager.js +54 -1
  675. package/src/engine/plugin/PluginReferenceContext.d.ts.map +1 -1
  676. package/src/engine/plugin/PluginReferenceContext.js +7 -3
  677. package/src/engine/reference/v2/Reference.d.ts +9 -0
  678. package/src/engine/reference/v2/Reference.d.ts.map +1 -1
  679. package/src/engine/reference/v2/Reference.js +39 -2
  680. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  681. package/src/engine/simulation/Ticker.js +20 -1
  682. package/src/engine/sound/ecs/SoundListenerSystem.d.ts +27 -0
  683. package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
  684. package/src/engine/sound/ecs/SoundListenerSystem.js +82 -21
  685. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
  686. package/src/engine/sound/ecs/audio/LiveEmitterSet.js +394 -356
  687. package/src/engine/sound/material/concrete/SoundMaterialComposition.d.ts.map +1 -1
  688. package/src/engine/sound/material/concrete/SoundMaterialComposition.js +54 -17
  689. package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.d.ts.map +1 -1
  690. package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.js +34 -3
  691. package/src/engine/sound/simulation/core/AcousticSolution.d.ts +5 -0
  692. package/src/engine/sound/simulation/core/AcousticSolution.d.ts.map +1 -1
  693. package/src/engine/sound/simulation/core/AcousticSolution.js +5 -0
  694. package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts +8 -0
  695. package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts.map +1 -1
  696. package/src/engine/sound/simulation/definition/AcousticMaterial.js +8 -0
  697. package/src/engine/sound/simulation/probe/probe_visibility_augment.d.ts +6 -4
  698. package/src/engine/sound/simulation/probe/probe_visibility_augment.d.ts.map +1 -1
  699. package/src/engine/sound/simulation/probe/probe_visibility_augment.js +19 -7
  700. package/src/engine/sound/simulation/render/FoaProbeReverbRenderer.d.ts +39 -0
  701. package/src/engine/sound/simulation/render/FoaProbeReverbRenderer.d.ts.map +1 -1
  702. package/src/engine/sound/simulation/render/FoaProbeReverbRenderer.js +130 -1
  703. package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts +3 -2
  704. package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts.map +1 -1
  705. package/src/engine/sound/simulation/render/ProbeReverbRenderer.js +15 -1
  706. package/src/engine/sound/sopra/SopraEngine.d.ts +10 -0
  707. package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -1
  708. package/src/engine/sound/sopra/SopraEngine.js +486 -440
  709. package/src/engine/sound/sopra/runtime/BusGraph.d.ts +29 -0
  710. package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
  711. package/src/engine/sound/sopra/runtime/BusGraph.js +69 -2
  712. package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
  713. package/src/engine/sound/sopra/runtime/EventInstance.js +130 -9
  714. package/src/engine/ui/GUIEngine.d.ts +14 -0
  715. package/src/engine/ui/GUIEngine.d.ts.map +1 -1
  716. package/src/engine/ui/GUIEngine.js +52 -4
  717. package/src/format/image/avif/api/apply_transformations.d.ts +2 -1
  718. package/src/format/image/avif/api/apply_transformations.d.ts.map +1 -1
  719. package/src/format/image/avif/api/apply_transformations.js +129 -120
  720. package/src/format/image/avif/api/convert_to_rgba.d.ts.map +1 -1
  721. package/src/format/image/avif/api/convert_to_rgba.js +35 -2
  722. package/src/format/image/avif/api/decode_image_item.d.ts +2 -1
  723. package/src/format/image/avif/api/decode_image_item.d.ts.map +1 -1
  724. package/src/format/image/avif/api/decode_image_item.js +322 -234
  725. package/src/format/image/avif/av1/decode/decode_av1_still.js +329 -309
  726. package/src/format/image/avif/av1/encode/encode_tile.js +2349 -2331
  727. package/src/format/image/avif/av1/entropy/symbol_cost.d.ts.map +1 -1
  728. package/src/format/image/avif/av1/entropy/symbol_cost.js +86 -76
  729. package/src/format/image/avif/heif/AvifFile.d.ts +11 -0
  730. package/src/format/image/avif/heif/AvifFile.d.ts.map +1 -1
  731. package/src/format/image/avif/heif/AvifFile.js +154 -142
  732. package/src/format/image/avif/heif/find_item_properties.d.ts +23 -0
  733. package/src/format/image/avif/heif/find_item_properties.d.ts.map +1 -0
  734. package/src/format/image/avif/heif/find_item_properties.js +36 -0
  735. package/src/format/image/avif/heif/parse_avif_file.js +6 -3
  736. package/src/format/image/avif/heif/read_item_data.d.ts.map +1 -1
  737. package/src/format/image/avif/heif/read_item_data.js +131 -97
  738. package/src/format/image/jpeg/decodeScan.d.ts.map +1 -1
  739. package/src/format/image/jpeg/decodeScan.js +17 -0
  740. package/src/format/scene/gltf/gltf_parse_container.d.ts.map +1 -1
  741. package/src/format/scene/gltf/gltf_parse_container.js +61 -41
  742. package/src/format/scene/gltf/gltf_read_accessor.d.ts +21 -0
  743. package/src/format/scene/gltf/gltf_read_accessor.d.ts.map +1 -1
  744. package/src/format/scene/gltf/gltf_read_accessor.js +37 -0
  745. package/src/format/scene/usd/usd_compose_transform.d.ts.map +1 -1
  746. package/src/format/scene/usd/usd_compose_transform.js +56 -6
  747. package/src/format/texture/basis/transcode/fit_endpoints.d.ts +6 -0
  748. package/src/format/texture/basis/transcode/fit_endpoints.d.ts.map +1 -1
  749. package/src/format/texture/basis/transcode/fit_endpoints.js +33 -39
  750. package/src/generation/filtering/numeric/CellFilterCache.d.ts +17 -0
  751. package/src/generation/filtering/numeric/CellFilterCache.d.ts.map +1 -1
  752. package/src/generation/filtering/numeric/CellFilterCache.js +36 -3
  753. package/src/generation/grid/actions/ContinuousGridCellActionSetTerrainObstacle.d.ts +9 -0
  754. package/src/generation/grid/actions/ContinuousGridCellActionSetTerrainObstacle.d.ts.map +1 -1
  755. package/src/generation/grid/actions/ContinuousGridCellActionSetTerrainObstacle.js +37 -6
  756. package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.d.ts.map +1 -1
  757. package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.js +8 -21
  758. package/src/generation/grid/actions/grid_obstacle_write_grid_point.d.ts +28 -0
  759. package/src/generation/grid/actions/grid_obstacle_write_grid_point.d.ts.map +1 -0
  760. package/src/generation/grid/actions/grid_obstacle_write_grid_point.js +41 -0
  761. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.d.ts +15 -1
  762. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.d.ts.map +1 -1
  763. package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.js +17 -3
  764. package/src/generation/markers/actions/MarkerNodeProcessingRuleSet.d.ts.map +1 -1
  765. package/src/generation/markers/actions/MarkerNodeProcessingRuleSet.js +16 -1
  766. package/src/generation/placement/action/GridCellActionWriteFilterToLayer.d.ts.map +1 -1
  767. package/src/generation/placement/action/GridCellActionWriteFilterToLayer.js +8 -1
  768. package/src/generation/theme/TerrainTheme.d.ts.map +1 -1
  769. package/src/generation/theme/TerrainTheme.js +20 -1
  770. package/src/shade/RENDERER_CONTRACT.md +48 -6
  771. package/src/shade/descriptor/texture/format/gpu_texture_formats_copy_compatible.d.ts +23 -0
  772. package/src/shade/descriptor/texture/format/gpu_texture_formats_copy_compatible.d.ts.map +1 -0
  773. package/src/shade/descriptor/texture/format/gpu_texture_formats_copy_compatible.js +28 -0
  774. package/src/shade/descriptor/texture/format/gpu_texture_formats_view_compatible.d.ts +25 -0
  775. package/src/shade/descriptor/texture/format/gpu_texture_formats_view_compatible.d.ts.map +1 -0
  776. package/src/shade/descriptor/texture/format/gpu_texture_formats_view_compatible.js +42 -0
  777. package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
  778. package/src/shade/device/ShadeGPUCommandContext.js +874 -857
  779. package/src/shade/device/mock/SoftwareGPUBindGroup.d.ts +38 -1
  780. package/src/shade/device/mock/SoftwareGPUBindGroup.d.ts.map +1 -1
  781. package/src/shade/device/mock/SoftwareGPUBindGroup.js +73 -1
  782. package/src/shade/device/mock/SoftwareGPUBuffer.d.ts.map +1 -1
  783. package/src/shade/device/mock/SoftwareGPUBuffer.js +5 -0
  784. package/src/shade/device/mock/SoftwareGPUCommandBuffer.d.ts +34 -0
  785. package/src/shade/device/mock/SoftwareGPUCommandBuffer.d.ts.map +1 -1
  786. package/src/shade/device/mock/SoftwareGPUCommandBuffer.js +71 -1
  787. package/src/shade/device/mock/SoftwareGPUCommandEncoder.d.ts +15 -0
  788. package/src/shade/device/mock/SoftwareGPUCommandEncoder.d.ts.map +1 -1
  789. package/src/shade/device/mock/SoftwareGPUCommandEncoder.js +109 -1
  790. package/src/shade/device/mock/SoftwareGPUComputePassEncoder.d.ts.map +1 -1
  791. package/src/shade/device/mock/SoftwareGPUComputePassEncoder.js +51 -0
  792. package/src/shade/device/mock/SoftwareGPUDevice.d.ts +5 -1
  793. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  794. package/src/shade/device/mock/SoftwareGPUDevice.js +58 -1
  795. package/src/shade/device/mock/SoftwareGPUPipeline.d.ts +1 -0
  796. package/src/shade/device/mock/SoftwareGPUPipeline.d.ts.map +1 -1
  797. package/src/shade/device/mock/SoftwareGPUPipeline.js +17 -11
  798. package/src/shade/device/mock/SoftwareGPUQueue.d.ts.map +1 -1
  799. package/src/shade/device/mock/SoftwareGPUQueue.js +41 -0
  800. package/src/shade/device/mock/SoftwareGPURenderPassEncoder.d.ts.map +1 -1
  801. package/src/shade/device/mock/SoftwareGPURenderPassEncoder.js +24 -0
  802. package/src/shade/device/mock/SoftwareGPUTexture.d.ts +11 -1
  803. package/src/shade/device/mock/SoftwareGPUTexture.d.ts.map +1 -1
  804. package/src/shade/device/mock/SoftwareGPUTexture.js +45 -8
  805. package/src/shade/device/mock/SoftwareGPUTextureView.d.ts +20 -1
  806. package/src/shade/device/mock/SoftwareGPUTextureView.d.ts.map +1 -1
  807. package/src/shade/device/mock/SoftwareGPUTextureView.js +28 -1
  808. package/src/shade/device/mock/recorded_binding_kind_mismatches.d.ts +20 -0
  809. package/src/shade/device/mock/recorded_binding_kind_mismatches.d.ts.map +1 -0
  810. package/src/shade/device/mock/recorded_binding_kind_mismatches.js +84 -0
  811. package/src/shade/device/mock/texture_copy.d.ts.map +1 -1
  812. package/src/shade/device/mock/texture_copy.js +41 -3
  813. package/src/shade/device/mock/texture_view_resource.d.ts +26 -0
  814. package/src/shade/device/mock/texture_view_resource.d.ts.map +1 -0
  815. package/src/shade/device/mock/texture_view_resource.js +47 -0
  816. package/src/shade/device/timing/GPUTimer.d.ts.map +1 -1
  817. package/src/shade/device/timing/GPUTimer.js +35 -21
  818. package/src/shade/playground/caldera/caldera_format.d.ts +28 -1
  819. package/src/shade/playground/caldera/caldera_format.d.ts.map +1 -1
  820. package/src/shade/playground/caldera/caldera_format.js +37 -0
  821. package/src/shade/playground/caldera/main.js +12 -2
  822. package/src/shade/playground/frame_rate_meter.d.ts +92 -0
  823. package/src/shade/playground/frame_rate_meter.d.ts.map +1 -0
  824. package/src/shade/playground/frame_rate_meter.js +147 -0
  825. package/src/shade/playground/particle_ecs/main.js +53 -7
  826. package/src/shade/playground/particle_ecs/moonlit_environment.js +2 -2
  827. package/src/shade/playground/particle_stats_readback.d.ts +58 -0
  828. package/src/shade/playground/particle_stats_readback.d.ts.map +1 -0
  829. package/src/shade/playground/particle_stats_readback.js +83 -0
  830. package/src/shade/playground/particle_system/main.js +378 -325
  831. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
  832. package/src/shade/playground/skinned_blas_refit/main.js +7 -2
  833. package/src/shade/playground/sponza_path_trace/main.d.ts.map +1 -1
  834. package/src/shade/playground/sponza_path_trace/main.js +398 -393
  835. package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
  836. package/src/shade/playground/volumetrics_froxel/main.js +941 -936
  837. package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
  838. package/src/shade/renderer/GraphicsContext.js +7 -2
  839. package/src/shade/renderer/Renderer.d.ts +47 -1
  840. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  841. package/src/shade/renderer/Renderer.js +224 -27
  842. package/src/shade/renderer/animation/ANIMATION_CLIP_STATE_STRUCT.d.ts +4 -7
  843. package/src/shade/renderer/animation/ANIMATION_CLIP_STATE_STRUCT.d.ts.map +1 -1
  844. package/src/shade/renderer/animation/ANIMATION_CLIP_STATE_STRUCT.js +19 -16
  845. package/src/shade/renderer/animation/ANIMATION_CURVE_HEADER_STRUCT.js +11 -11
  846. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.d.ts +14 -18
  847. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.d.ts.map +1 -1
  848. package/src/shade/renderer/animation/ANIMATION_DATABASE_SPEC.js +95 -24
  849. package/src/shade/renderer/animation/ANIMATION_SKIN_JOINT_STRUCT.d.ts +5 -4
  850. package/src/shade/renderer/animation/ANIMATION_SKIN_JOINT_STRUCT.d.ts.map +1 -1
  851. package/src/shade/renderer/animation/ANIMATION_SKIN_JOINT_STRUCT.js +7 -4
  852. package/src/shade/renderer/animation/ANIMATION_SKIN_STRUCT.d.ts +6 -12
  853. package/src/shade/renderer/animation/ANIMATION_SKIN_STRUCT.d.ts.map +1 -1
  854. package/src/shade/renderer/animation/ANIMATION_SKIN_STRUCT.js +9 -16
  855. package/src/shade/renderer/animation/ANIMATION_TRACK_BINDING_STRUCT.d.ts +6 -5
  856. package/src/shade/renderer/animation/ANIMATION_TRACK_BINDING_STRUCT.d.ts.map +1 -1
  857. package/src/shade/renderer/animation/ANIMATION_TRACK_BINDING_STRUCT.js +12 -5
  858. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +80 -95
  859. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  860. package/src/shade/renderer/animation/GPUAnimationManager.js +371 -606
  861. package/src/shade/renderer/animation/chunk_animation_curve_evaluate.d.ts +10 -14
  862. package/src/shade/renderer/animation/chunk_animation_curve_evaluate.d.ts.map +1 -1
  863. package/src/shade/renderer/animation/chunk_animation_curve_evaluate.js +40 -67
  864. package/src/shade/renderer/animation/chunk_pose_accumulator.d.ts.map +1 -1
  865. package/src/shade/renderer/animation/chunk_pose_accumulator.js +13 -4
  866. package/src/shade/renderer/animation/shader_animation_apply.d.ts +14 -8
  867. package/src/shade/renderer/animation/shader_animation_apply.d.ts.map +1 -1
  868. package/src/shade/renderer/animation/shader_animation_apply.js +129 -128
  869. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +2 -2
  870. package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.d.ts +3 -2
  871. package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.d.ts.map +1 -1
  872. package/src/shade/renderer/animation/skinning/SKINNING_BINDING_STRUCT.js +3 -2
  873. package/src/shade/renderer/animation/skinning/shader_skin_matrix_prep.d.ts +12 -7
  874. package/src/shade/renderer/animation/skinning/shader_skin_matrix_prep.d.ts.map +1 -1
  875. package/src/shade/renderer/animation/skinning/shader_skin_matrix_prep.js +107 -104
  876. package/src/shade/renderer/binding/BindingResource.d.ts +36 -1
  877. package/src/shade/renderer/binding/BindingResource.d.ts.map +1 -1
  878. package/src/shade/renderer/binding/BindingResource.js +36 -3
  879. package/src/shade/renderer/binding/BufferBinding.d.ts +8 -0
  880. package/src/shade/renderer/binding/BufferBinding.d.ts.map +1 -1
  881. package/src/shade/renderer/binding/BufferBinding.js +21 -0
  882. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +19 -0
  883. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
  884. package/src/shade/renderer/buffer/table/GPUDatabase.js +114 -1
  885. package/src/shade/renderer/buffer/table/GPUDatabaseDefinition.d.ts +132 -1
  886. package/src/shade/renderer/buffer/table/GPUDatabaseDefinition.d.ts.map +1 -1
  887. package/src/shade/renderer/buffer/table/GPUDatabaseDefinition.js +384 -1
  888. package/src/shade/renderer/buffer/table/GPUDatabaseReadback.d.ts.map +1 -1
  889. package/src/shade/renderer/buffer/table/GPUDatabaseReadback.js +1332 -1323
  890. package/src/shade/renderer/buffer/table/GPUTableLink.d.ts +67 -0
  891. package/src/shade/renderer/buffer/table/GPUTableLink.d.ts.map +1 -0
  892. package/src/shade/renderer/buffer/table/GPUTableLink.js +76 -0
  893. package/src/shade/renderer/buffer/table/GPUTableRange.d.ts +72 -0
  894. package/src/shade/renderer/buffer/table/GPUTableRange.d.ts.map +1 -0
  895. package/src/shade/renderer/buffer/table/GPUTableRange.js +82 -0
  896. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts +106 -5
  897. package/src/shade/renderer/buffer/table/GPUTypedTable.d.ts.map +1 -1
  898. package/src/shade/renderer/buffer/table/GPUTypedTable.js +444 -28
  899. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts.map +1 -1
  900. package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.js +28 -5
  901. package/src/shade/renderer/buffer/table/GPU_DATABASE_NULL.d.ts +14 -0
  902. package/src/shade/renderer/buffer/table/GPU_DATABASE_NULL.d.ts.map +1 -0
  903. package/src/shade/renderer/buffer/table/GPU_DATABASE_NULL.js +13 -0
  904. package/src/shade/renderer/buffer/table/gpu_database_check_links.d.ts +80 -0
  905. package/src/shade/renderer/buffer/table/gpu_database_check_links.d.ts.map +1 -0
  906. package/src/shade/renderer/buffer/table/gpu_database_check_links.js +456 -0
  907. package/src/shade/renderer/buffer/table/gpu_table_field_word.d.ts +17 -0
  908. package/src/shade/renderer/buffer/table/gpu_table_field_word.d.ts.map +1 -0
  909. package/src/shade/renderer/buffer/table/gpu_table_field_word.js +111 -0
  910. package/src/shade/renderer/buffer/table/gpu_table_range_well_formed.d.ts +20 -0
  911. package/src/shade/renderer/buffer/table/gpu_table_range_well_formed.d.ts.map +1 -0
  912. package/src/shade/renderer/buffer/table/gpu_table_range_well_formed.js +27 -0
  913. package/src/shade/renderer/camera/CameraManager.d.ts +11 -0
  914. package/src/shade/renderer/camera/CameraManager.d.ts.map +1 -1
  915. package/src/shade/renderer/camera/CameraManager.js +18 -0
  916. package/src/shade/renderer/create_frame_loop.d.ts +16 -0
  917. package/src/shade/renderer/create_frame_loop.d.ts.map +1 -1
  918. package/src/shade/renderer/create_frame_loop.js +16 -0
  919. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.d.ts +23 -0
  920. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.d.ts.map +1 -1
  921. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.js +27 -32
  922. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.d.ts +9 -7
  923. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.d.ts.map +1 -1
  924. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_heavy.js +16 -108
  925. package/src/shade/renderer/dynamic/DynamicMeshAVBOITChannel.d.ts +135 -0
  926. package/src/shade/renderer/dynamic/DynamicMeshAVBOITChannel.d.ts.map +1 -0
  927. package/src/shade/renderer/dynamic/DynamicMeshAVBOITChannel.js +296 -0
  928. package/src/shade/renderer/dynamic/GPUDynamicMeshRenderer.d.ts +2 -2
  929. package/src/shade/renderer/dynamic/GPUDynamicMeshRenderer.d.ts.map +1 -1
  930. package/src/shade/renderer/dynamic/GPUDynamicMeshRenderer.js +10 -131
  931. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts.map +1 -1
  932. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +185 -167
  933. package/src/shade/renderer/dynamic/GPUDynamicMeshResidencyTable.d.ts +49 -0
  934. package/src/shade/renderer/dynamic/GPUDynamicMeshResidencyTable.d.ts.map +1 -0
  935. package/src/shade/renderer/dynamic/GPUDynamicMeshResidencyTable.js +185 -0
  936. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts +24 -0
  937. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts.map +1 -0
  938. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.js +49 -0
  939. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_vertex.d.ts +18 -0
  940. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_vertex.d.ts.map +1 -0
  941. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_vertex.js +54 -0
  942. package/src/shade/renderer/dynamic/dynamic_mesh_live_bounds.d.ts +26 -0
  943. package/src/shade/renderer/dynamic/dynamic_mesh_live_bounds.d.ts.map +1 -0
  944. package/src/shade/renderer/dynamic/dynamic_mesh_live_bounds.js +96 -0
  945. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts +102 -0
  946. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts.map +1 -0
  947. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.js +364 -0
  948. package/src/shade/renderer/dynamic/shader_dynamic_mesh.d.ts.map +1 -1
  949. package/src/shade/renderer/dynamic/shader_dynamic_mesh.js +153 -177
  950. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts +20 -0
  951. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts.map +1 -0
  952. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js +136 -0
  953. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_occupancy.d.ts +20 -0
  954. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_occupancy.d.ts.map +1 -0
  955. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_occupancy.js +106 -0
  956. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts +32 -0
  957. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts.map +1 -0
  958. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.js +163 -0
  959. package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +13 -2
  960. package/src/shade/renderer/fow/GPUFogOfWarRenderer.d.ts.map +1 -1
  961. package/src/shade/renderer/fow/GPUFogOfWarRenderer.js +5 -14
  962. package/src/shade/renderer/fow/fow_obtain_mask.d.ts +17 -0
  963. package/src/shade/renderer/fow/fow_obtain_mask.d.ts.map +1 -0
  964. package/src/shade/renderer/fow/fow_obtain_mask.js +41 -0
  965. package/src/shade/renderer/frame_jitter_applies.d.ts +21 -0
  966. package/src/shade/renderer/frame_jitter_applies.d.ts.map +1 -0
  967. package/src/shade/renderer/frame_jitter_applies.js +23 -0
  968. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
  969. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +128 -3
  970. package/src/shade/renderer/geometry/geometry_obtain_attribute.d.ts +42 -0
  971. package/src/shade/renderer/geometry/geometry_obtain_attribute.d.ts.map +1 -0
  972. package/src/shade/renderer/geometry/geometry_obtain_attribute.js +83 -0
  973. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts +12 -0
  974. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
  975. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +65 -0
  976. package/src/shade/renderer/geometry/meshlet/build/geometry_to_meshlets_greedy.d.ts.map +1 -1
  977. package/src/shade/renderer/geometry/meshlet/build/geometry_to_meshlets_greedy.js +4 -1
  978. package/src/shade/renderer/geometry/meshlet/build/meshoptimizer/geometry_to_meshlets_meshoptimizer.d.ts.map +1 -1
  979. package/src/shade/renderer/geometry/meshlet/build/meshoptimizer/geometry_to_meshlets_meshoptimizer.js +4 -1
  980. package/src/shade/renderer/geometry/normals/encode_normals_to_octahedral_u32.d.ts.map +1 -1
  981. package/src/shade/renderer/geometry/normals/encode_normals_to_octahedral_u32.js +4 -1
  982. package/src/shade/renderer/geometry/normals/geometry_build_tangents.d.ts.map +1 -1
  983. package/src/shade/renderer/geometry/normals/geometry_build_tangents.js +39 -1
  984. package/src/shade/renderer/geometry/util/geometry_merge.d.ts.map +1 -1
  985. package/src/shade/renderer/geometry/util/geometry_merge.js +18 -2
  986. package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_DESIGN.md +77 -39
  987. package/src/shade/renderer/geometry/virtual/build/gltf/gltf_collect_geometries.d.ts.map +1 -1
  988. package/src/shade/renderer/geometry/virtual/build/gltf/gltf_collect_geometries.js +31 -2
  989. package/src/shade/renderer/geometry/virtual/build/level/VGeoFrontier.d.ts +18 -0
  990. package/src/shade/renderer/geometry/virtual/build/level/VGeoFrontier.d.ts.map +1 -1
  991. package/src/shade/renderer/geometry/virtual/build/level/VGeoFrontier.js +19 -0
  992. package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupStep.d.ts +8 -0
  993. package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupStep.d.ts.map +1 -1
  994. package/src/shade/renderer/geometry/virtual/build/level/VGeoGroupStep.js +9 -0
  995. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.d.ts.map +1 -1
  996. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.js +10 -1
  997. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.d.ts.map +1 -1
  998. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.js +4 -0
  999. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_levels.d.ts.map +1 -1
  1000. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_levels.js +12 -0
  1001. package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.d.ts.map +1 -1
  1002. package/src/shade/renderer/geometry/virtual/format/read/VGeoContainerReader.js +10 -1
  1003. package/src/shade/renderer/geometry/virtual/format/read/vgeo_read_page.js +21 -0
  1004. package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.d.ts.map +1 -1
  1005. package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.js +33 -1
  1006. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.d.ts.map +1 -1
  1007. package/src/shade/renderer/geometry/virtual/runtime/VGeoPageFetcher.js +63 -2
  1008. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.d.ts +17 -0
  1009. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.d.ts.map +1 -1
  1010. package/src/shade/renderer/geometry/virtual/runtime/VGeoViewCut.js +39 -0
  1011. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts.map +1 -1
  1012. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js +7 -0
  1013. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v1/chunk_brick4_sh3_color_decode.d.ts.map +1 -1
  1014. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v1/chunk_brick4_sh3_color_decode.js +23 -2
  1015. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v1/chunk_brick4_sh3_color_decode_from_storage.d.ts.map +1 -1
  1016. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v1/chunk_brick4_sh3_color_decode_from_storage.js +22 -1
  1017. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v1/chunk_brick4_sh3_color_encode.d.ts.map +1 -1
  1018. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v1/chunk_brick4_sh3_color_encode.js +23 -2
  1019. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v1/chunk_brick4_sh3_color_encode_to_storage.d.ts.map +1 -1
  1020. package/src/shade/renderer/global_illumination/brick4/gpu/encoding/v1/chunk_brick4_sh3_color_encode_to_storage.js +22 -1
  1021. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts +2 -1
  1022. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
  1023. package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +12 -53
  1024. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
  1025. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +2 -1
  1026. package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_atlas_patch_texel_coord.d.ts +17 -0
  1027. package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_atlas_patch_texel_coord.d.ts.map +1 -0
  1028. package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_atlas_patch_texel_coord.js +38 -0
  1029. package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_atlas_read_patch_texel.d.ts.map +1 -1
  1030. package/src/shade/renderer/global_illumination/probe/octahedral/sample/chunk_lpv_atlas_read_patch_texel.js +16 -10
  1031. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts +1 -1
  1032. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts.map +1 -1
  1033. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.js +25 -14
  1034. package/src/shade/renderer/gpu_primitive/indirect/NOTES.md +94 -0
  1035. package/src/shade/renderer/gpu_primitive/indirect/WEBGPU_GUARANTEED_MAX_COMPUTE_WORKGROUPS_PER_DIMENSION.d.ts +10 -7
  1036. package/src/shade/renderer/gpu_primitive/indirect/WEBGPU_GUARANTEED_MAX_COMPUTE_WORKGROUPS_PER_DIMENSION.d.ts.map +1 -1
  1037. package/src/shade/renderer/gpu_primitive/indirect/WEBGPU_GUARANTEED_MAX_COMPUTE_WORKGROUPS_PER_DIMENSION.js +10 -7
  1038. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  1039. package/src/shade/renderer/light/GPULightCollection.js +22 -1
  1040. package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.d.ts.map +1 -1
  1041. package/src/shade/renderer/light/LIGHT_DATABASE_SPEC.js +26 -0
  1042. package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.d.ts +21 -0
  1043. package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.d.ts.map +1 -0
  1044. package/src/shade/renderer/light/cluster/chunk_cluster_keep_smallest.js +47 -0
  1045. package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.d.ts.map +1 -1
  1046. package/src/shade/renderer/light/cluster/shader_cluster_assign_lights.js +12 -8
  1047. package/src/shade/renderer/light/environment/equirectangular_zenith_first_direction_to_uv.d.ts +36 -0
  1048. package/src/shade/renderer/light/environment/equirectangular_zenith_first_direction_to_uv.d.ts.map +1 -0
  1049. package/src/shade/renderer/light/environment/equirectangular_zenith_first_direction_to_uv.js +41 -0
  1050. package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts.map +1 -1
  1051. package/src/shade/renderer/light/environment/execute_filter_environment_map.js +17 -1
  1052. package/src/shade/renderer/light/environment/octahedral_uv_to_direction.d.ts +5 -13
  1053. package/src/shade/renderer/light/environment/octahedral_uv_to_direction.d.ts.map +1 -1
  1054. package/src/shade/renderer/light/environment/octahedral_uv_to_direction.js +10 -30
  1055. package/src/shade/renderer/light/environment/octahedral_z_pole_uv_to_direction.d.ts +31 -0
  1056. package/src/shade/renderer/light/environment/octahedral_z_pole_uv_to_direction.d.ts.map +1 -0
  1057. package/src/shade/renderer/light/environment/octahedral_z_pole_uv_to_direction.js +45 -0
  1058. package/src/shade/renderer/light/environment/resample_cube_to_octahedral.js +2 -2
  1059. package/src/shade/renderer/light/environment/resample_equirectangular_to_octahedral.d.ts.map +1 -1
  1060. package/src/shade/renderer/light/environment/resample_equirectangular_to_octahedral.js +11 -8
  1061. package/src/shade/renderer/light/model/SpotLight.d.ts +10 -1
  1062. package/src/shade/renderer/light/model/SpotLight.d.ts.map +1 -1
  1063. package/src/shade/renderer/light/model/SpotLight.js +11 -3
  1064. package/src/shade/renderer/light/model/io/light_record_directional.d.ts.map +1 -1
  1065. package/src/shade/renderer/light/model/io/light_record_directional.js +3 -1
  1066. package/src/shade/renderer/light/model/io/light_record_point.d.ts.map +1 -1
  1067. package/src/shade/renderer/light/model/io/light_record_point.js +3 -1
  1068. package/src/shade/renderer/light/model/io/light_record_spot.d.ts.map +1 -1
  1069. package/src/shade/renderer/light/model/io/light_record_spot.js +3 -1
  1070. package/src/shade/renderer/loader/gltf/gltf_base_url.d.ts +20 -0
  1071. package/src/shade/renderer/loader/gltf/gltf_base_url.d.ts.map +1 -0
  1072. package/src/shade/renderer/loader/gltf/gltf_base_url.js +27 -0
  1073. package/src/shade/renderer/loader/gltf/gltf_create_material.d.ts.map +1 -1
  1074. package/src/shade/renderer/loader/gltf/gltf_create_material.js +50 -10
  1075. package/src/shade/renderer/loader/gltf/load_gltf.d.ts +4 -0
  1076. package/src/shade/renderer/loader/gltf/load_gltf.d.ts.map +1 -1
  1077. package/src/shade/renderer/loader/gltf/load_gltf.js +28 -56
  1078. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  1079. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts.map +1 -1
  1080. package/src/shade/renderer/loader/gltf/tiny-gltf.js +843 -843
  1081. package/src/shade/renderer/material/GPUMaterialContext.d.ts +63 -26
  1082. package/src/shade/renderer/material/GPUMaterialContext.d.ts.map +1 -1
  1083. package/src/shade/renderer/material/GPUMaterialContext.js +255 -390
  1084. package/src/shade/renderer/material/GPUMaterialManager.d.ts +51 -1
  1085. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  1086. package/src/shade/renderer/material/GPUMaterialManager.js +345 -91
  1087. package/src/shade/renderer/material/ShadeMaterial.d.ts +21 -0
  1088. package/src/shade/renderer/material/ShadeMaterial.d.ts.map +1 -1
  1089. package/src/shade/renderer/material/ShadeMaterial.js +31 -0
  1090. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
  1091. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +25 -6
  1092. package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.d.ts +10 -0
  1093. package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.d.ts.map +1 -1
  1094. package/src/shade/renderer/material/standard/SHADING_MATERIAL_RESOURCE_GROUP.js +14 -2
  1095. package/src/shade/renderer/material/standard/STANDARD_MATERIAL_TEMPLATE.d.ts +12 -0
  1096. package/src/shade/renderer/material/standard/STANDARD_MATERIAL_TEMPLATE.d.ts.map +1 -0
  1097. package/src/shade/renderer/material/standard/STANDARD_MATERIAL_TEMPLATE.js +166 -0
  1098. package/src/shade/renderer/material/standard/VT_MATERIAL_TEMPLATE.d.ts +10 -0
  1099. package/src/shade/renderer/material/standard/VT_MATERIAL_TEMPLATE.d.ts.map +1 -0
  1100. package/src/shade/renderer/material/standard/VT_MATERIAL_TEMPLATE.js +141 -0
  1101. package/src/shade/renderer/material/standard/chunk_standard_material_surface.d.ts +29 -0
  1102. package/src/shade/renderer/material/standard/chunk_standard_material_surface.d.ts.map +1 -0
  1103. package/src/shade/renderer/material/standard/chunk_standard_material_surface.js +92 -0
  1104. package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts +74 -28
  1105. package/src/shade/renderer/material/standard/fragment_gbuffer.d.ts.map +1 -1
  1106. package/src/shade/renderer/material/standard/fragment_gbuffer.js +165 -67
  1107. package/src/shade/renderer/material/standard/fragment_gbuffer_vt.d.ts +27 -18
  1108. package/src/shade/renderer/material/standard/fragment_gbuffer_vt.d.ts.map +1 -1
  1109. package/src/shade/renderer/material/standard/fragment_gbuffer_vt.js +70 -91
  1110. package/src/shade/renderer/material/standard/material_gbuffer_vertex.d.ts +9 -6
  1111. package/src/shade/renderer/material/standard/material_gbuffer_vertex.d.ts.map +1 -1
  1112. package/src/shade/renderer/material/standard/material_gbuffer_vertex.js +13 -14
  1113. package/src/shade/renderer/material/template/GPUMaterialServices.d.ts +73 -0
  1114. package/src/shade/renderer/material/template/GPUMaterialServices.d.ts.map +1 -0
  1115. package/src/shade/renderer/material/template/GPUMaterialServices.js +79 -0
  1116. package/src/shade/renderer/material/template/ShadeMaterialTemplate.d.ts +170 -0
  1117. package/src/shade/renderer/material/template/ShadeMaterialTemplate.d.ts.map +1 -0
  1118. package/src/shade/renderer/material/template/ShadeMaterialTemplate.js +234 -0
  1119. package/src/shade/renderer/material/template/chunk_material_surface.d.ts +47 -0
  1120. package/src/shade/renderer/material/template/chunk_material_surface.d.ts.map +1 -0
  1121. package/src/shade/renderer/material/template/chunk_material_surface.js +116 -0
  1122. package/src/shade/renderer/material/template/flat_material_template_spec_support.d.ts +22 -0
  1123. package/src/shade/renderer/material/template/flat_material_template_spec_support.d.ts.map +1 -0
  1124. package/src/shade/renderer/material/template/flat_material_template_spec_support.js +78 -0
  1125. package/src/shade/renderer/material/template/material_metadata_neutral.d.ts +15 -0
  1126. package/src/shade/renderer/material/template/material_metadata_neutral.d.ts.map +1 -0
  1127. package/src/shade/renderer/material/template/material_metadata_neutral.js +46 -0
  1128. package/src/shade/renderer/material/template/material_template_of.d.ts +10 -0
  1129. package/src/shade/renderer/material/template/material_template_of.d.ts.map +1 -0
  1130. package/src/shade/renderer/material/template/material_template_of.js +20 -0
  1131. package/src/shade/renderer/object_property/chunk_write_object_property.d.ts +5 -0
  1132. package/src/shade/renderer/object_property/chunk_write_object_property.d.ts.map +1 -1
  1133. package/src/shade/renderer/object_property/chunk_write_object_property.js +7 -1
  1134. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts +7 -1
  1135. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.d.ts.map +1 -1
  1136. package/src/shade/renderer/object_property/chunk_write_object_property_node3d.js +9 -2
  1137. package/src/shade/renderer/particles/DESIGN.md +7 -0
  1138. package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts.map +1 -1
  1139. package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.js +81 -68
  1140. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +22 -3
  1141. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
  1142. package/src/shade/renderer/particles/isa/ParticleVMISA.js +30 -3
  1143. package/src/shade/renderer/particles/isa/particle_assembly.js +41 -1
  1144. package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts +7 -1
  1145. package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -1
  1146. package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +23 -17
  1147. package/src/shade/renderer/particles/optimizer/pass_allocate_registers.js +1 -1
  1148. package/src/shade/renderer/particles/optimizer/pass_fold_constants.js +10 -9
  1149. package/src/shade/renderer/particles/optimizer/pass_inline_constants.d.ts.map +1 -1
  1150. package/src/shade/renderer/particles/optimizer/pass_inline_constants.js +4 -3
  1151. package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts.map +1 -1
  1152. package/src/shade/renderer/particles/optimizer/pass_narrow_widths.js +1 -1
  1153. package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts.map +1 -1
  1154. package/src/shade/renderer/particles/optimizer/pass_pack_registers.js +12 -4
  1155. package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts.map +1 -1
  1156. package/src/shade/renderer/particles/optimizer/pass_peephole.js +11 -10
  1157. package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts.map +1 -1
  1158. package/src/shade/renderer/particles/optimizer/pass_propagate_copies.js +12 -10
  1159. package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts.map +1 -1
  1160. package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.js +12 -4
  1161. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
  1162. package/src/shade/renderer/particles/runtime/ParticleEmitter.js +7 -0
  1163. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts +4 -0
  1164. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts.map +1 -1
  1165. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +47 -88
  1166. package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts.map +1 -1
  1167. package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.js +22 -68
  1168. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts.map +1 -1
  1169. package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.js +5 -3
  1170. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
  1171. package/src/shade/renderer/particles/vm/ParticleVMReference.js +17 -1
  1172. package/src/shade/renderer/path_tracer/shader/chunk_sample_material_data.d.ts.map +1 -1
  1173. package/src/shade/renderer/path_tracer/shader/chunk_sample_material_data.js +12 -2
  1174. package/src/shade/renderer/postprocess/TemporalJitterSequence.d.ts +44 -0
  1175. package/src/shade/renderer/postprocess/TemporalJitterSequence.d.ts.map +1 -0
  1176. package/src/shade/renderer/postprocess/TemporalJitterSequence.js +104 -0
  1177. package/src/shade/renderer/postprocess/chunk_find_nearest_depth.d.ts +25 -0
  1178. package/src/shade/renderer/postprocess/chunk_find_nearest_depth.d.ts.map +1 -0
  1179. package/src/shade/renderer/postprocess/chunk_find_nearest_depth.js +74 -0
  1180. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.d.ts.map +1 -1
  1181. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.js +19 -4
  1182. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_recombine.d.ts.map +1 -1
  1183. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_recombine.js +12 -1
  1184. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
  1185. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +8 -0
  1186. package/src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.d.ts.map +1 -1
  1187. package/src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.js +18 -3
  1188. package/src/shade/renderer/postprocess/eye/shader_autoexposure_read_histogram.d.ts.map +1 -1
  1189. package/src/shade/renderer/postprocess/eye/shader_autoexposure_read_histogram.js +17 -4
  1190. package/src/shade/renderer/postprocess/gtao/GTAO_CONSTANTS.d.ts +29 -0
  1191. package/src/shade/renderer/postprocess/gtao/GTAO_CONSTANTS.d.ts.map +1 -0
  1192. package/src/shade/renderer/postprocess/gtao/GTAO_CONSTANTS.js +69 -0
  1193. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts +4 -16
  1194. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts.map +1 -1
  1195. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +10 -52
  1196. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.d.ts +0 -16
  1197. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.d.ts.map +1 -1
  1198. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js +23 -55
  1199. package/src/shade/renderer/postprocess/motion_blur/MotionBlur.d.ts +4 -1
  1200. package/src/shade/renderer/postprocess/motion_blur/MotionBlur.d.ts.map +1 -1
  1201. package/src/shade/renderer/postprocess/motion_blur/MotionBlur.js +4 -1
  1202. package/src/shade/renderer/postprocess/motion_blur/chunk_motion_blur_resolution.d.ts +18 -0
  1203. package/src/shade/renderer/postprocess/motion_blur/chunk_motion_blur_resolution.d.ts.map +1 -0
  1204. package/src/shade/renderer/postprocess/motion_blur/chunk_motion_blur_resolution.js +43 -0
  1205. package/src/shade/renderer/postprocess/motion_blur/graph_postprocess_motion_blur.d.ts +5 -1
  1206. package/src/shade/renderer/postprocess/motion_blur/graph_postprocess_motion_blur.d.ts.map +1 -1
  1207. package/src/shade/renderer/postprocess/motion_blur/graph_postprocess_motion_blur.js +12 -2
  1208. package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.d.ts.map +1 -1
  1209. package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.js +33 -6
  1210. package/src/shade/renderer/postprocess/nss/NSS.d.ts +16 -8
  1211. package/src/shade/renderer/postprocess/nss/NSS.d.ts.map +1 -1
  1212. package/src/shade/renderer/postprocess/nss/NSS.js +37 -35
  1213. package/src/shade/renderer/postprocess/nss/chunk_nss_find_nearest_depth.d.ts +2 -2
  1214. package/src/shade/renderer/postprocess/nss/chunk_nss_find_nearest_depth.d.ts.map +1 -1
  1215. package/src/shade/renderer/postprocess/nss/chunk_nss_find_nearest_depth.js +28 -61
  1216. package/src/shade/renderer/postprocess/nss/shader_nss_postprocess.d.ts.map +1 -1
  1217. package/src/shade/renderer/postprocess/nss/shader_nss_postprocess.js +296 -291
  1218. package/src/shade/renderer/postprocess/nss/shader_nss_preprocess.d.ts.map +1 -1
  1219. package/src/shade/renderer/postprocess/nss/shader_nss_preprocess.js +13 -0
  1220. package/src/shade/renderer/postprocess/ssr/SSR.d.ts.map +1 -1
  1221. package/src/shade/renderer/postprocess/ssr/SSR.js +9 -7
  1222. package/src/shade/renderer/postprocess/ssr/depth_max_shader.d.ts +14 -0
  1223. package/src/shade/renderer/postprocess/ssr/depth_max_shader.d.ts.map +1 -1
  1224. package/src/shade/renderer/postprocess/ssr/depth_max_shader.js +53 -25
  1225. package/src/shade/renderer/postprocess/ssr/graph_build_depth_max_pyramid.d.ts +11 -1
  1226. package/src/shade/renderer/postprocess/ssr/graph_build_depth_max_pyramid.d.ts.map +1 -1
  1227. package/src/shade/renderer/postprocess/ssr/graph_build_depth_max_pyramid.js +11 -1
  1228. package/src/shade/renderer/postprocess/ssr/prefilter/NOTES.md +46 -0
  1229. package/src/shade/renderer/postprocess/ssr/prefilter/shader_ssr_prefilter.d.ts.map +1 -1
  1230. package/src/shade/renderer/postprocess/ssr/prefilter/shader_ssr_prefilter.js +7 -0
  1231. package/src/shade/renderer/postprocess/ssr/shader/chunk_ssr_depth_thickness.d.ts +32 -0
  1232. package/src/shade/renderer/postprocess/ssr/shader/chunk_ssr_depth_thickness.d.ts.map +1 -0
  1233. package/src/shade/renderer/postprocess/ssr/shader/chunk_ssr_depth_thickness.js +41 -0
  1234. package/src/shade/renderer/postprocess/ssr/ssr_trace_shader.d.ts.map +1 -1
  1235. package/src/shade/renderer/postprocess/ssr/ssr_trace_shader.js +11 -6
  1236. package/src/shade/renderer/postprocess/taa/TAA.d.ts +13 -4
  1237. package/src/shade/renderer/postprocess/taa/TAA.d.ts.map +1 -1
  1238. package/src/shade/renderer/postprocess/taa/TAA.js +29 -48
  1239. package/src/shade/renderer/postprocess/taa/chunk_taa_tonemap.d.ts +11 -0
  1240. package/src/shade/renderer/postprocess/taa/chunk_taa_tonemap.d.ts.map +1 -1
  1241. package/src/shade/renderer/postprocess/taa/chunk_taa_tonemap.js +25 -4
  1242. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.d.ts +8 -0
  1243. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.d.ts.map +1 -1
  1244. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.js +14 -42
  1245. package/src/shade/renderer/rasterize/RasterizationJob.d.ts +4 -2
  1246. package/src/shade/renderer/rasterize/RasterizationJob.d.ts.map +1 -1
  1247. package/src/shade/renderer/rasterize/RasterizationJob.js +3 -1
  1248. package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts +57 -0
  1249. package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts.map +1 -0
  1250. package/src/shade/renderer/rasterize/TemplatePassDescriptor.js +133 -0
  1251. package/src/shade/renderer/rasterize/bucket/construct_primitive_state.d.ts.map +1 -1
  1252. package/src/shade/renderer/rasterize/bucket/construct_primitive_state.js +17 -0
  1253. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
  1254. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +30 -4
  1255. package/src/shade/renderer/rasterize/bucket/shader_count_meshlets_by_material.d.ts.map +1 -1
  1256. package/src/shade/renderer/rasterize/bucket/shader_count_meshlets_by_material.js +74 -68
  1257. package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.d.ts.map +1 -1
  1258. package/src/shade/renderer/rasterize/bucket/shader_read_out_bucket.js +11 -1
  1259. package/src/shade/renderer/rasterize/bucket/shader_sort_meshlets_by_material.d.ts.map +1 -1
  1260. package/src/shade/renderer/rasterize/bucket/shader_sort_meshlets_by_material.js +70 -64
  1261. package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way.d.ts.map +1 -1
  1262. package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way.js +3 -4
  1263. package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.d.ts.map +1 -1
  1264. package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.js +8 -2
  1265. package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_count_by_rasterization_bucket.d.ts.map +1 -1
  1266. package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_count_by_rasterization_bucket.js +3 -4
  1267. package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.d.ts.map +1 -1
  1268. package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.js +7 -5
  1269. package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_rasterization_bucket_sort.d.ts.map +1 -1
  1270. package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_rasterization_bucket_sort.js +3 -4
  1271. package/src/shade/renderer/rasterize/expand/mesh/shader_mesh_expand_to_meshlets_prefix.d.ts.map +1 -1
  1272. package/src/shade/renderer/rasterize/expand/mesh/shader_mesh_expand_to_meshlets_prefix.js +3 -4
  1273. package/src/shade/renderer/rasterize/expand/mesh/shader_prefix_sum_to_command.d.ts.map +1 -1
  1274. package/src/shade/renderer/rasterize/expand/mesh/shader_prefix_sum_to_command.js +5 -2
  1275. package/src/shade/renderer/rasterize/expand/pass1/filter_meshlets.2-way.compute.d.ts.map +1 -1
  1276. package/src/shade/renderer/rasterize/expand/pass1/filter_meshlets.2-way.compute.js +3 -4
  1277. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.d.ts +20 -0
  1278. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.d.ts.map +1 -1
  1279. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.js +25 -0
  1280. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts.map +1 -1
  1281. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.js +2 -1
  1282. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts.map +1 -1
  1283. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.js +2 -1
  1284. package/src/shade/renderer/rasterize/forward/forward_template_pipeline.d.ts +40 -0
  1285. package/src/shade/renderer/rasterize/forward/forward_template_pipeline.d.ts.map +1 -0
  1286. package/src/shade/renderer/rasterize/forward/forward_template_pipeline.js +86 -0
  1287. package/src/shade/renderer/rasterize/forward/vertex_shader_chunk.d.ts +11 -0
  1288. package/src/shade/renderer/rasterize/forward/vertex_shader_chunk.d.ts.map +1 -1
  1289. package/src/shade/renderer/rasterize/forward/vertex_shader_chunk.js +13 -2
  1290. package/src/shade/renderer/rasterize/native/alpha_tested_pass_resources.d.ts +59 -1
  1291. package/src/shade/renderer/rasterize/native/alpha_tested_pass_resources.d.ts.map +1 -1
  1292. package/src/shade/renderer/rasterize/native/alpha_tested_pass_resources.js +109 -7
  1293. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +16 -1
  1294. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
  1295. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +13 -1
  1296. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +247 -0
  1297. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +20 -2
  1298. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +1 -1
  1299. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_coverage.d.ts +17 -0
  1300. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_coverage.d.ts.map +1 -0
  1301. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_coverage.js +25 -0
  1302. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.d.ts +4 -5
  1303. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.d.ts.map +1 -1
  1304. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.js +7 -6
  1305. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_mark.d.ts +17 -0
  1306. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_mark.d.ts.map +1 -0
  1307. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_mark.js +51 -0
  1308. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_premultiplied_contribution.d.ts +23 -0
  1309. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_premultiplied_contribution.d.ts.map +1 -0
  1310. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_premultiplied_contribution.js +77 -0
  1311. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
  1312. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +16 -20
  1313. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts +8 -2
  1314. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts.map +1 -1
  1315. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.js +57 -43
  1316. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts +8 -2
  1317. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts.map +1 -1
  1318. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.js +57 -43
  1319. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.d.ts.map +1 -1
  1320. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.js +8 -2
  1321. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts +7 -2
  1322. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -1
  1323. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +67 -58
  1324. package/src/shade/renderer/rasterize/native/depth/shadow_rasterization_alpha_tested_pass_descriptor.d.ts +8 -2
  1325. package/src/shade/renderer/rasterize/native/depth/shadow_rasterization_alpha_tested_pass_descriptor.d.ts.map +1 -1
  1326. package/src/shade/renderer/rasterize/native/depth/shadow_rasterization_alpha_tested_pass_descriptor.js +186 -156
  1327. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts +2 -2
  1328. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.d.ts.map +1 -1
  1329. package/src/shade/renderer/rasterize/native/graph_rasterize_meshes_alpha_tested.js +36 -28
  1330. package/src/shade/renderer/rasterize/native/material_draw_indirect.d.ts +14 -12
  1331. package/src/shade/renderer/rasterize/native/material_draw_indirect.d.ts.map +1 -1
  1332. package/src/shade/renderer/rasterize/native/material_draw_indirect.js +29 -23
  1333. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts.map +1 -1
  1334. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +16 -22
  1335. package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.d.ts +33 -0
  1336. package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.d.ts.map +1 -0
  1337. package/src/shade/renderer/rasterize/native/oit/oit_resolve_fragment_body.js +123 -0
  1338. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.d.ts +7 -2
  1339. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.d.ts.map +1 -1
  1340. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +227 -218
  1341. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.d.ts +8 -2
  1342. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.d.ts.map +1 -1
  1343. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.js +112 -180
  1344. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.d.ts +8 -2
  1345. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.d.ts.map +1 -1
  1346. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.js +110 -178
  1347. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.d.ts +7 -2
  1348. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.d.ts.map +1 -1
  1349. package/src/shade/renderer/rasterize/native/viz/viz_rasterization_alpha_tested_pass_descriptor.js +242 -204
  1350. package/src/shade/renderer/restir/reservoir/shader.d.ts.map +1 -1
  1351. package/src/shade/renderer/restir/reservoir/shader.js +27 -1
  1352. package/src/shade/renderer/scene/GPUSceneContext.d.ts +2 -1
  1353. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  1354. package/src/shade/renderer/scene/GPUSceneContext.js +11 -9
  1355. package/src/shade/renderer/scene/SCENE_DATABASE_SPEC.js +22 -0
  1356. package/src/shade/renderer/scene/SceneManager.d.ts +10 -0
  1357. package/src/shade/renderer/scene/SceneManager.d.ts.map +1 -1
  1358. package/src/shade/renderer/scene/SceneManager.js +17 -0
  1359. package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.d.ts.map +1 -1
  1360. package/src/shade/renderer/scene/rows/GPUEntityBoundsReadback.js +164 -144
  1361. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts +10 -0
  1362. package/src/shade/renderer/scene/rows/GPUSceneRows.d.ts.map +1 -1
  1363. package/src/shade/renderer/scene/rows/GPUSceneRows.js +14 -0
  1364. package/src/shade/renderer/scene/serialization/serialize_scene.d.ts.map +1 -1
  1365. package/src/shade/renderer/scene/serialization/serialize_scene.js +2 -6
  1366. package/src/shade/renderer/shader/ComputeShader.d.ts +5 -0
  1367. package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
  1368. package/src/shade/renderer/shader/ComputeShader.js +358 -353
  1369. package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_scattering.d.ts.map +1 -1
  1370. package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_scattering.js +15 -1
  1371. package/src/shade/renderer/shader/chunk/binary/chunk_encode_f16.d.ts +11 -2
  1372. package/src/shade/renderer/shader/chunk/binary/chunk_encode_f16.d.ts.map +1 -1
  1373. package/src/shade/renderer/shader/chunk/binary/chunk_encode_f16.js +33 -13
  1374. package/src/shade/renderer/shader/chunk/brdf/chunk_D_GGX.d.ts.map +1 -1
  1375. package/src/shade/renderer/shader/chunk/brdf/chunk_D_GGX.js +31 -3
  1376. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_decode32_morton2.d.ts +10 -1
  1377. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_decode32_morton2.d.ts.map +1 -1
  1378. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_decode32_morton2.js +23 -8
  1379. package/src/shade/renderer/shader/chunk/camera/chunk_pixel_radius_to_world.d.ts +8 -1
  1380. package/src/shade/renderer/shader/chunk/camera/chunk_pixel_radius_to_world.d.ts.map +1 -1
  1381. package/src/shade/renderer/shader/chunk/camera/chunk_pixel_radius_to_world.js +12 -5
  1382. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_distance_to_ray.d.ts +15 -1
  1383. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_distance_to_ray.d.ts.map +1 -1
  1384. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_distance_to_ray.js +24 -28
  1385. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_distance_to_ray_v2.d.ts +5 -0
  1386. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_distance_to_ray_v2.d.ts.map +1 -1
  1387. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_distance_to_ray_v2.js +18 -13
  1388. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_ray.d.ts.map +1 -1
  1389. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_ray.js +1 -47
  1390. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_raycast.d.ts +10 -0
  1391. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_raycast.d.ts.map +1 -1
  1392. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_raycast.js +23 -8
  1393. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_raycast_positive.d.ts +7 -0
  1394. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_raycast_positive.d.ts.map +1 -1
  1395. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_raycast_positive.js +12 -25
  1396. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_slab_span.d.ts +32 -0
  1397. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_slab_span.d.ts.map +1 -0
  1398. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_slab_span.js +52 -0
  1399. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_view_depth_range.d.ts +20 -0
  1400. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_view_depth_range.d.ts.map +1 -0
  1401. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_view_depth_range.js +42 -0
  1402. package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_octahedral_uv_wrap.d.ts +10 -1
  1403. package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_octahedral_uv_wrap.d.ts.map +1 -1
  1404. package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_octahedral_uv_wrap.js +18 -3
  1405. package/src/shade/renderer/shader/chunk/geometry/quaternion/chunk_quat_encode_u32.d.ts.map +1 -1
  1406. package/src/shade/renderer/shader/chunk/geometry/quaternion/chunk_quat_encode_u32.js +8 -4
  1407. package/src/shade/renderer/shader/chunk/grid/chunk_folded_workgroup_index.d.ts +24 -0
  1408. package/src/shade/renderer/shader/chunk/grid/chunk_folded_workgroup_index.d.ts.map +1 -0
  1409. package/src/shade/renderer/shader/chunk/grid/chunk_folded_workgroup_index.js +36 -0
  1410. package/src/shade/renderer/shader/chunk/grid/chunk_grid3d_to_index.d.ts +6 -0
  1411. package/src/shade/renderer/shader/chunk/grid/chunk_grid3d_to_index.d.ts.map +1 -1
  1412. package/src/shade/renderer/shader/chunk/grid/chunk_grid3d_to_index.js +6 -0
  1413. package/src/shade/renderer/shader/chunk/light/INCIDENT_LIGHT_STRUCT.d.ts.map +1 -1
  1414. package/src/shade/renderer/shader/chunk/light/INCIDENT_LIGHT_STRUCT.js +6 -1
  1415. package/src/shade/renderer/shader/chunk/light/io/chunk_get_spot_light_info.d.ts.map +1 -1
  1416. package/src/shade/renderer/shader/chunk/light/io/chunk_get_spot_light_info.js +6 -1
  1417. package/src/shade/renderer/shader/chunk/material/chunk_albedo_unpremultiply.d.ts +24 -0
  1418. package/src/shade/renderer/shader/chunk/material/chunk_albedo_unpremultiply.d.ts.map +1 -0
  1419. package/src/shade/renderer/shader/chunk/material/chunk_albedo_unpremultiply.js +31 -0
  1420. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg2d.js +2 -2
  1421. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg3d16.js +1 -1
  1422. package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg4d.js +1 -1
  1423. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_validate_hit.d.ts.map +1 -1
  1424. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_validate_hit.js +8 -4
  1425. package/src/shade/renderer/shader/chunk/sdf/chunk_mesh_sdf_soft_shadow.d.ts.map +1 -1
  1426. package/src/shade/renderer/shader/chunk/sdf/chunk_mesh_sdf_soft_shadow.js +17 -3
  1427. package/src/shade/renderer/shader/graph/compute/graph_compute_indirect_pass.d.ts +4 -0
  1428. package/src/shade/renderer/shader/graph/compute/graph_compute_indirect_pass.d.ts.map +1 -1
  1429. package/src/shade/renderer/shader/graph/compute/graph_compute_indirect_pass.js +4 -0
  1430. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts +8 -0
  1431. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
  1432. package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +203 -192
  1433. package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.d.ts.map +1 -1
  1434. package/src/shade/renderer/shader/resource/ShaderResourceGroupDescriptor.js +12 -0
  1435. package/src/shade/renderer/shader/type/WebGPUArray.d.ts.map +1 -1
  1436. package/src/shade/renderer/shader/type/WebGPUArray.js +25 -1
  1437. package/src/shade/renderer/shader/type/queue_typed_buffer_update.d.ts.map +1 -1
  1438. package/src/shade/renderer/shader/type/queue_typed_buffer_update.js +15 -0
  1439. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
  1440. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +10 -9
  1441. package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.d.ts +12 -2
  1442. package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.d.ts.map +1 -1
  1443. package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.js +210 -196
  1444. package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts +10 -3
  1445. package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.d.ts.map +1 -1
  1446. package/src/shade/renderer/shadow/map/csm/shader/shader_csm_caster_range.js +219 -194
  1447. package/src/shade/renderer/shadow/map/shadowmap_budget_carry_over.d.ts +32 -0
  1448. package/src/shade/renderer/shadow/map/shadowmap_budget_carry_over.d.ts.map +1 -0
  1449. package/src/shade/renderer/shadow/map/shadowmap_budget_carry_over.js +47 -0
  1450. package/src/shade/renderer/shadow/vsm/VirtualShadowMap.d.ts.map +1 -1
  1451. package/src/shade/renderer/shadow/vsm/VirtualShadowMap.js +11 -1
  1452. package/src/shade/renderer/texture/ShadeTexture.d.ts +16 -0
  1453. package/src/shade/renderer/texture/ShadeTexture.d.ts.map +1 -1
  1454. package/src/shade/renderer/texture/ShadeTexture.js +17 -0
  1455. package/src/shade/renderer/texture/TextureManager.d.ts +22 -5
  1456. package/src/shade/renderer/texture/TextureManager.d.ts.map +1 -1
  1457. package/src/shade/renderer/texture/TextureManager.js +109 -6
  1458. package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.d.ts.map +1 -1
  1459. package/src/shade/renderer/texture/bindless/GPUBindlessTextureManager.js +8 -2
  1460. package/src/shade/renderer/texture/download_texture_data.d.ts.map +1 -1
  1461. package/src/shade/renderer/texture/download_texture_data.js +12 -4
  1462. package/src/shade/renderer/texture/encode/shader_texture_encode_astc_4x4.d.ts.map +1 -1
  1463. package/src/shade/renderer/texture/encode/shader_texture_encode_astc_4x4.js +66 -63
  1464. package/src/shade/renderer/texture/encode/shader_texture_encode_bc1.d.ts.map +1 -1
  1465. package/src/shade/renderer/texture/encode/shader_texture_encode_bc1.js +63 -60
  1466. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4.d.ts.map +1 -1
  1467. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4.js +79 -76
  1468. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4_snorm.d.ts.map +1 -1
  1469. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4_snorm.js +67 -64
  1470. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5.d.ts.map +1 -1
  1471. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5.js +70 -67
  1472. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5_snorm.d.ts.map +1 -1
  1473. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5_snorm.js +66 -63
  1474. package/src/shade/renderer/texture/encode/shader_texture_encode_bc6h.d.ts.map +1 -1
  1475. package/src/shade/renderer/texture/encode/shader_texture_encode_bc6h.js +65 -62
  1476. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts.map +1 -1
  1477. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.js +61 -58
  1478. package/src/shade/renderer/texture/format/texture_format_from_shade_image.d.ts +7 -1
  1479. package/src/shade/renderer/texture/format/texture_format_from_shade_image.d.ts.map +1 -1
  1480. package/src/shade/renderer/texture/format/texture_format_from_shade_image.js +100 -95
  1481. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.d.ts.map +1 -1
  1482. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +59 -68
  1483. package/src/shade/renderer/texture/mipmaps/filters/mipmap_shader_code_wronski2021.d.ts +30 -1
  1484. package/src/shade/renderer/texture/mipmaps/filters/mipmap_shader_code_wronski2021.d.ts.map +1 -1
  1485. package/src/shade/renderer/texture/mipmaps/filters/mipmap_shader_code_wronski2021.js +37 -20
  1486. package/src/shade/renderer/texture/texture_descriptor_from_texture_shade.js +73 -73
  1487. package/src/shade/renderer/view/ViewManager.d.ts +8 -0
  1488. package/src/shade/renderer/view/ViewManager.d.ts.map +1 -1
  1489. package/src/shade/renderer/view/ViewManager.js +15 -0
  1490. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  1491. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +516 -507
  1492. package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.d.ts.map +1 -1
  1493. package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.js +272 -260
  1494. package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.d.ts.map +1 -1
  1495. package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.js +160 -134
  1496. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts +3 -0
  1497. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  1498. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +243 -62
  1499. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  1500. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +110 -7
  1501. package/src/shade/wgsl/validate_wgsl_source.d.ts.map +1 -1
  1502. package/src/shade/wgsl/validate_wgsl_source.js +57 -0
  1503. package/src/view/asset/AssetLoaderStatusView.d.ts.map +1 -1
  1504. package/src/view/asset/AssetLoaderStatusView.js +8 -0
  1505. package/src/view/common/LabelView.d.ts.map +1 -1
  1506. package/src/view/common/LabelView.js +4 -0
  1507. package/src/view/common/ListView.d.ts +6 -2
  1508. package/src/view/common/ListView.d.ts.map +1 -1
  1509. package/src/view/common/ListView.js +27 -7
  1510. package/src/view/common/TabbedView.d.ts.map +1 -1
  1511. package/src/view/common/TabbedView.js +8 -0
  1512. package/src/view/common/VirtualListView.d.ts.map +1 -1
  1513. package/src/view/common/VirtualListView.js +17 -1
  1514. package/src/view/common/dnd/DropTarget.d.ts.map +1 -1
  1515. package/src/view/common/dnd/DropTarget.js +18 -0
  1516. package/src/view/elements/DropDownSelectionView.d.ts.map +1 -1
  1517. package/src/view/elements/DropDownSelectionView.js +8 -0
  1518. package/src/view/elements/image/SvgImageView.d.ts.map +1 -1
  1519. package/src/view/elements/image/SvgImageView.js +8 -0
  1520. package/src/view/elements/navigation/ViewStack.d.ts.map +1 -1
  1521. package/src/view/elements/navigation/ViewStack.js +4 -0
  1522. package/src/view/elements/notify/NotificationView.d.ts.map +1 -1
  1523. package/src/view/elements/notify/NotificationView.js +4 -0
  1524. package/src/view/elements/progress/segmented/SegmentedResourceBarView.d.ts.map +1 -1
  1525. package/src/view/elements/progress/segmented/SegmentedResourceBarView.js +8 -0
  1526. package/src/view/elements/radial/RadialMenu.d.ts.map +1 -1
  1527. package/src/view/elements/radial/RadialMenu.js +4 -0
  1528. package/src/view/minimap/Minimap.d.ts.map +1 -1
  1529. package/src/view/minimap/Minimap.js +8 -0
  1530. package/src/view/minimap/MinimapCanvasView.d.ts.map +1 -1
  1531. package/src/view/minimap/MinimapCanvasView.js +21 -1
  1532. package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
  1533. package/src/view/minimap/dom/MinimapCameraView.js +232 -220
  1534. package/src/view/minimap/dom/MinimapMarkerView.d.ts.map +1 -1
  1535. package/src/view/minimap/dom/MinimapMarkerView.js +8 -0
  1536. package/src/view/minimap/minimap_focus_area.d.ts +5 -0
  1537. package/src/view/minimap/minimap_focus_area.d.ts.map +1 -1
  1538. package/src/view/minimap/minimap_focus_area.js +22 -0
  1539. package/src/view/tooltip/TooltipManager.d.ts.map +1 -1
  1540. package/src/view/tooltip/TooltipManager.js +16 -4
  1541. package/src/core/geom/3d/atlas/atlas_bench_lib.js +0 -315
  1542. package/src/engine/graphics/ecs/mesh/MeshEvents.d.ts +0 -6
  1543. package/src/engine/graphics/ecs/mesh/MeshEvents.d.ts.map +0 -1
  1544. package/src/engine/graphics/ecs/mesh/MeshEvents.js +0 -16
  1545. package/src/engine/graphics/ecs/mesh/commonObject3DFastMatrixUpdate.d.ts +0 -2
  1546. package/src/engine/graphics/ecs/mesh/commonObject3DFastMatrixUpdate.d.ts.map +0 -1
  1547. package/src/engine/graphics/ecs/mesh/commonObject3DFastMatrixUpdate.js +0 -37
  1548. package/src/engine/graphics/ecs/mesh/copyToVector3.d.ts +0 -8
  1549. package/src/engine/graphics/ecs/mesh/copyToVector3.d.ts.map +0 -1
  1550. package/src/engine/graphics/ecs/mesh/copyToVector3.js +0 -18
  1551. package/src/engine/graphics/ecs/mesh/object3DFastMatrixUpdate.d.ts +0 -6
  1552. package/src/engine/graphics/ecs/mesh/object3DFastMatrixUpdate.d.ts.map +0 -1
  1553. package/src/engine/graphics/ecs/mesh/object3DFastMatrixUpdate.js +0 -18
  1554. package/src/engine/graphics/ecs/mesh/rootObject3DFastMatrixUpdate.d.ts +0 -6
  1555. package/src/engine/graphics/ecs/mesh/rootObject3DFastMatrixUpdate.d.ts.map +0 -1
  1556. package/src/engine/graphics/ecs/mesh/rootObject3DFastMatrixUpdate.js +0 -14
  1557. package/src/engine/graphics/ecs/mesh/setMesh.d.ts +0 -16
  1558. package/src/engine/graphics/ecs/mesh/setMesh.d.ts.map +0 -1
  1559. package/src/engine/graphics/ecs/mesh/setMesh.js +0 -55
  1560. package/src/engine/graphics/ecs/mesh/skeleton/BoneMapping.d.ts +0 -13
  1561. package/src/engine/graphics/ecs/mesh/skeleton/BoneMapping.d.ts.map +0 -1
  1562. package/src/engine/graphics/ecs/mesh/skeleton/BoneMapping.js +0 -99
  1563. package/src/engine/graphics/ecs/mesh/skeleton/HumanoidBoneType.d.ts +0 -25
  1564. package/src/engine/graphics/ecs/mesh/skeleton/HumanoidBoneType.d.ts.map +0 -1
  1565. package/src/engine/graphics/ecs/mesh/skeleton/HumanoidBoneType.js +0 -29
  1566. package/src/engine/graphics/ecs/mesh/updateMeshTransform.d.ts +0 -6
  1567. package/src/engine/graphics/ecs/mesh/updateMeshTransform.d.ts.map +0 -1
  1568. package/src/engine/graphics/ecs/mesh/updateMeshTransform.js +0 -15
  1569. package/src/engine/graphics/ecs/mesh/updateNodeByTransformAndBBB.d.ts +0 -8
  1570. package/src/engine/graphics/ecs/mesh/updateNodeByTransformAndBBB.d.ts.map +0 -1
  1571. package/src/engine/graphics/ecs/mesh/updateNodeByTransformAndBBB.js +0 -14
  1572. package/src/engine/graphics3/terrain/GPUTerrainSplatRenderer.js +0 -481
  1573. package/src/engine/graphics3/terrain/pack_terrain_row_table.js +0 -48
  1574. package/src/engine/graphics3/terrain/shader_terrain_splat.js +0 -215
  1575. package/src/shade/renderer/animation/ANIMATION_BOUND_TRACK_GROUP_STRUCT.js +0 -57
  1576. package/src/shade/renderer/animation/ANIMATION_KEYFRAME_BLOCK_STRUCT.js +0 -50
  1577. package/src/shade/renderer/animation/ANIMATION_SKIN_JOINT_BLOCK_STRUCT.js +0 -62
  1578. package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_CREASE_ANGLE.d.ts +0 -46
  1579. package/src/shade/renderer/geometry/virtual/build/mesh/VGEO_CREASE_ANGLE.d.ts.map +0 -1
@@ -39,36 +39,50 @@
39
39
  * At the end of the call the mesh is cleaned up so that no dangling loops, edges,
40
40
  * or vertices remain in the topology.
41
41
  *
42
- * The return value is the **object-space distance** the surface moved: the largest reading taken at
43
- * any collapse the call performed, a collapse being read by evaluating *each* of its two endpoints'
44
- * accumulated quadrics at the placement the survivor is about to take, each normalized by its own
45
- * weight. Because a survivor inherits its victim's quadric, every such reading is a deviation from
46
- * the mesh as it stood when the call began — not merely from the step before.
47
- *
48
- * **At the collapses, and per endpoint, and both of those are what keep it from diluting.** The
49
- * weight is what makes the value a length ({@link Quadric3#distance}) and it is also a divisor that
50
- * grows every time a vertex absorbs another. A vertex that flattens a spike and then spends the rest
51
- * of the call swallowing the plane around it ends up standing mostly for planes it sits exactly on,
52
- * and a single reading taken at the end divides the spike it destroyed by all of them — measured on
53
- * a unit spike at the centre of a pinned grid, the same spike came back at 0.64 on a 7-vertex grid
54
- * and at 0.040 on a 33-vertex one, which is the reported error falling as the surface grows.
55
- * Reading at every collapse catches the spike while the quadric is still mostly about it. Reading
56
- * the two endpoints apart rather than summed stops a small victim's residual being averaged into a
57
- * large survivor's untouched history, which is that same dilution one collapse at a time.
58
- *
59
- * Nothing is given up by no longer scanning the survivors, and it is a domination rather than a
60
- * coincidence. What the scan would read off a survivor is its *merged* quadric at the placement its
61
- * last collapse chose — and a merged quadric's reading is the weight-weighted mean of its two parts'
62
- * readings at that same point, so it can never exceed the larger of the two this already took there.
63
- * Every value the scan could report is therefore one this maximum has seen or beaten, and the
64
- * maximum holds the earlier and sharper readings besides. A patch consumed entirely, which leaves
65
- * behind a faceless vertex that the cleanup then sweeps, is read at the collapse that consumed it
66
- * instead of in the window between the last collapse and the sweep.
67
- *
68
- * So what comes back is what *this call's* collapses cost. A caller carrying quadrics across calls
69
- * through {@link bt_mesh_simplify_with_quadrics} carries the maximum across them too — and the
70
- * deviation a vertex arrives already carrying is, by construction, a reading that the call which
71
- * placed it there has already returned.
42
+ * The return value is an **upper bound, in object-space distance, on how far the surface moved** —
43
+ * not an estimate of it. That distinction is the whole job: the runtime divides this number by the
44
+ * camera distance and calls the result pixels of error, so wherever it reads low the cut draws a
45
+ * cluster it should have refined and nothing downstream can tell.
46
+ *
47
+ * **It is carried per vertex and composed by the triangle inequality.** Each vertex holds a bound on
48
+ * how far it now sits from the surface the caller started from, zero at the source. A collapse
49
+ * charges what it moved the *surface*, on top of whatever the pair already carried:
50
+ *
51
+ * ```
52
+ * bound[survivor] = max( bound[v1], bound[v2] ) + max over the pair's former positions
53
+ * of their distance to the survivor's one-ring
54
+ * ```
55
+ *
56
+ * **The increment is not how far the vertices went, and that distinction is the whole of it.** A
57
+ * vertex sliding within its own plane moves and the surface does not, and flat geometry is mostly
58
+ * that — charging the movement makes a flat wall refine forever, which is the one thing the
59
+ * refinement metric is not allowed to do (`VIRTUAL_GEOMETRY_DESIGN.md` §4, the flat-wall test that
60
+ * density heuristics were rejected on). Measured: charging movement reported `15.9` where the
61
+ * surface had moved `0.98`, and `41.6` on the same shape with a larger plane around it — the old
62
+ * dilution's mirror image, growing with surface that never moved. Charging the distance from each
63
+ * former position to the geometry now standing in its place is zero for the sliding case by
64
+ * construction, because the former position is still *on* that geometry.
65
+ *
66
+ * Where the one-ring is empty the patch was consumed whole, there is no surface left to measure
67
+ * against, and the movement is the only evidence there is.
68
+ *
69
+ * **Why not the quadric, which is right there and tighter.** Because it is a mean and a mean is
70
+ * never a bound. The quadric's reading at a placement is the weighted average of the squared
71
+ * distances to every plane the vertex stands for, so a vertex that destroyed one feature and stands
72
+ * for a thousand planes it sits exactly on reports the feature divided by all of them. That is not a
73
+ * tuning error and no amount of choosing *when* to read fixes it — measured against the distance the
74
+ * surface actually moved, sampled at the source vertices, the quadric reading came back at 0.34 of
75
+ * it on a closed pyramid, 0.58 on an octahedron and 0.62 on a spike standing off a plane. The
76
+ * quadric still decides **where** the vertex goes, which is what it is good at; it no longer decides
77
+ * what that cost.
78
+ *
79
+ * The price is looseness, and it is real: the bound accumulates the movement of every collapse a
80
+ * vertex has been through rather than measuring the result against the source. It is the trade the
81
+ * metric has to make to be usable as a threshold.
82
+ *
83
+ * A caller that simplifies in several passes hands its own `bounds` array and keeps it across them,
84
+ * which is what makes the accumulation mean anything; each call then returns the largest bound any
85
+ * of *its own* collapses produced.
72
86
  *
73
87
  * `protected_faces` names faces that must still be there when the call returns. Pinning vertices
74
88
  * does not by itself protect the *edges* between them: a collapse elsewhere in the fan can take away
@@ -81,7 +95,8 @@
81
95
  * @param {number} target_face_count Desired face count after simplification.
82
96
  * @param {Set<number>} [restricted_vertices] Vertices that must not move or be removed.
83
97
  * @param {Set<number>} [protected_faces] Faces that must not be removed.
84
- * @returns {number} object-space distance the surface moved, `0` when no collapse was performed
98
+ * @returns {number} an upper bound on the object-space distance the surface moved, `0` when no
99
+ * collapse was performed
85
100
  */
86
101
  export function bt_mesh_simplify(mesh: BinaryTopology, target_face_count: number, restricted_vertices?: Set<number>, protected_faces?: Set<number>): number;
87
102
  /**
@@ -143,13 +158,19 @@ export function bt_mesh_simplify(mesh: BinaryTopology, target_face_count: number
143
158
  * caller that carries no values may still care which corners of the result belong together, and
144
159
  * a set that is not maintained is a set whose ids go stale — corners of one vertex would resolve
145
160
  * to different wedges and every consumer downstream would see a seam that is not there.
146
- * @returns {number} object-space distance the surface moved, `0` when no collapse was performed
161
+ * @param {Float64Array} [bounds] how far each vertex already sits from the surface the caller is
162
+ * measuring against, indexed by vertex id and **mutated in place**. Omitted, every vertex starts
163
+ * on it and the answer is this call's own movement; supplied and kept across calls, the answer
164
+ * accumulates from wherever the caller first started measuring — the same thing `quadratics`
165
+ * does for the placement.
166
+ * @returns {number} an upper bound on the object-space distance the surface moved, `0` when no
167
+ * collapse was performed
147
168
  */
148
169
  export function bt_mesh_simplify_with_quadrics(mesh: BinaryTopology, target_face_count: number, restricted_vertices: Set<number>, protected_faces: Set<number>, quadratics: Quadric3[], attributes?: {
149
170
  values: Float64Array;
150
171
  components: number;
151
172
  quadrics: Float64Array;
152
173
  weights: Float64Array;
153
- } | null, wedges?: BtWedgeSet | null): number;
174
+ } | null, wedges?: BtWedgeSet | null, bounds?: Float64Array): number;
154
175
  import { Quadric3 } from "../../../../quadric/Quadric3.js";
155
176
  //# sourceMappingURL=bt_mesh_simplify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bt_mesh_simplify.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.js"],"names":[],"mappings":"AAw9BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,0EALW,MAAM,wBACN,IAAI,MAAM,CAAC,oBACX,IAAI,MAAM,CAAC,GACT,MAAM,CAwBlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wFA/CW,MAAM,uBACN,IAAI,MAAM,CAAC,mBACX,IAAI,MAAM,CAAC,cA4BX,QAAQ,EAAE,eACV;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAC,GAAC,IAAI,WAS9F,aAAW,IAAI,GAKb,MAAM,CA4MlB;yBA10CwB,iCAAiC"}
1
+ {"version":3,"file":"bt_mesh_simplify.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.js"],"names":[],"mappings":"AAikCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,0EANW,MAAM,wBACN,IAAI,MAAM,CAAC,oBACX,IAAI,MAAM,CAAC,GACT,MAAM,CAyBlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,wFArDW,MAAM,uBACN,IAAI,MAAM,CAAC,mBACX,IAAI,MAAM,CAAC,cA4BX,QAAQ,EAAE,eACV;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAC,GAAC,IAAI,WAS9F,aAAW,IAAI,WAKf,YAAY,GAKV,MAAM,CAgPlB;yBA1+CwB,iCAAiC"}
@@ -1,5 +1,6 @@
1
+ import { bt_edge_count_faces } from "../query/bt_edge_count_faces.js";
1
2
  import { assert } from "../../../../../../assert.js";
2
- import { Uint32Heap } from "../../../../../../collection/heap/Uint32Heap.js";
3
+ import { IndexedFloatMinHeap } from "../../../../../../collection/heap/IndexedFloatMinHeap.js";
3
4
  import { Quadric3 } from "../../../../quadric/Quadric3.js";
4
5
  import { QUADRIC3_SIZE } from "../../../../quadric/QUADRIC3_SIZE.js";
5
6
  import { quadric3_add } from "../../../../quadric/quadric3_add.js";
@@ -8,6 +9,7 @@ import { quadric_attribute_add } from "../../../../quadric/quadric_attribute_add
8
9
  import { quadric_attribute_reduce } from "../../../../quadric/quadric_attribute_reduce.js";
9
10
  import { quadric_attribute_size } from "../../../../quadric/quadric_attribute_size.js";
10
11
  import { quadric_attribute_solve } from "../../../../quadric/quadric_attribute_solve.js";
12
+ import { tri3_closest_point } from "../../../../triangle/tri3_closest_point.js";
11
13
  import { NULL_POINTER } from "../BinaryTopology.js";
12
14
  import { bt_edge_collapse_fold_limit } from "../query/bt_edge_collapse_fold_limit.js";
13
15
  import { bt_edge_collapse_would_fold } from "../query/bt_edge_collapse_would_fold.js";
@@ -28,6 +30,33 @@ const scratch_combined_q = new Quadric3();
28
30
  const scratch_anchor = new Float32Array(3);
29
31
  const scratch_candidate = new Float32Array(3);
30
32
  const scratch_placement = new Float32Array(3);
33
+ const scratch_old_survivor = new Float32Array(3);
34
+ const scratch_old_victim = new Float32Array(3);
35
+ const scratch_fan_a = new Float32Array(3);
36
+ const scratch_fan_b = new Float32Array(3);
37
+ const scratch_fan_c = new Float32Array(3);
38
+ const scratch_closest = new Float64Array(3);
39
+
40
+ /**
41
+ * How near a point has to be to a triangle before it counts as sitting *on* it, as a fraction of the
42
+ * coordinates involved.
43
+ *
44
+ * Vertex coordinates are stored as `float32`, so twenty-four bits of mantissa is all the mesh can
45
+ * say about where its own surface is, and {@link tri3_closest_point} spends a few of them on the two
46
+ * divisions its barycentric solve takes. Below that, a reported distance is not a measurement of the
47
+ * geometry, it is a measurement of the storage — and it cannot be allowed through, because a flat
48
+ * surface has to report **exactly** zero. Not nearly zero: the cut has an explicit zero-error case
49
+ * (`project((s, 0)) === 0`), and the camera-inside-sphere rule that sends a cluster to `+Infinity`
50
+ * is conditioned on `r_e > 0`. A flat cluster carrying `1.6e-14` takes the second path and becomes
51
+ * undrawable at close range, which is the exact bug that convention exists to prevent.
52
+ *
53
+ * `2^-20` rather than `2^-24`, leaving the four bits the solve can lose. On a ten-unit mesh that is
54
+ * a distance of about `1e-5`, some three orders below anything a pixel threshold can see.
55
+ *
56
+ * @readonly
57
+ * @type {number}
58
+ */
59
+ const ON_THE_SURFACE = 2 ** -20;
31
60
 
32
61
  /**
33
62
  * How much of the way to the fold limit a constrained placement is allowed to travel.
@@ -94,39 +123,115 @@ let scratch_dying_loops = new Uint32Array(8);
94
123
  let scratch_attribute_values = new Float64Array(0);
95
124
 
96
125
  /**
97
- * Count the number of still-live faces attached to an edge via its radial loop cycle.
98
- * Orphan loops (whose face was already killed by a prior collapse) are skipped so
99
- * that callers tracking running face totals don't double-decrement.
126
+ * How far `point` sits from the surface still attached to `vertex` — the closest point on any
127
+ * triangle in its one-ring.
128
+ *
129
+ * Every face is visited twice, once per incident edge, and that is left alone: deduplicating means a
130
+ * set per collapse, and a one-ring is a dozen triangles.
100
131
  *
101
132
  * @param {BinaryTopology} mesh
102
- * @param {number} edge_id
103
- * @returns {number}
133
+ * @param {number} vertex
134
+ * @param {ArrayLike<number>} point
135
+ * @returns {number} the distance, or `-1` where the vertex has no surface left at all
104
136
  */
105
- function count_edge_faces(mesh, edge_id) {
106
- const l0 = mesh.edge_read_loop(edge_id);
137
+ function distance_to_vertex_fan(mesh, vertex, point) {
138
+ let edge = mesh.vertex_read_edge(vertex);
107
139
 
108
- if (l0 === NULL_POINTER) {
109
- return 0;
140
+ if (edge === NULL_POINTER) {
141
+ return -1;
110
142
  }
111
143
 
112
144
  const face_pool = mesh.faces;
113
145
 
114
- let count = 0;
115
- let l = l0;
146
+ const start_edge = edge;
147
+
148
+ let nearest_sqr = Number.POSITIVE_INFINITY;
149
+
150
+ // What the coordinates in play are worth, for {@link ON_THE_SURFACE} below. Float32 loses
151
+ // precision in proportion to magnitude, so the threshold has to be stated against the geometry
152
+ // rather than as a distance.
153
+ let scale_sqr = point[0] * point[0] + point[1] * point[1] + point[2] * point[2];
116
154
 
117
155
  do {
118
- const f = mesh.loop_read_face(l);
156
+ const first_loop = mesh.edge_read_loop(edge);
157
+
158
+ let loop = first_loop;
159
+
160
+ while (loop !== NULL_POINTER) {
161
+ const face = mesh.loop_read_face(loop);
162
+
163
+ if (face !== NULL_POINTER && face_pool.is_allocated(face)) {
164
+ const la = mesh.face_read_loop(face);
165
+ const lb = mesh.loop_read_next(la);
166
+ const lc = mesh.loop_read_next(lb);
167
+
168
+ if (mesh.loop_read_next(lc) === la) {
169
+ mesh.vertex_read_coordinate(scratch_fan_a, 0, mesh.loop_read_vertex(la));
170
+ mesh.vertex_read_coordinate(scratch_fan_b, 0, mesh.loop_read_vertex(lb));
171
+ mesh.vertex_read_coordinate(scratch_fan_c, 0, mesh.loop_read_vertex(lc));
172
+
173
+ scale_sqr = Math.max(
174
+ scale_sqr,
175
+ scratch_fan_a[0] * scratch_fan_a[0]
176
+ + scratch_fan_a[1] * scratch_fan_a[1]
177
+ + scratch_fan_a[2] * scratch_fan_a[2],
178
+ scratch_fan_b[0] * scratch_fan_b[0]
179
+ + scratch_fan_b[1] * scratch_fan_b[1]
180
+ + scratch_fan_b[2] * scratch_fan_b[2],
181
+ scratch_fan_c[0] * scratch_fan_c[0]
182
+ + scratch_fan_c[1] * scratch_fan_c[1]
183
+ + scratch_fan_c[2] * scratch_fan_c[2]
184
+ );
185
+
186
+ nearest_sqr = Math.min(nearest_sqr, tri3_closest_point(
187
+ scratch_closest, 0,
188
+ point[0], point[1], point[2],
189
+ scratch_fan_a[0], scratch_fan_a[1], scratch_fan_a[2],
190
+ scratch_fan_b[0], scratch_fan_b[1], scratch_fan_b[2],
191
+ scratch_fan_c[0], scratch_fan_c[1], scratch_fan_c[2]
192
+ ));
193
+ }
194
+ }
119
195
 
120
- if (f !== NULL_POINTER && face_pool.is_allocated(f)) {
121
- count++;
196
+ loop = mesh.loop_read_radial_next(loop);
197
+
198
+ if (loop === first_loop) {
199
+ break;
200
+ }
122
201
  }
123
202
 
124
- l = mesh.loop_read_radial_next(l);
125
- } while (l !== l0 && l !== NULL_POINTER);
203
+ edge = mesh.edge_read_vertex1(edge) === vertex
204
+ ? mesh.edge_read_v1_disk_next(edge)
205
+ : mesh.edge_read_v2_disk_next(edge);
206
+ } while (edge !== start_edge && edge !== NULL_POINTER);
207
+
208
+ if (nearest_sqr === Number.POSITIVE_INFINITY) {
209
+ return -1;
210
+ }
126
211
 
127
- return count;
212
+ if (nearest_sqr <= scale_sqr * ON_THE_SURFACE * ON_THE_SURFACE) {
213
+ return 0;
214
+ }
215
+
216
+ return Math.sqrt(nearest_sqr);
128
217
  }
129
218
 
219
+ /**
220
+ * Distance from the point `from` holds to `(x, y, z)`.
221
+ *
222
+ * @param {ArrayLike<number>} from
223
+ * @param {number} x
224
+ * @param {number} y
225
+ * @param {number} z
226
+ * @returns {number}
227
+ */
228
+ function distance_from(from, x, y, z) {
229
+ const dx = x - from[0];
230
+ const dy = y - from[1];
231
+ const dz = z - from[2];
232
+
233
+ return Math.sqrt(dx * dx + dy * dy + dz * dz);
234
+ }
130
235
  /**
131
236
  * What a collapse of this pair costs with its surviving vertex at `(x, y, z)`.
132
237
  *
@@ -383,7 +488,7 @@ function evaluate_edge_collapse(
383
488
  * @param {Set<number>} restricted_vertices
384
489
  * @param {{values: Float64Array, components: number, quadrics: Float64Array, weights: Float64Array}|null} attributes
385
490
  * @param {BtWedgeSet|null} wedges
386
- * @param {Uint32Heap} heap
491
+ * @param {IndexedFloatMinHeap} heap
387
492
  */
388
493
  function update_neighbor_costs(
389
494
  mesh, survivor, quadratics, restricted_vertices, attributes, wedges, heap
@@ -406,14 +511,14 @@ function update_neighbor_costs(
406
511
  next_e = mesh.edge_read_v2_disk_next(curr_e);
407
512
  }
408
513
 
409
- const idx = heap.find_index_by_id(curr_e);
410
-
411
- if (idx !== -1) {
514
+ // `contains` asserts the id against the queue's own index length, which is the check the
515
+ // keyed lookup actually needs -- a collapse only ever kills edges, so it cannot fail.
516
+ if (heap.contains(curr_e)) {
412
517
  const cost = evaluate_edge_collapse(
413
518
  mesh, curr_e, quadratics, restricted_vertices, attributes, wedges, scratch_target
414
519
  );
415
520
 
416
- heap.__update_score_by_index(idx, cost);
521
+ heap.update(curr_e, cost);
417
522
  }
418
523
 
419
524
  curr_e = next_e;
@@ -1023,36 +1128,50 @@ function collapse_kills_protected_face(mesh, edge_id, protected_faces) {
1023
1128
  * At the end of the call the mesh is cleaned up so that no dangling loops, edges,
1024
1129
  * or vertices remain in the topology.
1025
1130
  *
1026
- * The return value is the **object-space distance** the surface moved: the largest reading taken at
1027
- * any collapse the call performed, a collapse being read by evaluating *each* of its two endpoints'
1028
- * accumulated quadrics at the placement the survivor is about to take, each normalized by its own
1029
- * weight. Because a survivor inherits its victim's quadric, every such reading is a deviation from
1030
- * the mesh as it stood when the call began — not merely from the step before.
1031
- *
1032
- * **At the collapses, and per endpoint, and both of those are what keep it from diluting.** The
1033
- * weight is what makes the value a length ({@link Quadric3#distance}) and it is also a divisor that
1034
- * grows every time a vertex absorbs another. A vertex that flattens a spike and then spends the rest
1035
- * of the call swallowing the plane around it ends up standing mostly for planes it sits exactly on,
1036
- * and a single reading taken at the end divides the spike it destroyed by all of them — measured on
1037
- * a unit spike at the centre of a pinned grid, the same spike came back at 0.64 on a 7-vertex grid
1038
- * and at 0.040 on a 33-vertex one, which is the reported error falling as the surface grows.
1039
- * Reading at every collapse catches the spike while the quadric is still mostly about it. Reading
1040
- * the two endpoints apart rather than summed stops a small victim's residual being averaged into a
1041
- * large survivor's untouched history, which is that same dilution one collapse at a time.
1042
- *
1043
- * Nothing is given up by no longer scanning the survivors, and it is a domination rather than a
1044
- * coincidence. What the scan would read off a survivor is its *merged* quadric at the placement its
1045
- * last collapse chose — and a merged quadric's reading is the weight-weighted mean of its two parts'
1046
- * readings at that same point, so it can never exceed the larger of the two this already took there.
1047
- * Every value the scan could report is therefore one this maximum has seen or beaten, and the
1048
- * maximum holds the earlier and sharper readings besides. A patch consumed entirely, which leaves
1049
- * behind a faceless vertex that the cleanup then sweeps, is read at the collapse that consumed it
1050
- * instead of in the window between the last collapse and the sweep.
1051
- *
1052
- * So what comes back is what *this call's* collapses cost. A caller carrying quadrics across calls
1053
- * through {@link bt_mesh_simplify_with_quadrics} carries the maximum across them too — and the
1054
- * deviation a vertex arrives already carrying is, by construction, a reading that the call which
1055
- * placed it there has already returned.
1131
+ * The return value is an **upper bound, in object-space distance, on how far the surface moved** —
1132
+ * not an estimate of it. That distinction is the whole job: the runtime divides this number by the
1133
+ * camera distance and calls the result pixels of error, so wherever it reads low the cut draws a
1134
+ * cluster it should have refined and nothing downstream can tell.
1135
+ *
1136
+ * **It is carried per vertex and composed by the triangle inequality.** Each vertex holds a bound on
1137
+ * how far it now sits from the surface the caller started from, zero at the source. A collapse
1138
+ * charges what it moved the *surface*, on top of whatever the pair already carried:
1139
+ *
1140
+ * ```
1141
+ * bound[survivor] = max( bound[v1], bound[v2] ) + max over the pair's former positions
1142
+ * of their distance to the survivor's one-ring
1143
+ * ```
1144
+ *
1145
+ * **The increment is not how far the vertices went, and that distinction is the whole of it.** A
1146
+ * vertex sliding within its own plane moves and the surface does not, and flat geometry is mostly
1147
+ * that — charging the movement makes a flat wall refine forever, which is the one thing the
1148
+ * refinement metric is not allowed to do (`VIRTUAL_GEOMETRY_DESIGN.md` §4, the flat-wall test that
1149
+ * density heuristics were rejected on). Measured: charging movement reported `15.9` where the
1150
+ * surface had moved `0.98`, and `41.6` on the same shape with a larger plane around it — the old
1151
+ * dilution's mirror image, growing with surface that never moved. Charging the distance from each
1152
+ * former position to the geometry now standing in its place is zero for the sliding case by
1153
+ * construction, because the former position is still *on* that geometry.
1154
+ *
1155
+ * Where the one-ring is empty the patch was consumed whole, there is no surface left to measure
1156
+ * against, and the movement is the only evidence there is.
1157
+ *
1158
+ * **Why not the quadric, which is right there and tighter.** Because it is a mean and a mean is
1159
+ * never a bound. The quadric's reading at a placement is the weighted average of the squared
1160
+ * distances to every plane the vertex stands for, so a vertex that destroyed one feature and stands
1161
+ * for a thousand planes it sits exactly on reports the feature divided by all of them. That is not a
1162
+ * tuning error and no amount of choosing *when* to read fixes it — measured against the distance the
1163
+ * surface actually moved, sampled at the source vertices, the quadric reading came back at 0.34 of
1164
+ * it on a closed pyramid, 0.58 on an octahedron and 0.62 on a spike standing off a plane. The
1165
+ * quadric still decides **where** the vertex goes, which is what it is good at; it no longer decides
1166
+ * what that cost.
1167
+ *
1168
+ * The price is looseness, and it is real: the bound accumulates the movement of every collapse a
1169
+ * vertex has been through rather than measuring the result against the source. It is the trade the
1170
+ * metric has to make to be usable as a threshold.
1171
+ *
1172
+ * A caller that simplifies in several passes hands its own `bounds` array and keeps it across them,
1173
+ * which is what makes the accumulation mean anything; each call then returns the largest bound any
1174
+ * of *its own* collapses produced.
1056
1175
  *
1057
1176
  * `protected_faces` names faces that must still be there when the call returns. Pinning vertices
1058
1177
  * does not by itself protect the *edges* between them: a collapse elsewhere in the fan can take away
@@ -1065,7 +1184,8 @@ function collapse_kills_protected_face(mesh, edge_id, protected_faces) {
1065
1184
  * @param {number} target_face_count Desired face count after simplification.
1066
1185
  * @param {Set<number>} [restricted_vertices] Vertices that must not move or be removed.
1067
1186
  * @param {Set<number>} [protected_faces] Faces that must not be removed.
1068
- * @returns {number} object-space distance the surface moved, `0` when no collapse was performed
1187
+ * @returns {number} an upper bound on the object-space distance the surface moved, `0` when no
1188
+ * collapse was performed
1069
1189
  */
1070
1190
  export function bt_mesh_simplify(
1071
1191
  mesh,
@@ -1150,7 +1270,13 @@ export function bt_mesh_simplify(
1150
1270
  * caller that carries no values may still care which corners of the result belong together, and
1151
1271
  * a set that is not maintained is a set whose ids go stale — corners of one vertex would resolve
1152
1272
  * to different wedges and every consumer downstream would see a seam that is not there.
1153
- * @returns {number} object-space distance the surface moved, `0` when no collapse was performed
1273
+ * @param {Float64Array} [bounds] how far each vertex already sits from the surface the caller is
1274
+ * measuring against, indexed by vertex id and **mutated in place**. Omitted, every vertex starts
1275
+ * on it and the answer is this call's own movement; supplied and kept across calls, the answer
1276
+ * accumulates from wherever the caller first started measuring — the same thing `quadratics`
1277
+ * does for the placement.
1278
+ * @returns {number} an upper bound on the object-space distance the surface moved, `0` when no
1279
+ * collapse was performed
1154
1280
  */
1155
1281
  export function bt_mesh_simplify_with_quadrics(
1156
1282
  mesh,
@@ -1159,7 +1285,8 @@ export function bt_mesh_simplify_with_quadrics(
1159
1285
  protected_faces,
1160
1286
  quadratics,
1161
1287
  attributes = null,
1162
- wedges = null
1288
+ wedges = null,
1289
+ bounds = null
1163
1290
  ) {
1164
1291
  assert.defined(mesh, 'mesh');
1165
1292
  assert.notNull(mesh, 'mesh');
@@ -1177,13 +1304,21 @@ export function bt_mesh_simplify_with_quadrics(
1177
1304
  let current_face_count = face_pool.count();
1178
1305
 
1179
1306
  /**
1180
- * The largest object-space distance any collapse so far has put the surface from the one the
1181
- * quadrics remember. See {@link bt_mesh_simplify} for why it is a running maximum over the
1182
- * collapses rather than one sweep of the survivors at the end.
1307
+ * The largest bound any collapse so far has produced. See {@link bt_mesh_simplify} for why it is
1308
+ * a bound carried per vertex rather than a reading taken off the quadric.
1183
1309
  * @type {number}
1184
1310
  */
1185
1311
  let deviation = 0;
1186
1312
 
1313
+ /**
1314
+ * Zero for every vertex when the caller is not keeping its own: with nothing carried in, the
1315
+ * surface being measured against is the one this call was handed.
1316
+ * @type {Float64Array}
1317
+ */
1318
+ const deviation_bounds = bounds === null
1319
+ ? new Float64Array(mesh.vertices.size)
1320
+ : bounds;
1321
+
1187
1322
  if (current_face_count <= target_face_count) {
1188
1323
  return 0;
1189
1324
  }
@@ -1205,7 +1340,10 @@ export function bt_mesh_simplify_with_quadrics(
1205
1340
  }
1206
1341
 
1207
1342
  const edge_pool = mesh.edges;
1208
- const heap = new Uint32Heap(edge_pool.size);
1343
+ // Slot capacity as well as id capacity: the heap holds at most one entry per edge, and the
1344
+ // default would start at 64 slots and grow through the initial fill. This is the allocation
1345
+ // `new Uint32Heap(edge_pool.size)` made before the queue changed.
1346
+ const heap = new IndexedFloatMinHeap(edge_pool.size, edge_pool.size);
1209
1347
 
1210
1348
  for (let e = 0; e < edge_pool.size; e++) {
1211
1349
  if (!edge_pool.is_allocated(e)) {
@@ -1234,7 +1372,7 @@ export function bt_mesh_simplify_with_quadrics(
1234
1372
  let iterations = 0;
1235
1373
 
1236
1374
  while (
1237
- !heap.is_empty()
1375
+ heap.size !== 0
1238
1376
  && current_face_count > target_face_count
1239
1377
  && iterations < max_iterations
1240
1378
  ) {
@@ -1287,7 +1425,7 @@ export function bt_mesh_simplify_with_quadrics(
1287
1425
  'the placement a finite collapse price was quoted for must not fold'
1288
1426
  );
1289
1427
 
1290
- const face_deaths = count_edge_faces(mesh, edge_id);
1428
+ const face_deaths = bt_edge_count_faces(mesh, edge_id);
1291
1429
 
1292
1430
  // bt_edge_collapse keeps v1 as the survivor. If v2 is the pinned endpoint,
1293
1431
  // swap the edge's slots so the pinned vertex ends up in the v1 position.
@@ -1302,12 +1440,15 @@ export function bt_mesh_simplify_with_quadrics(
1302
1440
  const target_y = scratch_target[1];
1303
1441
  const target_z = scratch_target[2];
1304
1442
 
1305
- // Priced before the accumulation below, which is the merge that would dilute it, and each
1306
- // endpoint against its own weight for the same reason.
1307
- deviation = Math.max(
1308
- deviation,
1309
- quadratics[pre_survivor].distance(target_x, target_y, target_z),
1310
- quadratics[pre_victim].distance(target_x, target_y, target_z)
1443
+ /*
1444
+ Where the surface is about to stop being, kept because nothing in the mesh will say so
1445
+ afterwards. What it cost is measured below, once there is something to measure against.
1446
+ */
1447
+ mesh.vertex_read_coordinate(scratch_old_survivor, 0, pre_survivor);
1448
+ mesh.vertex_read_coordinate(scratch_old_victim, 0, pre_victim);
1449
+
1450
+ const carried_base = Math.max(
1451
+ deviation_bounds[pre_survivor], deviation_bounds[pre_victim]
1311
1452
  );
1312
1453
 
1313
1454
  // Before the accumulation below, which is what makes the blend fallback weigh the two
@@ -1344,6 +1485,26 @@ export function bt_mesh_simplify_with_quadrics(
1344
1485
  // are still intact.
1345
1486
  current_face_count -= bt_vertex_fuse_duplicate_edges(mesh, survivor);
1346
1487
 
1488
+ // What the collapse cost the surface — see {@link bt_mesh_simplify}. Measured here rather
1489
+ // than before, because the geometry it is measured against is the one the collapse just
1490
+ // produced, and after the fuse rather than before, because a degenerate left in the fan
1491
+ // would be the nearest thing in it.
1492
+ const from_survivor = distance_to_vertex_fan(mesh, survivor, scratch_old_survivor);
1493
+ const from_victim = distance_to_vertex_fan(mesh, survivor, scratch_old_victim);
1494
+
1495
+ const increment = Math.max(
1496
+ from_survivor < 0
1497
+ ? distance_from(scratch_old_survivor, target_x, target_y, target_z)
1498
+ : from_survivor,
1499
+ from_victim < 0
1500
+ ? distance_from(scratch_old_victim, target_x, target_y, target_z)
1501
+ : from_victim
1502
+ );
1503
+
1504
+ deviation_bounds[survivor] = carried_base + increment;
1505
+
1506
+ deviation = Math.max(deviation, deviation_bounds[survivor]);
1507
+
1347
1508
  update_neighbor_costs(
1348
1509
  mesh, survivor, quadratics, restricted_vertices, attributes, wedges, heap
1349
1510
  );
@@ -1 +1 @@
1
- {"version":3,"file":"bt_edge_kill_parallels.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AACH,wEAHW,MAAM,GACJ,MAAM,CAyElB"}
1
+ {"version":3,"file":"bt_edge_kill_parallels.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;GAeG;AACH,wEAHW,MAAM,GACJ,MAAM,CA6DlB"}
@@ -1,6 +1,7 @@
1
1
  import { assert } from "../../../../../../../assert.js";
2
2
  import { NULL_POINTER } from "../../BinaryTopology.js";
3
3
  import { bt_edge_kill } from "./bt_edge_kill.js";
4
+ import { bt_edge_count_faces } from "../../query/bt_edge_count_faces.js";
4
5
 
5
6
  /**
6
7
  * Kill every edge that shares both endpoints with `keep_edge`, leaving `keep_edge`
@@ -59,8 +60,6 @@ export function bt_edge_kill_parallels(mesh, keep_edge) {
59
60
  } while (curr_e !== start_e && curr_e !== NULL_POINTER);
60
61
 
61
62
  const edge_pool = mesh.edges;
62
- const face_pool = mesh.faces;
63
-
64
63
  let faces_killed = 0;
65
64
 
66
65
  for (let i = 0; i < victims.length; i++) {
@@ -71,19 +70,9 @@ export function bt_edge_kill_parallels(mesh, keep_edge) {
71
70
  }
72
71
 
73
72
  // Count still-allocated faces in this edge's radial loop cycle before
74
- // bt_edge_kill drops them. Orphan loops (face already dead) are skipped.
75
- const l0 = mesh.edge_read_loop(e);
76
-
77
- if (l0 !== NULL_POINTER) {
78
- let l = l0;
79
- do {
80
- const f = mesh.loop_read_face(l);
81
- if (f !== NULL_POINTER && face_pool.is_allocated(f)) {
82
- faces_killed++;
83
- }
84
- l = mesh.loop_read_radial_next(l);
85
- } while (l !== l0 && l !== NULL_POINTER);
86
- }
73
+ // bt_edge_kill drops them. Orphan loops (face already dead) are skipped, which is what
74
+ // bt_edge_count_faces does.
75
+ faces_killed += bt_edge_count_faces(mesh, e);
87
76
 
88
77
  bt_edge_kill(mesh, e);
89
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bt_mesh_split_pinched_vertices.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/vertex/bt_mesh_split_pinched_vertices.js"],"names":[],"mappings":"AA+CA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,sEAFa,MAAM,CAsLlB"}
1
+ {"version":3,"file":"bt_mesh_split_pinched_vertices.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/vertex/bt_mesh_split_pinched_vertices.js"],"names":[],"mappings":"AA+CA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,sEAFa,MAAM,CAkMlB"}