@woosh/meep-engine 3.60.3 → 3.60.5

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 (514) hide show
  1. package/CHANGELOG.md +2602 -0
  2. package/CONTRIBUTING.md +7 -0
  3. package/MIGRATION_2_TO_3.md +136 -0
  4. package/SECURITY.md +4 -0
  5. package/editor/EditorCameraNavigation.d.ts +2 -1
  6. package/editor/EditorCameraNavigation.d.ts.map +1 -1
  7. package/editor/EditorCameraNavigation.js +51 -57
  8. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts +3 -0
  9. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts.map +1 -1
  10. package/editor/ecs/component/editors/ecs/Trail3DEditor.js +6 -0
  11. package/package.json +6 -2
  12. package/src/engine/EngineHarness.d.ts +3 -9
  13. package/src/engine/EngineHarness.d.ts.map +1 -1
  14. package/src/engine/EngineHarness.js +6 -8
  15. package/src/engine/graphics/camera/makeOrbitalCameraController.d.ts +9 -6
  16. package/src/engine/graphics/camera/makeOrbitalCameraController.d.ts.map +1 -1
  17. package/src/engine/graphics/camera/makeOrbitalCameraController.js +44 -71
  18. package/src/engine/graphics/camera/orbital/MomentumAxis.d.ts +64 -0
  19. package/src/engine/graphics/camera/orbital/MomentumAxis.d.ts.map +1 -0
  20. package/src/engine/graphics/camera/orbital/MomentumAxis.js +187 -0
  21. package/src/engine/graphics/camera/orbital/OrbitalCameraRig.d.ts +86 -0
  22. package/src/engine/graphics/camera/orbital/OrbitalCameraRig.d.ts.map +1 -0
  23. package/src/engine/graphics/camera/orbital/OrbitalCameraRig.js +319 -0
  24. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts +34 -10
  25. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
  26. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +116 -30
  27. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts +1 -7
  28. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  29. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +1 -37
  30. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.js +1 -2
  31. package/src/engine/graphics/ecs/trail3d/TRAIL3D_FADE_LINEAR.d.ts +14 -0
  32. package/src/engine/graphics/ecs/trail3d/TRAIL3D_FADE_LINEAR.d.ts.map +1 -0
  33. package/src/engine/graphics/ecs/trail3d/TRAIL3D_FADE_LINEAR.js +22 -0
  34. package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts +19 -3
  35. package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts.map +1 -1
  36. package/src/engine/graphics/ecs/trail3d/Trail3D.js +31 -4
  37. package/src/engine/graphics/ecs/trail3d/advance_trail.js +1 -1
  38. package/src/engine/graphics/ecs/water/Water.d.ts +8 -0
  39. package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
  40. package/src/engine/graphics/ecs/water/Water.js +8 -0
  41. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts +5 -5
  42. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts.map +1 -1
  43. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.js +6 -6
  44. package/src/engine/graphics3/WaterSystem.d.ts.map +1 -1
  45. package/src/engine/graphics3/WaterSystem.js +731 -734
  46. package/src/engine/graphics3/decal/DecalTileShader.d.ts +61 -0
  47. package/src/engine/graphics3/decal/DecalTileShader.d.ts.map +1 -0
  48. package/src/engine/graphics3/decal/DecalTileShader.js +138 -0
  49. package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts +10 -4
  50. package/src/engine/graphics3/decal/GPUDecalRenderer.d.ts.map +1 -1
  51. package/src/engine/graphics3/decal/GPUDecalRenderer.js +149 -44
  52. package/src/engine/graphics3/decal/chunk_decal_tile_vertex.d.ts +25 -0
  53. package/src/engine/graphics3/decal/chunk_decal_tile_vertex.d.ts.map +1 -0
  54. package/src/engine/graphics3/decal/chunk_decal_tile_vertex.js +55 -0
  55. package/src/engine/graphics3/decal/graph_gather_decal_tiles.d.ts +22 -0
  56. package/src/engine/graphics3/decal/graph_gather_decal_tiles.d.ts.map +1 -0
  57. package/src/engine/graphics3/decal/graph_gather_decal_tiles.js +70 -0
  58. package/src/engine/graphics3/decal/shader_decal_composite.d.ts +7 -5
  59. package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
  60. package/src/engine/graphics3/decal/shader_decal_composite.js +48 -44
  61. package/src/engine/graphics3/decal/shader_decal_tile_copy.d.ts +12 -0
  62. package/src/engine/graphics3/decal/shader_decal_tile_copy.d.ts.map +1 -0
  63. package/src/engine/graphics3/decal/shader_decal_tile_copy.js +78 -0
  64. package/src/engine/graphics3/decal/shader_gather_decal_tiles.d.ts +11 -0
  65. package/src/engine/graphics3/decal/shader_gather_decal_tiles.d.ts.map +1 -0
  66. package/src/engine/graphics3/decal/shader_gather_decal_tiles.js +80 -0
  67. package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts +10 -0
  68. package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts.map +1 -1
  69. package/src/engine/graphics3/trail/trail_tube_write_geometry.js +13 -1
  70. package/src/engine/input/devices/mouse/MouseEventButtons.d.ts +13 -0
  71. package/src/engine/input/devices/mouse/MouseEventButtons.d.ts.map +1 -0
  72. package/src/engine/input/devices/mouse/MouseEventButtons.js +23 -0
  73. package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts +4 -0
  74. package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts.map +1 -1
  75. package/src/engine/input/ecs/controllers/KeyboardCameraController.js +9 -45
  76. package/src/engine/physics/cloth/ecs/cloth_geodesic.d.ts +2 -2
  77. package/src/engine/physics/cloth/ecs/cloth_geodesic.js +2 -2
  78. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  79. package/src/shade/playground/probe_clipmap/README.md +1 -0
  80. package/src/shade/playground/probe_clipmap/index.html +5 -0
  81. package/src/shade/playground/probe_clipmap/main.d.ts.map +1 -1
  82. package/src/shade/playground/probe_clipmap/main.js +16 -2
  83. package/src/shade/playground/vgeo_scene/README.md +1 -1
  84. package/src/shade/playground/water_refraction/README.md +5 -6
  85. package/src/shade/playground/water_refraction/index.html +1 -1
  86. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  87. package/src/shade/renderer/Renderer.js +7 -5
  88. package/src/shade/renderer/atmosphere/MULTISCATTER_LUT_CONFIG.d.ts +4 -6
  89. package/src/shade/renderer/atmosphere/MULTISCATTER_LUT_CONFIG.d.ts.map +1 -1
  90. package/src/shade/renderer/atmosphere/MULTISCATTER_LUT_CONFIG.js +34 -36
  91. package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.d.ts +1 -1
  92. package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.d.ts.map +1 -1
  93. package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.js +162 -163
  94. package/src/shade/renderer/atmosphere/compute_mie_absorption.d.ts +1 -1
  95. package/src/shade/renderer/atmosphere/compute_mie_absorption.js +1 -1
  96. package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_EARTH.js +1 -1
  97. package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_PARAMETERS_STRUCT.js +1 -1
  98. package/src/shade/renderer/atmosphere/shader_multiscatter_lut.js +164 -164
  99. package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.js +1 -1
  100. package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts +40 -80
  101. package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts.map +1 -1
  102. package/src/shade/renderer/camera/orbital/OrbitalCameraController.js +197 -147
  103. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +3 -3
  104. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +1 -1
  105. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +6 -6
  106. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +1 -1
  107. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
  108. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +4 -4
  109. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +4 -4
  110. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts +2 -1
  111. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.d.ts.map +1 -1
  112. package/src/shade/renderer/geometry/sdf/cards/GPUMeshCardSets.js +18 -1
  113. package/src/shade/renderer/geometry/sdf/cards/mesh_cards_raster_pass_descriptor.js +2 -2
  114. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.d.ts +1 -1
  115. package/src/shade/renderer/geometry/sdf/cards/shader_mesh_cards_histogram.js +1 -1
  116. package/src/shade/renderer/geometry/sdf/chunk_blas_query_band_sdf.d.ts +4 -5
  117. package/src/shade/renderer/geometry/sdf/chunk_blas_query_band_sdf.d.ts.map +1 -1
  118. package/src/shade/renderer/geometry/sdf/chunk_blas_query_band_sdf.js +6 -7
  119. package/src/shade/renderer/geometry/virtual/proxy/vgeo_to_proxy_mesh.d.ts +31 -0
  120. package/src/shade/renderer/geometry/virtual/proxy/vgeo_to_proxy_mesh.d.ts.map +1 -0
  121. package/src/shade/renderer/geometry/virtual/proxy/vgeo_to_proxy_mesh.js +343 -0
  122. package/src/shade/renderer/geometry/virtual/runtime/vgeo_meshlet_metadata_write.d.ts +17 -0
  123. package/src/shade/renderer/geometry/virtual/runtime/vgeo_meshlet_metadata_write.d.ts.map +1 -0
  124. package/src/shade/renderer/geometry/virtual/runtime/vgeo_meshlet_metadata_write.js +29 -0
  125. package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_meshlet_batch.d.ts.map +1 -1
  126. package/src/shade/renderer/geometry/virtual/runtime/vgeo_runtime_meshlet_batch.js +7 -13
  127. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts.map +1 -1
  128. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js +2 -8
  129. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts +5 -5
  130. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.d.ts.map +1 -1
  131. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSceneHolds.js +10 -10
  132. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.d.ts +12 -0
  133. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.d.ts.map +1 -1
  134. package/src/shade/renderer/global_illumination/probe_clipmap/ProbeClipmapSettings.js +22 -0
  135. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts +4 -4
  136. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.d.ts.map +1 -1
  137. package/src/shade/renderer/global_illumination/probe_clipmap/probe/GPUProbeClipmap.js +50 -13
  138. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts +6 -0
  139. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.d.ts.map +1 -1
  140. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP.js +7 -0
  141. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_RESAMPLING.d.ts +13 -0
  142. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_RESAMPLING.d.ts.map +1 -0
  143. package/src/shade/renderer/global_illumination/probe_clipmap/probe/PROBE_CLIPMAP_RESAMPLING.js +13 -0
  144. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.d.ts +17 -0
  145. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.d.ts.map +1 -1
  146. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap.js +20 -0
  147. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts +5 -15
  148. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.d.ts.map +1 -1
  149. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_surface.js +6 -34
  150. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_resampled.d.ts +18 -0
  151. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_resampled.d.ts.map +1 -0
  152. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_resampled.js +42 -0
  153. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_sample_radiance.d.ts.map +1 -1
  154. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_sample_radiance.js +5 -4
  155. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.d.ts +4 -0
  156. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.d.ts.map +1 -1
  157. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_accumulate.js +13 -2
  158. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_resample.d.ts +52 -0
  159. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_resample.d.ts.map +1 -0
  160. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_resample.js +250 -0
  161. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.d.ts.map +1 -1
  162. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_shade.js +1 -7
  163. package/src/shade/renderer/hiz/HZBFootprint.d.ts +14 -0
  164. package/src/shade/renderer/hiz/HZBFootprint.d.ts.map +1 -0
  165. package/src/shade/renderer/hiz/HZBFootprint.js +16 -0
  166. package/src/shade/renderer/hiz/HZB_FOOTPRINT_X.d.ts +10 -0
  167. package/src/shade/renderer/hiz/HZB_FOOTPRINT_X.d.ts.map +1 -0
  168. package/src/shade/renderer/hiz/HZB_FOOTPRINT_X.js +11 -0
  169. package/src/shade/renderer/hiz/HZB_FOOTPRINT_Y.d.ts +10 -0
  170. package/src/shade/renderer/hiz/HZB_FOOTPRINT_Y.d.ts.map +1 -0
  171. package/src/shade/renderer/hiz/HZB_FOOTPRINT_Y.js +11 -0
  172. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts +0 -7
  173. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
  174. package/src/shade/renderer/hiz/HierarchicalZBuffer.js +405 -350
  175. package/src/shade/renderer/hiz/chunk_hzb_footprint_x.d.ts +12 -0
  176. package/src/shade/renderer/hiz/chunk_hzb_footprint_x.d.ts.map +1 -0
  177. package/src/shade/renderer/hiz/chunk_hzb_footprint_x.js +27 -0
  178. package/src/shade/renderer/hiz/chunk_hzb_footprint_y.d.ts +12 -0
  179. package/src/shade/renderer/hiz/chunk_hzb_footprint_y.d.ts.map +1 -0
  180. package/src/shade/renderer/hiz/chunk_hzb_footprint_y.js +27 -0
  181. package/src/shade/renderer/hiz/hzb_footprint_texels.d.ts +14 -0
  182. package/src/shade/renderer/hiz/hzb_footprint_texels.d.ts.map +1 -0
  183. package/src/shade/renderer/hiz/hzb_footprint_texels.js +34 -0
  184. package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts +0 -5
  185. package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts.map +1 -1
  186. package/src/shade/renderer/hiz/shader_hzb_reduce_any.js +37 -57
  187. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0.d.ts +11 -0
  188. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0.d.ts.map +1 -0
  189. package/src/shade/renderer/hiz/{shader_hzb_reduce_mip0_clip.js → shader_hzb_reduce_mip0.js} +120 -111
  190. package/src/shade/renderer/light/environment/environment_level_1_blur_plan.d.ts +39 -0
  191. package/src/shade/renderer/light/environment/environment_level_1_blur_plan.d.ts.map +1 -0
  192. package/src/shade/renderer/light/environment/environment_level_1_blur_plan.js +119 -0
  193. package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts +15 -7
  194. package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts.map +1 -1
  195. package/src/shade/renderer/light/environment/execute_filter_environment_map.js +66 -83
  196. package/src/shade/renderer/light/environment/graph_filter_environment_map.d.ts.map +1 -1
  197. package/src/shade/renderer/light/environment/graph_filter_environment_map.js +15 -6
  198. package/src/shade/renderer/light/environment/shader_blur_environment_map.d.ts +3 -0
  199. package/src/shade/renderer/light/environment/shader_blur_environment_map.d.ts.map +1 -0
  200. package/src/shade/renderer/light/environment/shader_blur_environment_map.js +111 -0
  201. package/src/shade/renderer/light/environment/shader_convolve_reflection_map_from_blurred.d.ts +3 -0
  202. package/src/shade/renderer/light/environment/shader_convolve_reflection_map_from_blurred.d.ts.map +1 -0
  203. package/src/shade/renderer/light/environment/shader_convolve_reflection_map_from_blurred.js +128 -0
  204. package/src/shade/renderer/light/environment/shader_downsample_environment_map.d.ts.map +1 -1
  205. package/src/shade/renderer/light/environment/shader_downsample_environment_map.js +0 -1
  206. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  207. package/src/shade/renderer/material/GPUMaterialManager.d.ts +7 -0
  208. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  209. package/src/shade/renderer/material/GPUMaterialManager.js +11 -0
  210. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts +12 -12
  211. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.d.ts.map +1 -1
  212. package/src/shade/renderer/material/resident/GPUResidentMaterialContext.js +17 -118
  213. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -3
  214. package/src/shade/renderer/postprocess/nss/NSS.d.ts.map +1 -1
  215. package/src/shade/renderer/postprocess/nss/NSS.js +1 -3
  216. package/src/shade/renderer/postprocess/nss/NSS_NETWORK_SCHEMA.d.ts +5 -6
  217. package/src/shade/renderer/postprocess/nss/NSS_NETWORK_SCHEMA.d.ts.map +1 -1
  218. package/src/shade/renderer/postprocess/nss/NSS_NETWORK_SCHEMA.js +9 -10
  219. package/src/shade/renderer/postprocess/nss/shader_nss_extract_feedback.d.ts.map +1 -1
  220. package/src/shade/renderer/postprocess/nss/shader_nss_extract_feedback.js +48 -49
  221. package/src/shade/renderer/postprocess/nss/shader_nss_postprocess.d.ts.map +1 -1
  222. package/src/shade/renderer/postprocess/nss/shader_nss_postprocess.js +12 -16
  223. package/src/shade/renderer/postprocess/nss/shader_nss_preprocess.js +246 -246
  224. package/src/shade/renderer/rasterize/chunk_triangle_winding_is_reversed.d.ts +1 -2
  225. package/src/shade/renderer/rasterize/chunk_triangle_winding_is_reversed.d.ts.map +1 -1
  226. package/src/shade/renderer/rasterize/chunk_triangle_winding_is_reversed.js +34 -35
  227. package/src/shade/renderer/shader/chunk/atmosphere/C_MIE_SCATTERING_DECLARATION.d.ts +2 -2
  228. package/src/shade/renderer/shader/chunk/atmosphere/C_MIE_SCATTERING_DECLARATION.js +2 -2
  229. package/src/shade/renderer/shader/chunk/atmosphere/chunk_compute_extinction.js +1 -1
  230. package/src/shade/renderer/shader/chunk/atmosphere/hillaire/DENSITY_PROFILE_LAYER_STRUCT.d.ts +1 -1
  231. package/src/shade/renderer/shader/chunk/atmosphere/hillaire/DENSITY_PROFILE_LAYER_STRUCT.js +1 -1
  232. package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Schlick.d.ts +3 -3
  233. package/src/shade/renderer/shader/chunk/brdf/fresnel/chunk_F_Schlick.js +3 -3
  234. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces_ue_matrices.d.ts +9 -10
  235. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces_ue_matrices.d.ts.map +1 -1
  236. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_aces_ue_matrices.js +9 -10
  237. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_tonemap_ue_filmic.d.ts +4 -4
  238. package/src/shade/renderer/shader/chunk/color/tonemap/aces/chunk_tonemap_ue_filmic.js +5 -5
  239. package/src/shade/renderer/shader/chunk/math/chunk_f16_round_stochastic.d.ts +1 -2
  240. package/src/shade/renderer/shader/chunk/math/chunk_f16_round_stochastic.d.ts.map +1 -1
  241. package/src/shade/renderer/shader/chunk/math/chunk_f16_round_stochastic.js +1 -2
  242. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec2.d.ts +14 -1
  243. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec2.d.ts.map +1 -1
  244. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec2.js +19 -6
  245. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec3.d.ts +10 -1
  246. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec3.d.ts.map +1 -1
  247. package/src/shade/renderer/shader/chunk/noise/chunk_stbn_sample_vec3.js +14 -6
  248. package/src/shade/renderer/shader/chunk/random/murmur/chunk_murmur3_vec3u.d.ts +1 -1
  249. package/src/shade/renderer/shader/chunk/random/murmur/chunk_murmur3_vec3u.js +1 -1
  250. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
  251. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +7 -2
  252. package/src/shade/renderer/shadow/vsm/DEFAULT_VSM_MAX_DYNAMIC_LOD_BIAS.d.ts +2 -3
  253. package/src/shade/renderer/shadow/vsm/DEFAULT_VSM_MAX_DYNAMIC_LOD_BIAS.d.ts.map +1 -1
  254. package/src/shade/renderer/shadow/vsm/DEFAULT_VSM_MAX_DYNAMIC_LOD_BIAS.js +7 -8
  255. package/src/shade/renderer/shadow/vsm/DEFAULT_VSM_MAX_LOAD_FACTOR.d.ts +1 -1
  256. package/src/shade/renderer/shadow/vsm/DEFAULT_VSM_MAX_LOAD_FACTOR.js +12 -12
  257. package/src/shade/renderer/shadow/vsm/VSMPageManager.d.ts +2 -2
  258. package/src/shade/renderer/shadow/vsm/VSMPageManager.d.ts.map +1 -1
  259. package/src/shade/renderer/shadow/vsm/VSMPageManager.js +3 -4
  260. package/src/shade/renderer/water/GPUWaterRenderer.d.ts +0 -6
  261. package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
  262. package/src/shade/renderer/water/GPUWaterRenderer.js +12 -17
  263. package/src/shade/renderer/water/medium/graph_water_meshlets.d.ts +35 -0
  264. package/src/shade/renderer/water/medium/graph_water_meshlets.d.ts.map +1 -0
  265. package/src/shade/renderer/water/medium/graph_water_meshlets.js +89 -0
  266. package/src/shade/renderer/water/query/GPUWaterQueries.d.ts +1 -1
  267. package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
  268. package/src/shade/renderer/water/shader_water.js +22 -13
  269. package/src/shade/renderer/water/shader_water_avboit.d.ts.map +1 -1
  270. package/src/shade/renderer/water/shader_water_avboit.js +7 -7
  271. package/src/shade/renderer/water/surface/graph_water_tessellation.d.ts +1 -1
  272. package/src/shade/renderer/water/surface/graph_water_tessellation.js +1 -1
  273. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +9 -1
  274. package/src/view/elements/progress/segmented/SegmentedResourceBarView.d.ts +0 -19
  275. package/src/view/elements/progress/segmented/SegmentedResourceBarView.d.ts.map +1 -1
  276. package/src/view/elements/progress/segmented/SegmentedResourceBarView.js +2 -52
  277. package/editor/REWORK_PLAN_2026_08.md +0 -692
  278. package/src/CODEC_LAYOUT_VERIFICATION.md +0 -419
  279. package/src/CORRECTNESS_HUNT_2026_07_24.md +0 -142
  280. package/src/DUPLICATION_AUDIT_2026_08_07/00_core_reuse_surface.md +0 -738
  281. package/src/DUPLICATION_AUDIT_2026_08_07/A_core_math_geom.md +0 -79
  282. package/src/DUPLICATION_AUDIT_2026_08_07/B_core_data.md +0 -93
  283. package/src/DUPLICATION_AUDIT_2026_08_07/C_gfx_render.md +0 -80
  284. package/src/DUPLICATION_AUDIT_2026_08_07/D_gfx_features.md +0 -164
  285. package/src/DUPLICATION_AUDIT_2026_08_07/E_physics.md +0 -69
  286. package/src/DUPLICATION_AUDIT_2026_08_07/F_sound.md +0 -110
  287. package/src/DUPLICATION_AUDIT_2026_08_07/G_net_save.md +0 -129
  288. package/src/DUPLICATION_AUDIT_2026_08_07/H_engine_misc.md +0 -72
  289. package/src/DUPLICATION_AUDIT_2026_08_07/I_generation_view.md +0 -74
  290. package/src/DUPLICATION_AUDIT_2026_08_07/K_crosscutting.md +0 -169
  291. package/src/DUPLICATION_AUDIT_2026_08_07.md +0 -254
  292. package/src/DUPLICATION_AUDIT_REMEDIATION.md +0 -250
  293. package/src/DUPLICATION_REVIEW_2026_10_24.md +0 -1072
  294. package/src/REVIEW_2026_08_06/adv-core.md +0 -511
  295. package/src/REVIEW_2026_08_06/adv-gfx.md +0 -480
  296. package/src/REVIEW_2026_08_06/adv-view.md +0 -446
  297. package/src/REVIEW_2026_08_06/api-core.md +0 -296
  298. package/src/REVIEW_2026_08_06/api-engine.md +0 -195
  299. package/src/REVIEW_2026_08_06/bvh-phys-sound-net.md +0 -507
  300. package/src/REVIEW_2026_08_06/core-binary.md +0 -348
  301. package/src/REVIEW_2026_08_06/core-collection.md +0 -376
  302. package/src/REVIEW_2026_08_06/core-math.md +0 -221
  303. package/src/REVIEW_2026_08_06/core-process.md +0 -266
  304. package/src/REVIEW_2026_08_06/core-science.md +0 -223
  305. package/src/REVIEW_2026_08_06/engine-ai-nav.md +0 -279
  306. package/src/REVIEW_2026_08_06/engine-animation.md +0 -167
  307. package/src/REVIEW_2026_08_06/engine-asset.md +0 -166
  308. package/src/REVIEW_2026_08_06/engine-ecs.md +0 -920
  309. package/src/REVIEW_2026_08_06/engine-input.md +0 -197
  310. package/src/REVIEW_2026_08_06/engine-misc.md +0 -248
  311. package/src/REVIEW_2026_08_06/engine-terrain.md +0 -52
  312. package/src/REVIEW_2026_08_06/generation.md +0 -176
  313. package/src/REVIEW_2026_08_06/geom-2d.md +0 -434
  314. package/src/REVIEW_2026_08_06/geom-3d.md +0 -117
  315. package/src/REVIEW_2026_08_06/gfx-gi.md +0 -143
  316. package/src/REVIEW_2026_08_06/gfx-render.md +0 -740
  317. package/src/REVIEW_2026_08_06/gfx-texture.md +0 -690
  318. package/src/REVIEW_2026_08_06/prior-criticals.md +0 -49
  319. package/src/REVIEW_2026_08_06/prior-highs.md +0 -138
  320. package/src/REVIEW_2026_08_06/test-gaps.md +0 -364
  321. package/src/REVIEW_2026_08_06/view.md +0 -667
  322. package/src/REVIEW_2026_08_06.md +0 -610
  323. package/src/core/binary/lz4/LZ4_HIGH_COMPRESSION_PLAN_2026_09_14.md +0 -542
  324. package/src/core/bvh2/bvh3/NOTES.md +0 -2
  325. package/src/core/bvh8/NOTES.md +0 -63
  326. package/src/core/cache/wtinylfu/benchmark/CacheWTinylfu.bench.md +0 -243
  327. package/src/core/color/COLOR_FIX_PLAN_2026_08_28.md +0 -417
  328. package/src/core/color/COLOR_REVIEW_2026_08_28.md +0 -779
  329. package/src/core/geom/2d/polygon/TRIANGULATION_DESIGN.md +0 -433
  330. package/src/core/geom/3d/atlas/ATLAS_PORT_PLAN.md +0 -486
  331. package/src/core/geom/3d/atlas/BFF_PLAN.md +0 -174
  332. package/src/core/geom/3d/atlas/REVIEW_02.md +0 -392
  333. package/src/core/geom/3d/gjk/GJK_REVIEW_NOTES.md +0 -146
  334. package/src/core/geom/3d/gjk/NOTES.md +0 -8
  335. package/src/core/geom/3d/topology/TOPO_MESH_RETIREMENT_PLAN.md +0 -135
  336. package/src/core/geom/GEOMETRY_REVIEW_002_API_ISSUES.md +0 -381
  337. package/src/core/geom/GEOMETRY_REVIEW_002_NAMING.md +0 -684
  338. package/src/core/geom/MANIFOLD_COMPARISON_2026_08_01.md +0 -554
  339. package/src/core/model/reactive/evaluation/PREDICATE_APPLICABILITY_PROPOSAL.md +0 -446
  340. package/src/engine/REVIEW_2026_07_03.md +0 -211
  341. package/src/engine/asset/loaders/image/IMAGE_CODEC_REVIEW_2026_08_28.md +0 -815
  342. package/src/engine/control/first-person/DESIGN.md +0 -658
  343. package/src/engine/control/first-person/DESIGN_COLLISION.md +0 -382
  344. package/src/engine/control/first-person/DESIGN_EXTENSIONS.md +0 -563
  345. package/src/engine/control/first-person/TODO.md +0 -160
  346. package/src/engine/ecs/ASYNC_SYSTEMS_PROPOSAL.md +0 -531
  347. package/src/engine/ecs/HIERARCHY_REVIEW.md +0 -717
  348. package/src/engine/ecs/async/WORKER_SYSTEM_PLAN.md +0 -262
  349. package/src/engine/ecs/ik/PLAN.md +0 -179
  350. package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +0 -272
  351. package/src/engine/ecs/storage/binary/object-v2/DESIGN.md +0 -199
  352. package/src/engine/ecs/transform/TRANSFORM64_MIGRATION_PLAN_2026_09_04.md +0 -521
  353. package/src/engine/graphics/CONTEXT_LOSS_RECOVERY_PLAN.md +0 -463
  354. package/src/engine/graphics/ecs/camera/pp/NOTES.md +0 -48
  355. package/src/engine/graphics/render/frame_graph/CORRECTNESS_FIXES_2026_09_04.md +0 -659
  356. package/src/engine/graphics/render/frame_graph/FRAME_GRAPH_RECOMMENDATIONS.md +0 -235
  357. package/src/engine/graphics/sh3/path_tracer/REVIEW_001_ACTION_PLAN.md +0 -490
  358. package/src/engine/graphics/texture/sampler/compare/FLIP_IMPLEMENTATION_PLAN.md +0 -466
  359. package/src/engine/input/GAMEPAD_API_PROPOSAL.md +0 -717
  360. package/src/engine/input/ecs/ism/ISM_DESIGN.md +0 -1523
  361. package/src/engine/input/ecs/ism/ISM_IMPLEMENTATION_PLAN.md +0 -627
  362. package/src/engine/navigation/mesh/OVERLAPPING_SURFACES_2026_08_25.md +0 -661
  363. package/src/engine/navigation/mesh/PATHFINDING_PLAN.md +0 -229
  364. package/src/engine/network/CONGESTION_CONTROL.md +0 -87
  365. package/src/engine/network/MESSAGE_TRANSPORT.md +0 -364
  366. package/src/engine/network/SMOOTHNESS_DESIGN.md +0 -400
  367. package/src/engine/physics/cloth/MEASUREMENTS.md +0 -5304
  368. package/src/engine/physics/cloth/PLAN.md +0 -3056
  369. package/src/engine/physics/fluid/GPU_FLUID_CASCADES_PROPOSAL_2026_10_16.md +0 -1382
  370. package/src/engine/physics/fluid/REVIEW_02_PLAN.md +0 -243
  371. package/src/engine/physics/fluid/solver/NOTES.md +0 -46
  372. package/src/engine/sound/SOUND_EMITTER_RETIREMENT_PLAN.md +0 -536
  373. package/src/engine/sound/simulation/IMPLEMENTATION_PLAN.md +0 -432
  374. package/src/engine/sound/simulation/PROBE_PLACEMENT.md +0 -250
  375. package/src/engine/sound/simulation/PROBE_TRANSFER_RESEARCH.md +0 -322
  376. package/src/engine/sound/simulation/REFLECTION_IR_PLAN.md +0 -261
  377. package/src/engine/sound/simulation/VISIBILITY_GRAPH_PLAN.md +0 -121
  378. package/src/engine/sound/sopra/IMPLEMENTATION_PLAN.md +0 -999
  379. package/src/format/image/avif/DECISIONS.md +0 -545
  380. package/src/format/image/jpeg/NOTES.md +0 -3
  381. package/src/format/scene/gltf/MESHOPT_COMPRESSION_PLAN.md +0 -814
  382. package/src/generation/COORDINATES.md +0 -54
  383. package/src/generation/REVIEW_01_ACTION_PLAN.md +0 -628
  384. package/src/generation/foliage/ANNUAL_SHOOTS_BRIEF_2026_10_25.md +0 -220
  385. package/src/generation/foliage/CROWN_FILLING_BRIEF_2026_10_26.md +0 -172
  386. package/src/generation/foliage/CROWN_FULLNESS_BRIEF_2026_10_26.md +0 -86
  387. package/src/generation/foliage/FOLIAGE_DESIGN.md +0 -547
  388. package/src/generation/foliage/FOLIAGE_PLAN.md +0 -198
  389. package/src/generation/foliage/LEAF_ARCHITECTURE_BRIEF_2026_10_26.md +0 -158
  390. package/src/generation/foliage/LOD_REWORK_BRIEF_2026_10_27.md +0 -521
  391. package/src/generation/foliage/REAL_TIME_TREES_BRIEF_2026_10_27.md +0 -86
  392. package/src/generation/foliage/SELF_ORGANIZING_FRAMEWORK_BRIEF_2026_10_26.md +0 -347
  393. package/src/generation/foliage/SHOOT_SYSTEMS_ALL_SPECIES_BRIEF_2026_10_26.md +0 -248
  394. package/src/generation/foliage/SPEEDTREE_COMPARISON_2026_10_24.md +0 -694
  395. package/src/generation/foliage/TWO_FRONT_ENDS_BRIEF_2026_10_28.md +0 -552
  396. package/src/shade/RENDERER_CONTRACT.md +0 -697
  397. package/src/shade/SHADER_F16_PROPOSAL_2026_10_24.md +0 -263
  398. package/src/shade/device/IMMEDIATE_DATA_PLAN_2026_08_28.md +0 -569
  399. package/src/shade/device/PASS_ENCODER_PROPOSAL_2026_08_31.md +0 -755
  400. package/src/shade/device/mock/EXTENSION_PROPOSAL_2026_08_22.md +0 -458
  401. package/src/shade/device/mock/IMPLEMENTATION_PLAN.md +0 -255
  402. package/src/shade/device/mock/REVIEW_2026_08_22.md +0 -527
  403. package/src/shade/device/timing/GPU_PROFILER_PROPOSAL_2026_08_28.md +0 -894
  404. package/src/shade/device/timing/profile/SGPT_FORMAT.md +0 -345
  405. package/src/shade/renderer/NOTES.md +0 -78
  406. package/src/shade/renderer/PLAN.md +0 -8
  407. package/src/shade/renderer/animation/ADDITIVE_BLENDING_PLAN.md +0 -145
  408. package/src/shade/renderer/animation/SKINNING_FRAME_PLAN.md +0 -357
  409. package/src/shade/renderer/atmosphere/NOTES.md +0 -6
  410. package/src/shade/renderer/camera/orbital/MomentumAxis.d.ts +0 -76
  411. package/src/shade/renderer/camera/orbital/MomentumAxis.d.ts.map +0 -1
  412. package/src/shade/renderer/camera/orbital/MomentumAxis.js +0 -164
  413. package/src/shade/renderer/camera/orbital/OrbitalCameraConfig.d.ts +0 -45
  414. package/src/shade/renderer/camera/orbital/OrbitalCameraConfig.d.ts.map +0 -1
  415. package/src/shade/renderer/camera/orbital/OrbitalCameraConfig.js +0 -66
  416. package/src/shade/renderer/camera/orbital/OrbitalCameraInput.d.ts +0 -98
  417. package/src/shade/renderer/camera/orbital/OrbitalCameraInput.d.ts.map +0 -1
  418. package/src/shade/renderer/camera/orbital/OrbitalCameraInput.js +0 -184
  419. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts +0 -175
  420. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts.map +0 -1
  421. package/src/shade/renderer/camera/orbital/OrbitalCameraRig.js +0 -411
  422. package/src/shade/renderer/camera/orbital/README.md +0 -81
  423. package/src/shade/renderer/camera/orbital/index.d.ts +0 -6
  424. package/src/shade/renderer/camera/orbital/index.d.ts.map +0 -1
  425. package/src/shade/renderer/camera/orbital/index.js +0 -9
  426. package/src/shade/renderer/extension/RENDER_EXTENSION_DESIGN.md +0 -964
  427. package/src/shade/renderer/fluid/GPU_FLUID_OCCUPANCY_AND_SOTA_REVIEW_2026_10_26.md +0 -361
  428. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_BATCH_PLAN.md +0 -619
  429. package/src/shade/renderer/geometry/meshlet/COMPACTION_PLAN_2026_09_16.md +0 -674
  430. package/src/shade/renderer/geometry/sdf/NOTES.md +0 -6
  431. package/src/shade/renderer/geometry/virtual/ATTRIBUTE_PLAN_2026_09_18.md +0 -540
  432. package/src/shade/renderer/geometry/virtual/MICRON_COMPARISON_2026_08_20.md +0 -305
  433. package/src/shade/renderer/geometry/virtual/VGEO_FORMAT.md +0 -913
  434. package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_DESIGN.md +0 -787
  435. package/src/shade/renderer/geometry/virtual/VIRTUAL_GEOMETRY_PLAN.md +0 -483
  436. package/src/shade/renderer/geometry/virtual/VK_LOD_CLUSTERS_COMPARISON_2026_08_20.md +0 -301
  437. package/src/shade/renderer/geometry/virtual/WEDGE_PLAN_2026_09_18.md +0 -448
  438. package/src/shade/renderer/geometry/virtual/runtime/CULL_PLAN_2026_09_16.md +0 -385
  439. package/src/shade/renderer/geometry/virtual/runtime/CUT_PLAN_2026_09_14.md +0 -656
  440. package/src/shade/renderer/geometry/virtual/runtime/REVIEW_LEDGER.md +0 -308
  441. package/src/shade/renderer/geometry/virtual/runtime/RUNTIME_PLAN.md +0 -657
  442. package/src/shade/renderer/geometry/virtual/runtime/RUNTIME_PLAN_2026_09_14.md +0 -551
  443. package/src/shade/renderer/geometry/virtual/runtime/SHADOW_PLAN_2026_09_28.md +0 -536
  444. package/src/shade/renderer/global_illumination/lpv/NOTES.md +0 -3
  445. package/src/shade/renderer/global_illumination/probe_clipmap/PROBE_CLIPMAP_PROPOSAL_2026_10_27.md +0 -4225
  446. package/src/shade/renderer/global_illumination/probe_clipmap/PROBE_RAYS_VARIABLE_AND_SORTED_SCOPE_2026_10_30.md +0 -410
  447. package/src/shade/renderer/global_illumination/sharc/NOTES.md +0 -8
  448. package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +0 -1369
  449. package/src/shade/renderer/gpu_primitive/bvh/PHASE1_HANDOVER.md +0 -202
  450. package/src/shade/renderer/gpu_primitive/indirect/NOTES.md +0 -94
  451. package/src/shade/renderer/hiz/NOTES.md +0 -3
  452. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts +0 -8
  453. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts.map +0 -1
  454. package/src/shade/renderer/light/cluster/NOTES.md +0 -11
  455. package/src/shade/renderer/light/cluster/PROPOSAL_ALGORITHM_2026_10_16.md +0 -524
  456. package/src/shade/renderer/light/cluster/PROPOSAL_HIERARCHICAL_2026_10_16.md +0 -1101
  457. package/src/shade/renderer/light/environment/shader_convolve_reflection_map_from_averages.d.ts +0 -13
  458. package/src/shade/renderer/light/environment/shader_convolve_reflection_map_from_averages.d.ts.map +0 -1
  459. package/src/shade/renderer/light/environment/shader_convolve_reflection_map_from_averages.js +0 -198
  460. package/src/shade/renderer/material/resident/shader_resident_texture_means.d.ts +0 -24
  461. package/src/shade/renderer/material/resident/shader_resident_texture_means.d.ts.map +0 -1
  462. package/src/shade/renderer/material/resident/shader_resident_texture_means.js +0 -120
  463. package/src/shade/renderer/particles/DESIGN.md +0 -1011
  464. package/src/shade/renderer/particles/EMITTER_GLOBAL_STATE_PLAN_2026_10_29.md +0 -283
  465. package/src/shade/renderer/particles/ORIENTATION_PLAN_2026_10_15.md +0 -453
  466. package/src/shade/renderer/path_tracer/PATH_TRACED_MEDIA_PLAN_2026_10_02.md +0 -520
  467. package/src/shade/renderer/postprocess/bloom/NOTES.md +0 -6
  468. package/src/shade/renderer/postprocess/fsr/NOTES.md +0 -4
  469. package/src/shade/renderer/postprocess/gtao/NOTES.md +0 -6
  470. package/src/shade/renderer/postprocess/nss/NOTES.md +0 -339
  471. package/src/shade/renderer/postprocess/perspective/NOTES.md +0 -3
  472. package/src/shade/renderer/postprocess/sscs/NOTES.md +0 -5
  473. package/src/shade/renderer/postprocess/ssr/NOTES.md +0 -14
  474. package/src/shade/renderer/postprocess/ssr/REPROJECTION_PROPOSAL.md +0 -286
  475. package/src/shade/renderer/postprocess/ssr/prefilter/NOTES.md +0 -39
  476. package/src/shade/renderer/postprocess/taa/NOTES.md +0 -11
  477. package/src/shade/renderer/postprocess/upscale-dither/NOTES.md +0 -78
  478. package/src/shade/renderer/postprocess/vrs/NOTES.md +0 -4
  479. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +0 -1218
  480. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +0 -600
  481. package/src/shade/renderer/restir/reservoir/NOTES.md +0 -6
  482. package/src/shade/renderer/shader/chunk/atmosphere/NOTES.md +0 -6
  483. package/src/shade/renderer/shader/chunk/brdf/FRESNEL_BRIEF_2026_10_16.md +0 -394
  484. package/src/shade/renderer/shader/chunk/color/tonemap/ACES_TONE_MAPPING_BRIEF_2026_10_17.md +0 -160
  485. package/src/shade/renderer/shader/chunk/color/tonemap/HDR_TONE_MAPPING_FORMS_BRIEF_2026_10_16.md +0 -322
  486. package/src/shade/renderer/shader/chunk/color/tonemap/SDR_TONE_MAPPING_BRIEF_2026_10_16.md +0 -247
  487. package/src/shade/renderer/shader/chunk/fsr/NOTES.md +0 -3
  488. package/src/shade/renderer/shader/chunk/fsr/spd/NOTES.md +0 -4
  489. package/src/shade/renderer/shader/chunk/geometry/ray/NOTES.md +0 -4
  490. package/src/shade/renderer/shader/chunk/material/MULTISCATTER.md +0 -159
  491. package/src/shade/renderer/shader/chunk/mboit/NOTES.md +0 -38
  492. package/src/shade/renderer/shader/chunk/spherical_harmonics/l1i/NOTES.md +0 -3
  493. package/src/shade/renderer/shader/chunk/spherical_harmonics/sampling/NOTES.md +0 -8
  494. package/src/shade/renderer/shader/compiler/SHADER_SWITCH_PROPOSAL_2026_10_16.md +0 -932
  495. package/src/shade/renderer/shadow/contact/FINDINGS.md +0 -413
  496. package/src/shade/renderer/shadow/map/csm/NOTES.md +0 -5
  497. package/src/shade/renderer/shadow/ray/NOTES.md +0 -31
  498. package/src/shade/renderer/shadow/sdf/NOTES.md +0 -9
  499. package/src/shade/renderer/shadow/sdf/brixelizer/NOTES.md +0 -5
  500. package/src/shade/renderer/shadow/sdf/cascade/NOTES.md +0 -9
  501. package/src/shade/renderer/shadow/vsm/NOTES.md +0 -12
  502. package/src/shade/renderer/shadow/vsm/PLAN.md +0 -442
  503. package/src/shade/renderer/shadow/vsm/REVIEW_LEDGER.md +0 -43
  504. package/src/shade/renderer/texture/COMPRESSED_TEXTURE_PLAN_2026_09_01.md +0 -2444
  505. package/src/shade/renderer/texture/mipmaps/NOTES.md +0 -4
  506. package/src/shade/renderer/volumetrics/NOTES.md +0 -1329
  507. package/src/shade/renderer/volumetrics/VOLUMETRIC_NOISE_PLAN_2026_10_15.md +0 -336
  508. package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts +0 -23
  509. package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts.map +0 -1
  510. package/src/shade/renderer/water/medium/GPUWaterBodies.js +0 -75
  511. package/src/shade/wgsl/NOTES.md +0 -4
  512. package/src/view/elements/progress/segmented/segment_frame_transform.d.ts +0 -15
  513. package/src/view/elements/progress/segmented/segment_frame_transform.d.ts.map +0 -1
  514. package/src/view/elements/progress/segmented/segment_frame_transform.js +0 -69
@@ -1,164 +1,164 @@
1
- import { WebGPUExtensionType } from "../../descriptor/WebGPUExtensionType.js";
2
- import { ATMOSPHERE_HEIGHT_DECLARATION } from "../shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.js";
3
- import { chunk_safe_acos } from "../shader/chunk/math/chunk_safe_acos.js";
4
- import { CodeChunk } from "../shader/compiler/CodeChunk.js";
5
- import { ComputeShader } from "../shader/ComputeShader.js";
6
- import { ShaderResourceSetDescriptor } from "../shader/resource/ShaderResourceSetDescriptor.js";
7
- import { chunk_get_multiscatter_values } from "./chunk_get_multiscatter_values.js";
8
- import { chunk_multiscatter_sample_direction } from "./chunk_multiscatter_sample_direction.js";
9
- import { chunk_sky_lut_texel_to_unit } from "./chunk_sky_lut_texel_to_unit.js";
10
- import {
11
- MULTISCATTER_LUT_DIRECTION_COUNT,
12
- MULTISCATTER_LUT_MAX_SUBGROUP_PARTIALS
13
- } from "./MULTISCATTER_LUT_CONFIG.js";
14
- import { SAMPLER_SKY_LUT } from "./SAMPLER_SKY_LUT.js";
15
-
16
- const resources = new ShaderResourceSetDescriptor();
17
- resources.createGroup()
18
- // "float" rather than the default "unfilterable-float": rgba16float is filterable in
19
- // core WebGPU, so the LUT goes through the texture unit instead of a 4-tap manual
20
- // bilinear.
21
- .addTexture("tSkyLutTransmittance", "float")
22
- .addSampler("sSkyLut", "filtering", SAMPLER_SKY_LUT)
23
- .addStorageTexture("tSkyLutMultiscatterOut", "rgba16float")
24
- ;
25
-
26
-
27
- /**
28
- * the multiple-scattering LUT. Each pixel coordinate corresponds to a height and sun zenith angle, and
29
- * the value is the multiple scattering approximation (Psi_ms from the paper, Eq. 10).
30
- *
31
- * One workgroup per LUT texel, one thread per direction, mirroring Hillaire's
32
- * `[numthreads(1,1,64)]` `NewMultiScattCS`. The 64 directions used to be a serial loop
33
- * inside a fragment shader, which left the whole pass with 32*32 = 1024 threads of
34
- * parallelism -- a few dozen waves, one per scheduler at best, with nothing to hide the
35
- * latency of the transmittance fetches. Per-thread it is now a single direction's 20-step
36
- * march.
37
- *
38
- * The per-direction results are summed with `subgroupAdd` and then across subgroups through
39
- * workgroup memory; Hillaire uses a six-step groupshared log-reduction, which the subgroup
40
- * op collapses into one instruction plus a handful of partials.
41
- *
42
- * @see "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", Hillaire (2020)
43
- * @see https://www.shadertoy.com/view/slSXRW
44
- * @type {CodeChunk}
45
- */
46
- const body = CodeChunk.from(
47
- //language=WGSL
48
- `
49
- const MULTISCATTER_DIRECTION_COUNT = ${MULTISCATTER_LUT_DIRECTION_COUNT}u;
50
- const MULTISCATTER_MAX_SUBGROUP_PARTIALS = ${MULTISCATTER_LUT_MAX_SUBGROUP_PARTIALS}u;
51
-
52
- var<workgroup> wg_partial_count: atomic<u32>;
53
- var<workgroup> wg_lum: array<vec3<f32>, MULTISCATTER_MAX_SUBGROUP_PARTIALS>;
54
- var<workgroup> wg_fms: array<vec3<f32>, MULTISCATTER_MAX_SUBGROUP_PARTIALS>;
55
-
56
- @compute @workgroup_size(${MULTISCATTER_LUT_DIRECTION_COUNT}, 1, 1)
57
- fn main(
58
- @builtin(workgroup_id) workgroup_id: vec3<u32>,
59
- @builtin(local_invocation_index) thread_index: u32,
60
- ) {
61
-
62
- if (thread_index == 0u) {
63
- atomicStore(&wg_partial_count, 0u);
64
- }
65
-
66
- // Every thread is here together anyway, so the counter's initialisation costs nothing
67
- // beyond the barrier itself. WGSL does not promise workgroup variables start zeroed.
68
- workgroupBarrier();
69
-
70
- // one workgroup per texel; the dispatch is sized from the texture, so this is in range
71
- let texel = workgroup_id.xy;
72
-
73
- let lut_size = vec2<f32>(textureDimensions(tSkyLutMultiscatterOut));
74
-
75
- // The point of each range this texel stands for: texel 0 carries the bottom and the last
76
- // texel the top, which is what lets a lookup at either end read a value computed there
77
- // rather than one from half a texel inside. sky_lut_uv is the other half of this.
78
- let unit = sky_lut_texel_to_unit(vec2<f32>(texel), lut_size);
79
-
80
- let sunCosTheta = 2.0*unit.x - 1.0;
81
- let sunTheta = safe_acos(sunCosTheta);
82
-
83
- let height = ATMOSPHERE_HEIGHT*unit.y;
84
-
85
- let pos = vec3(0.0, height, 0.0);
86
- let sunDir = normalize(vec3(0.0, sunCosTheta, -sin(sunTheta)));
87
-
88
- // pos on the +y axis and sunDir with a zero x component are exactly the preconditions
89
- // multiscatter_sample_direction's half-azimuth sample set needs
90
- let rayDir = multiscatter_sample_direction(thread_index);
91
-
92
- var lum:vec3<f32>;
93
- var f_ms:vec3<f32>;
94
-
95
- get_multiscatter_values(pos, sunDir, rayDir, &lum, &f_ms);
96
-
97
- // Uniform control flow up to here, so every one of the workgroup's threads is an active
98
- // lane and the subgroup sum covers all of them.
99
- let lum_subgroup = subgroupAdd(lum);
100
- let fms_subgroup = subgroupAdd(f_ms);
101
-
102
- // subgroupElect picks exactly one active invocation per subgroup, and the slot it claims
103
- // is whichever the counter hands out. Deriving the slot from local_invocation_index /
104
- // subgroup_size instead would assume invocations are packed into subgroups in contiguous
105
- // index order, which WGSL leaves unspecified: a mapping that is not contiguous blocks
106
- // would collide two subgroups onto one slot and silently drop a partial sum. Which slot
107
- // a subgroup lands in does not matter, only that it gets its own.
108
- //
109
- // Every lane holds the same subgroup sum, so letting them all store it would be a data
110
- // race on one address even though the values agree.
111
- if (subgroupElect()) {
112
- let slot = atomicAdd(&wg_partial_count, 1u);
113
-
114
- wg_lum[slot] = lum_subgroup;
115
- wg_fms[slot] = fms_subgroup;
116
- }
117
-
118
- workgroupBarrier();
119
-
120
- if (thread_index != 0u) {
121
- return;
122
- }
123
-
124
- // WGSL pins the subgroup size to a power of two in [4, 128], so the workgroup cannot hold
125
- // more subgroups than the partials array has room for. The clamp keeps a driver that
126
- // broke that promise reading initialised slots rather than garbage.
127
- let partial_count = min(atomicLoad(&wg_partial_count), MULTISCATTER_MAX_SUBGROUP_PARTIALS);
128
-
129
- var lum_total = vec3(0.0);
130
- var fms_total = vec3(0.0);
131
-
132
- for (var i = 0u; i < partial_count; i++) {
133
- lum_total += wg_lum[i];
134
- fms_total += wg_fms[i];
135
- }
136
-
137
- // The directions carry equal solid angle, so the mean over them is the spherical average
138
- // the paper's uniform phase reduces to.
139
- let inv_samples = 1.0 / f32(MULTISCATTER_DIRECTION_COUNT);
140
-
141
- lum_total *= inv_samples;
142
- fms_total *= inv_samples;
143
-
144
- // Equation 10 from the paper.
145
- let psi = lum_total / (1.0 - fms_total);
146
-
147
- textureStore(tSkyLutMultiscatterOut, texel, vec4(psi, 1.0));
148
- }
149
- `, [
150
- chunk_safe_acos,
151
- ATMOSPHERE_HEIGHT_DECLARATION,
152
- chunk_multiscatter_sample_direction,
153
- chunk_sky_lut_texel_to_unit,
154
- chunk_get_multiscatter_values,
155
- ]
156
- );
157
-
158
- body.addExtension(WebGPUExtensionType.Subgroups);
159
-
160
- export const shader_multiscatter_lut = ComputeShader.from({
161
- label: "Sky / multi-scatter LUT",
162
- body,
163
- resources,
164
- });
1
+ import { WebGPUExtensionType } from "../../descriptor/WebGPUExtensionType.js";
2
+ import { ATMOSPHERE_HEIGHT_DECLARATION } from "../shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.js";
3
+ import { chunk_safe_acos } from "../shader/chunk/math/chunk_safe_acos.js";
4
+ import { CodeChunk } from "../shader/compiler/CodeChunk.js";
5
+ import { ComputeShader } from "../shader/ComputeShader.js";
6
+ import { ShaderResourceSetDescriptor } from "../shader/resource/ShaderResourceSetDescriptor.js";
7
+ import { chunk_get_multiscatter_values } from "./chunk_get_multiscatter_values.js";
8
+ import { chunk_multiscatter_sample_direction } from "./chunk_multiscatter_sample_direction.js";
9
+ import { chunk_sky_lut_texel_to_unit } from "./chunk_sky_lut_texel_to_unit.js";
10
+ import {
11
+ MULTISCATTER_LUT_DIRECTION_COUNT,
12
+ MULTISCATTER_LUT_MAX_SUBGROUP_PARTIALS
13
+ } from "./MULTISCATTER_LUT_CONFIG.js";
14
+ import { SAMPLER_SKY_LUT } from "./SAMPLER_SKY_LUT.js";
15
+
16
+ const resources = new ShaderResourceSetDescriptor();
17
+ resources.createGroup()
18
+ // "float" rather than the default "unfilterable-float": rgba16float is filterable in
19
+ // core WebGPU, so the LUT goes through the texture unit instead of a 4-tap manual
20
+ // bilinear.
21
+ .addTexture("tSkyLutTransmittance", "float")
22
+ .addSampler("sSkyLut", "filtering", SAMPLER_SKY_LUT)
23
+ .addStorageTexture("tSkyLutMultiscatterOut", "rgba16float")
24
+ ;
25
+
26
+
27
+ /**
28
+ * the multiple-scattering LUT. Each pixel coordinate corresponds to a height and sun zenith angle, and
29
+ * the value is the multiple scattering approximation (Psi_ms from the paper, Eq. 10).
30
+ *
31
+ * One workgroup per LUT texel, one thread per direction (64 threads per workgroup).
32
+ * The 64 directions used to be a serial loop
33
+ * inside a fragment shader, which left the whole pass with 32*32 = 1024 threads of
34
+ * parallelism -- a few dozen waves, one per scheduler at best, with nothing to hide the
35
+ * latency of the transmittance fetches. Per-thread it is now a single direction's 20-step
36
+ * march.
37
+ *
38
+ * The per-direction results are summed with `subgroupAdd` and then across subgroups through
39
+ * workgroup memory, collapsing a six-step groupshared log-reduction into one subgroup
40
+ * instruction plus a handful of partials.
41
+ *
42
+ * @see "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", Hillaire (2020)
43
+ * @see https://www.shadertoy.com/view/slSXRW
44
+ * @type {CodeChunk}
45
+ */
46
+ const body = CodeChunk.from(
47
+ //language=WGSL
48
+ `
49
+ const MULTISCATTER_DIRECTION_COUNT = ${MULTISCATTER_LUT_DIRECTION_COUNT}u;
50
+ const MULTISCATTER_MAX_SUBGROUP_PARTIALS = ${MULTISCATTER_LUT_MAX_SUBGROUP_PARTIALS}u;
51
+
52
+ var<workgroup> wg_partial_count: atomic<u32>;
53
+ var<workgroup> wg_lum: array<vec3<f32>, MULTISCATTER_MAX_SUBGROUP_PARTIALS>;
54
+ var<workgroup> wg_fms: array<vec3<f32>, MULTISCATTER_MAX_SUBGROUP_PARTIALS>;
55
+
56
+ @compute @workgroup_size(${MULTISCATTER_LUT_DIRECTION_COUNT}, 1, 1)
57
+ fn main(
58
+ @builtin(workgroup_id) workgroup_id: vec3<u32>,
59
+ @builtin(local_invocation_index) thread_index: u32,
60
+ ) {
61
+
62
+ if (thread_index == 0u) {
63
+ atomicStore(&wg_partial_count, 0u);
64
+ }
65
+
66
+ // Every thread is here together anyway, so the counter's initialisation costs nothing
67
+ // beyond the barrier itself. WGSL does not promise workgroup variables start zeroed.
68
+ workgroupBarrier();
69
+
70
+ // one workgroup per texel; the dispatch is sized from the texture, so this is in range
71
+ let texel = workgroup_id.xy;
72
+
73
+ let lut_size = vec2<f32>(textureDimensions(tSkyLutMultiscatterOut));
74
+
75
+ // The point of each range this texel stands for: texel 0 carries the bottom and the last
76
+ // texel the top, which is what lets a lookup at either end read a value computed there
77
+ // rather than one from half a texel inside. sky_lut_uv is the other half of this.
78
+ let unit = sky_lut_texel_to_unit(vec2<f32>(texel), lut_size);
79
+
80
+ let sunCosTheta = 2.0*unit.x - 1.0;
81
+ let sunTheta = safe_acos(sunCosTheta);
82
+
83
+ let height = ATMOSPHERE_HEIGHT*unit.y;
84
+
85
+ let pos = vec3(0.0, height, 0.0);
86
+ let sunDir = normalize(vec3(0.0, sunCosTheta, -sin(sunTheta)));
87
+
88
+ // pos on the +y axis and sunDir with a zero x component are exactly the preconditions
89
+ // multiscatter_sample_direction's half-azimuth sample set needs
90
+ let rayDir = multiscatter_sample_direction(thread_index);
91
+
92
+ var lum:vec3<f32>;
93
+ var f_ms:vec3<f32>;
94
+
95
+ get_multiscatter_values(pos, sunDir, rayDir, &lum, &f_ms);
96
+
97
+ // Uniform control flow up to here, so every one of the workgroup's threads is an active
98
+ // lane and the subgroup sum covers all of them.
99
+ let lum_subgroup = subgroupAdd(lum);
100
+ let fms_subgroup = subgroupAdd(f_ms);
101
+
102
+ // subgroupElect picks exactly one active invocation per subgroup, and the slot it claims
103
+ // is whichever the counter hands out. Deriving the slot from local_invocation_index /
104
+ // subgroup_size instead would assume invocations are packed into subgroups in contiguous
105
+ // index order, which WGSL leaves unspecified: a mapping that is not contiguous blocks
106
+ // would collide two subgroups onto one slot and silently drop a partial sum. Which slot
107
+ // a subgroup lands in does not matter, only that it gets its own.
108
+ //
109
+ // Every lane holds the same subgroup sum, so letting them all store it would be a data
110
+ // race on one address even though the values agree.
111
+ if (subgroupElect()) {
112
+ let slot = atomicAdd(&wg_partial_count, 1u);
113
+
114
+ wg_lum[slot] = lum_subgroup;
115
+ wg_fms[slot] = fms_subgroup;
116
+ }
117
+
118
+ workgroupBarrier();
119
+
120
+ if (thread_index != 0u) {
121
+ return;
122
+ }
123
+
124
+ // WGSL pins the subgroup size to a power of two in [4, 128], so the workgroup cannot hold
125
+ // more subgroups than the partials array has room for. The clamp keeps a driver that
126
+ // broke that promise reading initialised slots rather than garbage.
127
+ let partial_count = min(atomicLoad(&wg_partial_count), MULTISCATTER_MAX_SUBGROUP_PARTIALS);
128
+
129
+ var lum_total = vec3(0.0);
130
+ var fms_total = vec3(0.0);
131
+
132
+ for (var i = 0u; i < partial_count; i++) {
133
+ lum_total += wg_lum[i];
134
+ fms_total += wg_fms[i];
135
+ }
136
+
137
+ // The directions carry equal solid angle, so the mean over them is the spherical average
138
+ // the paper's uniform phase reduces to.
139
+ let inv_samples = 1.0 / f32(MULTISCATTER_DIRECTION_COUNT);
140
+
141
+ lum_total *= inv_samples;
142
+ fms_total *= inv_samples;
143
+
144
+ // Equation 10 from the paper.
145
+ let psi = lum_total / (1.0 - fms_total);
146
+
147
+ textureStore(tSkyLutMultiscatterOut, texel, vec4(psi, 1.0));
148
+ }
149
+ `, [
150
+ chunk_safe_acos,
151
+ ATMOSPHERE_HEIGHT_DECLARATION,
152
+ chunk_multiscatter_sample_direction,
153
+ chunk_sky_lut_texel_to_unit,
154
+ chunk_get_multiscatter_values,
155
+ ]
156
+ );
157
+
158
+ body.addExtension(WebGPUExtensionType.Subgroups);
159
+
160
+ export const shader_multiscatter_lut = ComputeShader.from({
161
+ label: "Sky / multi-scatter LUT",
162
+ body,
163
+ resources,
164
+ });
@@ -116,7 +116,7 @@ fn raymarch_scattering(
116
116
  let mie_absorption = mie_density * C_MIE_ABSORPTION;
117
117
  let mie_scattering = mie_density * C_MIE_SCATTERING;
118
118
 
119
- // note - taken from the Hillaire's atmosphere code: https://github.com/sebh/UnrealEngineSkyAtmosphere/blob/183ead5bdacc701b3b626347a680a2f3cd3d4fbd/Resources/RenderSkyCommon.hlsl#L248
119
+ // Rayleigh does not absorb
120
120
  let rayleigh_absorption = 0.0;
121
121
  let rayleigh_scattering = local_density.x * C_RAYLEIGH;
122
122
 
@@ -1,117 +1,77 @@
1
1
  /**
2
- * Smoothed orbital camera controller — a drop-in replacement for the legacy
3
- * {@link ../OrbitalCameraController.js} that adds frame-rate-independent inertia
4
- * via meep's critically-damped springs.
2
+ * Orbital camera for a Shade {@link PerspectiveCamera} outside the ECS: drag to orbit, right-drag to
3
+ * pan, wheel to zoom, W/A/S/D to fly the target along the view.
5
4
  *
6
- * It is a thin FACADE over two decoupled, independently-testable layers:
7
- * - {@link OrbitalCameraRig} — pure control core (springs + goals, no DOM/clock)
8
- * - {@link OrbitalCameraInput} — input adapter (events → rig intents, no kinematics)
5
+ * The pose is a {@link TopDownCameraController} of its own, the same one an ECS camera carries, and
6
+ * an {@link OrbitalCameraRig} moves it with the feel every orbital camera in the engine shares. Each
7
+ * {@link update} writes the pose onto the camera's transform, and a transform moved by anyone else
8
+ * since is adopted as the new pose instead.
9
9
  *
10
- * The facade owns only the things that genuinely need the outside world: device
11
- * lifecycle, the frame `dt`, writing the result onto the camera's transform, and
12
- * the "camera moved outside our control" detection contract. The public surface
13
- * ({@link look}, {@link from_transform}, {@link pan}, {@link update},
14
- * `distanceLimits`, `movement_speed_scale`, `camera`) matches the legacy
15
- * controller so switching is a single import change.
16
- *
17
- * @author Alex Goldring (orbital rework)
10
+ * @author Alex Goldring
18
11
  * @copyright Company Named Limited (c) 2026
19
12
  */
20
13
  export class OrbitalCameraController {
21
14
  /**
22
15
  * @param {import("../PerspectiveCamera.js").PerspectiveCamera} camera
23
16
  * @param {HTMLElement} domElement
24
- * @param {Partial<import("./OrbitalCameraConfig.js").ORBITAL_CAMERA_FEEL_DEFAULTS>} [configOverrides]
25
17
  */
26
- constructor(camera: import("../PerspectiveCamera.js").PerspectiveCamera, domElement: HTMLElement, configOverrides?: any);
18
+ constructor(camera: import("../PerspectiveCamera.js").PerspectiveCamera, domElement: HTMLElement);
19
+ /**
20
+ * Zoom range, world units. Mutate `.min`/`.max` or `set()`; it applies from the next
21
+ * {@link look} or {@link update}.
22
+ * @type {NumericInterval}
23
+ */
24
+ distanceLimits: NumericInterval;
25
+ /**
26
+ * W/A/S/D speed, world units a second with the camera at the near end of {@link distanceLimits},
27
+ * rising to twice that at the far end.
28
+ * @type {number}
29
+ */
30
+ movement_speed_scale: number;
31
+ /**
32
+ * @type {TopDownCameraController}
33
+ */
34
+ pose: TopDownCameraController;
27
35
  camera: import("../PerspectiveCamera.js").PerspectiveCamera;
28
36
  domElement: HTMLElement;
29
- config: Readonly<{
30
- momentumEnabled: true;
31
- momentumDecayHalfLife: 0.1;
32
- velocityWindow: 0.1;
33
- momentumStopSpeed: 0.012;
34
- rotateSpeed: 1;
35
- panSpeed: 1;
36
- zoomStep: 0.9;
37
- invertWheel: false;
38
- minPolar: 0.000001;
39
- maxPolar: number;
40
- flyToDuration: 0.35;
41
- maxDt: 0.1;
42
- }>;
37
+ rig: OrbitalCameraRig;
43
38
  pointer: PointerDevice;
44
39
  keyboard: KeyboardDevice;
45
- rig: OrbitalCameraRig;
46
- input: OrbitalCameraInput;
47
- _lastRecorded: Transform64;
48
- _lastUpdateTime: number;
49
- _scratchEye: Vector3;
50
- _scratchTarget: Vector3;
51
- /** Zoom range, in world units (NumericInterval). Mutate `.min/.max` or `.set()`. */
52
- get distanceLimits(): import("../../../../core/math/interval/NumericInterval.js").NumericInterval;
53
- set movement_speed_scale(value: number);
54
- /** Scene-relative WASD/keyboard move speed. */
55
- get movement_speed_scale(): number;
56
- /** Current smoothed orbit distance (radius). */
40
+ /** Orbit distance, world units. */
57
41
  get distance(): number;
58
- /** Current smoothed target (shared scratch — copy if you need to retain it). */
42
+ /** Orbit target, live: copy it to keep it. */
59
43
  get target(): Vector3;
60
44
  /**
61
- * Point the camera at `to` from `from`, immediately (no animation).
45
+ * Point the camera at `to` from `from`, at once, stopping any throw.
62
46
  * @param {Vector3} from
63
47
  * @param {Vector3} to
64
48
  */
65
49
  look(from: Vector3, to: Vector3): void;
66
50
  /**
67
- * Eased "fly to" framing: glide to the new pose over {@link config}.flyToHalfLife
68
- * instead of snapping. The normal update() loop animates it.
69
- * @param {Vector3} from
70
- * @param {Vector3} to
71
- */
72
- flyTo(from: Vector3, to: Vector3): void;
73
- /**
74
- * Adopt an external camera transform as the new orbit pose (target is placed
75
- * `distance` ahead along its forward).
51
+ * Adopt a camera transform as the pose, the target the current orbit distance ahead of it.
76
52
  *
77
- * Read component-wise rather than through `Vector3.copy`, because a
78
- * {@link Transform64} answers `forward` and `translation` with raw
79
- * `Float64Array`s — no `.x`, and a `copy` of one silently sets three
80
- * undefineds. Those two arrays are also freshly allocated per access, so
81
- * each is read once into a scratch that outlives the call.
53
+ * Read by component, because a {@link Transform64} answers `forward` with a raw `Float64Array`,
54
+ * allocated on each access.
82
55
  *
83
56
  * @param {Transform64} transform
84
57
  */
85
58
  from_transform(transform: Transform64): void;
86
59
  /**
87
- * Screen-space pan of the orbit target, in pointer pixels (legacy signature).
88
- * @param {number} delta_x
89
- * @param {number} delta_y
90
- */
91
- pan(delta_x: number, delta_y: number): void;
92
- /**
93
- * Advance one frame and write the result onto the camera transform.
60
+ * Advance one frame and write the pose onto the camera transform.
94
61
  *
95
- * @param {number} [dt] frame time in seconds. STRONGLY preferred — pass the
96
- * value `create_frame_loop` already hands the callback. Omit to fall back
97
- * to an internal clock (clamped, so no first-frame teleport).
62
+ * @param {number} [dt] frame time in seconds; `create_frame_loop` hands it to its callback. Omit
63
+ * it to measure the time since the last call instead.
98
64
  */
99
65
  update(dt?: number): void;
100
- /** Detach input subscriptions and stop the devices. */
66
+ /** Detach input and stop the devices. */
101
67
  dispose(): void;
102
- /**
103
- * Resolve and sanitize the frame dt. Prefers the supplied value; otherwise
104
- * derives it from an internal clock. Always clamped to [0, maxDt] so a tab
105
- * refocus / GC hitch can't make the springs jump.
106
- * @param {number} [dt]
107
- * @returns {number}
108
- */
109
- _resolveDt(dt?: number): number;
68
+ #private;
110
69
  }
70
+ import { NumericInterval } from "../../../../core/math/interval/NumericInterval.js";
71
+ import TopDownCameraController from "../../../../engine/graphics/ecs/camera/topdown/TopDownCameraController.js";
72
+ import { OrbitalCameraRig } from "../../../../engine/graphics/camera/orbital/OrbitalCameraRig.js";
111
73
  import { PointerDevice } from "../../../../engine/input/devices/PointerDevice.js";
112
74
  import KeyboardDevice from "../../../../engine/input/devices/KeyboardDevice.js";
113
- import { OrbitalCameraRig } from "./OrbitalCameraRig.js";
114
- import { OrbitalCameraInput } from "./OrbitalCameraInput.js";
115
- import { Transform64 } from "../../../../engine/ecs/transform/Transform64.js";
116
75
  import Vector3 from "../../../../core/geom/Vector3.js";
76
+ import { Transform64 } from "../../../../engine/ecs/transform/Transform64.js";
117
77
  //# sourceMappingURL=OrbitalCameraController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrbitalCameraController.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/camera/orbital/OrbitalCameraController.js"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;;;;;GAkBG;AACH;IACI;;;;OAIG;IACH,oBAJW,OAAO,yBAAyB,EAAE,iBAAiB,cACnD,WAAW,yBAwCrB;IApCG,4DAAoB;IACpB,wBAA4B;IAE5B;;;;;;;;;;;;;OAAwD;IAGxD,uBAA4C;IAI5C,yBAA8C;IAK9C,sBAAwD;IAExD,0BAOE;IAIF,2BAAsC;IAEtC,wBAAgD;IAChD,qBAAgC;IAChC,wBAAmC;IAUvC,oFAAoF;IACpF,kGAEC;IAOD,wCAEC;IAPD,+CAA+C;IAC/C,mCAEC;IAMD,gDAAgD;IAChD,uBAEC;IAED,gFAAgF;IAChF,sBAEC;IAED;;;;OAIG;IACH,WAHW,OAAO,MACP,OAAO,QAUjB;IAED;;;;;OAKG;IACH,YAHW,OAAO,MACP,OAAO,QAUjB;IAED;;;;;;;;;;;OAWG;IACH,0BAFW,WAAW,QAoBrB;IAED;;;;OAIG;IACH,aAHW,MAAM,WACN,MAAM,QAIhB;IAED;;;;;;OAMG;IACH,YAJW,MAAM,QAuBhB;IAED,uDAAuD;IACvD,gBAIC;IAMD;;;;;;OAMG;IACH,gBAHW,MAAM,GACJ,MAAM,CAelB;CACJ;8BArO6B,mDAAmD;2BADtD,oDAAoD;iCAE9C,uBAAuB;mCACrB,yBAAyB;4BALhC,iDAAiD;oBAFzD,kCAAkC"}
1
+ {"version":3,"file":"OrbitalCameraController.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/camera/orbital/OrbitalCameraController.js"],"names":[],"mappings":"AA0BA;;;;;;;;;;;GAWG;AACH;IAwCI;;;OAGG;IACH,oBAHW,OAAO,yBAAyB,EAAE,iBAAiB,cACnD,WAAW,EA4BrB;IArED;;;;OAIG;IACH,gBAFU,eAAe,CAEuB;IAEhD;;;;OAIG;IACH,sBAFU,MAAM,CAES;IAEzB;;OAEG;IACH,MAFU,uBAAuB,CAEI;IA2BjC,4DAAoB;IACpB,wBAA4B;IAK5B,sBAME;IAEF,uBAA4C;IAO5C,yBAA8C;IAMlD,mCAAmC;IACnC,uBAEC;IAED,8CAA8C;IAC9C,sBAEC;IAED;;;;OAIG;IACH,WAHW,OAAO,MACP,OAAO,QAiBjB;IAED;;;;;;;OAOG;IACH,0BAFW,WAAW,QAoBrB;IAED;;;;;OAKG;IACH,YAHW,MAAM,QAsBhB;IAED,yCAAyC;IACzC,gBAQC;;CAgFJ;gCA5R+B,mDAAmD;oCAW5E,2EAA2E;iCAJjD,gEAAgE;8BAOnE,mDAAmD;2BAFtD,oDAAoD;oBAb3D,kCAAkC;4BAO1B,iDAAiD"}