@woosh/meep-engine 3.19.0 → 3.20.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 (123) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/editor/view/particles/effect/ParticleGraphEditorView.js +2 -2
  3. package/editor/view/particles/effect/ParticleNodeParametersView.d.ts.map +1 -1
  4. package/editor/view/particles/effect/ParticleNodeParametersView.js +7 -48
  5. package/package.json +1 -1
  6. package/src/core/collection/array/array_group_by.d.ts.map +1 -1
  7. package/src/core/collection/array/array_group_by.js +2 -11
  8. package/src/core/geom/3d/shape/HeightMapShape3D.d.ts.map +1 -1
  9. package/src/core/geom/3d/shape/HeightMapShape3D.js +4 -9
  10. package/src/core/model/object/optional_clone.d.ts +7 -0
  11. package/src/core/model/object/optional_clone.d.ts.map +1 -0
  12. package/src/core/model/object/optional_equality.d.ts +10 -0
  13. package/src/core/model/object/optional_equality.d.ts.map +1 -0
  14. package/src/{shade/descriptor/util → core/model/object}/optional_equality.js +2 -2
  15. package/src/core/model/object/optional_hash.d.ts +9 -0
  16. package/src/core/model/object/optional_hash.d.ts.map +1 -0
  17. package/src/{shade/descriptor/util → core/model/object}/optional_hash.js +3 -3
  18. package/src/engine/asset/Asset.d.ts +1 -1
  19. package/src/engine/asset/Asset.d.ts.map +1 -1
  20. package/src/engine/asset/Asset.js +3 -1
  21. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
  22. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +9 -10
  23. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts.map +1 -1
  24. package/src/engine/graphics/ecs/particles/ParticleEffect.js +6 -22
  25. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +1 -1
  26. package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +3 -3
  27. package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +1 -1
  28. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +1 -1
  29. package/src/shade/descriptor/pipeline/render/ColorTargetState.js +3 -3
  30. package/src/shade/descriptor/pipeline/render/FragmentState.js +1 -1
  31. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +3 -3
  32. package/src/shade/playground/particle_editor/README.md +1 -1
  33. package/src/shade/playground/particle_system/particle_prototype.d.ts +7 -9
  34. package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
  35. package/src/shade/playground/particle_system/particle_prototype.js +7 -9
  36. package/src/shade/playground/ssr_motion/README.md +22 -0
  37. package/src/shade/playground/ssr_motion/index.html +18 -0
  38. package/src/shade/playground/ssr_motion/main.d.ts +2 -0
  39. package/src/shade/playground/ssr_motion/main.d.ts.map +1 -0
  40. package/src/shade/playground/ssr_motion/main.js +149 -0
  41. package/src/shade/playground/ssr_variance/index.html +1 -0
  42. package/src/shade/renderer/geometry/Geometry.d.ts.map +1 -1
  43. package/src/shade/renderer/geometry/Geometry.js +4 -7
  44. package/src/shade/renderer/material/StandardShadeMaterial.js +2 -2
  45. package/src/shade/renderer/particles/DESIGN.md +9 -11
  46. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  47. package/src/shade/renderer/particles/GPUParticleSystem.js +3 -1
  48. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts +1 -1
  49. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.js +1 -1
  50. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
  51. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +9 -15
  52. package/src/shade/renderer/particles/graph/particle_group_library.d.ts.map +1 -1
  53. package/src/shade/renderer/particles/graph/particle_group_library.js +8 -3
  54. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts +0 -2
  55. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -1
  56. package/src/shade/renderer/particles/graph/particle_node_parameters.js +0 -9
  57. package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -1
  58. package/src/shade/renderer/particles/graph/particle_node_presentation.js +0 -10
  59. package/src/shade/renderer/particles/graph/particle_ramp.d.ts +2 -8
  60. package/src/shade/renderer/particles/graph/particle_ramp.d.ts.map +1 -1
  61. package/src/shade/renderer/particles/graph/particle_ramp.js +2 -8
  62. package/src/shade/renderer/particles/graph/validate_particle_graph.js +0 -6
  63. package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
  64. package/src/shade/renderer/particles/graph_particles_avboit.js +13 -4
  65. package/src/shade/renderer/particles/isa/InstructionStream.d.ts +1 -12
  66. package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
  67. package/src/shade/renderer/particles/isa/InstructionStream.js +1 -12
  68. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +54 -60
  69. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
  70. package/src/shade/renderer/particles/isa/ParticleVMISA.js +9 -17
  71. package/src/shade/renderer/particles/isa/particle_assembly.d.ts +0 -1
  72. package/src/shade/renderer/particles/isa/particle_assembly.d.ts.map +1 -1
  73. package/src/shade/renderer/particles/isa/particle_assembly.js +2 -16
  74. package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.d.ts +1 -1
  75. package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.js +1 -1
  76. package/src/shade/renderer/particles/optimizer/dag/particle_vector_lift.js +0 -14
  77. package/src/shade/renderer/particles/optimizer/dag/particle_vector_pack.js +3 -17
  78. package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -1
  79. package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +15 -36
  80. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -1
  81. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +1 -5
  82. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts.map +1 -1
  83. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +1 -8
  84. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts +2 -11
  85. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -1
  86. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +2 -11
  87. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts.map +1 -1
  88. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +13 -0
  89. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts +3 -6
  90. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
  91. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +49 -17
  92. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
  93. package/src/shade/renderer/particles/shaders/shader_particle_emit.js +0 -2
  94. package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.d.ts.map +1 -1
  95. package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.js +0 -2
  96. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
  97. package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +1 -5
  98. package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.d.ts.map +1 -1
  99. package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.js +0 -2
  100. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +1 -3
  101. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
  102. package/src/shade/renderer/particles/vm/ParticleVMReference.js +4 -20
  103. package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
  104. package/src/shade/renderer/particles/vm/chunk_particle_vm.js +2 -5
  105. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.d.ts.map +1 -1
  106. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.js +0 -2
  107. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.d.ts.map +1 -1
  108. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.js +0 -2
  109. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.d.ts.map +1 -1
  110. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.js +21 -0
  111. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.d.ts.map +1 -1
  112. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +4 -0
  113. package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.d.ts.map +1 -1
  114. package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.js +2 -1
  115. package/src/shade/renderer/scene/Mesh.js +1 -1
  116. package/src/shade/renderer/texture/ShadeTexture.js +1 -1
  117. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts +0 -19
  118. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts.map +0 -1
  119. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js +0 -30
  120. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts +0 -11
  121. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts.map +0 -1
  122. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.js +0 -13
  123. /package/src/{shade/descriptor/util → core/model/object}/optional_clone.js +0 -0
@@ -4,7 +4,7 @@ import { aabb3_from_v3_array_transformed } from "../../../core/geom/3d/aabb/aabb
4
4
  import { aabb3_matrix4_project } from "../../../core/geom/3d/aabb/aabb3_matrix4_project.js";
5
5
  import { sphere_matrix4_transform } from "../../../core/geom/3d/sphere/sphere_matrix4_transform.js";
6
6
  import { epsilonEquals } from "../../../core/math/epsilonEquals.js";
7
- import { optional_equality } from "../../descriptor/util/optional_equality.js";
7
+ import { optional_equality } from "../../../core/model/object/optional_equality.js";
8
8
  import { StandardAttributes } from "../geometry/StandardAttributes.js";
9
9
  import { Node3D } from "./Node3D.js";
10
10
 
@@ -1,6 +1,6 @@
1
1
  import { assert } from "../../../core/assert.js";
2
2
  import { combine_hash } from "../../../core/collection/array/combine_hash.js";
3
- import { optional_hash } from "../../descriptor/util/optional_hash.js";
3
+ import { optional_hash } from "../../../core/model/object/optional_hash.js";
4
4
  import { ShadeTextureFlags } from "./ShadeTextureFlags.js";
5
5
  import { TextureFilterType } from "./TextureFilterType.js";
6
6
  import { TextureWrapType } from "./TextureWrapType.js";
@@ -1,19 +0,0 @@
1
- /**
2
- * Production implementation of the VM `CURVE` opcode's `particle_vm_sample_curve(handle, t)`, backed
3
- * by the engine's existing AnimationCurve GPU path — no reinvention. It reads the curve header from
4
- * the `animation_curves` GPUDatabase table by handle and evaluates it with the same
5
- * `animation_curve_evaluate` cubic-Hermite chunk the skeletal animation system uses.
6
- *
7
- * This is the "reuse meep's AnimationCurve" + "GPUDatabase where relevant" integration: an effect
8
- * author registers a curve via `GPUAnimationManager.register_curve(curve)` (or `add_curve`), gets a
9
- * handle, references it from a `curve` node, and the simulation samples it on the GPU.
10
- *
11
- * The simulate shader that includes this chunk must also bind `particle_curve_database :
12
- * array<u32>` to `GPUAnimationManager.database.buffer` (in place of the no-op
13
- * {@link ./chunk_particle_curve_disabled.js} provider used when no effect uses curves).
14
- *
15
- * @type {CodeChunk}
16
- */
17
- export const chunk_particle_curve_animation: CodeChunk;
18
- import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
19
- //# sourceMappingURL=chunk_particle_curve_animation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk_particle_curve_animation.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;GAeG;AACH,6CAFU,SAAS,CAS0C;0BA3BnC,oCAAoC"}
@@ -1,30 +0,0 @@
1
- import { ANIMATION_DATABASE_SPEC } from "../../animation/ANIMATION_DATABASE_SPEC.js";
2
- import { chunk_animation_curve_evaluate } from "../../animation/chunk_animation_curve_evaluate.js";
3
- import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
4
-
5
- const CURVE_TABLE = ANIMATION_DATABASE_SPEC.get("animation_curves");
6
-
7
- /**
8
- * Production implementation of the VM `CURVE` opcode's `particle_vm_sample_curve(handle, t)`, backed
9
- * by the engine's existing AnimationCurve GPU path — no reinvention. It reads the curve header from
10
- * the `animation_curves` GPUDatabase table by handle and evaluates it with the same
11
- * `animation_curve_evaluate` cubic-Hermite chunk the skeletal animation system uses.
12
- *
13
- * This is the "reuse meep's AnimationCurve" + "GPUDatabase where relevant" integration: an effect
14
- * author registers a curve via `GPUAnimationManager.register_curve(curve)` (or `add_curve`), gets a
15
- * handle, references it from a `curve` node, and the simulation samples it on the GPU.
16
- *
17
- * The simulate shader that includes this chunk must also bind `particle_curve_database :
18
- * array<u32>` to `GPUAnimationManager.database.buffer` (in place of the no-op
19
- * {@link ./chunk_particle_curve_disabled.js} provider used when no effect uses curves).
20
- *
21
- * @type {CodeChunk}
22
- */
23
- export const chunk_particle_curve_animation = CodeChunk.from(
24
- /* language=wgsl */
25
- `
26
- fn particle_vm_sample_curve(handle : u32, t : f32) -> f32 {
27
- let header = ${CURVE_TABLE.marshalling_method_read}(&particle_curve_database, handle);
28
- return animation_curve_evaluate(t, &particle_curve_database, header);
29
- }
30
- `, [CURVE_TABLE.chunk_read, chunk_animation_curve_evaluate]);
@@ -1,11 +0,0 @@
1
- /**
2
- * Default curve provider: no curves bound, `CURVE` opcodes evaluate to 0. The production feature
3
- * swaps this for an animation-database-backed provider
4
- * ({@link ./chunk_particle_curve_animation.js}). Kept separate so an effect that uses no curves
5
- * compiles without any animation bindings.
6
- *
7
- * @type {CodeChunk}
8
- */
9
- export const chunk_particle_curve_disabled: CodeChunk;
10
- import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
11
- //# sourceMappingURL=chunk_particle_curve_disabled.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk_particle_curve_disabled.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.js"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,4CAFU,SAAS,CAIhB;0BAZuB,oCAAoC"}
@@ -1,13 +0,0 @@
1
- import { CodeChunk } from "../../shader/compiler/CodeChunk.js";
2
-
3
- /**
4
- * Default curve provider: no curves bound, `CURVE` opcodes evaluate to 0. The production feature
5
- * swaps this for an animation-database-backed provider
6
- * ({@link ./chunk_particle_curve_animation.js}). Kept separate so an effect that uses no curves
7
- * compiles without any animation bindings.
8
- *
9
- * @type {CodeChunk}
10
- */
11
- export const chunk_particle_curve_disabled = CodeChunk.from(/* wgsl */ `
12
- fn particle_vm_sample_curve(handle : u32, t : f32) -> f32 { return 0.0; }
13
- `);