@woosh/meep-engine 3.18.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 (228) hide show
  1. package/build/bundle-worker-image-decoder.js +1 -1
  2. package/build/bundle-worker-terrain.js +1 -1
  3. package/editor/view/particles/effect/ParticleCurveEditorView.d.ts.map +1 -1
  4. package/editor/view/particles/effect/ParticleCurveEditorView.js +303 -120
  5. package/editor/view/particles/effect/ParticleGradientEditorView.d.ts.map +1 -1
  6. package/editor/view/particles/effect/ParticleGradientEditorView.js +108 -63
  7. package/editor/view/particles/effect/ParticleGraphEditorView.js +2 -2
  8. package/editor/view/particles/effect/ParticleNodeParametersView.d.ts.map +1 -1
  9. package/editor/view/particles/effect/ParticleNodeParametersView.js +7 -46
  10. package/editor/view/particles/effect/particle-editor.css +60 -30
  11. package/package.json +1 -2
  12. package/samples/engine/README.md +1 -1
  13. package/src/core/binary/compression/decompress_bytes.d.ts +13 -0
  14. package/src/core/binary/compression/decompress_bytes.d.ts.map +1 -0
  15. package/src/core/binary/compression/decompress_bytes.js +28 -0
  16. package/src/core/collection/array/array_group_by.d.ts.map +1 -1
  17. package/src/core/collection/array/array_group_by.js +2 -11
  18. package/src/core/geom/3d/shape/HeightMapShape3D.d.ts.map +1 -1
  19. package/src/core/geom/3d/shape/HeightMapShape3D.js +4 -9
  20. package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.js +67 -22
  21. package/src/core/model/object/optional_clone.d.ts +7 -0
  22. package/src/core/model/object/optional_clone.d.ts.map +1 -0
  23. package/src/core/model/object/optional_equality.d.ts +10 -0
  24. package/src/core/model/object/optional_equality.d.ts.map +1 -0
  25. package/src/{shade/descriptor/util → core/model/object}/optional_equality.js +2 -2
  26. package/src/core/model/object/optional_hash.d.ts +9 -0
  27. package/src/core/model/object/optional_hash.d.ts.map +1 -0
  28. package/src/{shade/descriptor/util → core/model/object}/optional_hash.js +3 -3
  29. package/src/engine/asset/Asset.d.ts +1 -1
  30. package/src/engine/asset/Asset.d.ts.map +1 -1
  31. package/src/engine/asset/Asset.js +3 -1
  32. package/src/engine/asset/loaders/image/ImageDecoderWorker.js +12 -27
  33. package/src/engine/asset/loaders/image/prototypePNG.js +8 -7
  34. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
  35. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +9 -10
  36. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  37. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +4 -0
  38. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +266 -0
  39. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts.map +1 -0
  40. package/src/engine/graphics/ecs/particles/ParticleEffect.js +439 -0
  41. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.d.ts +58 -0
  42. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.d.ts.map +1 -0
  43. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.js +219 -0
  44. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +178 -25
  45. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  46. package/src/engine/graphics3/GPUParticleEmitterSystem.js +809 -310
  47. package/src/format/image/png/PNGReader.d.ts +7 -6
  48. package/src/format/image/png/PNGReader.d.ts.map +1 -1
  49. package/src/format/image/png/PNGReader.js +13 -12
  50. package/src/format/image/png/chunk/png_chunk_decode_iTXt.d.ts +3 -2
  51. package/src/format/image/png/chunk/png_chunk_decode_iTXt.d.ts.map +1 -1
  52. package/src/format/image/png/chunk/png_chunk_decode_iTXt.js +5 -4
  53. package/src/format/image/png/chunk/png_chunk_decode_zTXt.d.ts +3 -2
  54. package/src/format/image/png/chunk/png_chunk_decode_zTXt.d.ts.map +1 -1
  55. package/src/format/image/png/chunk/png_chunk_decode_zTXt.js +5 -4
  56. package/src/format/image/png/png_inflate.d.ts +3 -3
  57. package/src/format/image/png/png_inflate.d.ts.map +1 -1
  58. package/src/format/image/png/png_inflate.js +29 -39
  59. package/src/format/texture/ktx2/ktx2_read.d.ts +4 -4
  60. package/src/format/texture/ktx2/ktx2_read.d.ts.map +1 -1
  61. package/src/format/texture/ktx2/ktx2_read.js +18 -21
  62. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +1 -1
  63. package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +3 -3
  64. package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +1 -1
  65. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +1 -1
  66. package/src/shade/descriptor/pipeline/render/ColorTargetState.js +3 -3
  67. package/src/shade/descriptor/pipeline/render/FragmentState.js +1 -1
  68. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +3 -3
  69. package/src/shade/playground/particle_ecs/README.md +203 -0
  70. package/src/shade/playground/particle_ecs/bonfire_editor.d.ts +39 -0
  71. package/src/shade/playground/particle_ecs/bonfire_editor.d.ts.map +1 -0
  72. package/src/shade/playground/particle_ecs/bonfire_editor.js +315 -0
  73. package/src/shade/playground/particle_ecs/bonfire_effects.d.ts +145 -0
  74. package/src/shade/playground/particle_ecs/bonfire_effects.d.ts.map +1 -0
  75. package/src/shade/playground/particle_ecs/bonfire_effects.js +202 -0
  76. package/src/shade/playground/particle_ecs/bonfire_sprites.d.ts +23 -0
  77. package/src/shade/playground/particle_ecs/bonfire_sprites.d.ts.map +1 -0
  78. package/src/shade/playground/particle_ecs/bonfire_sprites.js +315 -0
  79. package/src/shade/playground/particle_ecs/bonfire_world.d.ts +86 -0
  80. package/src/shade/playground/particle_ecs/bonfire_world.d.ts.map +1 -0
  81. package/src/shade/playground/particle_ecs/bonfire_world.js +303 -0
  82. package/src/shade/playground/particle_ecs/effects/embers.json +1634 -0
  83. package/src/shade/playground/particle_ecs/effects/flame.json +1882 -0
  84. package/src/shade/playground/particle_ecs/effects/smoke.json +1860 -0
  85. package/src/shade/playground/particle_ecs/effects/soot.json +1606 -0
  86. package/src/shade/playground/particle_ecs/index.html +330 -0
  87. package/src/shade/playground/particle_ecs/main.d.ts +2 -0
  88. package/src/shade/playground/particle_ecs/main.d.ts.map +1 -0
  89. package/src/shade/playground/particle_ecs/main.js +566 -0
  90. package/src/shade/playground/particle_ecs/moonlit_environment.d.ts +16 -0
  91. package/src/shade/playground/particle_ecs/moonlit_environment.d.ts.map +1 -0
  92. package/src/shade/playground/particle_ecs/moonlit_environment.js +144 -0
  93. package/src/shade/playground/particle_editor/README.md +5 -4
  94. package/src/shade/playground/particle_system/particle_prototype.d.ts +7 -9
  95. package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -1
  96. package/src/shade/playground/particle_system/particle_prototype.js +7 -9
  97. package/src/shade/playground/profile_hotkey.d.ts +58 -0
  98. package/src/shade/playground/profile_hotkey.d.ts.map +1 -0
  99. package/src/shade/playground/profile_hotkey.js +325 -0
  100. package/src/shade/playground/ssr_motion/README.md +22 -0
  101. package/src/shade/playground/ssr_motion/index.html +18 -0
  102. package/src/shade/playground/ssr_motion/main.d.ts +2 -0
  103. package/src/shade/playground/ssr_motion/main.d.ts.map +1 -0
  104. package/src/shade/playground/ssr_motion/main.js +149 -0
  105. package/src/shade/playground/ssr_variance/README.md +105 -0
  106. package/src/shade/playground/ssr_variance/capture.d.ts +16 -0
  107. package/src/shade/playground/ssr_variance/capture.d.ts.map +1 -0
  108. package/src/shade/playground/ssr_variance/capture.js +96 -0
  109. package/src/shade/playground/ssr_variance/index.html +23 -0
  110. package/src/shade/playground/ssr_variance/main.d.ts +2 -0
  111. package/src/shade/playground/ssr_variance/main.d.ts.map +1 -0
  112. package/src/shade/playground/ssr_variance/main.js +246 -0
  113. package/src/shade/playground/ssr_variance/reference.d.ts +18 -0
  114. package/src/shade/playground/ssr_variance/reference.d.ts.map +1 -0
  115. package/src/shade/playground/ssr_variance/reference.js +78 -0
  116. package/src/shade/playground/ssr_variance/scene.d.ts +11 -0
  117. package/src/shade/playground/ssr_variance/scene.d.ts.map +1 -0
  118. package/src/shade/playground/ssr_variance/scene.js +61 -0
  119. package/src/shade/playground/ssr_variance/statistics.d.ts +44 -0
  120. package/src/shade/playground/ssr_variance/statistics.d.ts.map +1 -0
  121. package/src/shade/playground/ssr_variance/statistics.js +51 -0
  122. package/src/shade/renderer/geometry/Geometry.d.ts.map +1 -1
  123. package/src/shade/renderer/geometry/Geometry.js +4 -7
  124. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts.map +1 -1
  125. package/src/shade/renderer/loader/gltf/tiny-gltf.js +9 -3
  126. package/src/shade/renderer/loader/usd/usd_decode_image.d.ts +4 -4
  127. package/src/shade/renderer/loader/usd/usd_decode_image.d.ts.map +1 -1
  128. package/src/shade/renderer/loader/usd/usd_decode_image.js +4 -4
  129. package/src/shade/renderer/material/StandardShadeMaterial.js +2 -2
  130. package/src/shade/renderer/particles/DESIGN.md +745 -702
  131. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  132. package/src/shade/renderer/particles/GPUParticleSystem.js +3 -1
  133. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts +1 -1
  134. package/src/shade/renderer/particles/graph/ParticleGroupBuilder.js +1 -1
  135. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
  136. package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +9 -15
  137. package/src/shade/renderer/particles/graph/particle_group_library.d.ts.map +1 -1
  138. package/src/shade/renderer/particles/graph/particle_group_library.js +8 -3
  139. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts +0 -2
  140. package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -1
  141. package/src/shade/renderer/particles/graph/particle_node_parameters.js +0 -9
  142. package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -1
  143. package/src/shade/renderer/particles/graph/particle_node_presentation.js +0 -10
  144. package/src/shade/renderer/particles/graph/particle_ramp.d.ts +2 -8
  145. package/src/shade/renderer/particles/graph/particle_ramp.d.ts.map +1 -1
  146. package/src/shade/renderer/particles/graph/particle_ramp.js +2 -8
  147. package/src/shade/renderer/particles/graph/validate_particle_graph.js +0 -6
  148. package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
  149. package/src/shade/renderer/particles/graph_particles_avboit.js +13 -4
  150. package/src/shade/renderer/particles/isa/InstructionStream.d.ts +1 -12
  151. package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
  152. package/src/shade/renderer/particles/isa/InstructionStream.js +1 -12
  153. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +54 -60
  154. package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
  155. package/src/shade/renderer/particles/isa/ParticleVMISA.js +9 -17
  156. package/src/shade/renderer/particles/isa/particle_assembly.d.ts +0 -1
  157. package/src/shade/renderer/particles/isa/particle_assembly.d.ts.map +1 -1
  158. package/src/shade/renderer/particles/isa/particle_assembly.js +2 -16
  159. package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.d.ts +1 -1
  160. package/src/shade/renderer/particles/optimizer/dag/particle_vector_graph.js +1 -1
  161. package/src/shade/renderer/particles/optimizer/dag/particle_vector_lift.js +0 -14
  162. package/src/shade/renderer/particles/optimizer/dag/particle_vector_pack.js +3 -17
  163. package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -1
  164. package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +15 -36
  165. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -1
  166. package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +1 -5
  167. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts.map +1 -1
  168. package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +1 -8
  169. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts +2 -11
  170. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -1
  171. package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +2 -11
  172. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +11 -4
  173. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
  174. package/src/shade/renderer/particles/runtime/ParticleEmitter.js +431 -424
  175. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts.map +1 -1
  176. package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +13 -0
  177. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts +3 -6
  178. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
  179. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +49 -17
  180. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
  181. package/src/shade/renderer/particles/shaders/shader_particle_emit.js +0 -2
  182. package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.d.ts.map +1 -1
  183. package/src/shade/renderer/particles/shaders/shader_particle_emit_wide.js +0 -2
  184. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
  185. package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +1 -5
  186. package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.d.ts.map +1 -1
  187. package/src/shade/renderer/particles/shaders/shader_particle_simulate_wide.js +0 -2
  188. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +1 -3
  189. package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
  190. package/src/shade/renderer/particles/vm/ParticleVMReference.js +4 -20
  191. package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
  192. package/src/shade/renderer/particles/vm/chunk_particle_vm.js +2 -5
  193. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.d.ts.map +1 -1
  194. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance.js +0 -2
  195. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.d.ts.map +1 -1
  196. package/src/shade/renderer/particles/warmup/shader_particle_warmup_advance_wide.js +0 -2
  197. package/src/shade/renderer/postprocess/ssr/SSR.d.ts.map +1 -1
  198. package/src/shade/renderer/postprocess/ssr/SSR.js +2 -1
  199. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.d.ts.map +1 -1
  200. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_reprojection.js +20 -5
  201. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_sample_history.d.ts.map +1 -1
  202. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_sample_history.js +19 -5
  203. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.d.ts +4 -0
  204. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.d.ts.map +1 -0
  205. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +137 -0
  206. package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.d.ts +0 -8
  207. package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.d.ts.map +1 -1
  208. package/src/shade/renderer/postprocess/ssr/ssr_reproject_shader.js +18 -114
  209. package/src/shade/renderer/scene/Mesh.js +1 -1
  210. package/src/shade/renderer/texture/ShadeTexture.js +1 -1
  211. package/src/shade/renderer/texture/source/texel_data_from_ktx2.d.ts +2 -2
  212. package/src/shade/renderer/texture/source/texel_data_from_ktx2.d.ts.map +1 -1
  213. package/src/shade/renderer/texture/source/texel_data_from_ktx2.js +3 -3
  214. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts +0 -19
  215. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts.map +0 -1
  216. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js +0 -30
  217. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts +0 -11
  218. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts.map +0 -1
  219. package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.js +0 -13
  220. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_warmup.d.ts +0 -20
  221. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_warmup.d.ts.map +0 -1
  222. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts +0 -14
  223. package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts.map +0 -1
  224. package/src/shade/renderer/particles/shaders/shader_particle_reclaim.d.ts +0 -50
  225. package/src/shade/renderer/particles/shaders/shader_particle_reclaim.d.ts.map +0 -1
  226. package/src/shade/renderer/postprocess/ssr/reproject/shader_ffx_denoiser_reflections_reproject.d.ts +0 -17
  227. package/src/shade/renderer/postprocess/ssr/reproject/shader_ffx_denoiser_reflections_reproject.d.ts.map +0 -1
  228. /package/src/{shade/descriptor/util → core/model/object}/optional_clone.js +0 -0
@@ -0,0 +1,1860 @@
1
+ {
2
+ "name": "smoke",
3
+ "attributes": [
4
+ {
5
+ "name": "position",
6
+ "components": 3
7
+ },
8
+ {
9
+ "name": "velocity",
10
+ "components": 3
11
+ },
12
+ {
13
+ "name": "age",
14
+ "components": 1
15
+ },
16
+ {
17
+ "name": "life",
18
+ "components": 1
19
+ },
20
+ {
21
+ "name": "size",
22
+ "components": 1
23
+ },
24
+ {
25
+ "name": "size0",
26
+ "components": 1
27
+ },
28
+ {
29
+ "name": "color",
30
+ "components": 4
31
+ },
32
+ {
33
+ "name": "spin",
34
+ "components": 1
35
+ },
36
+ {
37
+ "name": "spin_rate",
38
+ "components": 1
39
+ },
40
+ {
41
+ "name": "seed",
42
+ "components": 1
43
+ }
44
+ ],
45
+ "groups": [],
46
+ "init": {
47
+ "nodes": [
48
+ {
49
+ "id": 0,
50
+ "type": "sqrt",
51
+ "parameters": {},
52
+ "x": 705,
53
+ "y": 457.5
54
+ },
55
+ {
56
+ "id": 1,
57
+ "type": "random",
58
+ "parameters": {
59
+ "components": 1
60
+ },
61
+ "x": 477.5,
62
+ "y": 457.5
63
+ },
64
+ {
65
+ "id": 2,
66
+ "type": "scale",
67
+ "parameters": {},
68
+ "x": 940,
69
+ "y": 358
70
+ },
71
+ {
72
+ "id": 3,
73
+ "type": "mul",
74
+ "parameters": {},
75
+ "x": 220,
76
+ "y": 316.5
77
+ },
78
+ {
79
+ "id": 4,
80
+ "type": "random",
81
+ "parameters": {
82
+ "components": 1
83
+ },
84
+ "x": 0,
85
+ "y": 277.5
86
+ },
87
+ {
88
+ "id": 5,
89
+ "type": "const",
90
+ "parameters": {
91
+ "value": [
92
+ 6.283185307179586
93
+ ]
94
+ },
95
+ "x": 3.75,
96
+ "y": 371.5
97
+ },
98
+ {
99
+ "id": 6,
100
+ "type": "cos",
101
+ "parameters": {},
102
+ "x": 470,
103
+ "y": 206
104
+ },
105
+ {
106
+ "id": 7,
107
+ "type": "sin",
108
+ "parameters": {},
109
+ "x": 470,
110
+ "y": 363.5
111
+ },
112
+ {
113
+ "id": 8,
114
+ "type": "vec2",
115
+ "parameters": {},
116
+ "x": 705,
117
+ "y": 308.5
118
+ },
119
+ {
120
+ "id": 9,
121
+ "type": "scale",
122
+ "parameters": {},
123
+ "x": 1175,
124
+ "y": 452
125
+ },
126
+ {
127
+ "id": 10,
128
+ "type": "const",
129
+ "parameters": {
130
+ "value": [
131
+ 0.34
132
+ ]
133
+ },
134
+ "x": 951.25,
135
+ "y": 515
136
+ },
137
+ {
138
+ "id": 11,
139
+ "type": "swizzle",
140
+ "parameters": {
141
+ "pattern": [
142
+ 0
143
+ ]
144
+ },
145
+ "x": 1395,
146
+ "y": 36.5
147
+ },
148
+ {
149
+ "id": 12,
150
+ "type": "random",
151
+ "parameters": {
152
+ "components": 1
153
+ },
154
+ "x": 0,
155
+ "y": 81.5
156
+ },
157
+ {
158
+ "id": 13,
159
+ "type": "mad",
160
+ "parameters": {},
161
+ "x": 220,
162
+ "y": 73.5
163
+ },
164
+ {
165
+ "id": 14,
166
+ "type": "const",
167
+ "parameters": {
168
+ "value": [
169
+ 0.35
170
+ ]
171
+ },
172
+ "x": 3.75,
173
+ "y": 175.5
174
+ },
175
+ {
176
+ "id": 15,
177
+ "type": "const",
178
+ "parameters": {
179
+ "value": [
180
+ 0.9
181
+ ]
182
+ },
183
+ "x": 3.75,
184
+ "y": 183.5
185
+ },
186
+ {
187
+ "id": 16,
188
+ "type": "swizzle",
189
+ "parameters": {
190
+ "pattern": [
191
+ 1
192
+ ]
193
+ },
194
+ "x": 1395,
195
+ "y": 452
196
+ },
197
+ {
198
+ "id": 17,
199
+ "type": "vec3",
200
+ "parameters": {},
201
+ "x": 1615,
202
+ "y": 94
203
+ },
204
+ {
205
+ "id": 18,
206
+ "type": "builtin",
207
+ "parameters": {
208
+ "id": 2
209
+ },
210
+ "x": 1618.75,
211
+ "y": 0
212
+ },
213
+ {
214
+ "id": 19,
215
+ "type": "add",
216
+ "parameters": {},
217
+ "x": 1835,
218
+ "y": 2.5
219
+ },
220
+ {
221
+ "id": 20,
222
+ "type": "setAttribute",
223
+ "parameters": {
224
+ "name": "position"
225
+ },
226
+ "x": 2055,
227
+ "y": 2.5
228
+ },
229
+ {
230
+ "id": 21,
231
+ "type": "const",
232
+ "parameters": {
233
+ "value": [
234
+ 0,
235
+ 1.35,
236
+ 0
237
+ ]
238
+ },
239
+ "x": 481.25,
240
+ "y": 551.5
241
+ },
242
+ {
243
+ "id": 22,
244
+ "type": "random",
245
+ "parameters": {
246
+ "components": 3
247
+ },
248
+ "x": 0,
249
+ "y": 559.5
250
+ },
251
+ {
252
+ "id": 23,
253
+ "type": "mad",
254
+ "parameters": {},
255
+ "x": 220,
256
+ "y": 645.5
257
+ },
258
+ {
259
+ "id": 24,
260
+ "type": "const",
261
+ "parameters": {
262
+ "value": [
263
+ 2
264
+ ]
265
+ },
266
+ "x": 3.75,
267
+ "y": 661.5
268
+ },
269
+ {
270
+ "id": 25,
271
+ "type": "const",
272
+ "parameters": {
273
+ "value": [
274
+ -1
275
+ ]
276
+ },
277
+ "x": 3.75,
278
+ "y": 755.5
279
+ },
280
+ {
281
+ "id": 26,
282
+ "type": "scale",
283
+ "parameters": {},
284
+ "x": 470,
285
+ "y": 711
286
+ },
287
+ {
288
+ "id": 27,
289
+ "type": "const",
290
+ "parameters": {
291
+ "value": [
292
+ 0.22
293
+ ]
294
+ },
295
+ "x": 231.25,
296
+ "y": 771.5
297
+ },
298
+ {
299
+ "id": 28,
300
+ "type": "add",
301
+ "parameters": {},
302
+ "x": 705,
303
+ "y": 695
304
+ },
305
+ {
306
+ "id": 29,
307
+ "type": "setAttribute",
308
+ "parameters": {
309
+ "name": "velocity"
310
+ },
311
+ "x": 925,
312
+ "y": 695
313
+ },
314
+ {
315
+ "id": 30,
316
+ "type": "random",
317
+ "parameters": {
318
+ "components": 1
319
+ },
320
+ "x": 0,
321
+ "y": 959.5
322
+ },
323
+ {
324
+ "id": 31,
325
+ "type": "mad",
326
+ "parameters": {},
327
+ "x": 220,
328
+ "y": 1076.5
329
+ },
330
+ {
331
+ "id": 32,
332
+ "type": "const",
333
+ "parameters": {
334
+ "value": [
335
+ 0.25000000000000006
336
+ ]
337
+ },
338
+ "x": 3.75,
339
+ "y": 1053.5
340
+ },
341
+ {
342
+ "id": 33,
343
+ "type": "const",
344
+ "parameters": {
345
+ "value": [
346
+ 0.3
347
+ ]
348
+ },
349
+ "x": 3.75,
350
+ "y": 1147.5
351
+ },
352
+ {
353
+ "id": 34,
354
+ "type": "setAttribute",
355
+ "parameters": {
356
+ "name": "age"
357
+ },
358
+ "x": 205,
359
+ "y": 465.5
360
+ },
361
+ {
362
+ "id": 35,
363
+ "type": "const",
364
+ "parameters": {
365
+ "value": [
366
+ 0
367
+ ]
368
+ },
369
+ "x": 3.75,
370
+ "y": 465.5
371
+ },
372
+ {
373
+ "id": 36,
374
+ "type": "random",
375
+ "parameters": {
376
+ "components": 1
377
+ },
378
+ "x": 0,
379
+ "y": 1241.5
380
+ },
381
+ {
382
+ "id": 37,
383
+ "type": "mad",
384
+ "parameters": {},
385
+ "x": 220,
386
+ "y": 1358.5
387
+ },
388
+ {
389
+ "id": 38,
390
+ "type": "const",
391
+ "parameters": {
392
+ "value": [
393
+ 2.1999999999999997
394
+ ]
395
+ },
396
+ "x": 3.75,
397
+ "y": 1335.5
398
+ },
399
+ {
400
+ "id": 39,
401
+ "type": "const",
402
+ "parameters": {
403
+ "value": [
404
+ 3.4
405
+ ]
406
+ },
407
+ "x": 3.75,
408
+ "y": 1429.5
409
+ },
410
+ {
411
+ "id": 40,
412
+ "type": "setAttribute",
413
+ "parameters": {
414
+ "name": "life"
415
+ },
416
+ "x": 455,
417
+ "y": 1358.5
418
+ },
419
+ {
420
+ "id": 41,
421
+ "type": "setAttribute",
422
+ "parameters": {
423
+ "name": "size0"
424
+ },
425
+ "x": 455,
426
+ "y": 951.5
427
+ },
428
+ {
429
+ "id": 42,
430
+ "type": "setAttribute",
431
+ "parameters": {
432
+ "name": "size"
433
+ },
434
+ "x": 455,
435
+ "y": 1123.5
436
+ },
437
+ {
438
+ "id": 43,
439
+ "type": "setAttribute",
440
+ "parameters": {
441
+ "name": "color"
442
+ },
443
+ "x": 205,
444
+ "y": 865.5
445
+ },
446
+ {
447
+ "id": 44,
448
+ "type": "const",
449
+ "parameters": {
450
+ "value": [
451
+ 1,
452
+ 1,
453
+ 1,
454
+ 0
455
+ ]
456
+ },
457
+ "x": 3.75,
458
+ "y": 865.5
459
+ },
460
+ {
461
+ "id": 45,
462
+ "type": "random",
463
+ "parameters": {
464
+ "components": 1
465
+ },
466
+ "x": 0,
467
+ "y": 1523.5
468
+ },
469
+ {
470
+ "id": 46,
471
+ "type": "mad",
472
+ "parameters": {},
473
+ "x": 220,
474
+ "y": 1640.5
475
+ },
476
+ {
477
+ "id": 47,
478
+ "type": "const",
479
+ "parameters": {
480
+ "value": [
481
+ 6.28
482
+ ]
483
+ },
484
+ "x": 3.75,
485
+ "y": 1617.5
486
+ },
487
+ {
488
+ "id": 48,
489
+ "type": "const",
490
+ "parameters": {
491
+ "value": [
492
+ -3.14
493
+ ]
494
+ },
495
+ "x": 3.75,
496
+ "y": 1711.5
497
+ },
498
+ {
499
+ "id": 49,
500
+ "type": "setAttribute",
501
+ "parameters": {
502
+ "name": "spin"
503
+ },
504
+ "x": 455,
505
+ "y": 1640.5
506
+ },
507
+ {
508
+ "id": 50,
509
+ "type": "random",
510
+ "parameters": {
511
+ "components": 1
512
+ },
513
+ "x": 0,
514
+ "y": 1805.5
515
+ },
516
+ {
517
+ "id": 51,
518
+ "type": "mad",
519
+ "parameters": {},
520
+ "x": 220,
521
+ "y": 1922.5
522
+ },
523
+ {
524
+ "id": 52,
525
+ "type": "const",
526
+ "parameters": {
527
+ "value": [
528
+ 1
529
+ ]
530
+ },
531
+ "x": 3.75,
532
+ "y": 1899.5
533
+ },
534
+ {
535
+ "id": 53,
536
+ "type": "const",
537
+ "parameters": {
538
+ "value": [
539
+ -0.5
540
+ ]
541
+ },
542
+ "x": 3.75,
543
+ "y": 1993.5
544
+ },
545
+ {
546
+ "id": 54,
547
+ "type": "setAttribute",
548
+ "parameters": {
549
+ "name": "spin_rate"
550
+ },
551
+ "x": 455,
552
+ "y": 1922.5
553
+ },
554
+ {
555
+ "id": 55,
556
+ "type": "random",
557
+ "parameters": {
558
+ "components": 1
559
+ },
560
+ "x": 0,
561
+ "y": 2087.5
562
+ },
563
+ {
564
+ "id": 56,
565
+ "type": "mad",
566
+ "parameters": {},
567
+ "x": 220,
568
+ "y": 2204.5
569
+ },
570
+ {
571
+ "id": 57,
572
+ "type": "const",
573
+ "parameters": {
574
+ "value": [
575
+ 64
576
+ ]
577
+ },
578
+ "x": 3.75,
579
+ "y": 2181.5
580
+ },
581
+ {
582
+ "id": 58,
583
+ "type": "const",
584
+ "parameters": {
585
+ "value": [
586
+ 0
587
+ ]
588
+ },
589
+ "x": 3.75,
590
+ "y": 2275.5
591
+ },
592
+ {
593
+ "id": 59,
594
+ "type": "setAttribute",
595
+ "parameters": {
596
+ "name": "seed"
597
+ },
598
+ "x": 455,
599
+ "y": 2204.5
600
+ }
601
+ ],
602
+ "connections": [
603
+ {
604
+ "from": 1,
605
+ "fromPort": "out",
606
+ "to": 0,
607
+ "toPort": "x"
608
+ },
609
+ {
610
+ "from": 4,
611
+ "fromPort": "out",
612
+ "to": 3,
613
+ "toPort": "a"
614
+ },
615
+ {
616
+ "from": 5,
617
+ "fromPort": "out",
618
+ "to": 3,
619
+ "toPort": "b"
620
+ },
621
+ {
622
+ "from": 3,
623
+ "fromPort": "out",
624
+ "to": 6,
625
+ "toPort": "x"
626
+ },
627
+ {
628
+ "from": 3,
629
+ "fromPort": "out",
630
+ "to": 7,
631
+ "toPort": "x"
632
+ },
633
+ {
634
+ "from": 6,
635
+ "fromPort": "out",
636
+ "to": 8,
637
+ "toPort": "x"
638
+ },
639
+ {
640
+ "from": 7,
641
+ "fromPort": "out",
642
+ "to": 8,
643
+ "toPort": "y"
644
+ },
645
+ {
646
+ "from": 8,
647
+ "fromPort": "out",
648
+ "to": 2,
649
+ "toPort": "v"
650
+ },
651
+ {
652
+ "from": 0,
653
+ "fromPort": "out",
654
+ "to": 2,
655
+ "toPort": "s"
656
+ },
657
+ {
658
+ "from": 2,
659
+ "fromPort": "out",
660
+ "to": 9,
661
+ "toPort": "v"
662
+ },
663
+ {
664
+ "from": 10,
665
+ "fromPort": "out",
666
+ "to": 9,
667
+ "toPort": "s"
668
+ },
669
+ {
670
+ "from": 9,
671
+ "fromPort": "out",
672
+ "to": 11,
673
+ "toPort": "x"
674
+ },
675
+ {
676
+ "from": 12,
677
+ "fromPort": "out",
678
+ "to": 13,
679
+ "toPort": "a"
680
+ },
681
+ {
682
+ "from": 14,
683
+ "fromPort": "out",
684
+ "to": 13,
685
+ "toPort": "b"
686
+ },
687
+ {
688
+ "from": 15,
689
+ "fromPort": "out",
690
+ "to": 13,
691
+ "toPort": "c"
692
+ },
693
+ {
694
+ "from": 9,
695
+ "fromPort": "out",
696
+ "to": 16,
697
+ "toPort": "x"
698
+ },
699
+ {
700
+ "from": 11,
701
+ "fromPort": "out",
702
+ "to": 17,
703
+ "toPort": "x"
704
+ },
705
+ {
706
+ "from": 13,
707
+ "fromPort": "out",
708
+ "to": 17,
709
+ "toPort": "y"
710
+ },
711
+ {
712
+ "from": 16,
713
+ "fromPort": "out",
714
+ "to": 17,
715
+ "toPort": "z"
716
+ },
717
+ {
718
+ "from": 18,
719
+ "fromPort": "out",
720
+ "to": 19,
721
+ "toPort": "a"
722
+ },
723
+ {
724
+ "from": 17,
725
+ "fromPort": "out",
726
+ "to": 19,
727
+ "toPort": "b"
728
+ },
729
+ {
730
+ "from": 19,
731
+ "fromPort": "out",
732
+ "to": 20,
733
+ "toPort": "value"
734
+ },
735
+ {
736
+ "from": 22,
737
+ "fromPort": "out",
738
+ "to": 23,
739
+ "toPort": "a"
740
+ },
741
+ {
742
+ "from": 24,
743
+ "fromPort": "out",
744
+ "to": 23,
745
+ "toPort": "b"
746
+ },
747
+ {
748
+ "from": 25,
749
+ "fromPort": "out",
750
+ "to": 23,
751
+ "toPort": "c"
752
+ },
753
+ {
754
+ "from": 23,
755
+ "fromPort": "out",
756
+ "to": 26,
757
+ "toPort": "v"
758
+ },
759
+ {
760
+ "from": 27,
761
+ "fromPort": "out",
762
+ "to": 26,
763
+ "toPort": "s"
764
+ },
765
+ {
766
+ "from": 21,
767
+ "fromPort": "out",
768
+ "to": 28,
769
+ "toPort": "a"
770
+ },
771
+ {
772
+ "from": 26,
773
+ "fromPort": "out",
774
+ "to": 28,
775
+ "toPort": "b"
776
+ },
777
+ {
778
+ "from": 28,
779
+ "fromPort": "out",
780
+ "to": 29,
781
+ "toPort": "value"
782
+ },
783
+ {
784
+ "from": 30,
785
+ "fromPort": "out",
786
+ "to": 31,
787
+ "toPort": "a"
788
+ },
789
+ {
790
+ "from": 32,
791
+ "fromPort": "out",
792
+ "to": 31,
793
+ "toPort": "b"
794
+ },
795
+ {
796
+ "from": 33,
797
+ "fromPort": "out",
798
+ "to": 31,
799
+ "toPort": "c"
800
+ },
801
+ {
802
+ "from": 35,
803
+ "fromPort": "out",
804
+ "to": 34,
805
+ "toPort": "value"
806
+ },
807
+ {
808
+ "from": 36,
809
+ "fromPort": "out",
810
+ "to": 37,
811
+ "toPort": "a"
812
+ },
813
+ {
814
+ "from": 38,
815
+ "fromPort": "out",
816
+ "to": 37,
817
+ "toPort": "b"
818
+ },
819
+ {
820
+ "from": 39,
821
+ "fromPort": "out",
822
+ "to": 37,
823
+ "toPort": "c"
824
+ },
825
+ {
826
+ "from": 37,
827
+ "fromPort": "out",
828
+ "to": 40,
829
+ "toPort": "value"
830
+ },
831
+ {
832
+ "from": 31,
833
+ "fromPort": "out",
834
+ "to": 41,
835
+ "toPort": "value"
836
+ },
837
+ {
838
+ "from": 31,
839
+ "fromPort": "out",
840
+ "to": 42,
841
+ "toPort": "value"
842
+ },
843
+ {
844
+ "from": 44,
845
+ "fromPort": "out",
846
+ "to": 43,
847
+ "toPort": "value"
848
+ },
849
+ {
850
+ "from": 45,
851
+ "fromPort": "out",
852
+ "to": 46,
853
+ "toPort": "a"
854
+ },
855
+ {
856
+ "from": 47,
857
+ "fromPort": "out",
858
+ "to": 46,
859
+ "toPort": "b"
860
+ },
861
+ {
862
+ "from": 48,
863
+ "fromPort": "out",
864
+ "to": 46,
865
+ "toPort": "c"
866
+ },
867
+ {
868
+ "from": 46,
869
+ "fromPort": "out",
870
+ "to": 49,
871
+ "toPort": "value"
872
+ },
873
+ {
874
+ "from": 50,
875
+ "fromPort": "out",
876
+ "to": 51,
877
+ "toPort": "a"
878
+ },
879
+ {
880
+ "from": 52,
881
+ "fromPort": "out",
882
+ "to": 51,
883
+ "toPort": "b"
884
+ },
885
+ {
886
+ "from": 53,
887
+ "fromPort": "out",
888
+ "to": 51,
889
+ "toPort": "c"
890
+ },
891
+ {
892
+ "from": 51,
893
+ "fromPort": "out",
894
+ "to": 54,
895
+ "toPort": "value"
896
+ },
897
+ {
898
+ "from": 55,
899
+ "fromPort": "out",
900
+ "to": 56,
901
+ "toPort": "a"
902
+ },
903
+ {
904
+ "from": 57,
905
+ "fromPort": "out",
906
+ "to": 56,
907
+ "toPort": "b"
908
+ },
909
+ {
910
+ "from": 58,
911
+ "fromPort": "out",
912
+ "to": 56,
913
+ "toPort": "c"
914
+ },
915
+ {
916
+ "from": 56,
917
+ "fromPort": "out",
918
+ "to": 59,
919
+ "toPort": "value"
920
+ }
921
+ ]
922
+ },
923
+ "update": {
924
+ "nodes": [
925
+ {
926
+ "id": 0,
927
+ "type": "builtin",
928
+ "parameters": {
929
+ "id": 0
930
+ },
931
+ "x": 7.5,
932
+ "y": 595.5
933
+ },
934
+ {
935
+ "id": 1,
936
+ "type": "attribute",
937
+ "parameters": {
938
+ "name": "age"
939
+ },
940
+ "x": 0,
941
+ "y": 432
942
+ },
943
+ {
944
+ "id": 2,
945
+ "type": "add",
946
+ "parameters": {},
947
+ "x": 231.25,
948
+ "y": 432
949
+ },
950
+ {
951
+ "id": 3,
952
+ "type": "setAttribute",
953
+ "parameters": {
954
+ "name": "age"
955
+ },
956
+ "x": 455,
957
+ "y": 432
958
+ },
959
+ {
960
+ "id": 4,
961
+ "type": "attribute",
962
+ "parameters": {
963
+ "name": "life"
964
+ },
965
+ "x": 227.5,
966
+ "y": 758
967
+ },
968
+ {
969
+ "id": 5,
970
+ "type": "div",
971
+ "parameters": {},
972
+ "x": 470,
973
+ "y": 742
974
+ },
975
+ {
976
+ "id": 6,
977
+ "type": "compare",
978
+ "parameters": {
979
+ "op": "ge"
980
+ },
981
+ "x": 720,
982
+ "y": 571
983
+ },
984
+ {
985
+ "id": 7,
986
+ "type": "const",
987
+ "parameters": {
988
+ "value": [
989
+ 1
990
+ ]
991
+ },
992
+ "x": 481.25,
993
+ "y": 338
994
+ },
995
+ {
996
+ "id": 8,
997
+ "type": "kill",
998
+ "parameters": {},
999
+ "x": 970,
1000
+ "y": 571
1001
+ },
1002
+ {
1003
+ "id": 9,
1004
+ "type": "builtin",
1005
+ "parameters": {
1006
+ "id": 7
1007
+ },
1008
+ "x": 7.5,
1009
+ "y": 283
1010
+ },
1011
+ {
1012
+ "id": 10,
1013
+ "type": "mul",
1014
+ "parameters": {},
1015
+ "x": 231.25,
1016
+ "y": 330
1017
+ },
1018
+ {
1019
+ "id": 11,
1020
+ "type": "const",
1021
+ "parameters": {
1022
+ "value": [
1023
+ -0.3
1024
+ ]
1025
+ },
1026
+ "x": 15,
1027
+ "y": 385
1028
+ },
1029
+ {
1030
+ "id": 12,
1031
+ "type": "attribute",
1032
+ "parameters": {
1033
+ "name": "seed"
1034
+ },
1035
+ "x": 227.5,
1036
+ "y": 236
1037
+ },
1038
+ {
1039
+ "id": 13,
1040
+ "type": "vec3",
1041
+ "parameters": {},
1042
+ "x": 470,
1043
+ "y": 212
1044
+ },
1045
+ {
1046
+ "id": 14,
1047
+ "type": "const",
1048
+ "parameters": {
1049
+ "value": [
1050
+ 0
1051
+ ]
1052
+ },
1053
+ "x": 242.5,
1054
+ "y": 291
1055
+ },
1056
+ {
1057
+ "id": 15,
1058
+ "type": "attribute",
1059
+ "parameters": {
1060
+ "name": "position"
1061
+ },
1062
+ "x": 0,
1063
+ "y": 87
1064
+ },
1065
+ {
1066
+ "id": 16,
1067
+ "type": "scale",
1068
+ "parameters": {},
1069
+ "x": 231.25,
1070
+ "y": 126
1071
+ },
1072
+ {
1073
+ "id": 17,
1074
+ "type": "const",
1075
+ "parameters": {
1076
+ "value": [
1077
+ 0.95
1078
+ ]
1079
+ },
1080
+ "x": 15,
1081
+ "y": 181
1082
+ },
1083
+ {
1084
+ "id": 18,
1085
+ "type": "add",
1086
+ "parameters": {},
1087
+ "x": 720,
1088
+ "y": 110
1089
+ },
1090
+ {
1091
+ "id": 19,
1092
+ "type": "const",
1093
+ "parameters": {
1094
+ "value": [
1095
+ 0,
1096
+ 0,
1097
+ 0
1098
+ ]
1099
+ },
1100
+ "x": 731.25,
1101
+ "y": 16
1102
+ },
1103
+ {
1104
+ "id": 20,
1105
+ "type": "add",
1106
+ "parameters": {},
1107
+ "x": 970,
1108
+ "y": 0
1109
+ },
1110
+ {
1111
+ "id": 21,
1112
+ "type": "simplex3",
1113
+ "parameters": {},
1114
+ "x": 1220,
1115
+ "y": 0
1116
+ },
1117
+ {
1118
+ "id": 22,
1119
+ "type": "const",
1120
+ "parameters": {
1121
+ "value": [
1122
+ 17.3,
1123
+ 5.1,
1124
+ 31.7
1125
+ ]
1126
+ },
1127
+ "x": 731.25,
1128
+ "y": 220
1129
+ },
1130
+ {
1131
+ "id": 23,
1132
+ "type": "add",
1133
+ "parameters": {},
1134
+ "x": 970,
1135
+ "y": 157
1136
+ },
1137
+ {
1138
+ "id": 24,
1139
+ "type": "simplex3",
1140
+ "parameters": {},
1141
+ "x": 1220,
1142
+ "y": 157
1143
+ },
1144
+ {
1145
+ "id": 25,
1146
+ "type": "const",
1147
+ "parameters": {
1148
+ "value": [
1149
+ 73.9,
1150
+ 41.3,
1151
+ 11.5
1152
+ ]
1153
+ },
1154
+ "x": 731.25,
1155
+ "y": 322
1156
+ },
1157
+ {
1158
+ "id": 26,
1159
+ "type": "add",
1160
+ "parameters": {},
1161
+ "x": 970,
1162
+ "y": 306
1163
+ },
1164
+ {
1165
+ "id": 27,
1166
+ "type": "simplex3",
1167
+ "parameters": {},
1168
+ "x": 1220,
1169
+ "y": 306
1170
+ },
1171
+ {
1172
+ "id": 28,
1173
+ "type": "vec3",
1174
+ "parameters": {},
1175
+ "x": 1455,
1176
+ "y": 94
1177
+ },
1178
+ {
1179
+ "id": 29,
1180
+ "type": "scale",
1181
+ "parameters": {},
1182
+ "x": 1675,
1183
+ "y": 130.5
1184
+ },
1185
+ {
1186
+ "id": 30,
1187
+ "type": "const",
1188
+ "parameters": {
1189
+ "value": [
1190
+ 1.7
1191
+ ]
1192
+ },
1193
+ "x": 1466.25,
1194
+ "y": 220
1195
+ },
1196
+ {
1197
+ "id": 31,
1198
+ "type": "const",
1199
+ "parameters": {
1200
+ "value": [
1201
+ 0.28,
1202
+ 0.1,
1203
+ -0.12
1204
+ ]
1205
+ },
1206
+ "x": 1686.25,
1207
+ "y": 36.5
1208
+ },
1209
+ {
1210
+ "id": 32,
1211
+ "type": "add",
1212
+ "parameters": {},
1213
+ "x": 1895,
1214
+ "y": 75.5
1215
+ },
1216
+ {
1217
+ "id": 33,
1218
+ "type": "attribute",
1219
+ "parameters": {
1220
+ "name": "velocity"
1221
+ },
1222
+ "x": 2115,
1223
+ "y": 571
1224
+ },
1225
+ {
1226
+ "id": 34,
1227
+ "type": "scale",
1228
+ "parameters": {},
1229
+ "x": 2118.75,
1230
+ "y": 665
1231
+ },
1232
+ {
1233
+ "id": 35,
1234
+ "type": "add",
1235
+ "parameters": {},
1236
+ "x": 2342.5,
1237
+ "y": 610
1238
+ },
1239
+ {
1240
+ "id": 36,
1241
+ "type": "const",
1242
+ "parameters": {
1243
+ "value": [
1244
+ 0,
1245
+ 0,
1246
+ 0
1247
+ ]
1248
+ },
1249
+ "x": 2353.75,
1250
+ "y": 720
1251
+ },
1252
+ {
1253
+ "id": 37,
1254
+ "type": "mul",
1255
+ "parameters": {},
1256
+ "x": 231.25,
1257
+ "y": 1009
1258
+ },
1259
+ {
1260
+ "id": 38,
1261
+ "type": "const",
1262
+ "parameters": {
1263
+ "value": [
1264
+ 0.55
1265
+ ]
1266
+ },
1267
+ "x": 15,
1268
+ "y": 1009
1269
+ },
1270
+ {
1271
+ "id": 39,
1272
+ "type": "saturate",
1273
+ "parameters": {},
1274
+ "x": 2342.5,
1275
+ "y": 1009
1276
+ },
1277
+ {
1278
+ "id": 40,
1279
+ "type": "mix",
1280
+ "parameters": {},
1281
+ "x": 2562.5,
1282
+ "y": 763
1283
+ },
1284
+ {
1285
+ "id": 41,
1286
+ "type": "setAttribute",
1287
+ "parameters": {
1288
+ "name": "velocity"
1289
+ },
1290
+ "x": 2782.5,
1291
+ "y": 763
1292
+ },
1293
+ {
1294
+ "id": 42,
1295
+ "type": "attribute",
1296
+ "parameters": {
1297
+ "name": "position"
1298
+ },
1299
+ "x": 2793.75,
1300
+ "y": 400
1301
+ },
1302
+ {
1303
+ "id": 43,
1304
+ "type": "scale",
1305
+ "parameters": {},
1306
+ "x": 2797.5,
1307
+ "y": 494
1308
+ },
1309
+ {
1310
+ "id": 44,
1311
+ "type": "add",
1312
+ "parameters": {},
1313
+ "x": 3032.5,
1314
+ "y": 439
1315
+ },
1316
+ {
1317
+ "id": 45,
1318
+ "type": "setAttribute",
1319
+ "parameters": {
1320
+ "name": "position"
1321
+ },
1322
+ "x": 3252.5,
1323
+ "y": 439
1324
+ },
1325
+ {
1326
+ "id": 46,
1327
+ "type": "attribute",
1328
+ "parameters": {
1329
+ "name": "size0"
1330
+ },
1331
+ "x": 716.25,
1332
+ "y": 1070
1333
+ },
1334
+ {
1335
+ "id": 47,
1336
+ "type": "curveLiteral",
1337
+ "parameters": {
1338
+ "curve": {
1339
+ "keys": [
1340
+ {
1341
+ "time": 0,
1342
+ "value": 0.8,
1343
+ "inTangent": 0,
1344
+ "outTangent": 0
1345
+ },
1346
+ {
1347
+ "time": 0.35,
1348
+ "value": 1.7,
1349
+ "inTangent": 0,
1350
+ "outTangent": 0
1351
+ },
1352
+ {
1353
+ "time": 1,
1354
+ "value": 3.1,
1355
+ "inTangent": 0,
1356
+ "outTangent": 0
1357
+ }
1358
+ ]
1359
+ }
1360
+ },
1361
+ "x": 705,
1362
+ "y": 836
1363
+ },
1364
+ {
1365
+ "id": 48,
1366
+ "type": "mul",
1367
+ "parameters": {},
1368
+ "x": 970,
1369
+ "y": 1070
1370
+ },
1371
+ {
1372
+ "id": 49,
1373
+ "type": "setAttribute",
1374
+ "parameters": {
1375
+ "name": "size"
1376
+ },
1377
+ "x": 1205,
1378
+ "y": 1070
1379
+ },
1380
+ {
1381
+ "id": 50,
1382
+ "type": "attribute",
1383
+ "parameters": {
1384
+ "name": "spin_rate"
1385
+ },
1386
+ "x": 0,
1387
+ "y": 821
1388
+ },
1389
+ {
1390
+ "id": 51,
1391
+ "type": "attribute",
1392
+ "parameters": {
1393
+ "name": "spin"
1394
+ },
1395
+ "x": 0,
1396
+ "y": 915
1397
+ },
1398
+ {
1399
+ "id": 52,
1400
+ "type": "mad",
1401
+ "parameters": {},
1402
+ "x": 231.25,
1403
+ "y": 852
1404
+ },
1405
+ {
1406
+ "id": 53,
1407
+ "type": "setAttribute",
1408
+ "parameters": {
1409
+ "name": "spin"
1410
+ },
1411
+ "x": 455,
1412
+ "y": 852
1413
+ },
1414
+ {
1415
+ "id": 54,
1416
+ "type": "gradientRGBA",
1417
+ "parameters": {
1418
+ "stops": [
1419
+ {
1420
+ "position": 0,
1421
+ "color": [
1422
+ 0.3,
1423
+ 0.15,
1424
+ 0.06,
1425
+ 0
1426
+ ]
1427
+ },
1428
+ {
1429
+ "position": 0.07,
1430
+ "color": [
1431
+ 0.19,
1432
+ 0.1,
1433
+ 0.045,
1434
+ 0.2
1435
+ ]
1436
+ },
1437
+ {
1438
+ "position": 0.24,
1439
+ "color": [
1440
+ 0.05,
1441
+ 0.046,
1442
+ 0.046,
1443
+ 0.17
1444
+ ]
1445
+ },
1446
+ {
1447
+ "position": 0.7,
1448
+ "color": [
1449
+ 0.02,
1450
+ 0.024,
1451
+ 0.034,
1452
+ 0.1
1453
+ ]
1454
+ },
1455
+ {
1456
+ "position": 1,
1457
+ "color": [
1458
+ 0.016,
1459
+ 0.02,
1460
+ 0.03,
1461
+ 0
1462
+ ]
1463
+ }
1464
+ ]
1465
+ },
1466
+ "x": 705,
1467
+ "y": 742
1468
+ },
1469
+ {
1470
+ "id": 55,
1471
+ "type": "setAttribute",
1472
+ "parameters": {
1473
+ "name": "color"
1474
+ },
1475
+ "x": 955,
1476
+ "y": 742
1477
+ }
1478
+ ],
1479
+ "connections": [
1480
+ {
1481
+ "from": 1,
1482
+ "fromPort": "out",
1483
+ "to": 2,
1484
+ "toPort": "a"
1485
+ },
1486
+ {
1487
+ "from": 0,
1488
+ "fromPort": "out",
1489
+ "to": 2,
1490
+ "toPort": "b"
1491
+ },
1492
+ {
1493
+ "from": 2,
1494
+ "fromPort": "out",
1495
+ "to": 3,
1496
+ "toPort": "value"
1497
+ },
1498
+ {
1499
+ "from": 2,
1500
+ "fromPort": "out",
1501
+ "to": 5,
1502
+ "toPort": "a"
1503
+ },
1504
+ {
1505
+ "from": 4,
1506
+ "fromPort": "out",
1507
+ "to": 5,
1508
+ "toPort": "b"
1509
+ },
1510
+ {
1511
+ "from": 5,
1512
+ "fromPort": "out",
1513
+ "to": 6,
1514
+ "toPort": "a"
1515
+ },
1516
+ {
1517
+ "from": 7,
1518
+ "fromPort": "out",
1519
+ "to": 6,
1520
+ "toPort": "b"
1521
+ },
1522
+ {
1523
+ "from": 6,
1524
+ "fromPort": "out",
1525
+ "to": 8,
1526
+ "toPort": "condition"
1527
+ },
1528
+ {
1529
+ "from": 9,
1530
+ "fromPort": "out",
1531
+ "to": 10,
1532
+ "toPort": "a"
1533
+ },
1534
+ {
1535
+ "from": 11,
1536
+ "fromPort": "out",
1537
+ "to": 10,
1538
+ "toPort": "b"
1539
+ },
1540
+ {
1541
+ "from": 12,
1542
+ "fromPort": "out",
1543
+ "to": 13,
1544
+ "toPort": "x"
1545
+ },
1546
+ {
1547
+ "from": 10,
1548
+ "fromPort": "out",
1549
+ "to": 13,
1550
+ "toPort": "y"
1551
+ },
1552
+ {
1553
+ "from": 14,
1554
+ "fromPort": "out",
1555
+ "to": 13,
1556
+ "toPort": "z"
1557
+ },
1558
+ {
1559
+ "from": 15,
1560
+ "fromPort": "out",
1561
+ "to": 16,
1562
+ "toPort": "v"
1563
+ },
1564
+ {
1565
+ "from": 17,
1566
+ "fromPort": "out",
1567
+ "to": 16,
1568
+ "toPort": "s"
1569
+ },
1570
+ {
1571
+ "from": 16,
1572
+ "fromPort": "out",
1573
+ "to": 18,
1574
+ "toPort": "a"
1575
+ },
1576
+ {
1577
+ "from": 13,
1578
+ "fromPort": "out",
1579
+ "to": 18,
1580
+ "toPort": "b"
1581
+ },
1582
+ {
1583
+ "from": 18,
1584
+ "fromPort": "out",
1585
+ "to": 20,
1586
+ "toPort": "a"
1587
+ },
1588
+ {
1589
+ "from": 19,
1590
+ "fromPort": "out",
1591
+ "to": 20,
1592
+ "toPort": "b"
1593
+ },
1594
+ {
1595
+ "from": 20,
1596
+ "fromPort": "out",
1597
+ "to": 21,
1598
+ "toPort": "p"
1599
+ },
1600
+ {
1601
+ "from": 18,
1602
+ "fromPort": "out",
1603
+ "to": 23,
1604
+ "toPort": "a"
1605
+ },
1606
+ {
1607
+ "from": 22,
1608
+ "fromPort": "out",
1609
+ "to": 23,
1610
+ "toPort": "b"
1611
+ },
1612
+ {
1613
+ "from": 23,
1614
+ "fromPort": "out",
1615
+ "to": 24,
1616
+ "toPort": "p"
1617
+ },
1618
+ {
1619
+ "from": 18,
1620
+ "fromPort": "out",
1621
+ "to": 26,
1622
+ "toPort": "a"
1623
+ },
1624
+ {
1625
+ "from": 25,
1626
+ "fromPort": "out",
1627
+ "to": 26,
1628
+ "toPort": "b"
1629
+ },
1630
+ {
1631
+ "from": 26,
1632
+ "fromPort": "out",
1633
+ "to": 27,
1634
+ "toPort": "p"
1635
+ },
1636
+ {
1637
+ "from": 21,
1638
+ "fromPort": "out",
1639
+ "to": 28,
1640
+ "toPort": "x"
1641
+ },
1642
+ {
1643
+ "from": 24,
1644
+ "fromPort": "out",
1645
+ "to": 28,
1646
+ "toPort": "y"
1647
+ },
1648
+ {
1649
+ "from": 27,
1650
+ "fromPort": "out",
1651
+ "to": 28,
1652
+ "toPort": "z"
1653
+ },
1654
+ {
1655
+ "from": 28,
1656
+ "fromPort": "out",
1657
+ "to": 29,
1658
+ "toPort": "v"
1659
+ },
1660
+ {
1661
+ "from": 30,
1662
+ "fromPort": "out",
1663
+ "to": 29,
1664
+ "toPort": "s"
1665
+ },
1666
+ {
1667
+ "from": 31,
1668
+ "fromPort": "out",
1669
+ "to": 32,
1670
+ "toPort": "a"
1671
+ },
1672
+ {
1673
+ "from": 29,
1674
+ "fromPort": "out",
1675
+ "to": 32,
1676
+ "toPort": "b"
1677
+ },
1678
+ {
1679
+ "from": 32,
1680
+ "fromPort": "out",
1681
+ "to": 34,
1682
+ "toPort": "v"
1683
+ },
1684
+ {
1685
+ "from": 0,
1686
+ "fromPort": "out",
1687
+ "to": 34,
1688
+ "toPort": "s"
1689
+ },
1690
+ {
1691
+ "from": 33,
1692
+ "fromPort": "out",
1693
+ "to": 35,
1694
+ "toPort": "a"
1695
+ },
1696
+ {
1697
+ "from": 34,
1698
+ "fromPort": "out",
1699
+ "to": 35,
1700
+ "toPort": "b"
1701
+ },
1702
+ {
1703
+ "from": 38,
1704
+ "fromPort": "out",
1705
+ "to": 37,
1706
+ "toPort": "a"
1707
+ },
1708
+ {
1709
+ "from": 0,
1710
+ "fromPort": "out",
1711
+ "to": 37,
1712
+ "toPort": "b"
1713
+ },
1714
+ {
1715
+ "from": 37,
1716
+ "fromPort": "out",
1717
+ "to": 39,
1718
+ "toPort": "x"
1719
+ },
1720
+ {
1721
+ "from": 35,
1722
+ "fromPort": "out",
1723
+ "to": 40,
1724
+ "toPort": "a"
1725
+ },
1726
+ {
1727
+ "from": 36,
1728
+ "fromPort": "out",
1729
+ "to": 40,
1730
+ "toPort": "b"
1731
+ },
1732
+ {
1733
+ "from": 39,
1734
+ "fromPort": "out",
1735
+ "to": 40,
1736
+ "toPort": "t"
1737
+ },
1738
+ {
1739
+ "from": 40,
1740
+ "fromPort": "out",
1741
+ "to": 41,
1742
+ "toPort": "value"
1743
+ },
1744
+ {
1745
+ "from": 40,
1746
+ "fromPort": "out",
1747
+ "to": 43,
1748
+ "toPort": "v"
1749
+ },
1750
+ {
1751
+ "from": 0,
1752
+ "fromPort": "out",
1753
+ "to": 43,
1754
+ "toPort": "s"
1755
+ },
1756
+ {
1757
+ "from": 42,
1758
+ "fromPort": "out",
1759
+ "to": 44,
1760
+ "toPort": "a"
1761
+ },
1762
+ {
1763
+ "from": 43,
1764
+ "fromPort": "out",
1765
+ "to": 44,
1766
+ "toPort": "b"
1767
+ },
1768
+ {
1769
+ "from": 44,
1770
+ "fromPort": "out",
1771
+ "to": 45,
1772
+ "toPort": "value"
1773
+ },
1774
+ {
1775
+ "from": 5,
1776
+ "fromPort": "out",
1777
+ "to": 47,
1778
+ "toPort": "t"
1779
+ },
1780
+ {
1781
+ "from": 46,
1782
+ "fromPort": "out",
1783
+ "to": 48,
1784
+ "toPort": "a"
1785
+ },
1786
+ {
1787
+ "from": 47,
1788
+ "fromPort": "out",
1789
+ "to": 48,
1790
+ "toPort": "b"
1791
+ },
1792
+ {
1793
+ "from": 48,
1794
+ "fromPort": "out",
1795
+ "to": 49,
1796
+ "toPort": "value"
1797
+ },
1798
+ {
1799
+ "from": 50,
1800
+ "fromPort": "out",
1801
+ "to": 52,
1802
+ "toPort": "a"
1803
+ },
1804
+ {
1805
+ "from": 0,
1806
+ "fromPort": "out",
1807
+ "to": 52,
1808
+ "toPort": "b"
1809
+ },
1810
+ {
1811
+ "from": 51,
1812
+ "fromPort": "out",
1813
+ "to": 52,
1814
+ "toPort": "c"
1815
+ },
1816
+ {
1817
+ "from": 52,
1818
+ "fromPort": "out",
1819
+ "to": 53,
1820
+ "toPort": "value"
1821
+ },
1822
+ {
1823
+ "from": 5,
1824
+ "fromPort": "out",
1825
+ "to": 54,
1826
+ "toPort": "t"
1827
+ },
1828
+ {
1829
+ "from": 54,
1830
+ "fromPort": "out",
1831
+ "to": 55,
1832
+ "toPort": "value"
1833
+ }
1834
+ ]
1835
+ },
1836
+ "emitter": {
1837
+ "spawn_rate": 130,
1838
+ "prewarm": 4.5,
1839
+ "blend": 0,
1840
+ "projection": 0,
1841
+ "lighting": false,
1842
+ "soft_depth": true,
1843
+ "sort": false,
1844
+ "cull": false,
1845
+ "texture": null,
1846
+ "flipbook": [
1847
+ 1,
1848
+ 1
1849
+ ],
1850
+ "render": {
1851
+ "position": "position",
1852
+ "size": "size",
1853
+ "color": "color",
1854
+ "rotation": "spin"
1855
+ }
1856
+ },
1857
+ "source": "graph",
1858
+ "assembly": "",
1859
+ "optimize": true
1860
+ }