@woosh/meep-engine 3.3.0 → 3.5.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 (886) hide show
  1. package/editor/process/SymbolicDisplayProcess.js +106 -106
  2. package/editor/process/symbolic/{SoundEmitterSymbolicDisplay.js → AudioEmitterSymbolicDisplay.js} +67 -57
  3. package/package.json +94 -94
  4. package/src/DUPLICATION_AUDIT_2026_08_07/F_sound.md +110 -102
  5. package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.d.ts +54 -0
  6. package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.d.ts.map +1 -1
  7. package/src/core/bvh2/bvh3/ebvh_build_hierarchy_radix.js +10 -3
  8. package/src/engine/Engine.js +2 -2
  9. package/src/engine/EntityCreator.d.ts +19 -11
  10. package/src/engine/EntityCreator.d.ts.map +1 -1
  11. package/src/engine/EntityCreator.js +116 -94
  12. package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
  13. package/src/engine/achievements/AchievementManager.js +437 -433
  14. package/src/engine/animation/AnimatedActions.d.ts +6 -1
  15. package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
  16. package/src/engine/animation/AnimatedActions.js +111 -81
  17. package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
  18. package/src/engine/animation/AnimationUtils.js +234 -252
  19. package/src/engine/ecs/storage/binary/SERIALIZATION_COVERAGE.md +275 -269
  20. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  21. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +26 -5
  22. package/src/engine/ecs/util/hideEntityGracefully.d.ts.map +1 -1
  23. package/src/engine/ecs/util/hideEntityGracefully.js +196 -208
  24. package/src/engine/graphics/CONTEXT_LOSS_RECOVERY_PLAN.md +1 -1
  25. package/src/engine/graphics3/GraphicsEngine3.d.ts +7 -0
  26. package/src/engine/graphics3/GraphicsEngine3.d.ts.map +1 -1
  27. package/src/engine/graphics3/GraphicsEngine3.js +9 -0
  28. package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +3 -1
  29. package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts.map +1 -1
  30. package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +4 -2
  31. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  32. package/src/engine/sound/SOUND_EMITTER_RETIREMENT_PLAN.md +536 -0
  33. package/src/engine/sound/SoundEngine.d.ts +2 -2
  34. package/src/engine/sound/SoundEngine.js +124 -124
  35. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +20 -0
  36. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
  37. package/src/engine/sound/ecs/audio/AudioEmitter.js +25 -2
  38. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +6 -6
  39. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
  40. package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +338 -314
  41. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts +143 -0
  42. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -0
  43. package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +191 -0
  44. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts +33 -0
  45. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts.map +1 -0
  46. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js +81 -0
  47. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts +65 -0
  48. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -0
  49. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +184 -0
  50. package/src/engine/sound/sopra/IMPLEMENTATION_PLAN.md +999 -993
  51. package/src/engine/sound/sopra/README.md +644 -643
  52. package/src/engine/sound/sopra/SopraEngine.d.ts +2 -2
  53. package/src/engine/sound/sopra/SopraEngine.js +432 -432
  54. package/src/engine/sound/sopra/legacy/SoundAttenuationFunction.d.ts.map +1 -0
  55. package/src/engine/sound/{ecs → sopra/legacy}/SoundController.d.ts +3 -3
  56. package/src/engine/sound/sopra/legacy/SoundController.d.ts.map +1 -0
  57. package/src/engine/sound/{ecs → sopra/legacy}/SoundController.js +176 -176
  58. package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitter.d.ts +11 -27
  59. package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -0
  60. package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitter.js +352 -382
  61. package/src/engine/sound/sopra/legacy/SoundEmitterFlags.d.ts.map +1 -0
  62. package/src/engine/sound/sopra/legacy/SoundEmitterSerializationAdapter.d.ts.map +1 -0
  63. package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.d.ts.map +1 -1
  64. package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.d.ts.map +1 -1
  65. package/src/engine/sound/sopra/legacy/SoundPanningModelType.d.ts.map +1 -0
  66. package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrack.d.ts +11 -55
  67. package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -0
  68. package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrack.js +278 -357
  69. package/src/engine/sound/sopra/legacy/SoundTrackFlags.d.ts.map +1 -0
  70. package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.d.ts +34 -0
  71. package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.d.ts.map +1 -0
  72. package/src/engine/sound/sopra/legacy/convertLegacySoundComponents.js +279 -0
  73. package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts +3 -3
  74. package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.d.ts.map +1 -1
  75. package/src/engine/sound/sopra/legacy/soundEmitterToEventDescription.js +122 -122
  76. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  77. package/src/shade/device/mock/SoftwareGPUDevice.js +7 -1
  78. package/src/shade/device/timing/GPUTimerArray.d.ts.map +1 -1
  79. package/src/shade/device/timing/GPUTimerArray.js +10 -0
  80. package/src/shade/playground/add_random_meshes.d.ts +19 -3
  81. package/src/shade/playground/add_random_meshes.d.ts.map +1 -1
  82. package/src/shade/playground/add_random_meshes.js +132 -84
  83. package/src/shade/playground/bvh_repro/README.md +57 -0
  84. package/src/shade/playground/bvh_repro/bvh_repro_device.d.ts +33 -0
  85. package/src/shade/playground/bvh_repro/bvh_repro_device.d.ts.map +1 -0
  86. package/src/shade/playground/bvh_repro/bvh_repro_device.js +90 -0
  87. package/src/shade/playground/bvh_repro/index.html +124 -0
  88. package/src/shade/playground/bvh_repro/main.d.ts.map +1 -0
  89. package/src/shade/playground/bvh_repro/main.js +254 -0
  90. package/src/shade/playground/load_default_environment.d.ts +10 -1
  91. package/src/shade/playground/load_default_environment.d.ts.map +1 -1
  92. package/src/shade/playground/load_default_environment.js +44 -20
  93. package/src/shade/playground/make_playground_asset_manager.d.ts +16 -0
  94. package/src/shade/playground/make_playground_asset_manager.d.ts.map +1 -0
  95. package/src/shade/playground/make_playground_asset_manager.js +33 -0
  96. package/src/shade/playground/skinned_blas_refit/README.md +126 -0
  97. package/src/shade/playground/skinned_blas_refit/add_floor.d.ts +47 -0
  98. package/src/shade/playground/skinned_blas_refit/add_floor.d.ts.map +1 -0
  99. package/src/shade/playground/skinned_blas_refit/add_floor.js +71 -0
  100. package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.d.ts +28 -0
  101. package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.d.ts.map +1 -0
  102. package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.js +745 -0
  103. package/src/shade/playground/skinned_blas_refit/flat_environment.d.ts +30 -0
  104. package/src/shade/playground/skinned_blas_refit/flat_environment.d.ts.map +1 -0
  105. package/src/shade/playground/skinned_blas_refit/flat_environment.js +67 -0
  106. package/src/shade/playground/skinned_blas_refit/index.html +168 -0
  107. package/src/shade/playground/skinned_blas_refit/main.d.ts +8 -0
  108. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -0
  109. package/src/shade/playground/skinned_blas_refit/main.js +502 -0
  110. package/src/shade/playground/skinned_blas_refit/place_character.d.ts +82 -0
  111. package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -0
  112. package/src/shade/playground/skinned_blas_refit/place_character.js +117 -0
  113. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts +21 -0
  114. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -0
  115. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +104 -0
  116. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts +23 -0
  117. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts.map +1 -0
  118. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.js +94 -0
  119. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts +26 -0
  120. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts.map +1 -0
  121. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.js +134 -0
  122. package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts +40 -0
  123. package/src/shade/playground/skinned_blas_refit/sweep_views.d.ts.map +1 -0
  124. package/src/shade/playground/skinned_blas_refit/sweep_views.js +135 -0
  125. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts +31 -0
  126. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -0
  127. package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +240 -0
  128. package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts +20 -0
  129. package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts.map +1 -0
  130. package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +202 -0
  131. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts +50 -0
  132. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -0
  133. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +366 -0
  134. package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts +17 -0
  135. package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.d.ts.map +1 -0
  136. package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +249 -0
  137. package/src/shade/playground/sponza_path_trace/README.md +57 -0
  138. package/src/shade/playground/sponza_path_trace/index.html +164 -0
  139. package/src/shade/playground/sponza_path_trace/main.d.ts +8 -0
  140. package/src/shade/playground/sponza_path_trace/main.d.ts.map +1 -0
  141. package/src/shade/playground/sponza_path_trace/main.js +363 -0
  142. package/src/shade/renderer/Renderer.d.ts +16 -0
  143. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  144. package/src/shade/renderer/Renderer.js +23 -4
  145. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +5 -1
  146. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  147. package/src/shade/renderer/animation/GPUAnimationManager.js +28 -3
  148. package/src/shade/renderer/animation/Skin.d.ts +9 -7
  149. package/src/shade/renderer/animation/Skin.d.ts.map +1 -1
  150. package/src/shade/renderer/animation/Skin.js +9 -7
  151. package/src/shade/renderer/animation/compute_skin_world_bounds.d.ts +35 -0
  152. package/src/shade/renderer/animation/compute_skin_world_bounds.d.ts.map +1 -0
  153. package/src/shade/renderer/animation/compute_skin_world_bounds.js +146 -0
  154. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  155. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +41 -0
  156. package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
  157. package/src/shade/renderer/geometry/GPUGeometryManager.js +65 -15
  158. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +78 -7
  159. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
  160. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +302 -77
  161. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts +18 -6
  162. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts.map +1 -1
  163. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.js +19 -6
  164. package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.d.ts +51 -0
  165. package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.d.ts.map +1 -0
  166. package/src/shade/renderer/geometry/bvh/bvh2_check_bounds.js +260 -0
  167. package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts +23 -0
  168. package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.d.ts.map +1 -0
  169. package/src/shade/renderer/geometry/bvh/bvh2_derive_topology.js +82 -0
  170. package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts +25 -0
  171. package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts.map +1 -0
  172. package/src/shade/renderer/geometry/bvh/record_blas_refit.js +102 -0
  173. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts +30 -0
  174. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts.map +1 -0
  175. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.js +122 -0
  176. package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.d.ts +55 -0
  177. package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.d.ts.map +1 -0
  178. package/src/shade/renderer/gpu_primitive/bvh/BVH_BUFFER_LAYOUT.js +70 -0
  179. package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.d.ts +37 -0
  180. package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.d.ts.map +1 -0
  181. package/src/shade/renderer/gpu_primitive/bvh/BVH_BUILD_SETTINGS_STRUCT.js +45 -0
  182. package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +1115 -0
  183. package/src/shade/renderer/gpu_primitive/bvh/PHASE1_HANDOVER.md +201 -0
  184. package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.d.ts +88 -0
  185. package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.d.ts.map +1 -0
  186. package/src/shade/renderer/gpu_primitive/bvh/check_bvh_structure.js +233 -0
  187. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts +18 -0
  188. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts.map +1 -0
  189. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.js +38 -0
  190. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts +16 -0
  191. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts.map +1 -0
  192. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.js +79 -0
  193. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts +16 -0
  194. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts.map +1 -0
  195. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.js +49 -0
  196. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +43 -0
  197. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts.map +1 -0
  198. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +217 -0
  199. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts +24 -0
  200. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -0
  201. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +143 -0
  202. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts +17 -0
  203. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts.map +1 -0
  204. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.js +83 -0
  205. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts +24 -0
  206. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -0
  207. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +141 -0
  208. package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts +31 -0
  209. package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts.map +1 -0
  210. package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.js +422 -0
  211. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.d.ts.map +1 -1
  212. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.js +1 -2
  213. package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.d.ts +9 -0
  214. package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.d.ts.map +1 -0
  215. package/src/shade/renderer/gpu_primitive/sort/SORT_PASS_SETTINGS_STRUCT.js +23 -0
  216. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.d.ts +18 -0
  217. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.d.ts.map +1 -0
  218. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_digit.js +32 -0
  219. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.d.ts +27 -0
  220. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.d.ts.map +1 -0
  221. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_rank.js +41 -0
  222. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.d.ts +25 -0
  223. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.d.ts.map +1 -0
  224. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_workgroup_scan.js +74 -0
  225. package/src/shade/renderer/gpu_primitive/sort/defs.d.ts +71 -0
  226. package/src/shade/renderer/gpu_primitive/sort/defs.d.ts.map +1 -0
  227. package/src/shade/renderer/gpu_primitive/sort/defs.js +79 -0
  228. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +37 -0
  229. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -0
  230. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +197 -0
  231. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts +16 -0
  232. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts.map +1 -0
  233. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.js +85 -0
  234. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts +15 -0
  235. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts.map +1 -0
  236. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.js +192 -0
  237. package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.d.ts +12 -0
  238. package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.d.ts.map +1 -0
  239. package/src/shade/renderer/gpu_primitive/sort/verify_radix_sort.js +188 -0
  240. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +16 -4
  241. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
  242. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +235 -24
  243. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  244. package/src/shade/renderer/scene/GPUSceneContext.js +15 -3
  245. package/src/shade/renderer/scene/SkinnedMesh.d.ts +57 -11
  246. package/src/shade/renderer/scene/SkinnedMesh.d.ts.map +1 -1
  247. package/src/shade/renderer/scene/SkinnedMesh.js +111 -11
  248. package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts +22 -0
  249. package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts.map +1 -0
  250. package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.js +145 -0
  251. package/src/shade/renderer/scene/verify_gpu_tlas_build.d.ts +18 -0
  252. package/src/shade/renderer/scene/verify_gpu_tlas_build.d.ts.map +1 -0
  253. package/src/shade/renderer/scene/verify_gpu_tlas_build.js +364 -0
  254. package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.d.ts +9 -1
  255. package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.d.ts.map +1 -1
  256. package/src/shade/renderer/shader/chunk/binary/chunk_split_by_3.js +29 -21
  257. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.d.ts +22 -0
  258. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.d.ts.map +1 -0
  259. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_v3_morton_encode.js +31 -0
  260. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_ray.d.ts.map +1 -1
  261. package/src/shade/renderer/shader/chunk/geometry/aabb3/chunk_aabb3_intersects_ray.js +87 -39
  262. package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.d.ts +17 -0
  263. package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.d.ts.map +1 -0
  264. package/src/shade/renderer/shader/chunk/geometry/format/chunk_geometry_read_triangle_bounds.js +40 -0
  265. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.d.ts +15 -0
  266. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.d.ts.map +1 -0
  267. package/src/shade/renderer/shader/chunk/geometry/meshlet/chunk_read_meshlet_triangle_bounds.js +52 -0
  268. package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.d.ts +9 -0
  269. package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.d.ts.map +1 -1
  270. package/src/shade/renderer/shader/chunk/geometry/ray/RAY_STRUCT.js +9 -0
  271. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.d.ts +20 -0
  272. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.d.ts.map +1 -1
  273. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_ray_transform_m4.js +52 -34
  274. package/src/shade/renderer/texture/virtual/README.md +255 -276
  275. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  276. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +66 -2
  277. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  278. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +83 -0
  279. package/src/view/graphics/{WebGLContextFailureView.d.ts → GraphicsContextFailureView.d.ts} +2 -2
  280. package/src/view/graphics/GraphicsContextFailureView.d.ts.map +1 -0
  281. package/src/view/graphics/{WebGLContextFailureView.js → GraphicsContextFailureView.js} +1 -1
  282. package/src/view/interaction/InterfaceCommand.d.ts +8 -8
  283. package/src/view/interaction/InterfaceCommand.d.ts.map +1 -1
  284. package/src/view/interaction/InterfaceCommand.js +146 -146
  285. package/src/view/interaction/createInterfaceCommandButton.d.ts.map +1 -1
  286. package/src/view/interaction/createInterfaceCommandButton.js +115 -124
  287. package/src/core/geom/3d/aabb/aabb3_from_three_geometry.d.ts +0 -7
  288. package/src/core/geom/3d/aabb/aabb3_from_three_geometry.d.ts.map +0 -1
  289. package/src/core/geom/3d/aabb/aabb3_from_three_geometry.js +0 -18
  290. package/src/core/geom/3d/aabb/aabb3_from_threejs_geometry.d.ts +0 -7
  291. package/src/core/geom/3d/aabb/aabb3_from_threejs_geometry.d.ts.map +0 -1
  292. package/src/core/geom/3d/aabb/aabb3_from_threejs_geometry.js +0 -7
  293. package/src/engine/ecs/components/Timer.d.ts +0 -50
  294. package/src/engine/ecs/components/Timer.d.ts.map +0 -1
  295. package/src/engine/ecs/components/Timer.js +0 -80
  296. package/src/engine/ecs/evaluation/PointFitnessBinary.d.ts +0 -22
  297. package/src/engine/ecs/evaluation/PointFitnessBinary.d.ts.map +0 -1
  298. package/src/engine/ecs/evaluation/PointFitnessBinary.js +0 -33
  299. package/src/engine/ecs/evaluation/PointFitnessConstant.d.ts +0 -12
  300. package/src/engine/ecs/evaluation/PointFitnessConstant.d.ts.map +0 -1
  301. package/src/engine/ecs/evaluation/PointFitnessConstant.js +0 -27
  302. package/src/engine/ecs/evaluation/PointFitnessFunction.d.ts +0 -17
  303. package/src/engine/ecs/evaluation/PointFitnessFunction.d.ts.map +0 -1
  304. package/src/engine/ecs/evaluation/PointFitnessFunction.js +0 -20
  305. package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.d.ts +0 -12
  306. package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.d.ts.map +0 -1
  307. package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.js +0 -27
  308. package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.d.ts +0 -12
  309. package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.d.ts.map +0 -1
  310. package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.js +0 -28
  311. package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts +0 -50
  312. package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts.map +0 -1
  313. package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.js +0 -176
  314. package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.d.ts +0 -7
  315. package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.d.ts.map +0 -1
  316. package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.js +0 -68
  317. package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.d.ts +0 -7
  318. package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.d.ts.map +0 -1
  319. package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.js +0 -89
  320. package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.d.ts +0 -17
  321. package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.d.ts.map +0 -1
  322. package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.js +0 -60
  323. package/src/engine/ecs/systems/TimerSystem.d.ts +0 -10
  324. package/src/engine/ecs/systems/TimerSystem.d.ts.map +0 -1
  325. package/src/engine/ecs/systems/TimerSystem.js +0 -86
  326. package/src/engine/ecs/transform/copy_three_transform.d.ts +0 -7
  327. package/src/engine/ecs/transform/copy_three_transform.d.ts.map +0 -1
  328. package/src/engine/ecs/transform/copy_three_transform.js +0 -15
  329. package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts +0 -13
  330. package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts.map +0 -1
  331. package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.js +0 -14
  332. package/src/engine/graphics/StandardFrameBuffers.d.ts +0 -7
  333. package/src/engine/graphics/StandardFrameBuffers.d.ts.map +0 -1
  334. package/src/engine/graphics/StandardFrameBuffers.js +0 -9
  335. package/src/engine/graphics/copy_transform_to_threejs_object.d.ts +0 -7
  336. package/src/engine/graphics/copy_transform_to_threejs_object.d.ts.map +0 -1
  337. package/src/engine/graphics/copy_transform_to_threejs_object.js +0 -12
  338. package/src/engine/graphics/ecs/light/binding/LightBinding.d.ts +0 -42
  339. package/src/engine/graphics/ecs/light/binding/LightBinding.d.ts.map +0 -1
  340. package/src/engine/graphics/ecs/light/binding/LightBinding.js +0 -133
  341. package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.d.ts +0 -25
  342. package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.d.ts.map +0 -1
  343. package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.js +0 -90
  344. package/src/engine/graphics/ecs/light/binding/three/applyRotation.d.ts +0 -7
  345. package/src/engine/graphics/ecs/light/binding/three/applyRotation.d.ts.map +0 -1
  346. package/src/engine/graphics/ecs/light/binding/three/applyRotation.js +0 -24
  347. package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.d.ts +0 -7
  348. package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.d.ts.map +0 -1
  349. package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.js +0 -12
  350. package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.d.ts +0 -8
  351. package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.d.ts.map +0 -1
  352. package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.js +0 -41
  353. package/src/engine/graphics/ecs/light/shadow/LightShadow.d.ts +0 -4
  354. package/src/engine/graphics/ecs/light/shadow/LightShadow.d.ts.map +0 -1
  355. package/src/engine/graphics/ecs/light/shadow/LightShadow.js +0 -4
  356. package/src/engine/graphics/ecs/light/shadow/ShadowManager.d.ts +0 -27
  357. package/src/engine/graphics/ecs/light/shadow/ShadowManager.d.ts.map +0 -1
  358. package/src/engine/graphics/ecs/light/shadow/ShadowManager.js +0 -53
  359. package/src/engine/graphics/ecs/light/shadow/ShadowMap.d.ts +0 -8
  360. package/src/engine/graphics/ecs/light/shadow/ShadowMap.d.ts.map +0 -1
  361. package/src/engine/graphics/ecs/light/shadow/ShadowMap.js +0 -7
  362. package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.d.ts +0 -14
  363. package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.d.ts.map +0 -1
  364. package/src/engine/graphics/ecs/light/shadow/compute_view_frustum_aabb_in_space.js +0 -62
  365. package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts +0 -30
  366. package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts.map +0 -1
  367. package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.js +0 -77
  368. package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.d.ts +0 -13
  369. package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.d.ts.map +0 -1
  370. package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.js +0 -43
  371. package/src/engine/graphics/ecs/light/three/light2type.d.ts +0 -8
  372. package/src/engine/graphics/ecs/light/three/light2type.d.ts.map +0 -1
  373. package/src/engine/graphics/ecs/light/three/light2type.js +0 -20
  374. package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.d.ts +0 -7
  375. package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.d.ts.map +0 -1
  376. package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.js +0 -13
  377. package/src/engine/graphics/ecs/mesh-v2/DeferredBoundsQueue.d.ts +0 -48
  378. package/src/engine/graphics/ecs/mesh-v2/DeferredBoundsQueue.d.ts.map +0 -1
  379. package/src/engine/graphics/ecs/mesh-v2/DeferredBoundsQueue.js +0 -88
  380. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.d.ts +0 -63
  381. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.d.ts.map +0 -1
  382. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.js +0 -314
  383. package/src/engine/graphics/ecs/mesh-v2/render/adapters/AbstractRenderAdapter.d.ts +0 -67
  384. package/src/engine/graphics/ecs/mesh-v2/render/adapters/AbstractRenderAdapter.d.ts.map +0 -1
  385. package/src/engine/graphics/ecs/mesh-v2/render/adapters/AbstractRenderAdapter.js +0 -130
  386. package/src/engine/graphics/ecs/mesh-v2/render/adapters/SGCacheKey.d.ts +0 -42
  387. package/src/engine/graphics/ecs/mesh-v2/render/adapters/SGCacheKey.d.ts.map +0 -1
  388. package/src/engine/graphics/ecs/mesh-v2/render/adapters/SGCacheKey.js +0 -71
  389. package/src/engine/graphics/ecs/mesh-v2/render/optimization/RuntimeDrawMethodOptimizer.d.ts +0 -20
  390. package/src/engine/graphics/ecs/mesh-v2/render/optimization/RuntimeDrawMethodOptimizer.d.ts.map +0 -1
  391. package/src/engine/graphics/ecs/mesh-v2/render/optimization/RuntimeDrawMethodOptimizer.js +0 -123
  392. package/src/engine/graphics/ecs/mesh-v2/three_object_to_entity_composition.d.ts +0 -8
  393. package/src/engine/graphics/ecs/mesh-v2/three_object_to_entity_composition.d.ts.map +0 -1
  394. package/src/engine/graphics/ecs/mesh-v2/three_object_to_entity_composition.js +0 -55
  395. package/src/engine/graphics/impostors/octahedral/util/load_mesh_for_bake.d.ts +0 -12
  396. package/src/engine/graphics/impostors/octahedral/util/load_mesh_for_bake.d.ts.map +0 -1
  397. package/src/engine/graphics/impostors/octahedral/util/load_mesh_for_bake.js +0 -31
  398. package/src/engine/graphics/particles/node-based/codegen/CodeContext.d.ts +0 -20
  399. package/src/engine/graphics/particles/node-based/codegen/CodeContext.d.ts.map +0 -1
  400. package/src/engine/graphics/particles/node-based/codegen/CodeContext.js +0 -47
  401. package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.d.ts +0 -12
  402. package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.d.ts.map +0 -1
  403. package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.js +0 -19
  404. package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.d.ts +0 -18
  405. package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.d.ts.map +0 -1
  406. package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.js +0 -249
  407. package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.d.ts +0 -7
  408. package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.d.ts.map +0 -1
  409. package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.js +0 -8
  410. package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.d.ts +0 -7
  411. package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.d.ts.map +0 -1
  412. package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.js +0 -8
  413. package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts +0 -14
  414. package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts.map +0 -1
  415. package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.js +0 -20
  416. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.d.ts +0 -3
  417. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.d.ts.map +0 -1
  418. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.js +0 -58
  419. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.d.ts +0 -3
  420. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.d.ts.map +0 -1
  421. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.js +0 -44
  422. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.d.ts +0 -3
  423. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.d.ts.map +0 -1
  424. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.js +0 -28
  425. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.d.ts +0 -3
  426. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.d.ts.map +0 -1
  427. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.js +0 -28
  428. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.d.ts +0 -3
  429. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.d.ts.map +0 -1
  430. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.js +0 -39
  431. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.d.ts +0 -3
  432. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.d.ts.map +0 -1
  433. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.js +0 -124
  434. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.d.ts +0 -3
  435. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.d.ts.map +0 -1
  436. package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.js +0 -30
  437. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.d.ts +0 -64
  438. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.d.ts.map +0 -1
  439. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.js +0 -131
  440. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.d.ts +0 -32
  441. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.d.ts.map +0 -1
  442. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.js +0 -62
  443. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.d.ts +0 -46
  444. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.d.ts.map +0 -1
  445. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.js +0 -272
  446. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.d.ts +0 -28
  447. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.d.ts.map +0 -1
  448. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.js +0 -57
  449. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.d.ts +0 -32
  450. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.d.ts.map +0 -1
  451. package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.js +0 -55
  452. package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts +0 -34
  453. package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.d.ts.map +0 -1
  454. package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.js +0 -178
  455. package/src/engine/graphics/particles/node-based/nodes/FloatConstant.d.ts +0 -7
  456. package/src/engine/graphics/particles/node-based/nodes/FloatConstant.d.ts.map +0 -1
  457. package/src/engine/graphics/particles/node-based/nodes/FloatConstant.js +0 -31
  458. package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.d.ts +0 -13
  459. package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.d.ts.map +0 -1
  460. package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.js +0 -13
  461. package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.d.ts +0 -7
  462. package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.d.ts.map +0 -1
  463. package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.js +0 -26
  464. package/src/engine/graphics/particles/node-based/nodes/ReadPosition.d.ts +0 -4
  465. package/src/engine/graphics/particles/node-based/nodes/ReadPosition.d.ts.map +0 -1
  466. package/src/engine/graphics/particles/node-based/nodes/ReadPosition.js +0 -5
  467. package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.d.ts +0 -6
  468. package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.d.ts.map +0 -1
  469. package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.js +0 -14
  470. package/src/engine/graphics/particles/node-based/nodes/ShaderNode.d.ts +0 -37
  471. package/src/engine/graphics/particles/node-based/nodes/ShaderNode.d.ts.map +0 -1
  472. package/src/engine/graphics/particles/node-based/nodes/ShaderNode.js +0 -73
  473. package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.d.ts +0 -7
  474. package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.d.ts.map +0 -1
  475. package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.js +0 -30
  476. package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.d.ts +0 -7
  477. package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.d.ts.map +0 -1
  478. package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.js +0 -30
  479. package/src/engine/graphics/particles/node-based/nodes/Vector3Split.d.ts +0 -7
  480. package/src/engine/graphics/particles/node-based/nodes/Vector3Split.d.ts.map +0 -1
  481. package/src/engine/graphics/particles/node-based/nodes/Vector3Split.js +0 -32
  482. package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.d.ts +0 -6
  483. package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.d.ts.map +0 -1
  484. package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.js +0 -15
  485. package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.d.ts +0 -7
  486. package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.d.ts.map +0 -1
  487. package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.js +0 -27
  488. package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.d.ts +0 -7
  489. package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.d.ts.map +0 -1
  490. package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.js +0 -25
  491. package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.d.ts +0 -7
  492. package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.d.ts.map +0 -1
  493. package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.js +0 -26
  494. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.d.ts +0 -7
  495. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.d.ts.map +0 -1
  496. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.js +0 -25
  497. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.d.ts +0 -7
  498. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.d.ts.map +0 -1
  499. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.js +0 -25
  500. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.d.ts +0 -7
  501. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.d.ts.map +0 -1
  502. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.js +0 -25
  503. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.d.ts +0 -7
  504. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.d.ts.map +0 -1
  505. package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.js +0 -25
  506. package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.d.ts +0 -7
  507. package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.d.ts.map +0 -1
  508. package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.js +0 -39
  509. package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts +0 -39
  510. package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts.map +0 -1
  511. package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.js +0 -45
  512. package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.d.ts +0 -9
  513. package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.d.ts.map +0 -1
  514. package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.js +0 -10
  515. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.d.ts +0 -13
  516. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.d.ts.map +0 -1
  517. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.js +0 -14
  518. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts +0 -50
  519. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts.map +0 -1
  520. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.js +0 -47
  521. package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.d.ts +0 -51
  522. package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.d.ts.map +0 -1
  523. package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.js +0 -93
  524. package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.d.ts +0 -6
  525. package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.d.ts.map +0 -1
  526. package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.js +0 -23
  527. package/src/engine/graphics/particles/node-based/populateNodeRegistry.d.ts +0 -7
  528. package/src/engine/graphics/particles/node-based/populateNodeRegistry.d.ts.map +0 -1
  529. package/src/engine/graphics/particles/node-based/populateNodeRegistry.js +0 -48
  530. package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.d.ts +0 -21
  531. package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.d.ts.map +0 -1
  532. package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.js +0 -35
  533. package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.d.ts +0 -20
  534. package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.d.ts.map +0 -1
  535. package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.js +0 -35
  536. package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.d.ts +0 -14
  537. package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.d.ts.map +0 -1
  538. package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.js +0 -17
  539. package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.d.ts +0 -5
  540. package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.d.ts.map +0 -1
  541. package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.js +0 -150
  542. package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.d.ts +0 -55
  543. package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.d.ts.map +0 -1
  544. package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.js +0 -105
  545. package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.d.ts +0 -49
  546. package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.d.ts.map +0 -1
  547. package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.js +0 -103
  548. package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.d.ts +0 -4
  549. package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.d.ts.map +0 -1
  550. package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.js +0 -6
  551. package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.d.ts +0 -83
  552. package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.d.ts.map +0 -1
  553. package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.js +0 -188
  554. package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.d.ts +0 -123
  555. package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.d.ts.map +0 -1
  556. package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.js +0 -415
  557. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts +0 -71
  558. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts.map +0 -1
  559. package/src/engine/graphics/render/buffer/FrameBufferManager.js +0 -229
  560. package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts +0 -22
  561. package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.d.ts.map +0 -1
  562. package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.js +0 -84
  563. package/src/engine/graphics/render/forward_plus/LightRenderMetadata.d.ts +0 -33
  564. package/src/engine/graphics/render/forward_plus/LightRenderMetadata.d.ts.map +0 -1
  565. package/src/engine/graphics/render/forward_plus/LightRenderMetadata.js +0 -61
  566. package/src/engine/graphics/render/forward_plus/SPECIFICATION.md +0 -155
  567. package/src/engine/graphics/render/forward_plus/assign_cluster.d.ts +0 -29
  568. package/src/engine/graphics/render/forward_plus/assign_cluster.d.ts.map +0 -1
  569. package/src/engine/graphics/render/forward_plus/assign_cluster.js +0 -124
  570. package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.d.ts +0 -7
  571. package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.d.ts.map +0 -1
  572. package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.js +0 -17
  573. package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.d.ts +0 -7
  574. package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.d.ts.map +0 -1
  575. package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.js +0 -17
  576. package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.d.ts +0 -9
  577. package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.d.ts.map +0 -1
  578. package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.js +0 -29
  579. package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.d.ts +0 -12
  580. package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.d.ts.map +0 -1
  581. package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.js +0 -43
  582. package/src/engine/graphics/render/forward_plus/computeFrustumCorners.d.ts +0 -8
  583. package/src/engine/graphics/render/forward_plus/computeFrustumCorners.d.ts.map +0 -1
  584. package/src/engine/graphics/render/forward_plus/computeFrustumCorners.js +0 -68
  585. package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.d.ts +0 -4
  586. package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.d.ts.map +0 -1
  587. package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.js +0 -46
  588. package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.d.ts +0 -14
  589. package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.d.ts.map +0 -1
  590. package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.js +0 -327
  591. package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.d.ts +0 -2
  592. package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.d.ts.map +0 -1
  593. package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.js +0 -1
  594. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.d.ts +0 -2
  595. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.d.ts.map +0 -1
  596. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.js +0 -40
  597. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.d.ts +0 -2
  598. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.d.ts.map +0 -1
  599. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.js +0 -74
  600. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.d.ts +0 -2
  601. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.d.ts.map +0 -1
  602. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.js +0 -55
  603. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.d.ts +0 -2
  604. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.d.ts.map +0 -1
  605. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.js +0 -11
  606. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.d.ts +0 -2
  607. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.d.ts.map +0 -1
  608. package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.js +0 -34
  609. package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.d.ts +0 -7
  610. package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.d.ts.map +0 -1
  611. package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.js +0 -60
  612. package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.d.ts +0 -7
  613. package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.d.ts.map +0 -1
  614. package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.js +0 -38
  615. package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.d.ts +0 -7
  616. package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.d.ts.map +0 -1
  617. package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.js +0 -30
  618. package/src/engine/graphics/render/forward_plus/model/Decal.d.ts +0 -51
  619. package/src/engine/graphics/render/forward_plus/model/Decal.d.ts.map +0 -1
  620. package/src/engine/graphics/render/forward_plus/model/Decal.js +0 -133
  621. package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.d.ts +0 -16
  622. package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.d.ts.map +0 -1
  623. package/src/engine/graphics/render/forward_plus/plugin/forwardPlusMaterialMarker.js +0 -18
  624. package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.d.ts +0 -7
  625. package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.d.ts.map +0 -1
  626. package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.js +0 -8
  627. package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.d.ts +0 -10
  628. package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.d.ts.map +0 -1
  629. package/src/engine/graphics/render/forward_plus/query/analytical_biplanar_corner_mapping.js +0 -65
  630. package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.d.ts +0 -7
  631. package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.d.ts.map +0 -1
  632. package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.js +0 -8
  633. package/src/engine/graphics/render/forward_plus/query/cube_mapping.d.ts +0 -11
  634. package/src/engine/graphics/render/forward_plus/query/cube_mapping.d.ts.map +0 -1
  635. package/src/engine/graphics/render/forward_plus/query/cube_mapping.js +0 -38
  636. package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.d.ts +0 -21
  637. package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.d.ts.map +0 -1
  638. package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +0 -96
  639. package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.d.ts +0 -22
  640. package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.d.ts.map +0 -1
  641. package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.js +0 -44
  642. package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.d.ts +0 -11
  643. package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.d.ts.map +0 -1
  644. package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.js +0 -169
  645. package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.d.ts +0 -9
  646. package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.d.ts.map +0 -1
  647. package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.js +0 -33
  648. package/src/engine/graphics/render/forward_plus/read_frustum_corner.d.ts +0 -2
  649. package/src/engine/graphics/render/forward_plus/read_frustum_corner.d.ts.map +0 -1
  650. package/src/engine/graphics/render/forward_plus/read_frustum_corner.js +0 -2
  651. package/src/engine/graphics/render/forward_plus/sort_decal_data.d.ts +0 -9
  652. package/src/engine/graphics/render/forward_plus/sort_decal_data.d.ts.map +0 -1
  653. package/src/engine/graphics/render/forward_plus/sort_decal_data.js +0 -102
  654. package/src/engine/graphics/render/forward_plus/testClusterEquality.d.ts +0 -10
  655. package/src/engine/graphics/render/forward_plus/testClusterEquality.d.ts.map +0 -1
  656. package/src/engine/graphics/render/forward_plus/testClusterEquality.js +0 -22
  657. package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.d.ts +0 -19
  658. package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.d.ts.map +0 -1
  659. package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.js +0 -62
  660. package/src/engine/graphics/shaders/AlphaBlendShader.d.ts +0 -18
  661. package/src/engine/graphics/shaders/AlphaBlendShader.d.ts.map +0 -1
  662. package/src/engine/graphics/shaders/AlphaBlendShader.js +0 -42
  663. package/src/engine/graphics/shaders/ClearShader.d.ts +0 -8
  664. package/src/engine/graphics/shaders/ClearShader.d.ts.map +0 -1
  665. package/src/engine/graphics/shaders/ClearShader.js +0 -28
  666. package/src/engine/graphics/shaders/ScreenSpaceQuadShader.d.ts +0 -13
  667. package/src/engine/graphics/shaders/ScreenSpaceQuadShader.d.ts.map +0 -1
  668. package/src/engine/graphics/shaders/ScreenSpaceQuadShader.js +0 -38
  669. package/src/engine/graphics/shaders/ScreenSpaceShader.d.ts +0 -7
  670. package/src/engine/graphics/shaders/ScreenSpaceShader.d.ts.map +0 -1
  671. package/src/engine/graphics/shaders/ScreenSpaceShader.js +0 -102
  672. package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts +0 -102
  673. package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts.map +0 -1
  674. package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.js +0 -277
  675. package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts +0 -40
  676. package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts.map +0 -1
  677. package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.js +0 -57
  678. package/src/engine/graphics/shaders/glsl_gen_swizzled_read.d.ts +0 -8
  679. package/src/engine/graphics/shaders/glsl_gen_swizzled_read.d.ts.map +0 -1
  680. package/src/engine/graphics/shaders/glsl_gen_swizzled_read.js +0 -39
  681. package/src/engine/graphics/shadows/README.md +0 -6
  682. package/src/engine/graphics/shadows/vsm.glsl.d.ts +0 -3
  683. package/src/engine/graphics/shadows/vsm.glsl.d.ts.map +0 -1
  684. package/src/engine/graphics/shadows/vsm.glsl.js +0 -43
  685. package/src/engine/graphics/util/composeMatrix4.d.ts +0 -9
  686. package/src/engine/graphics/util/composeMatrix4.d.ts.map +0 -1
  687. package/src/engine/graphics/util/composeMatrix4.js +0 -13
  688. package/src/engine/graphics/util/threeUpdateMatrix.d.ts +0 -6
  689. package/src/engine/graphics/util/threeUpdateMatrix.d.ts.map +0 -1
  690. package/src/engine/graphics/util/threeUpdateMatrix.js +0 -14
  691. package/src/engine/graphics/util/threeUpdateTransform.d.ts +0 -6
  692. package/src/engine/graphics/util/threeUpdateTransform.d.ts.map +0 -1
  693. package/src/engine/graphics/util/threeUpdateTransform.js +0 -16
  694. package/src/engine/sound/ecs/SoundController.d.ts.map +0 -1
  695. package/src/engine/sound/ecs/SoundControllerSystem.d.ts +0 -23
  696. package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +0 -1
  697. package/src/engine/sound/ecs/SoundControllerSystem.js +0 -103
  698. package/src/engine/sound/ecs/emitter/SoundAttenuationFunction.d.ts.map +0 -1
  699. package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +0 -1
  700. package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts +0 -55
  701. package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.d.ts.map +0 -1
  702. package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.js +0 -265
  703. package/src/engine/sound/ecs/emitter/SoundEmitterFlags.d.ts.map +0 -1
  704. package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.d.ts.map +0 -1
  705. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts +0 -88
  706. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +0 -1
  707. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +0 -159
  708. package/src/engine/sound/ecs/emitter/SoundPanningModelType.d.ts.map +0 -1
  709. package/src/engine/sound/ecs/emitter/SoundTrack.d.ts.map +0 -1
  710. package/src/engine/sound/ecs/emitter/SoundTrackFlags.d.ts.map +0 -1
  711. package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.d.ts +0 -8
  712. package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.d.ts.map +0 -1
  713. package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.js +0 -41
  714. package/src/shade/playground/FramePerformanceMonitor.d.ts +0 -114
  715. package/src/shade/playground/FramePerformanceMonitor.d.ts.map +0 -1
  716. package/src/shade/playground/FramePerformanceMonitor.js +0 -468
  717. package/src/shade/playground/add_random_lights.d.ts +0 -8
  718. package/src/shade/playground/add_random_lights.d.ts.map +0 -1
  719. package/src/shade/playground/add_random_lights.js +0 -50
  720. package/src/shade/playground/animation_prototype.d.ts +0 -24
  721. package/src/shade/playground/animation_prototype.d.ts.map +0 -1
  722. package/src/shade/playground/animation_prototype.js +0 -508
  723. package/src/shade/playground/animation_prototype_skinning.d.ts +0 -31
  724. package/src/shade/playground/animation_prototype_skinning.d.ts.map +0 -1
  725. package/src/shade/playground/animation_prototype_skinning.js +0 -647
  726. package/src/shade/playground/animation_prototype_stress.d.ts +0 -35
  727. package/src/shade/playground/animation_prototype_stress.d.ts.map +0 -1
  728. package/src/shade/playground/animation_prototype_stress.js +0 -765
  729. package/src/shade/playground/enable_picker.d.ts +0 -8
  730. package/src/shade/playground/enable_picker.d.ts.map +0 -1
  731. package/src/shade/playground/enable_picker.js +0 -60
  732. package/src/shade/playground/gltf_skinned_prototype.d.ts +0 -27
  733. package/src/shade/playground/gltf_skinned_prototype.d.ts.map +0 -1
  734. package/src/shade/playground/gltf_skinned_prototype.js +0 -560
  735. package/src/shade/playground/gltf_skinned_stress_prototype.d.ts +0 -24
  736. package/src/shade/playground/gltf_skinned_stress_prototype.d.ts.map +0 -1
  737. package/src/shade/playground/gltf_skinned_stress_prototype.js +0 -387
  738. package/src/shade/playground/gltf_viewer.d.ts +0 -2
  739. package/src/shade/playground/gltf_viewer.d.ts.map +0 -1
  740. package/src/shade/playground/gltf_viewer.js +0 -283
  741. package/src/shade/playground/main.d.ts.map +0 -1
  742. package/src/shade/playground/main.js +0 -2727
  743. package/src/shade/playground/make_animated_instances.d.ts +0 -9
  744. package/src/shade/playground/make_animated_instances.d.ts.map +0 -1
  745. package/src/shade/playground/make_animated_instances.js +0 -118
  746. package/src/shade/playground/prototype_virtual_texture.d.ts +0 -2
  747. package/src/shade/playground/prototype_virtual_texture.d.ts.map +0 -1
  748. package/src/shade/playground/prototype_virtual_texture.js +0 -274
  749. package/src/shade/playground/prototype_volumetrics_01.d.ts +0 -2
  750. package/src/shade/playground/prototype_volumetrics_01.d.ts.map +0 -1
  751. package/src/shade/playground/prototype_volumetrics_01.js +0 -206
  752. package/src/shade/playground/sample.d.ts +0 -2
  753. package/src/shade/playground/sample.d.ts.map +0 -1
  754. package/src/shade/playground/sample.js +0 -234
  755. package/src/shade/playground/sample_load_gltf.d.ts +0 -9
  756. package/src/shade/playground/sample_load_gltf.d.ts.map +0 -1
  757. package/src/shade/playground/sample_load_gltf.js +0 -103
  758. package/src/shade/playground/spread_node3d_grid.d.ts +0 -7
  759. package/src/shade/playground/spread_node3d_grid.d.ts.map +0 -1
  760. package/src/shade/playground/spread_node3d_grid.js +0 -20
  761. package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.d.ts +0 -24
  762. package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.d.ts.map +0 -1
  763. package/src/shade/renderer/geometry/bvh/GPUGeometryBVH.js +0 -88
  764. package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.d.ts +0 -3
  765. package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.d.ts.map +0 -1
  766. package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_scan_add.js +0 -49
  767. package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.d.ts +0 -3
  768. package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.d.ts.map +0 -1
  769. package/src/shade/renderer/gpu_primitive/prefix_sum/v0/shader_exclusive_prefix_sum_scan.js +0 -93
  770. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.d.ts +0 -24
  771. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.d.ts.map +0 -1
  772. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdl.js +0 -119
  773. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.d.ts +0 -7
  774. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.d.ts.map +0 -1
  775. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_one_sweep_prefix_scan.js +0 -235
  776. package/src/shade/renderer/gpu_primitive/sort/NOTES.md +0 -5
  777. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.d.ts +0 -7
  778. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.d.ts.map +0 -1
  779. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_common.js +0 -136
  780. package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.d.ts +0 -18
  781. package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.d.ts.map +0 -1
  782. package/src/shade/renderer/gpu_primitive/sort/ffx/chunk_safe_load_uint4_umax.js +0 -108
  783. package/src/shade/renderer/gpu_primitive/sort/ffx/defs.d.ts +0 -35
  784. package/src/shade/renderer/gpu_primitive/sort/ffx/defs.d.ts.map +0 -1
  785. package/src/shade/renderer/gpu_primitive/sort/ffx/defs.js +0 -42
  786. package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.d.ts +0 -13
  787. package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.d.ts.map +0 -1
  788. package/src/shade/renderer/gpu_primitive/sort/ffx/graph_radix_sort.js +0 -116
  789. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.d.ts +0 -3
  790. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.d.ts.map +0 -1
  791. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_bit_histogram.js +0 -120
  792. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.d.ts +0 -3
  793. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.d.ts.map +0 -1
  794. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_distribute_part_sum_int4.js +0 -76
  795. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.d.ts +0 -3
  796. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.d.ts.map +0 -1
  797. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_partial.js +0 -125
  798. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.d.ts +0 -3
  799. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.d.ts.map +0 -1
  800. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scan_exclusive_uint4.js +0 -140
  801. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.d.ts +0 -3
  802. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.d.ts.map +0 -1
  803. package/src/shade/renderer/gpu_primitive/sort/ffx/shader_scatter_keys_and_values.js +0 -338
  804. package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.d.ts +0 -7
  805. package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.d.ts.map +0 -1
  806. package/src/shade/renderer/gpu_primitive/sort/gaussian_splatting/x.js +0 -261
  807. package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.d.ts +0 -3
  808. package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.d.ts.map +0 -1
  809. package/src/shade/renderer/gpu_primitive/sort/one_sweep/chunk_extract_digit.js +0 -14
  810. package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.d.ts +0 -25
  811. package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.d.ts.map +0 -1
  812. package/src/shade/renderer/gpu_primitive/sort/one_sweep/defs.js +0 -25
  813. package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.d.ts +0 -15
  814. package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.d.ts.map +0 -1
  815. package/src/shade/renderer/gpu_primitive/sort/one_sweep/graph_radix_sort.js +0 -192
  816. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.d.ts +0 -5
  817. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.d.ts.map +0 -1
  818. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_digit_binning_pass_pairs.js +0 -990
  819. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.d.ts +0 -5
  820. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.d.ts.map +0 -1
  821. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_global_histogram.js +0 -82
  822. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.d.ts +0 -3
  823. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.d.ts.map +0 -1
  824. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_init_sweep.js +0 -44
  825. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.d.ts +0 -5
  826. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.d.ts.map +0 -1
  827. package/src/shade/renderer/gpu_primitive/sort/one_sweep/shader_scan.js +0 -156
  828. package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.d.ts +0 -6
  829. package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.d.ts.map +0 -1
  830. package/src/shade/renderer/gpu_primitive/sort/one_sweep/test_radix_sort.js +0 -55
  831. package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.d.ts +0 -14
  832. package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.d.ts.map +0 -1
  833. package/src/shade/renderer/gpu_primitive/sort/one_sweep/verify_radix_sort_one_sweep.js +0 -110
  834. package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.d.ts +0 -12
  835. package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.d.ts.map +0 -1
  836. package/src/shade/renderer/gpu_primitive/sort/v4/graph_radix_sort.js +0 -74
  837. package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.d.ts +0 -3
  838. package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.d.ts.map +0 -1
  839. package/src/shade/renderer/gpu_primitive/sort/v4/shader_radix_sort.js +0 -125
  840. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.d.ts +0 -7
  841. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.d.ts.map +0 -1
  842. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_calculate_morton_code.js +0 -36
  843. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.d.ts +0 -7
  844. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.d.ts.map +0 -1
  845. package/src/shade/renderer/shader/chunk/bvh/morton/chunk_get_morton_codes_from_unit_coord.js +0 -54
  846. package/src/shade/renderer/shader/chunk/bvh/packed/NOTES.md +0 -19
  847. package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.d.ts +0 -3
  848. package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.d.ts.map +0 -1
  849. package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_STRUCT.js +0 -9
  850. package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.d.ts +0 -6
  851. package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.d.ts.map +0 -1
  852. package/src/shade/renderer/shader/chunk/bvh/packed/PACKED_BVH_NODE_WORD_COUNT.js +0 -5
  853. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.d.ts +0 -8
  854. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.d.ts.map +0 -1
  855. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_make_f32_interval_f16_safe.js +0 -17
  856. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.d.ts +0 -3
  857. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.d.ts.map +0 -1
  858. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_pack_f32_interval_to_u32.js +0 -14
  859. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.d.ts +0 -3
  860. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.d.ts.map +0 -1
  861. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_from_unpacked_node.js +0 -27
  862. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.d.ts +0 -3
  863. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.d.ts.map +0 -1
  864. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_read_node.js +0 -31
  865. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.d.ts +0 -3
  866. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.d.ts.map +0 -1
  867. package/src/shade/renderer/shader/chunk/bvh/packed/chunk_packed_bvh_write_node.js +0 -25
  868. package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.d.ts +0 -3
  869. package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.d.ts.map +0 -1
  870. package/src/shade/renderer/shader/chunk/bvh/packed/shader_pack_blas.js +0 -42
  871. package/src/view/graphics/WebGLContextFailureView.d.ts.map +0 -1
  872. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundAttenuationFunction.d.ts +0 -0
  873. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundAttenuationFunction.js +0 -0
  874. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterFlags.d.ts +0 -0
  875. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterFlags.js +0 -0
  876. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationAdapter.d.ts +0 -0
  877. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationAdapter.js +0 -0
  878. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.d.ts +0 -0
  879. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_0_1.js +0 -0
  880. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.d.ts +0 -0
  881. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundEmitterSerializationUpgrader_1_2.js +0 -0
  882. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundPanningModelType.d.ts +0 -0
  883. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundPanningModelType.js +0 -0
  884. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrackFlags.d.ts +0 -0
  885. /package/src/engine/sound/{ecs/emitter → sopra/legacy}/SoundTrackFlags.js +0 -0
  886. /package/src/shade/playground/{main.d.ts → bvh_repro/main.d.ts} +0 -0
@@ -0,0 +1,502 @@
1
+ import Vector3 from "../../../core/geom/Vector3.js";
2
+ import { DEG_TO_RAD } from "../../../core/math/DEG_TO_RAD.js";
3
+ import { AnimationClipFlags } from "../../renderer/animation/AnimationClipFlags.js";
4
+ import { camera_frame_sphere } from "../../renderer/camera/camera_frame_sphere.js";
5
+ import { OrbitalCameraController } from "../../renderer/camera/OrbitalCameraController.js";
6
+ import { PerspectiveCamera } from "../../renderer/camera/PerspectiveCamera.js";
7
+ import { create_frame_loop } from "../../renderer/create_frame_loop.js";
8
+ import { make_sunlight } from "../../renderer/light/make_sunlight.js";
9
+ import { load_gltf } from "../../renderer/loader/gltf/load_gltf.js";
10
+ import { Renderer } from "../../renderer/Renderer.js";
11
+ import { Scene } from "../../renderer/scene/Scene.js";
12
+ import { load_default_environment } from "../load_default_environment.js";
13
+ import { make_playground_asset_manager } from "../make_playground_asset_manager.js";
14
+ import { add_floor } from "./add_floor.js";
15
+ import { grid_position, place_character } from "./place_character.js";
16
+
17
+ /**
18
+ * A dancing character under the path tracer — the browser tier for the per-frame BLAS refit.
19
+ *
20
+ * Every device-free tier can say the refit is *recorded*: the right dispatches, the right offsets,
21
+ * the counters cleared. None of them can say the tree that comes out is the shape of the mesh,
22
+ * because none of them run a shader. This page is where that question gets answered, and it answers
23
+ * it by putting two readings of the same geometry side by side.
24
+ *
25
+ * Rasterization reads the clone's deformed vertices directly. The path tracer reads the clone's
26
+ * BLAS. If the refit works the two silhouettes are the same silhouette, and toggling between them
27
+ * changes the lighting and nothing else. If it does not, the traced figure stands in bind pose
28
+ * while the rasterized one dances — and casts shadows from a body that is not there, which is the
29
+ * more legible half of the failure.
30
+ *
31
+ * Runs under the dev server (`npm run dev`), which serves `test_assets/` and resolves the one bare
32
+ * specifier the renderer reaches for.
33
+ */
34
+
35
+ /**
36
+ * Served by the dev server out of `test_assets/`, which is gitignored and unpublished. See
37
+ * `test_assets/README.md`.
38
+ *
39
+ * A Mixamo character with one skin and a looping dance — which is the whole requirement: joints
40
+ * that move far enough, fast enough, that a tree fitted to the bind pose is visibly the wrong tree.
41
+ *
42
+ * @type {string}
43
+ */
44
+ const CHARACTER_URL = '/test_assets/Michelle.glb';
45
+
46
+ /**
47
+ * How far apart dancers stand, in character heights.
48
+ *
49
+ * @type {number}
50
+ */
51
+ const SPACING = 1.1;
52
+
53
+ /**
54
+ * A frame-time readout, kept as a rolling mean so the number is readable rather than jittering.
55
+ */
56
+ class FrameTimer {
57
+ #samples = new Float64Array(60);
58
+ #count = 0;
59
+ #cursor = 0;
60
+
61
+ /**
62
+ * @param {number} seconds
63
+ */
64
+ add(seconds) {
65
+ this.#samples[this.#cursor] = seconds * 1000;
66
+ this.#cursor = (this.#cursor + 1) % this.#samples.length;
67
+ this.#count = Math.min(this.#count + 1, this.#samples.length);
68
+ }
69
+
70
+ reset() {
71
+ this.#count = 0;
72
+ this.#cursor = 0;
73
+ }
74
+
75
+ /**
76
+ * @returns {number} mean frame time in milliseconds, or 0 before there is anything to average
77
+ */
78
+ get mean_ms() {
79
+ if (this.#count === 0) {
80
+ return 0;
81
+ }
82
+
83
+ let total = 0;
84
+ for (let i = 0; i < this.#count; i++) {
85
+ total += this.#samples[i];
86
+ }
87
+
88
+ return total / this.#count;
89
+ }
90
+ }
91
+
92
+ /**
93
+ * Every {@link SkinnedMesh} a bundle's skins deform.
94
+ *
95
+ * Off the skins rather than by walking the scene roots: a skin already lists exactly the meshes
96
+ * that bind to it, which is what `register_skin` uses, so this cannot disagree with what actually
97
+ * gets deformed.
98
+ *
99
+ * @param {SceneBundle} bundle
100
+ * @returns {SkinnedMesh[]}
101
+ */
102
+ function skinned_meshes_of(bundle) {
103
+ const meshes = new Set();
104
+
105
+ for (const skin of bundle.skins) {
106
+ for (const mesh of skin.meshes) {
107
+ meshes.add(mesh);
108
+ }
109
+ }
110
+
111
+ return [...meshes];
112
+ }
113
+
114
+ /**
115
+ * Load one dancer, place it, and set it going.
116
+ *
117
+ * A whole load per dancer rather than one load and N instances: a second dancer needs a second
118
+ * joint hierarchy to pose, and those are scene nodes. The asset framework caches the bytes, so the
119
+ * repeat is parse work rather than transfer.
120
+ *
121
+ * @param {Scene} scene
122
+ * @param {GPUSceneContext} scene_context
123
+ * @param {AssetManager} asset_manager
124
+ * @param {number} index which dancer this is, used to place it
125
+ * @param {number} count how many there are in total
126
+ * @returns {Promise<SkinnedMesh[]>}
127
+ */
128
+ async function add_dancer(scene, scene_context, asset_manager, index, count) {
129
+ const bundle = await load_gltf(CHARACTER_URL, { assetManager: asset_manager });
130
+
131
+ const meshes = skinned_meshes_of(bundle);
132
+
133
+ if (meshes.length === 0) {
134
+ throw new Error(`${CHARACTER_URL} has no skinned mesh — nothing here has a BLAS to refit`);
135
+ }
136
+
137
+ // A grid, centred on the origin. The offset goes on a fresh parent above the character's own
138
+ // roots rather than on the mesh node: a skinned mesh's own transform cancels out of both the
139
+ // vertex the renderer draws and the box it publishes, so the joints are what has to move. See
140
+ // `place_character`.
141
+ const { x, z } = grid_position(index, count, SPACING);
142
+
143
+ place_character(scene, bundle, x, z);
144
+
145
+ const animations = scene_context.animation_manager;
146
+
147
+ for (const skin of bundle.skins) {
148
+ animations.register_skin(skin);
149
+ }
150
+
151
+ // One clip, looping, at full weight. The pose accumulator sums every *bound* clip whatever its
152
+ // weight, so binding the T-pose alongside the dance would blend the two rather than leave the
153
+ // dance alone — only what should play is registered.
154
+ const clip = bundle.clips.find(candidate => /samba|dance/i.test(candidate.name ?? ''))
155
+ ?? bundle.clips[0];
156
+
157
+ if (clip !== undefined) {
158
+ const clip_id = animations.register_clip(clip);
159
+
160
+ animations.set_playback_weight(clip_id, 1);
161
+ animations.set_flags(clip_id, AnimationClipFlags.Loop);
162
+ animations.start(clip_id);
163
+ }
164
+
165
+ return meshes;
166
+ }
167
+
168
+ /**
169
+ * The world-space box the renderer itself culls and traces this mesh by.
170
+ *
171
+ * Not `mesh.bounding_box`, which is the CPU-side box of the *source* geometry under the mesh
172
+ * transform — the rest pose, and for a glTF character whose node carries the file's centimetre
173
+ * scale, a box a couple of centimetres across. Framing a camera on that puts it inside the
174
+ * character, where a rasterized image and a traced one have no reason to look alike and neither
175
+ * says anything about the tree.
176
+ *
177
+ * The `meshes` table row is the deformed box: the skinning pass's bounds-refresh chain rewrites it
178
+ * every frame from the vertices it just moved. It is only right once that chain has run, so this
179
+ * is worth nothing before a few frames have gone by.
180
+ *
181
+ * @param {GPUSceneContext} scene_context
182
+ * @param {Mesh} mesh
183
+ * @returns {Promise<{low: Vector3, high: Vector3, radius: number}>}
184
+ */
185
+ async function world_bounds_of(scene_context, mesh) {
186
+ const row = scene_context.mesh_row_of(mesh);
187
+
188
+ const record = await scene_context.scene_database.debug_table_read_element('meshes', row);
189
+
190
+ const box = record.bounding_box;
191
+
192
+ const low = new Vector3(box[0], box[1], box[2]);
193
+ const high = new Vector3(box[3], box[4], box[5]);
194
+
195
+ return {
196
+ low,
197
+ high,
198
+ radius: Math.hypot(high.x - low.x, high.y - low.y, high.z - low.z) * 0.5,
199
+ };
200
+ }
201
+
202
+ /**
203
+ * Stand the prototype up. Called by the page rather than run on import, so that nothing here
204
+ * touches the DOM until there is one.
205
+ *
206
+ * @returns {Promise<void>}
207
+ */
208
+ export async function start() {
209
+
210
+ const element = id => document.getElementById(id);
211
+
212
+ const status_element = element('status');
213
+ const stats_element = element('stats');
214
+
215
+ /**
216
+ * @param {string} text
217
+ * @param {string} [kind]
218
+ */
219
+ function set_status(text, kind = '') {
220
+ status_element.textContent = text;
221
+ status_element.className = kind;
222
+ }
223
+
224
+ const canvas = element('view');
225
+
226
+ const context = canvas.getContext('webgpu');
227
+
228
+ if (context === null) {
229
+ set_status('no WebGPU context — this browser has none, or the page is not a secure context', 'fail');
230
+ return;
231
+ }
232
+
233
+ const renderer = new Renderer();
234
+
235
+ set_status('acquiring a device…');
236
+
237
+ await renderer.initialize({ context });
238
+
239
+ if (!renderer.graphics.device.features.has('subgroups')) {
240
+ set_status('device has no `subgroups`, which this engine takes as a baseline', 'warn');
241
+ }
242
+
243
+ const camera = new PerspectiveCamera();
244
+
245
+ camera.near = 0.01;
246
+ camera.far = 200;
247
+ camera.fov = 50 * DEG_TO_RAD;
248
+ camera.aspect = renderer.aspect_ratio;
249
+
250
+ const scene = new Scene();
251
+
252
+ // document.body rather than the canvas: the controller starts a keyboard device, and only a
253
+ // focusable element can receive key events — body carries tabindex for exactly that.
254
+ const controller = new OrbitalCameraController(camera, document.body);
255
+
256
+ // handy from the console
257
+ globalThis.renderer = renderer;
258
+ globalThis.scene = scene;
259
+ globalThis.camera = camera;
260
+ globalThis.controller = controller;
261
+
262
+ // The numeric half of what this page checks by eye: `verify()` in the console holds the tree's
263
+ // root box against the bounds-refresh chain's box over the same deformed vertices. Useful when
264
+ // the page cannot be looked at — a browser stops calling `requestAnimationFrame` for a page it
265
+ // is not compositing, so a hidden tab renders no frames to look at in the first place.
266
+ globalThis.verify = async () => {
267
+ const { verify_skinned_blas_refit } = await import('./verify_skinned_blas_refit.js');
268
+
269
+ return verify_skinned_blas_refit({ renderer, camera, scene, mesh: globalThis.dancers[0] });
270
+ };
271
+
272
+ // The half `verify()` is blind to: whether each leaf's box belongs to the triangle that leaf
273
+ // names. Run against the character's *source* geometry — skinning deforms the clone's vertex
274
+ // region and leaves the source's alone, so the tree the builder wrote for it is still the right
275
+ // answer and is there to compare against.
276
+ globalThis.verify_leaves = async () => {
277
+ const { verify_leaf_correspondence } = await import('./verify_skinned_blas_refit.js');
278
+
279
+ return verify_leaf_correspondence({ renderer, geometry: globalThis.dancers[0].geometry });
280
+ };
281
+
282
+ const frame_timer = new FrameTimer();
283
+
284
+ // Tracing by default — it is the reading of the scene this page exists to check.
285
+ renderer.feature_path_tracing_enabled = element('path_tracing').checked;
286
+ renderer.feature_taa_enabled = element('taa').checked;
287
+
288
+ element('path_tracing').addEventListener('change', event => {
289
+ renderer.feature_path_tracing_enabled = event.target.checked;
290
+
291
+ // Two temporal filters over one image is nonsense; the tracer accumulates on its own.
292
+ if (event.target.checked) {
293
+ element('taa').checked = false;
294
+ renderer.feature_taa_enabled = false;
295
+ }
296
+
297
+ renderer.indicate_view_change();
298
+ frame_timer.reset();
299
+ });
300
+
301
+ element('taa').addEventListener('change', event => {
302
+ renderer.feature_taa_enabled = event.target.checked;
303
+ renderer.indicate_view_change();
304
+ });
305
+
306
+ let animating = true;
307
+
308
+ element('animation').addEventListener('click', () => {
309
+ animating = !animating;
310
+
311
+ element('animation').textContent = animating ? 'Freeze pose' : 'Resume dance';
312
+
313
+ renderer.path_tracer.clear_history = true;
314
+ renderer.indicate_view_change();
315
+ });
316
+
317
+ let diff_showing = false;
318
+
319
+ // Held while the diff captures. The frame loop draws to the same canvas the capture reads back
320
+ // from, and a frame presented between a render and its `drawImage` leaves the read with an
321
+ // empty bitmap — a comparison of two blanks, which agrees with itself perfectly.
322
+ let frame_loop_suspended = false;
323
+
324
+ element('diff').addEventListener('click', async () => {
325
+ const { clear_diff_overlay, diff_traced_against_rasterized } =
326
+ await import('./diff_traced_against_rasterized.js');
327
+
328
+ if (diff_showing) {
329
+ clear_diff_overlay();
330
+
331
+ diff_showing = false;
332
+
333
+ set_status('diff cleared', '');
334
+
335
+ return;
336
+ }
337
+
338
+ set_status('rendering both ways…');
339
+
340
+ try {
341
+ const result = await diff_traced_against_rasterized({
342
+ renderer,
343
+ camera,
344
+ scene,
345
+ suspend: held => {
346
+ frame_loop_suspended = held;
347
+ },
348
+ });
349
+
350
+ diff_showing = true;
351
+
352
+ set_status(result.verdict, result.verdict.startsWith('edge') ? 'pass' : 'fail');
353
+ } catch (error) {
354
+ set_status(error.message, 'fail');
355
+
356
+ console.error(error);
357
+ }
358
+ });
359
+
360
+ element('reset_accumulation').addEventListener('click', () => {
361
+ renderer.path_tracer.clear_history = true;
362
+ renderer.indicate_view_change();
363
+ frame_timer.reset();
364
+ });
365
+
366
+ const parameters = new URLSearchParams(location.search);
367
+
368
+ const count = Math.min(64, Math.max(1, Number.parseInt(parameters.get('count'), 10) || 1));
369
+
370
+ element('character_count').value = String(count);
371
+
372
+ // A Scene has no teardown, so changing the cast reloads the page rather than emptying one in
373
+ // place.
374
+ element('respawn').addEventListener('click', () => {
375
+ const next = new URLSearchParams(location.search);
376
+
377
+ next.set('count', element('character_count').value);
378
+
379
+ location.search = next.toString();
380
+ });
381
+
382
+ // ---- the scene ------------------------------------------------------------------------
383
+
384
+ set_status(`loading ${count} × ${CHARACTER_URL} …`);
385
+
386
+ const scene_context = renderer.scenes.obtain(scene);
387
+
388
+ /** @type {SkinnedMesh[]} */
389
+ const dancers = [];
390
+
391
+ try {
392
+ const asset_manager = await make_playground_asset_manager();
393
+
394
+ for (let i = 0; i < count; i++) {
395
+ dancers.push(...await add_dancer(scene, scene_context, asset_manager, i, count));
396
+ }
397
+ } catch (error) {
398
+ set_status(
399
+ `could not load the character (${error.message}). Put it under test_assets/ — `
400
+ + `see test_assets/README.md.`,
401
+ 'fail'
402
+ );
403
+ console.error(error);
404
+ return;
405
+ }
406
+
407
+ if (!scene.lights.elements.some(light => light.isDirectionalLight)) {
408
+ // a glTF character carries no light of its own
409
+ scene.lights.add(make_sunlight({ intensity: 6 }));
410
+ }
411
+
412
+ // Frames enough for skinning to run and its bounds-refresh chain to publish a deformed box,
413
+ // which is the only box worth framing on — see `world_bounds_of`. The camera is parked at the
414
+ // origin until then, so nothing is worth looking at yet either.
415
+ for (let i = 0; i < 8; i++) {
416
+ renderer.render(camera, scene, 1 / 60);
417
+
418
+ await renderer.graphics.device.queue.onSubmittedWorkDone();
419
+ }
420
+
421
+ // union over every dancer, so a crowd is framed rather than whoever loaded first
422
+ let low = null;
423
+ let high = null;
424
+
425
+ for (const dancer of dancers) {
426
+ const bounds = await world_bounds_of(scene_context, dancer);
427
+
428
+ low = low === null ? bounds.low : new Vector3(
429
+ Math.min(low.x, bounds.low.x), Math.min(low.y, bounds.low.y), Math.min(low.z, bounds.low.z)
430
+ );
431
+
432
+ high = high === null ? bounds.high : new Vector3(
433
+ Math.max(high.x, bounds.high.x), Math.max(high.y, bounds.high.y), Math.max(high.z, bounds.high.z)
434
+ );
435
+ }
436
+
437
+ const span = new Vector3(high.x - low.x, high.y - low.y, high.z - low.z);
438
+
439
+ globalThis.floor = add_floor(scene, Math.max(span.x, span.z) * 6, low.y);
440
+
441
+ const radius = Math.hypot(span.x, span.y, span.z) * 0.5;
442
+
443
+ camera_frame_sphere(
444
+ controller,
445
+ radius,
446
+ new Vector3((low.x + high.x) / 2, (low.y + high.y) / 2, (low.z + high.z) / 2)
447
+ );
448
+
449
+ controller.movement_speed_scale = radius * 0.2;
450
+
451
+ // a metre-scale subject, so the default 0.01 near plane is far too tight to be worth keeping
452
+ camera.near = radius * 0.01;
453
+ camera.far = radius * 400;
454
+
455
+ load_default_environment(scene).then(applied => {
456
+ if (applied) {
457
+ renderer.indicate_view_change();
458
+ }
459
+ });
460
+
461
+ // the controller's keyboard device listens on body, and only a focused element gets key events
462
+ document.body.focus();
463
+
464
+ globalThis.dancers = dancers;
465
+
466
+ set_status(`loaded — ${count} dancing, ${scene.instances.instances.length} instances`, 'pass');
467
+
468
+ renderer.indicate_view_change();
469
+
470
+ // ---- frame loop -----------------------------------------------------------------------
471
+
472
+ const FRAME_RATE_LIMIT = 60;
473
+
474
+ create_frame_loop(time_delta_s => {
475
+ if (frame_loop_suspended) {
476
+ // the diff owns the canvas until it has both captures
477
+ return;
478
+ }
479
+
480
+ const width = window.innerWidth;
481
+ const height = window.innerHeight;
482
+
483
+ renderer.resize(width, height);
484
+ renderer.pixel_ratio = window.devicePixelRatio;
485
+ camera.aspect = width / height;
486
+
487
+ controller.update();
488
+
489
+ // A frozen pose is a still scene, which is the only condition under which the accumulator
490
+ // converges — so time stops rather than the frame loop stopping, and the camera stays live.
491
+ renderer.render(camera, scene, animating ? time_delta_s : 0);
492
+
493
+ frame_timer.add(time_delta_s);
494
+
495
+ const mean = frame_timer.mean_ms;
496
+
497
+ stats_element.textContent =
498
+ `${mean.toFixed(1)} ms · ${mean > 0 ? (1000 / mean).toFixed(0) : '0'} fps · `
499
+ + `${count} dancer${count === 1 ? '' : 's'}`
500
+ + `${renderer.feature_path_tracing_enabled ? ' · path traced' : ' · rasterized'}`;
501
+ }, FRAME_RATE_LIMIT);
502
+ }
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Stand one loaded character on the floor at `(x, 0, z)`.
3
+ *
4
+ * ## Why the mesh node is not the placement point
5
+ *
6
+ * It is tempting, and it is what this page used to do: the mesh is the visible thing, so move the
7
+ * mesh. For a {@link SkinnedMesh} that is a no-op, and the reason is the glTF skinning formula
8
+ * itself. A skinned vertex lands at
9
+ *
10
+ * ```
11
+ * mesh.global × inverse(mesh.global) × joint.global × inverse_bind × v
12
+ * ```
13
+ *
14
+ * — `chunk_skin_blend_mesh_local` folds the leftmost inverse into each joint matrix and the
15
+ * rasterizer re-applies `mesh.global` afterwards, so the mesh node's own transform **cancels
16
+ * exactly** and the vertex is at `joint.global × inverse_bind × v`. `compute_skin_world_bounds`
17
+ * composes the published box the same way and does not read the mesh node either. So a skinned
18
+ * character is placed by its **joints**, and the only thing that moves them is an ancestor they
19
+ * actually sit under.
20
+ *
21
+ * Michelle is the shape that makes this concrete. Her file is one root carrying the centimetre
22
+ * scale and the up-axis rotation (+90° about x, the file's Z-up into the renderer's Y-up), with the
23
+ * mesh node and the joint root as *siblings* beneath it:
24
+ *
25
+ * ```
26
+ * "Character" R=(0.70711, 0, 0, 0.70711) S=(0.01, 0.01, 0.01)
27
+ * ├── "Ch03" mesh 0, skin 0 — no local transform of its own
28
+ * └── "mixamorig:Hips" the joint root
29
+ * ```
30
+ *
31
+ * Nothing under `Ch03` drives a joint, so writing a grid offset there — to either transform —
32
+ * moves nothing at all.
33
+ *
34
+ * ## Why a placement node rather than the character's own root
35
+ *
36
+ * `"Character"`'s local transform is the file's, and it is load-bearing twice over: the 0.01 scale
37
+ * is what makes the inverse-bind matrices agree with the vertex positions, and a `Transform64`
38
+ * composes as `T · R · S`, so a translation written there is *not* the world offset — it is an
39
+ * offset the file's own rotation and scale then act on. A fresh parent keeps the two apart: the
40
+ * grid offset is this node's whole transform, the file's is untouched below it, and the
41
+ * composition happens where it always happens.
42
+ *
43
+ * A node under {@link TransformAuthority.GPU} still follows a CPU-driven parent — the hierarchy
44
+ * pass composes `global` from the node's own TRS and the parent chain — so the joints the pose
45
+ * accumulator owns are carried by this without anyone writing to their rows.
46
+ *
47
+ * ## Why the local transform
48
+ *
49
+ * The same reason the floor is placed that way, and it is worth restating because this page has
50
+ * now been bitten by it twice. `Node3D.transform_global` is **derived** — its doc comment says so
51
+ * — and `updateMatrices` recomputes it from the local transform and the parent chain. The GPU is
52
+ * handed the node's local TRS and composes `node.global` from it, so a placement that only ever
53
+ * reached `transform_global` is discarded at both ends. See `add_floor` for the version of this
54
+ * where the two ends disagreed and produced two different pictures; here they agreed on the wrong
55
+ * answer, which is quieter and took longer to see.
56
+ *
57
+ * @param {Scene} scene
58
+ * @param {SceneBundle} bundle a freshly loaded character — its roots must not be parented yet
59
+ * @param {number} x
60
+ * @param {number} z
61
+ * @returns {Node3D} the placement node, now the parent of every root in `bundle.scenes`
62
+ */
63
+ export function place_character(scene: Scene, bundle: SceneBundle, x: number, z: number): Node3D;
64
+ /**
65
+ * Where the `index`-th of `count` characters stands: a square-ish grid centred on the origin, laid
66
+ * out in rows along +x.
67
+ *
68
+ * Centred rather than growing from the origin so that `?count=N` frames the same way for every N —
69
+ * the camera is aimed at the union of the cast, and a grid that walks away from the origin as it
70
+ * grows pushes that union off with it.
71
+ *
72
+ * @param {number} index
73
+ * @param {number} count
74
+ * @param {number} spacing distance between neighbours
75
+ * @returns {{x: number, z: number}}
76
+ */
77
+ export function grid_position(index: number, count: number, spacing: number): {
78
+ x: number;
79
+ z: number;
80
+ };
81
+ import { Node3D } from "../../renderer/scene/Node3D.js";
82
+ //# sourceMappingURL=place_character.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place_character.d.ts","sourceRoot":"","sources":["../../../../../src/shade/playground/skinned_blas_refit/place_character.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,sEAJW,MAAM,KACN,MAAM,GACJ,MAAM,CA+BlB;AAED;;;;;;;;;;;;GAYG;AACH,qCALW,MAAM,SACN,MAAM,WACN,MAAM,GACJ;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAC,CAUlC;uBApHsB,gCAAgC"}