@woosh/meep-engine 3.47.0 → 3.49.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 (619) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/editor/particles/effect/ParticleReferenceSimulation.d.ts +1 -2
  3. package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -1
  4. package/editor/particles/effect/ParticleReferenceSimulation.js +2 -4
  5. package/editor/view/particles/effect/ParticleGraphEditorView.js +1 -1
  6. package/package.json +1 -1
  7. package/src/engine/ecs/async/WORKER_SYSTEM_PLAN.md +27 -11
  8. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  9. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +11 -0
  10. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts +2 -2
  11. package/src/engine/graphics/ecs/particles/ParticleEffect.d.ts.map +1 -1
  12. package/src/engine/graphics/ecs/particles/ParticleEffect.js +7 -7
  13. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.d.ts +8 -0
  14. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.d.ts.map +1 -1
  15. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationAdapter.js +11 -3
  16. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.d.ts +26 -0
  17. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.d.ts.map +1 -0
  18. package/src/engine/graphics/ecs/particles/ParticleEffectSerializationUpgrader_1_2.js +91 -0
  19. package/src/engine/graphics3/GPUParticleEmitterSystem.js +2 -2
  20. package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
  21. package/src/engine/graphics3/GraphicsEngine.js +8 -1
  22. package/src/engine/graphics3/ParticipatingMedia.d.ts +84 -1
  23. package/src/engine/graphics3/ParticipatingMedia.d.ts.map +1 -1
  24. package/src/engine/graphics3/ParticipatingMedia.js +139 -5
  25. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.d.ts +6 -2
  26. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.d.ts.map +1 -1
  27. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.js +29 -4
  28. package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.d.ts +10 -0
  29. package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.d.ts.map +1 -0
  30. package/src/engine/graphics3/ParticipatingMediaSerializationUpgrader_0_1.js +38 -0
  31. package/src/engine/graphics3/ParticipatingMediaSystem.d.ts.map +1 -1
  32. package/src/engine/graphics3/ParticipatingMediaSystem.js +46 -3
  33. package/src/engine/network/NetworkSession.d.ts +16 -5
  34. package/src/engine/network/NetworkSession.d.ts.map +1 -1
  35. package/src/engine/network/NetworkSession.js +104 -7
  36. package/src/engine/network/README.md +27 -1
  37. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +40 -18
  38. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
  39. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +180 -190
  40. package/src/engine/network/replication/Replicator.d.ts +15 -4
  41. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  42. package/src/engine/network/replication/Replicator.js +50 -16
  43. package/src/engine/network/state/RecordArrivalRing.d.ts +57 -0
  44. package/src/engine/network/state/RecordArrivalRing.d.ts.map +1 -0
  45. package/src/engine/network/state/RecordArrivalRing.js +144 -0
  46. package/src/engine/physics/cloth/MEASUREMENTS.md +354 -0
  47. package/src/engine/physics/cloth/PLAN.md +85 -5
  48. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +0 -12
  49. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
  50. package/src/engine/physics/cloth/ecs/ClothInstance.js +0 -13
  51. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +2 -1
  52. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
  53. package/src/engine/physics/cloth/ecs/ClothSystem.js +7 -1
  54. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
  55. package/src/engine/physics/cloth/ecs/ClothWorld.js +4 -15
  56. package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts +2 -1
  57. package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts.map +1 -1
  58. package/src/engine/physics/cloth/ecs/WorkerClothSystem.js +6 -1
  59. package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts.map +1 -1
  60. package/src/engine/physics/cloth/ecs/cloth_build_rows.js +20 -10
  61. package/src/engine/physics/cloth/playground/collide.html +5 -3
  62. package/src/engine/physics/cloth/playground/collide_main.js +14 -13
  63. package/src/engine/physics/cloth/solver/ClothState.d.ts +30 -2
  64. package/src/engine/physics/cloth/solver/ClothState.d.ts.map +1 -1
  65. package/src/engine/physics/cloth/solver/ClothState.js +62 -4
  66. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts +11 -3
  67. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts.map +1 -1
  68. package/src/engine/physics/cloth/solver/cloth_self_find.js +52 -11
  69. package/src/engine/physics/cloth/solver/cloth_self_radius.d.ts +42 -0
  70. package/src/engine/physics/cloth/solver/cloth_self_radius.d.ts.map +1 -0
  71. package/src/engine/physics/cloth/solver/cloth_self_radius.js +64 -0
  72. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts +99 -24
  73. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts.map +1 -1
  74. package/src/engine/physics/cloth/solver/cloth_solver_constants.js +102 -25
  75. package/src/engine/physics/cloth/solver/cloth_step.d.ts +5 -1
  76. package/src/engine/physics/cloth/solver/cloth_step.d.ts.map +1 -1
  77. package/src/engine/physics/cloth/solver/cloth_step.js +13 -3
  78. package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts +0 -1
  79. package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts.map +1 -1
  80. package/src/engine/physics/cloth/solver/cloth_step_instance.js +12 -14
  81. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts +23 -4
  82. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
  83. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +36 -8
  84. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts.map +1 -1
  85. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.js +4 -2
  86. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  87. package/src/shade/device/mock/SoftwareGPUDevice.d.ts +15 -0
  88. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  89. package/src/shade/device/mock/SoftwareGPUDevice.js +21 -0
  90. package/src/shade/device/pipeline/ComputePipelineManager.d.ts +20 -0
  91. package/src/shade/device/pipeline/ComputePipelineManager.d.ts.map +1 -1
  92. package/src/shade/device/pipeline/ComputePipelineManager.js +80 -6
  93. package/src/shade/device/pipeline/PipelineEnquiry.d.ts +52 -0
  94. package/src/shade/device/pipeline/PipelineEnquiry.d.ts.map +1 -0
  95. package/src/shade/device/pipeline/PipelineEnquiry.js +63 -0
  96. package/src/shade/device/pipeline/RenderPipelineManager.d.ts +21 -0
  97. package/src/shade/device/pipeline/RenderPipelineManager.d.ts.map +1 -1
  98. package/src/shade/device/pipeline/RenderPipelineManager.js +84 -4
  99. package/src/shade/playground/contact_shadows/ContactShadowLab.d.ts +137 -0
  100. package/src/shade/playground/contact_shadows/ContactShadowLab.d.ts.map +1 -0
  101. package/src/shade/playground/contact_shadows/ContactShadowLab.js +654 -0
  102. package/src/shade/playground/contact_shadows/README.md +126 -0
  103. package/src/shade/playground/contact_shadows/index.html +191 -0
  104. package/src/shade/playground/contact_shadows/main.d.ts +2 -0
  105. package/src/shade/playground/contact_shadows/main.d.ts.map +1 -0
  106. package/src/shade/playground/contact_shadows/main.js +888 -0
  107. package/src/shade/playground/contact_shadows/scenes.d.ts +48 -0
  108. package/src/shade/playground/contact_shadows/scenes.d.ts.map +1 -0
  109. package/src/shade/playground/contact_shadows/scenes.js +620 -0
  110. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts +36 -0
  111. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.d.ts.map +1 -0
  112. package/src/shade/playground/contact_shadows/shader_contact_lab_composite.js +245 -0
  113. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts +15 -0
  114. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.d.ts.map +1 -0
  115. package/src/shade/playground/contact_shadows/shader_contact_lab_reference.js +120 -0
  116. package/src/shade/playground/contact_shadows/shader_contact_lab_stats.d.ts +55 -0
  117. package/src/shade/playground/contact_shadows/shader_contact_lab_stats.d.ts.map +1 -0
  118. package/src/shade/playground/contact_shadows/shader_contact_lab_stats.js +216 -0
  119. package/src/shade/playground/contact_shadows/shader_contact_lab_view.d.ts +20 -0
  120. package/src/shade/playground/contact_shadows/shader_contact_lab_view.d.ts.map +1 -0
  121. package/src/shade/playground/contact_shadows/shader_contact_lab_view.js +114 -0
  122. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts +11 -0
  123. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.d.ts.map +1 -0
  124. package/src/shade/playground/contact_shadows/shader_contact_shadow_march.js +90 -0
  125. package/src/shade/playground/contact_shadows/textures.d.ts +16 -0
  126. package/src/shade/playground/contact_shadows/textures.d.ts.map +1 -0
  127. package/src/shade/playground/contact_shadows/textures.js +123 -0
  128. package/src/shade/playground/particle_ecs/README.md +1 -1
  129. package/src/shade/playground/particle_ecs/effects/flame.json +1932 -1881
  130. package/src/shade/playground/particle_ecs/effects/smoke.json +99 -1
  131. package/src/shade/playground/particle_ecs/effects/soot.json +152 -145
  132. package/src/shade/playground/tonemap_sdr/README.md +90 -0
  133. package/src/shade/playground/tonemap_sdr/ToneMapCompare.d.ts +105 -0
  134. package/src/shade/playground/tonemap_sdr/ToneMapCompare.d.ts.map +1 -0
  135. package/src/shade/playground/tonemap_sdr/ToneMapCompare.js +380 -0
  136. package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.d.ts +32 -0
  137. package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.d.ts.map +1 -0
  138. package/src/shade/playground/tonemap_sdr/chunk_tonemap_gt7_sdr_reference.js +104 -0
  139. package/src/shade/playground/tonemap_sdr/index.html +90 -0
  140. package/src/shade/playground/tonemap_sdr/main.d.ts +2 -0
  141. package/src/shade/playground/tonemap_sdr/main.d.ts.map +1 -0
  142. package/src/shade/playground/tonemap_sdr/main.js +306 -0
  143. package/src/shade/playground/tonemap_sdr/scenes.d.ts +26 -0
  144. package/src/shade/playground/tonemap_sdr/scenes.d.ts.map +1 -0
  145. package/src/shade/playground/tonemap_sdr/scenes.js +404 -0
  146. package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -1
  147. package/src/shade/playground/volumetrics_froxel/main.js +85 -4
  148. package/src/shade/playground/water_refraction/README.md +26 -18
  149. package/src/shade/playground/water_refraction/index.html +1 -1
  150. package/src/shade/renderer/Renderer.d.ts +35 -3
  151. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  152. package/src/shade/renderer/Renderer.js +208 -12
  153. package/src/shade/renderer/ShadeToneMappingMode.d.ts +14 -0
  154. package/src/shade/renderer/ShadeToneMappingMode.d.ts.map +1 -0
  155. package/src/shade/renderer/ShadeToneMappingMode.js +30 -0
  156. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +9 -0
  157. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  158. package/src/shade/renderer/animation/GPUAnimationManager.js +14 -0
  159. package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.d.ts.map +1 -1
  160. package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.js +5 -3
  161. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts +7 -0
  162. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
  163. package/src/shade/renderer/buffer/table/GPUDatabase.js +12 -0
  164. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts +8 -0
  165. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
  166. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +12 -0
  167. package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
  168. package/src/shade/renderer/camera/GPUCameraContext.js +19 -8
  169. package/src/shade/renderer/deferred/chunk_read_gBuffer_material.d.ts.map +1 -1
  170. package/src/shade/renderer/deferred/chunk_read_gBuffer_material.js +4 -0
  171. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.d.ts.map +1 -1
  172. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct.js +4 -0
  173. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.d.ts.map +1 -1
  174. package/src/shade/renderer/deferred/chunk_shade_standard_material_direct_restir.js +4 -0
  175. package/src/shade/renderer/deferred/shader_deferred_main.d.ts.map +1 -1
  176. package/src/shade/renderer/deferred/shader_deferred_main.js +3 -0
  177. package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts +6 -0
  178. package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts.map +1 -1
  179. package/src/shade/renderer/deferred/shader_tonemap_HDR.js +13 -3
  180. package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts +9 -0
  181. package/src/shade/renderer/deferred/shader_tonemap_HDR_none.d.ts.map +1 -0
  182. package/src/shade/renderer/deferred/shader_tonemap_HDR_none.js +63 -0
  183. package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts +10 -0
  184. package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.d.ts.map +1 -0
  185. package/src/shade/renderer/deferred/shader_tonemap_HDR_pbr_neutral.js +87 -0
  186. package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts +6 -0
  187. package/src/shade/renderer/deferred/shader_tonemap_LDR.d.ts.map +1 -1
  188. package/src/shade/renderer/deferred/shader_tonemap_LDR.js +23 -5
  189. package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts +9 -0
  190. package/src/shade/renderer/deferred/shader_tonemap_LDR_none.d.ts.map +1 -0
  191. package/src/shade/renderer/deferred/shader_tonemap_LDR_none.js +68 -0
  192. package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts +10 -0
  193. package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.d.ts.map +1 -0
  194. package/src/shade/renderer/deferred/shader_tonemap_LDR_pbr_neutral.js +73 -0
  195. package/src/shade/renderer/geometry/meshlet/MeshletBatch.d.ts.map +1 -1
  196. package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +58 -9
  197. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts +35 -25
  198. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
  199. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +97 -196
  200. package/src/shade/renderer/geometry/sdf/shader_build_sdf.d.ts.map +1 -1
  201. package/src/shade/renderer/geometry/sdf/shader_build_sdf.js +121 -129
  202. package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.d.ts.map +1 -1
  203. package/src/shade/renderer/global_illumination/brick4/gpu/bake/brick4_bake_basic.js +3 -0
  204. package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.d.ts.map +1 -1
  205. package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.js +4 -0
  206. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.d.ts.map +1 -1
  207. package/src/shade/renderer/global_illumination/brick4/gpu/draw/shader_brick4_indirect_lighting.js +4 -0
  208. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.d.ts.map +1 -1
  209. package/src/shade/renderer/global_illumination/lpv/bake/GPULightProbeVolumeRenderer.js +3 -0
  210. package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.d.ts.map +1 -1
  211. package/src/shade/renderer/global_illumination/lpv/deprecated/probe_trace_compute_shader_code.js +4 -0
  212. package/src/shade/renderer/global_illumination/probe/octahedral/graph_sample_light_probes.d.ts.map +1 -1
  213. package/src/shade/renderer/global_illumination/probe/octahedral/graph_sample_light_probes.js +4 -0
  214. package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.d.ts.map +1 -1
  215. package/src/shade/renderer/global_illumination/shader_resolve_indirect_lighting.js +4 -0
  216. package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +131 -1
  217. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts +7 -0
  218. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.d.ts.map +1 -1
  219. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_delta.js +45 -38
  220. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts +2 -0
  221. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.d.ts.map +1 -1
  222. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_determine_range.js +81 -79
  223. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts +2 -0
  224. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.d.ts.map +1 -1
  225. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_find_split.js +5 -3
  226. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.d.ts +21 -0
  227. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.d.ts.map +1 -0
  228. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_internal_children.js +42 -0
  229. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.d.ts +19 -0
  230. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.d.ts.map +1 -0
  231. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_morton_code.js +44 -0
  232. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts +23 -5
  233. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.d.ts.map +1 -1
  234. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +139 -23
  235. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.d.ts +25 -0
  236. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.d.ts.map +1 -0
  237. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_build_single_workgroup.js +179 -0
  238. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts +2 -2
  239. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -1
  240. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +7 -16
  241. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts +3 -4
  242. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts.map +1 -1
  243. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.js +6 -23
  244. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts +11 -0
  245. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.d.ts.map +1 -1
  246. package/src/shade/renderer/gpu_primitive/indirect/IndirectComputeCommandBuildPass.js +14 -3
  247. package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.d.ts +10 -0
  248. package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.d.ts.map +1 -1
  249. package/src/shade/renderer/gpu_primitive/indirect/build_indirect_draw_command.js +13 -3
  250. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts +10 -0
  251. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts.map +1 -1
  252. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.js +14 -0
  253. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.d.ts +26 -0
  254. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.d.ts.map +1 -0
  255. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_comparator.js +52 -0
  256. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.d.ts +32 -0
  257. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.d.ts.map +1 -0
  258. package/src/shade/renderer/gpu_primitive/sort/chunk_sort_bitonic_workgroup.js +89 -0
  259. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +10 -0
  260. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -1
  261. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +20 -1
  262. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts +10 -0
  263. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
  264. package/src/shade/renderer/hiz/HierarchicalZBuffer.js +294 -281
  265. package/src/shade/renderer/light/GPULightCollection.d.ts +8 -0
  266. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  267. package/src/shade/renderer/light/GPULightCollection.js +18 -1
  268. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts +8 -0
  269. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
  270. package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +234 -218
  271. package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts +7 -0
  272. package/src/shade/renderer/light/cluster/graph_assign_clsuters.d.ts.map +1 -1
  273. package/src/shade/renderer/light/cluster/graph_assign_clsuters.js +13 -0
  274. package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts +7 -0
  275. package/src/shade/renderer/light/cluster/graph_build_light_clusters.d.ts.map +1 -1
  276. package/src/shade/renderer/light/cluster/graph_build_light_clusters.js +16 -2
  277. package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts +10 -0
  278. package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts.map +1 -1
  279. package/src/shade/renderer/light/environment/execute_filter_environment_map.js +13 -0
  280. package/src/shade/renderer/lightmap/GPULightMap.d.ts.map +1 -1
  281. package/src/shade/renderer/lightmap/GPULightMap.js +3 -0
  282. package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.d.ts.map +1 -1
  283. package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_irradiance_flat.js +4 -0
  284. package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.d.ts.map +1 -1
  285. package/src/shade/renderer/lightmap/bake/shader_lightmap_viz_to_sh.js +4 -0
  286. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  287. package/src/shade/renderer/material/GPUMaterialManager.d.ts +16 -4
  288. package/src/shade/renderer/material/GPUMaterialManager.d.ts.map +1 -1
  289. package/src/shade/renderer/material/GPUMaterialManager.js +38 -8
  290. package/src/shade/renderer/particles/DESIGN.md +49 -7
  291. package/src/shade/renderer/particles/ORIENTATION_PLAN_2026_10_15.md +453 -0
  292. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +5 -1
  293. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -1
  294. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +13 -5
  295. package/src/shade/renderer/particles/data/particle_emitter_record.js +2 -2
  296. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts.map +1 -1
  297. package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.js +12 -0
  298. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts +60 -0
  299. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts.map +1 -1
  300. package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.js +156 -0
  301. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +2 -2
  302. package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -1
  303. package/src/shade/renderer/particles/runtime/ParticleEmitter.js +8 -8
  304. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -1
  305. package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +6 -4
  306. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts +7 -6
  307. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts.map +1 -1
  308. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +91 -58
  309. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
  310. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +10 -0
  311. package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.d.ts.map +1 -1
  312. package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.js +5 -1
  313. package/src/shade/renderer/path_tracer/graph_path_trace_scene.d.ts.map +1 -1
  314. package/src/shade/renderer/path_tracer/graph_path_trace_scene.js +6 -0
  315. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.d.ts +7 -0
  316. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.d.ts.map +1 -1
  317. package/src/shade/renderer/postprocess/bloom/graph_postprocess_bloom.js +18 -0
  318. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.d.ts.map +1 -1
  319. package/src/shade/renderer/postprocess/denoise/LigmaDenoiser.js +1 -0
  320. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.d.ts.map +1 -1
  321. package/src/shade/renderer/postprocess/denoise/shader_temporal_reprojection_luma.js +6 -4
  322. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts +11 -0
  323. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
  324. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +16 -0
  325. package/src/shade/renderer/postprocess/gtao/GTAO.d.ts +10 -0
  326. package/src/shade/renderer/postprocess/gtao/GTAO.d.ts.map +1 -1
  327. package/src/shade/renderer/postprocess/gtao/GTAO.js +16 -0
  328. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts.map +1 -1
  329. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +32 -10
  330. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  331. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.d.ts.map +1 -1
  332. package/src/shade/renderer/postprocess/ssr/reproject/chunk_ssr_temporal_accumulate.js +3 -0
  333. package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.d.ts.map +1 -1
  334. package/src/shade/renderer/postprocess/ssr/resolve/build_ssr_resolve_shader.js +6 -3
  335. package/src/shade/renderer/postprocess/taa/TAA.d.ts +12 -0
  336. package/src/shade/renderer/postprocess/taa/TAA.d.ts.map +1 -1
  337. package/src/shade/renderer/postprocess/taa/TAA.js +15 -0
  338. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts +7 -0
  339. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts.map +1 -1
  340. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js +13 -0
  341. package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts +31 -3
  342. package/src/shade/renderer/rasterize/TemplatePassDescriptor.d.ts.map +1 -1
  343. package/src/shade/renderer/rasterize/TemplatePassDescriptor.js +79 -4
  344. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts +17 -0
  345. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.d.ts.map +1 -1
  346. package/src/shade/renderer/rasterize/bucket/graph_meshlets_rasterize_by_bucket.js +35 -4
  347. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.d.ts +7 -0
  348. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.d.ts.map +1 -1
  349. package/src/shade/renderer/rasterize/compute/graph_mesh_frustum_cull.js +182 -169
  350. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts +10 -0
  351. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.d.ts.map +1 -1
  352. package/src/shade/renderer/rasterize/expand/bucket/mesh/graph_meshes_classify_buckets.js +20 -1
  353. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts +10 -0
  354. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.d.ts.map +1 -1
  355. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_extract_meshlets_from_bucket.js +18 -1
  356. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts +10 -0
  357. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.d.ts.map +1 -1
  358. package/src/shade/renderer/rasterize/expand/bucket/meshlet/graph_sort_meshlets_by_bucket_id.js +20 -1
  359. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.d.ts +7 -0
  360. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.d.ts.map +1 -1
  361. package/src/shade/renderer/rasterize/expand/graph_mesh_filter_one_way.js +187 -170
  362. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts +10 -0
  363. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.d.ts.map +1 -1
  364. package/src/shade/renderer/rasterize/expand/graph_meshlets_filter_one_way.js +19 -1
  365. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts +13 -0
  366. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.d.ts.map +1 -1
  367. package/src/shade/renderer/rasterize/expand/graph_meshlets_rasterize.js +25 -1
  368. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts +10 -0
  369. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts.map +1 -1
  370. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.js +20 -0
  371. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts.map +1 -1
  372. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.js +6 -0
  373. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts.map +1 -1
  374. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.js +6 -0
  375. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +3 -2
  376. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
  377. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +3 -2
  378. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +7 -2
  379. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
  380. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +12 -4
  381. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts.map +1 -1
  382. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.js +4 -3
  383. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts.map +1 -1
  384. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.js +4 -3
  385. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts +2 -1
  386. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts.map +1 -1
  387. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +11 -3
  388. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.d.ts.map +1 -1
  389. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.js +4 -3
  390. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.d.ts.map +1 -1
  391. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.js +4 -3
  392. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts +15 -0
  393. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
  394. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +35 -2
  395. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts +14 -0
  396. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
  397. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +32 -4
  398. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +17 -0
  399. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
  400. package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +34 -4
  401. package/src/shade/renderer/restir/di/chunk_restir_resolve.d.ts +5 -3
  402. package/src/shade/renderer/restir/di/chunk_restir_resolve.d.ts.map +1 -1
  403. package/src/shade/renderer/restir/di/chunk_restir_resolve.js +8 -3
  404. package/src/shade/renderer/restir/di/graph_restir_di.d.ts.map +1 -1
  405. package/src/shade/renderer/restir/di/graph_restir_di.js +1 -0
  406. package/src/shade/renderer/restir/di/shader_restir_di_resolve.d.ts.map +1 -1
  407. package/src/shade/renderer/restir/di/shader_restir_di_resolve.js +5 -1
  408. package/src/shade/renderer/restir/reservoir/shader.d.ts.map +1 -1
  409. package/src/shade/renderer/restir/reservoir/shader.js +7 -4
  410. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts +7 -0
  411. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
  412. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +13 -1
  413. package/src/shade/renderer/scene/GPUSceneContext.d.ts +10 -0
  414. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  415. package/src/shade/renderer/scene/GPUSceneContext.js +19 -0
  416. package/src/shade/renderer/scene/SceneManager.d.ts +9 -0
  417. package/src/shade/renderer/scene/SceneManager.d.ts.map +1 -1
  418. package/src/shade/renderer/scene/SceneManager.js +11 -0
  419. package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.d.ts +11 -0
  420. package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.d.ts.map +1 -1
  421. package/src/shade/renderer/scene/hierarchy/graph_nodes_update_transform_hierarchy.js +17 -0
  422. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts +11 -0
  423. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.d.ts.map +1 -1
  424. package/src/shade/renderer/scene/hierarchy/graph_scene_update_transform_hierarchy.js +18 -1
  425. package/src/shade/renderer/shader/ComputeShader.d.ts +12 -0
  426. package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
  427. package/src/shade/renderer/shader/ComputeShader.js +53 -0
  428. package/src/shade/renderer/shader/ImageShader.d.ts +27 -8
  429. package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
  430. package/src/shade/renderer/shader/ImageShader.js +70 -1
  431. package/src/shade/renderer/shader/ShaderDescriptor.d.ts +21 -0
  432. package/src/shade/renderer/shader/ShaderDescriptor.d.ts.map +1 -1
  433. package/src/shade/renderer/shader/ShaderDescriptor.js +71 -1
  434. package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.d.ts +17 -0
  435. package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.d.ts.map +1 -0
  436. package/src/shade/renderer/shader/chunk/camera/chunk_project_view_position_from_depth.js +45 -0
  437. package/src/shade/renderer/shader/chunk/camera/chunk_screen_coordinate_to_view.js +3 -3
  438. package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.d.ts +1 -1
  439. package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.js +62 -62
  440. package/src/shade/renderer/shader/chunk/color/tonemap/HDR_TONE_MAPPING_FORMS_BRIEF_2026_10_16.md +318 -0
  441. package/src/shade/renderer/shader/chunk/color/tonemap/SDR_TONE_MAPPING_BRIEF_2026_10_16.md +237 -0
  442. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.d.ts +17 -0
  443. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.d.ts.map +1 -0
  444. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_PAPER_WHITE_NITS.js +22 -0
  445. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.d.ts +14 -1
  446. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.d.ts.map +1 -1
  447. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_khronos_pbr.js +28 -15
  448. package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.d.ts +12 -0
  449. package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.d.ts.map +1 -1
  450. package/src/shade/renderer/shader/chunk/color/tonemap/gt7/chunk_tonemap_gt7.js +128 -110
  451. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.d.ts +20 -0
  452. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.d.ts.map +1 -0
  453. package/src/shade/renderer/shader/chunk/geometry/ray/chunk_offset_ray_from_depth.js +33 -0
  454. package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.d.ts +4 -0
  455. package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.d.ts.map +1 -1
  456. package/src/shade/renderer/shader/chunk/light/chunk_compute_multiscattering_specular.js +12 -1
  457. package/src/shade/renderer/shader/chunk/material/MATERIAL_SHADING_INFO_STRUCT.d.ts.map +1 -1
  458. package/src/shade/renderer/shader/chunk/material/MATERIAL_SHADING_INFO_STRUCT.js +7 -0
  459. package/src/shade/renderer/shader/chunk/material/MULTISCATTER.md +108 -0
  460. package/src/shade/renderer/shader/chunk/material/chunk_compute_indirect_specular.d.ts.map +1 -1
  461. package/src/shade/renderer/shader/chunk/material/chunk_compute_indirect_specular.js +23 -4
  462. package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.d.ts +18 -0
  463. package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.d.ts.map +1 -0
  464. package/src/shade/renderer/shader/chunk/material/chunk_re_direct_multiscatter.js +56 -0
  465. package/src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.d.ts.map +1 -1
  466. package/src/shade/renderer/shader/chunk/material/chunk_re_indirect_specular_physical.js +2 -0
  467. package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.d.ts +43 -0
  468. package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.d.ts.map +1 -0
  469. package/src/shade/renderer/shader/chunk/screen_space/chunk_screen_space_linear_ray.js +319 -0
  470. package/src/shade/renderer/shader/compiler/CodeChunk.d.ts +33 -0
  471. package/src/shade/renderer/shader/compiler/CodeChunk.d.ts.map +1 -1
  472. package/src/shade/renderer/shader/compiler/CodeChunk.js +140 -0
  473. package/src/shade/renderer/shader/compiler/CodeChunkChoice.d.ts +74 -0
  474. package/src/shade/renderer/shader/compiler/CodeChunkChoice.d.ts.map +1 -0
  475. package/src/shade/renderer/shader/compiler/CodeChunkChoice.js +166 -0
  476. package/src/shade/renderer/shader/compiler/SHADER_SWITCH_PROPOSAL_2026_10_16.md +680 -0
  477. package/src/shade/renderer/shader/compiler/ShaderSwitch.d.ts +86 -0
  478. package/src/shade/renderer/shader/compiler/ShaderSwitch.d.ts.map +1 -0
  479. package/src/shade/renderer/shader/compiler/ShaderSwitch.js +178 -0
  480. package/src/shade/renderer/shader/compiler/ShaderSwitchSet.d.ts +67 -0
  481. package/src/shade/renderer/shader/compiler/ShaderSwitchSet.d.ts.map +1 -0
  482. package/src/shade/renderer/shader/compiler/ShaderSwitchSet.js +205 -0
  483. package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.d.ts +14 -0
  484. package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.d.ts.map +1 -0
  485. package/src/shade/renderer/shadow/contact/CONTACT_SHADOW_WAVE_SIZE.js +13 -0
  486. package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.d.ts +65 -0
  487. package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.d.ts.map +1 -0
  488. package/src/shade/renderer/shadow/contact/ContactShadowDispatchList.js +252 -0
  489. package/src/shade/renderer/shadow/contact/FINDINGS.md +413 -0
  490. package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.d.ts +29 -0
  491. package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.d.ts.map +1 -0
  492. package/src/shade/renderer/shadow/contact/chunk_contact_shadow_wavefront_extents.js +105 -0
  493. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts +29 -0
  494. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.d.ts.map +1 -0
  495. package/src/shade/renderer/shadow/contact/graph_contact_shadow_linear.js +39 -0
  496. package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.d.ts +29 -0
  497. package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.d.ts.map +1 -0
  498. package/src/shade/renderer/shadow/contact/graph_contact_shadow_wavefront.js +92 -0
  499. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts +29 -0
  500. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.d.ts.map +1 -0
  501. package/src/shade/renderer/shadow/contact/shader_contact_shadow_linear.js +128 -0
  502. package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.d.ts +52 -0
  503. package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.d.ts.map +1 -0
  504. package/src/shade/renderer/shadow/contact/shader_contact_shadow_wavefront.js +358 -0
  505. package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.d.ts +10 -0
  506. package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.d.ts.map +1 -0
  507. package/src/shade/renderer/shadow/map/ShadowDirectionalTechnique.js +12 -0
  508. package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.d.ts +13 -0
  509. package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.d.ts.map +1 -0
  510. package/src/shade/renderer/shadow/map/shader/SHADOW_DIRECTIONAL_TECHNIQUE.js +14 -0
  511. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.d.ts +14 -8
  512. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.d.ts.map +1 -1
  513. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional.js +20 -86
  514. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.d.ts +14 -0
  515. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.d.ts.map +1 -0
  516. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_directional_cascades.js +79 -0
  517. package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.d.ts.map +1 -1
  518. package/src/shade/renderer/shadow/ray/shader_ray_shadow_code.js +12 -12
  519. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.d.ts.map +1 -1
  520. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.js +153 -151
  521. package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.d.ts +13 -0
  522. package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.d.ts.map +1 -0
  523. package/src/shade/renderer/shadow/vsm/shader/chunk_shadowmap_sample_directional_virtual.js +48 -0
  524. package/src/shade/renderer/texture/GPUTextureContext.d.ts +10 -0
  525. package/src/shade/renderer/texture/GPUTextureContext.d.ts.map +1 -1
  526. package/src/shade/renderer/texture/GPUTextureContext.js +24 -0
  527. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts +219 -0
  528. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts.map +1 -0
  529. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.js +671 -0
  530. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts +26 -2
  531. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.d.ts.map +1 -1
  532. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +108 -4
  533. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +5 -1
  534. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  535. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +6 -0
  536. package/src/shade/renderer/volumetrics/NOTES.md +50 -0
  537. package/src/shade/renderer/volumetrics/PARTICIPATING_MEDIA_VOLUME_STRUCT.d.ts.map +1 -1
  538. package/src/shade/renderer/volumetrics/PARTICIPATING_MEDIA_VOLUME_STRUCT.js +30 -1
  539. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +51 -13
  540. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
  541. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +98 -13
  542. package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts +9 -0
  543. package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts.map +1 -1
  544. package/src/shade/renderer/volumetrics/SceneVolumetrics.js +78 -68
  545. package/src/shade/renderer/volumetrics/VOLUMETRIC_NOISE_PLAN_2026_10_15.md +326 -0
  546. package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts +7 -4
  547. package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.d.ts.map +1 -1
  548. package/src/shade/renderer/volumetrics/chunk_participating_media_volume_sample.js +21 -9
  549. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.d.ts +19 -0
  550. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.d.ts.map +1 -0
  551. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_uvw_from_clip.js +53 -0
  552. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.d.ts +12 -3
  553. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.d.ts.map +1 -1
  554. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.js +85 -48
  555. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts +4 -1
  556. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts.map +1 -1
  557. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +4 -1
  558. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +4 -1
  559. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
  560. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +21 -1
  561. package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.d.ts +98 -0
  562. package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.d.ts.map +1 -0
  563. package/src/shade/renderer/volumetrics/noise/PARTICIPATING_MEDIA_NOISE.js +115 -0
  564. package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.d.ts +9 -0
  565. package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.d.ts.map +1 -0
  566. package/src/shade/renderer/volumetrics/noise/VOLUMETRICS_NOISE_TILE_BAKE_SETTINGS_STRUCT.js +24 -0
  567. package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.d.ts +27 -0
  568. package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.d.ts.map +1 -0
  569. package/src/shade/renderer/volumetrics/noise/bake_volumetrics_noise_tile.js +91 -0
  570. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.d.ts +35 -0
  571. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.d.ts.map +1 -0
  572. package/src/shade/renderer/volumetrics/noise/chunk_participating_media_noise.js +92 -0
  573. package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.d.ts +10 -0
  574. package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.d.ts.map +1 -0
  575. package/src/shade/renderer/volumetrics/noise/shader_volumetrics_noise_tile_bake.js +121 -0
  576. package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.d.ts.map +1 -1
  577. package/src/shade/renderer/volumetrics/shader_volumetrics_build_participating_media.js +38 -3
  578. package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.d.ts.map +1 -1
  579. package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.js +311 -290
  580. package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.d.ts.map +1 -1
  581. package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.js +28 -49
  582. package/src/shade/renderer/water/GPUWaterRenderer.d.ts +3 -1
  583. package/src/shade/renderer/water/GPUWaterRenderer.d.ts.map +1 -1
  584. package/src/shade/renderer/water/GPUWaterRenderer.js +24 -18
  585. package/src/shade/renderer/water/chunk_water_transport.d.ts +0 -1
  586. package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
  587. package/src/shade/renderer/water/chunk_water_transport.js +0 -17
  588. package/src/shade/renderer/water/shader_water.d.ts +4 -2
  589. package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
  590. package/src/shade/renderer/water/shader_water.js +27 -16
  591. package/src/shade/renderer/water/shader_water_avboit.d.ts +0 -4
  592. package/src/shade/renderer/water/shader_water_avboit.d.ts.map +1 -1
  593. package/src/shade/renderer/water/shader_water_avboit.js +0 -63
  594. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  595. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +43 -9
  596. package/src/engine/network/transport/Channel.d.ts +0 -85
  597. package/src/engine/network/transport/Channel.d.ts.map +0 -1
  598. package/src/engine/network/transport/ReliableCommandPipeline.d.ts +0 -155
  599. package/src/engine/network/transport/ReliableCommandPipeline.d.ts.map +0 -1
  600. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts +0 -105
  601. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts.map +0 -1
  602. package/src/engine/network/transport/fragments/FragmentRetention.d.ts +0 -103
  603. package/src/engine/network/transport/fragments/FragmentRetention.d.ts.map +0 -1
  604. package/src/engine/network/transport/fragments/fragment_send.d.ts +0 -61
  605. package/src/engine/network/transport/fragments/fragment_send.d.ts.map +0 -1
  606. package/src/engine/network/transport/fragments/packet_size.d.ts +0 -99
  607. package/src/engine/network/transport/fragments/packet_size.d.ts.map +0 -1
  608. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.d.ts +0 -6
  609. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.d.ts.map +0 -1
  610. package/src/shade/renderer/shader/chunk/color/sRGB/chunk_RRTAndODTFit.js +0 -16
  611. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.d.ts +0 -7
  612. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.d.ts.map +0 -1
  613. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_aces.js +0 -46
  614. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.d.ts +0 -10
  615. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.d.ts.map +0 -1
  616. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_agx.js +0 -127
  617. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.d.ts +0 -7
  618. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.d.ts.map +0 -1
  619. package/src/shade/renderer/shader/chunk/color/tonemap/chunk_tonemap_pbr_neutral.js +0 -39
@@ -1,1882 +1,1933 @@
1
- {
2
- "name": "flame",
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": "seed",
38
- "components": 1
39
- }
40
- ],
41
- "groups": [],
42
- "init": {
43
- "nodes": [
44
- {
45
- "id": 0,
46
- "type": "sqrt",
47
- "parameters": {},
48
- "x": 989,
49
- "y": 472
50
- },
51
- {
52
- "id": 1,
53
- "type": "random",
54
- "parameters": {
55
- "components": 1
56
- },
57
- "x": 700,
58
- "y": 472
59
- },
60
- {
61
- "id": 2,
62
- "type": "scale",
63
- "parameters": {},
64
- "x": 1283.5,
65
- "y": 432.5
66
- },
67
- {
68
- "id": 3,
69
- "type": "mul",
70
- "parameters": {},
71
- "x": 440.5,
72
- "y": 376
73
- },
74
- {
75
- "id": 4,
76
- "type": "random",
77
- "parameters": {
78
- "components": 1
79
- },
80
- "x": 63.5,
81
- "y": 262
82
- },
83
- {
84
- "id": 5,
85
- "type": "const",
86
- "parameters": {
87
- "value": [
88
- 6.283185307179586
89
- ]
90
- },
91
- "x": 61,
92
- "y": 393
93
- },
94
- {
95
- "id": 6,
96
- "type": "cos",
97
- "parameters": {},
98
- "x": 731.5,
99
- "y": 219.25
100
- },
101
- {
102
- "id": 7,
103
- "type": "sin",
104
- "parameters": {},
105
- "x": 734.5,
106
- "y": 376
107
- },
108
- {
109
- "id": 8,
110
- "type": "vec2",
111
- "parameters": {},
112
- "x": 984,
113
- "y": 359
114
- },
115
- {
116
- "id": 9,
117
- "type": "scale",
118
- "parameters": {},
119
- "x": 1536,
120
- "y": 480.5
121
- },
122
- {
123
- "id": 10,
124
- "type": "const",
125
- "parameters": {
126
- "value": [
127
- 0.34
128
- ]
129
- },
130
- "x": 1247,
131
- "y": 545.5
132
- },
133
- {
134
- "id": 11,
135
- "type": "swizzle",
136
- "parameters": {
137
- "pattern": [
138
- 0
139
- ]
140
- },
141
- "x": 1769,
142
- "y": 219.25
143
- },
144
- {
145
- "id": 12,
146
- "type": "swizzle",
147
- "parameters": {
148
- "pattern": [
149
- 1
150
- ]
151
- },
152
- "x": 1769,
153
- "y": 544
154
- },
155
- {
156
- "id": 13,
157
- "type": "random",
158
- "parameters": {
159
- "components": 1
160
- },
161
- "x": 63.5,
162
- "y": 0
163
- },
164
- {
165
- "id": 14,
166
- "type": "mul",
167
- "parameters": {},
168
- "x": 440.5,
169
- "y": 114
170
- },
171
- {
172
- "id": 15,
173
- "type": "const",
174
- "parameters": {
175
- "value": [
176
- 0.18
177
- ]
178
- },
179
- "x": 61,
180
- "y": 131
181
- },
182
- {
183
- "id": 16,
184
- "type": "vec3",
185
- "parameters": {},
186
- "x": 2065,
187
- "y": 219.25
188
- },
189
- {
190
- "id": 17,
191
- "type": "builtin",
192
- "parameters": {
193
- "id": 2
194
- },
195
- "x": 2041,
196
- "y": 87.75
197
- },
198
- {
199
- "id": 18,
200
- "type": "add",
201
- "parameters": {},
202
- "x": 2428.5,
203
- "y": 144.75
204
- },
205
- {
206
- "id": 19,
207
- "type": "setAttribute",
208
- "parameters": {
209
- "name": "position"
210
- },
211
- "x": 2722,
212
- "y": 144.75
213
- },
214
- {
215
- "id": 20,
216
- "type": "vec3",
217
- "parameters": {},
218
- "x": 2065,
219
- "y": 463.5
220
- },
221
- {
222
- "id": 21,
223
- "type": "const",
224
- "parameters": {
225
- "value": [
226
- 0
227
- ]
228
- },
229
- "x": 1752,
230
- "y": 671
231
- },
232
- {
233
- "id": 22,
234
- "type": "scale",
235
- "parameters": {},
236
- "x": 2429,
237
- "y": 520
238
- },
239
- {
240
- "id": 23,
241
- "type": "const",
242
- "parameters": {
243
- "value": [
244
- 1.6
245
- ]
246
- },
247
- "x": 2052,
248
- "y": 593.5
249
- },
250
- {
251
- "id": 24,
252
- "type": "random",
253
- "parameters": {
254
- "components": 3
255
- },
256
- "x": 63.5,
257
- "y": 655
258
- },
259
- {
260
- "id": 25,
261
- "type": "mad",
262
- "parameters": {},
263
- "x": 427,
264
- "y": 786
265
- },
266
- {
267
- "id": 26,
268
- "type": "const",
269
- "parameters": {
270
- "value": [
271
- 2
272
- ]
273
- },
274
- "x": 61,
275
- "y": 786
276
- },
277
- {
278
- "id": 27,
279
- "type": "const",
280
- "parameters": {
281
- "value": [
282
- -1
283
- ]
284
- },
285
- "x": 61,
286
- "y": 917
287
- },
288
- {
289
- "id": 28,
290
- "type": "scale",
291
- "parameters": {},
292
- "x": 734,
293
- "y": 842.5
294
- },
295
- {
296
- "id": 29,
297
- "type": "const",
298
- "parameters": {
299
- "value": [
300
- 0.45
301
- ]
302
- },
303
- "x": 411,
304
- "y": 916
305
- },
306
- {
307
- "id": 30,
308
- "type": "const",
309
- "parameters": {
310
- "value": [
311
- 0,
312
- 1.5,
313
- 0
314
- ]
315
- },
316
- "x": 2352,
317
- "y": 266.75
318
- },
319
- {
320
- "id": 31,
321
- "type": "add",
322
- "parameters": {},
323
- "x": 2754.5,
324
- "y": 437
325
- },
326
- {
327
- "id": 32,
328
- "type": "add",
329
- "parameters": {},
330
- "x": 3004,
331
- "y": 563
332
- },
333
- {
334
- "id": 33,
335
- "type": "setAttribute",
336
- "parameters": {
337
- "name": "velocity"
338
- },
339
- "x": 3221,
340
- "y": 563
341
- },
342
- {
343
- "id": 34,
344
- "type": "setAttribute",
345
- "parameters": {
346
- "name": "age"
347
- },
348
- "x": 414.5,
349
- "y": 524
350
- },
351
- {
352
- "id": 35,
353
- "type": "const",
354
- "parameters": {
355
- "value": [
356
- 0
357
- ]
358
- },
359
- "x": 61,
360
- "y": 524
361
- },
362
- {
363
- "id": 36,
364
- "type": "random",
365
- "parameters": {
366
- "components": 1
367
- },
368
- "x": 63.5,
369
- "y": 1048
370
- },
371
- {
372
- "id": 37,
373
- "type": "mad",
374
- "parameters": {},
375
- "x": 427,
376
- "y": 1179
377
- },
378
- {
379
- "id": 38,
380
- "type": "const",
381
- "parameters": {
382
- "value": [
383
- 0.5
384
- ]
385
- },
386
- "x": 61,
387
- "y": 1179
388
- },
389
- {
390
- "id": 39,
391
- "type": "const",
392
- "parameters": {
393
- "value": [
394
- 0.5
395
- ]
396
- },
397
- "x": 61,
398
- "y": 1310
399
- },
400
- {
401
- "id": 40,
402
- "type": "setAttribute",
403
- "parameters": {
404
- "name": "life"
405
- },
406
- "x": 701,
407
- "y": 1179
408
- },
409
- {
410
- "id": 41,
411
- "type": "random",
412
- "parameters": {
413
- "components": 1
414
- },
415
- "x": 63.5,
416
- "y": 1441
417
- },
418
- {
419
- "id": 42,
420
- "type": "mad",
421
- "parameters": {},
422
- "x": 427,
423
- "y": 1572
424
- },
425
- {
426
- "id": 43,
427
- "type": "const",
428
- "parameters": {
429
- "value": [
430
- 0.4
431
- ]
432
- },
433
- "x": 61,
434
- "y": 1572
435
- },
436
- {
437
- "id": 44,
438
- "type": "const",
439
- "parameters": {
440
- "value": [
441
- 0.1
442
- ]
443
- },
444
- "x": 61,
445
- "y": 1703
446
- },
447
- {
448
- "id": 45,
449
- "type": "setAttribute",
450
- "parameters": {
451
- "name": "size0"
452
- },
453
- "x": 701,
454
- "y": 1481
455
- },
456
- {
457
- "id": 46,
458
- "type": "setAttribute",
459
- "parameters": {
460
- "name": "size"
461
- },
462
- "x": 701,
463
- "y": 1677.5
464
- },
465
- {
466
- "id": 47,
467
- "type": "setAttribute",
468
- "parameters": {
469
- "name": "color"
470
- },
471
- "x": 414.5,
472
- "y": 1834
473
- },
474
- {
475
- "id": 48,
476
- "type": "const",
477
- "parameters": {
478
- "value": [
479
- 1,
480
- 1,
481
- 1,
482
- 0
483
- ]
484
- },
485
- "x": 0,
486
- "y": 1834
487
- },
488
- {
489
- "id": 49,
490
- "type": "random",
491
- "parameters": {
492
- "components": 1
493
- },
494
- "x": 63.5,
495
- "y": 1965
496
- },
497
- {
498
- "id": 50,
499
- "type": "mad",
500
- "parameters": {},
501
- "x": 427,
502
- "y": 2096
503
- },
504
- {
505
- "id": 51,
506
- "type": "const",
507
- "parameters": {
508
- "value": [
509
- 6.28
510
- ]
511
- },
512
- "x": 61,
513
- "y": 2096
514
- },
515
- {
516
- "id": 52,
517
- "type": "const",
518
- "parameters": {
519
- "value": [
520
- -3.14
521
- ]
522
- },
523
- "x": 61,
524
- "y": 2227
525
- },
526
- {
527
- "id": 53,
528
- "type": "setAttribute",
529
- "parameters": {
530
- "name": "spin"
531
- },
532
- "x": 701,
533
- "y": 2096
534
- },
535
- {
536
- "id": 54,
537
- "type": "random",
538
- "parameters": {
539
- "components": 1
540
- },
541
- "x": 63.5,
542
- "y": 2358
543
- },
544
- {
545
- "id": 55,
546
- "type": "mad",
547
- "parameters": {},
548
- "x": 427,
549
- "y": 2489
550
- },
551
- {
552
- "id": 56,
553
- "type": "const",
554
- "parameters": {
555
- "value": [
556
- 64
557
- ]
558
- },
559
- "x": 61,
560
- "y": 2489
561
- },
562
- {
563
- "id": 57,
564
- "type": "const",
565
- "parameters": {
566
- "value": [
567
- 0
568
- ]
569
- },
570
- "x": 61,
571
- "y": 2620
572
- },
573
- {
574
- "id": 58,
575
- "type": "setAttribute",
576
- "parameters": {
577
- "name": "seed"
578
- },
579
- "x": 701,
580
- "y": 2489
581
- }
582
- ],
583
- "connections": [
584
- {
585
- "from": 1,
586
- "fromPort": "out",
587
- "to": 0,
588
- "toPort": "x"
589
- },
590
- {
591
- "from": 4,
592
- "fromPort": "out",
593
- "to": 3,
594
- "toPort": "a"
595
- },
596
- {
597
- "from": 5,
598
- "fromPort": "out",
599
- "to": 3,
600
- "toPort": "b"
601
- },
602
- {
603
- "from": 3,
604
- "fromPort": "out",
605
- "to": 6,
606
- "toPort": "x"
607
- },
608
- {
609
- "from": 3,
610
- "fromPort": "out",
611
- "to": 7,
612
- "toPort": "x"
613
- },
614
- {
615
- "from": 6,
616
- "fromPort": "out",
617
- "to": 8,
618
- "toPort": "x"
619
- },
620
- {
621
- "from": 7,
622
- "fromPort": "out",
623
- "to": 8,
624
- "toPort": "y"
625
- },
626
- {
627
- "from": 8,
628
- "fromPort": "out",
629
- "to": 2,
630
- "toPort": "v"
631
- },
632
- {
633
- "from": 0,
634
- "fromPort": "out",
635
- "to": 2,
636
- "toPort": "s"
637
- },
638
- {
639
- "from": 2,
640
- "fromPort": "out",
641
- "to": 9,
642
- "toPort": "v"
643
- },
644
- {
645
- "from": 10,
646
- "fromPort": "out",
647
- "to": 9,
648
- "toPort": "s"
649
- },
650
- {
651
- "from": 9,
652
- "fromPort": "out",
653
- "to": 11,
654
- "toPort": "x"
655
- },
656
- {
657
- "from": 9,
658
- "fromPort": "out",
659
- "to": 12,
660
- "toPort": "x"
661
- },
662
- {
663
- "from": 13,
664
- "fromPort": "out",
665
- "to": 14,
666
- "toPort": "a"
667
- },
668
- {
669
- "from": 15,
670
- "fromPort": "out",
671
- "to": 14,
672
- "toPort": "b"
673
- },
674
- {
675
- "from": 11,
676
- "fromPort": "out",
677
- "to": 16,
678
- "toPort": "x"
679
- },
680
- {
681
- "from": 14,
682
- "fromPort": "out",
683
- "to": 16,
684
- "toPort": "y"
685
- },
686
- {
687
- "from": 12,
688
- "fromPort": "out",
689
- "to": 16,
690
- "toPort": "z"
691
- },
692
- {
693
- "from": 17,
694
- "fromPort": "out",
695
- "to": 18,
696
- "toPort": "a"
697
- },
698
- {
699
- "from": 16,
700
- "fromPort": "out",
701
- "to": 18,
702
- "toPort": "b"
703
- },
704
- {
705
- "from": 18,
706
- "fromPort": "out",
707
- "to": 19,
708
- "toPort": "value"
709
- },
710
- {
711
- "from": 11,
712
- "fromPort": "out",
713
- "to": 20,
714
- "toPort": "x"
715
- },
716
- {
717
- "from": 21,
718
- "fromPort": "out",
719
- "to": 20,
720
- "toPort": "y"
721
- },
722
- {
723
- "from": 12,
724
- "fromPort": "out",
725
- "to": 20,
726
- "toPort": "z"
727
- },
728
- {
729
- "from": 20,
730
- "fromPort": "out",
731
- "to": 22,
732
- "toPort": "v"
733
- },
734
- {
735
- "from": 23,
736
- "fromPort": "out",
737
- "to": 22,
738
- "toPort": "s"
739
- },
740
- {
741
- "from": 24,
742
- "fromPort": "out",
743
- "to": 25,
744
- "toPort": "a"
745
- },
746
- {
747
- "from": 26,
748
- "fromPort": "out",
749
- "to": 25,
750
- "toPort": "b"
751
- },
752
- {
753
- "from": 27,
754
- "fromPort": "out",
755
- "to": 25,
756
- "toPort": "c"
757
- },
758
- {
759
- "from": 25,
760
- "fromPort": "out",
761
- "to": 28,
762
- "toPort": "v"
763
- },
764
- {
765
- "from": 29,
766
- "fromPort": "out",
767
- "to": 28,
768
- "toPort": "s"
769
- },
770
- {
771
- "from": 30,
772
- "fromPort": "out",
773
- "to": 31,
774
- "toPort": "a"
775
- },
776
- {
777
- "from": 22,
778
- "fromPort": "out",
779
- "to": 31,
780
- "toPort": "b"
781
- },
782
- {
783
- "from": 31,
784
- "fromPort": "out",
785
- "to": 32,
786
- "toPort": "a"
787
- },
788
- {
789
- "from": 28,
790
- "fromPort": "out",
791
- "to": 32,
792
- "toPort": "b"
793
- },
794
- {
795
- "from": 32,
796
- "fromPort": "out",
797
- "to": 33,
798
- "toPort": "value"
799
- },
800
- {
801
- "from": 35,
802
- "fromPort": "out",
803
- "to": 34,
804
- "toPort": "value"
805
- },
806
- {
807
- "from": 36,
808
- "fromPort": "out",
809
- "to": 37,
810
- "toPort": "a"
811
- },
812
- {
813
- "from": 38,
814
- "fromPort": "out",
815
- "to": 37,
816
- "toPort": "b"
817
- },
818
- {
819
- "from": 39,
820
- "fromPort": "out",
821
- "to": 37,
822
- "toPort": "c"
823
- },
824
- {
825
- "from": 37,
826
- "fromPort": "out",
827
- "to": 40,
828
- "toPort": "value"
829
- },
830
- {
831
- "from": 41,
832
- "fromPort": "out",
833
- "to": 42,
834
- "toPort": "a"
835
- },
836
- {
837
- "from": 43,
838
- "fromPort": "out",
839
- "to": 42,
840
- "toPort": "b"
841
- },
842
- {
843
- "from": 44,
844
- "fromPort": "out",
845
- "to": 42,
846
- "toPort": "c"
847
- },
848
- {
849
- "from": 42,
850
- "fromPort": "out",
851
- "to": 45,
852
- "toPort": "value"
853
- },
854
- {
855
- "from": 42,
856
- "fromPort": "out",
857
- "to": 46,
858
- "toPort": "value"
859
- },
860
- {
861
- "from": 48,
862
- "fromPort": "out",
863
- "to": 47,
864
- "toPort": "value"
865
- },
866
- {
867
- "from": 49,
868
- "fromPort": "out",
869
- "to": 50,
870
- "toPort": "a"
871
- },
872
- {
873
- "from": 51,
874
- "fromPort": "out",
875
- "to": 50,
876
- "toPort": "b"
877
- },
878
- {
879
- "from": 52,
880
- "fromPort": "out",
881
- "to": 50,
882
- "toPort": "c"
883
- },
884
- {
885
- "from": 50,
886
- "fromPort": "out",
887
- "to": 53,
888
- "toPort": "value"
889
- },
890
- {
891
- "from": 54,
892
- "fromPort": "out",
893
- "to": 55,
894
- "toPort": "a"
895
- },
896
- {
897
- "from": 56,
898
- "fromPort": "out",
899
- "to": 55,
900
- "toPort": "b"
901
- },
902
- {
903
- "from": 57,
904
- "fromPort": "out",
905
- "to": 55,
906
- "toPort": "c"
907
- },
908
- {
909
- "from": 55,
910
- "fromPort": "out",
911
- "to": 58,
912
- "toPort": "value"
913
- }
914
- ]
915
- },
916
- "update": {
917
- "nodes": [
918
- {
919
- "id": 0,
920
- "type": "builtin",
921
- "parameters": {
922
- "id": 0
923
- },
924
- "x": 0,
925
- "y": 1203
926
- },
927
- {
928
- "id": 1,
929
- "type": "attribute",
930
- "parameters": {
931
- "name": "age"
932
- },
933
- "x": 14.5,
934
- "y": 1072
935
- },
936
- {
937
- "id": 2,
938
- "type": "add",
939
- "parameters": {},
940
- "x": 387.5,
941
- "y": 1072
942
- },
943
- {
944
- "id": 3,
945
- "type": "setAttribute",
946
- "parameters": {
947
- "name": "age"
948
- },
949
- "x": 684.5,
950
- "y": 1072
951
- },
952
- {
953
- "id": 4,
954
- "type": "attribute",
955
- "parameters": {
956
- "name": "life"
957
- },
958
- "x": 355,
959
- "y": 1525
960
- },
961
- {
962
- "id": 5,
963
- "type": "div",
964
- "parameters": {},
965
- "x": 716,
966
- "y": 1508
967
- },
968
- {
969
- "id": 6,
970
- "type": "compare",
971
- "parameters": {
972
- "op": "ge"
973
- },
974
- "x": 1054,
975
- "y": 2165.75
976
- },
977
- {
978
- "id": 7,
979
- "type": "const",
980
- "parameters": {
981
- "value": [
982
- 1
983
- ]
984
- },
985
- "x": 681,
986
- "y": 2182.75
987
- },
988
- {
989
- "id": 8,
990
- "type": "kill",
991
- "parameters": {},
992
- "x": 1389.5,
993
- "y": 2165.75
994
- },
995
- {
996
- "id": 9,
997
- "type": "builtin",
998
- "parameters": {
999
- "id": 7
1000
- },
1001
- "x": 0,
1002
- "y": 262
1003
- },
1004
- {
1005
- "id": 10,
1006
- "type": "mul",
1007
- "parameters": {},
1008
- "x": 381,
1009
- "y": 319
1010
- },
1011
- {
1012
- "id": 11,
1013
- "type": "const",
1014
- "parameters": {
1015
- "value": [
1016
- -1.4
1017
- ]
1018
- },
1019
- "x": 11,
1020
- "y": 393
1021
- },
1022
- {
1023
- "id": 12,
1024
- "type": "attribute",
1025
- "parameters": {
1026
- "name": "seed"
1027
- },
1028
- "x": 355,
1029
- "y": 170
1030
- },
1031
- {
1032
- "id": 13,
1033
- "type": "vec3",
1034
- "parameters": {},
1035
- "x": 694,
1036
- "y": 301.75
1037
- },
1038
- {
1039
- "id": 14,
1040
- "type": "const",
1041
- "parameters": {
1042
- "value": [
1043
- 0
1044
- ]
1045
- },
1046
- "x": 351.5,
1047
- "y": 441
1048
- },
1049
- {
1050
- "id": 15,
1051
- "type": "attribute",
1052
- "parameters": {
1053
- "name": "position"
1054
- },
1055
- "x": 14.5,
1056
- "y": 0
1057
- },
1058
- {
1059
- "id": 16,
1060
- "type": "scale",
1061
- "parameters": {},
1062
- "x": 388,
1063
- "y": 57
1064
- },
1065
- {
1066
- "id": 17,
1067
- "type": "const",
1068
- "parameters": {
1069
- "value": [
1070
- 3.4
1071
- ]
1072
- },
1073
- "x": 11,
1074
- "y": 131
1075
- },
1076
- {
1077
- "id": 18,
1078
- "type": "add",
1079
- "parameters": {},
1080
- "x": 1062.5,
1081
- "y": 170.75
1082
- },
1083
- {
1084
- "id": 19,
1085
- "type": "const",
1086
- "parameters": {
1087
- "value": [
1088
- 0,
1089
- 0,
1090
- 0
1091
- ]
1092
- },
1093
- "x": 986,
1094
- "y": 39.75
1095
- },
1096
- {
1097
- "id": 20,
1098
- "type": "add",
1099
- "parameters": {},
1100
- "x": 1404.5,
1101
- "y": 80
1102
- },
1103
- {
1104
- "id": 21,
1105
- "type": "simplex3",
1106
- "parameters": {},
1107
- "x": 1654,
1108
- "y": 80
1109
- },
1110
- {
1111
- "id": 22,
1112
- "type": "const",
1113
- "parameters": {
1114
- "value": [
1115
- 17.3,
1116
- 5.1,
1117
- 31.7
1118
- ]
1119
- },
1120
- "x": 986,
1121
- "y": 292.25
1122
- },
1123
- {
1124
- "id": 23,
1125
- "type": "add",
1126
- "parameters": {},
1127
- "x": 1404.5,
1128
- "y": 227.25
1129
- },
1130
- {
1131
- "id": 24,
1132
- "type": "simplex3",
1133
- "parameters": {},
1134
- "x": 1654,
1135
- "y": 227.25
1136
- },
1137
- {
1138
- "id": 25,
1139
- "type": "const",
1140
- "parameters": {
1141
- "value": [
1142
- 73.9,
1143
- 41.3,
1144
- 11.5
1145
- ]
1146
- },
1147
- "x": 986,
1148
- "y": 423.25
1149
- },
1150
- {
1151
- "id": 26,
1152
- "type": "add",
1153
- "parameters": {},
1154
- "x": 1404.5,
1155
- "y": 406.25
1156
- },
1157
- {
1158
- "id": 27,
1159
- "type": "simplex3",
1160
- "parameters": {},
1161
- "x": 1654,
1162
- "y": 406.25
1163
- },
1164
- {
1165
- "id": 28,
1166
- "type": "vec3",
1167
- "parameters": {},
1168
- "x": 1939,
1169
- "y": 210.25
1170
- },
1171
- {
1172
- "id": 29,
1173
- "type": "mul",
1174
- "parameters": {},
1175
- "x": 1056,
1176
- "y": 810
1177
- },
1178
- {
1179
- "id": 30,
1180
- "type": "const",
1181
- "parameters": {
1182
- "value": [
1183
- 9
1184
- ]
1185
- },
1186
- "x": 681,
1187
- "y": 810
1188
- },
1189
- {
1190
- "id": 31,
1191
- "type": "scale",
1192
- "parameters": {},
1193
- "x": 2279,
1194
- "y": 822.25
1195
- },
1196
- {
1197
- "id": 32,
1198
- "type": "attribute",
1199
- "parameters": {
1200
- "name": "position"
1201
- },
1202
- "x": 14.5,
1203
- "y": 524
1204
- },
1205
- {
1206
- "id": 33,
1207
- "type": "builtin",
1208
- "parameters": {
1209
- "id": 2
1210
- },
1211
- "x": 0,
1212
- "y": 655
1213
- },
1214
- {
1215
- "id": 34,
1216
- "type": "sub",
1217
- "parameters": {},
1218
- "x": 380.5,
1219
- "y": 581
1220
- },
1221
- {
1222
- "id": 35,
1223
- "type": "mul",
1224
- "parameters": {},
1225
- "x": 710.5,
1226
- "y": 628.75
1227
- },
1228
- {
1229
- "id": 36,
1230
- "type": "const",
1231
- "parameters": {
1232
- "value": [
1233
- 1,
1234
- 0,
1235
- 1
1236
- ]
1237
- },
1238
- "x": 311,
1239
- "y": 711
1240
- },
1241
- {
1242
- "id": 37,
1243
- "type": "mul",
1244
- "parameters": {},
1245
- "x": 1056,
1246
- "y": 941
1247
- },
1248
- {
1249
- "id": 38,
1250
- "type": "const",
1251
- "parameters": {
1252
- "value": [
1253
- -1.7
1254
- ]
1255
- },
1256
- "x": 681,
1257
- "y": 941
1258
- },
1259
- {
1260
- "id": 39,
1261
- "type": "scale",
1262
- "parameters": {},
1263
- "x": 1405,
1264
- "y": 628.75
1265
- },
1266
- {
1267
- "id": 40,
1268
- "type": "const",
1269
- "parameters": {
1270
- "value": [
1271
- 0,
1272
- 4.2,
1273
- 0
1274
- ]
1275
- },
1276
- "x": 2202,
1277
- "y": 691.25
1278
- },
1279
- {
1280
- "id": 41,
1281
- "type": "add",
1282
- "parameters": {},
1283
- "x": 2572,
1284
- "y": 748.25
1285
- },
1286
- {
1287
- "id": 42,
1288
- "type": "add",
1289
- "parameters": {},
1290
- "x": 2789,
1291
- "y": 708.5
1292
- },
1293
- {
1294
- "id": 43,
1295
- "type": "attribute",
1296
- "parameters": {
1297
- "name": "velocity"
1298
- },
1299
- "x": 3006,
1300
- "y": 1282.25
1301
- },
1302
- {
1303
- "id": 44,
1304
- "type": "scale",
1305
- "parameters": {},
1306
- "x": 3039,
1307
- "y": 1413.25
1308
- },
1309
- {
1310
- "id": 45,
1311
- "type": "add",
1312
- "parameters": {},
1313
- "x": 3288,
1314
- "y": 1339.25
1315
- },
1316
- {
1317
- "id": 46,
1318
- "type": "setAttribute",
1319
- "parameters": {
1320
- "name": "velocity"
1321
- },
1322
- "x": 3505,
1323
- "y": 1339.25
1324
- },
1325
- {
1326
- "id": 47,
1327
- "type": "attribute",
1328
- "parameters": {
1329
- "name": "position"
1330
- },
1331
- "x": 3505,
1332
- "y": 1055
1333
- },
1334
- {
1335
- "id": 48,
1336
- "type": "scale",
1337
- "parameters": {},
1338
- "x": 3538,
1339
- "y": 1186
1340
- },
1341
- {
1342
- "id": 49,
1343
- "type": "add",
1344
- "parameters": {},
1345
- "x": 3787,
1346
- "y": 1112
1347
- },
1348
- {
1349
- "id": 50,
1350
- "type": "setAttribute",
1351
- "parameters": {
1352
- "name": "position"
1353
- },
1354
- "x": 4004,
1355
- "y": 1112
1356
- },
1357
- {
1358
- "id": 51,
1359
- "type": "attribute",
1360
- "parameters": {
1361
- "name": "size0"
1362
- },
1363
- "x": 1030,
1364
- "y": 1690.75
1365
- },
1366
- {
1367
- "id": 52,
1368
- "type": "curveLiteral",
1369
- "parameters": {
1370
- "curve": {
1371
- "keys": [
1372
- {
1373
- "time": 0,
1374
- "value": 0.662916438992136,
1375
- "inTangent": 2.2471691826185145,
1376
- "outTangent": 1.2269055440364782
1377
- },
1378
- {
1379
- "time": 0.2192864853655495,
1380
- "value": 0.9319602436194028,
1381
- "inTangent": 0,
1382
- "outTangent": 0
1383
- },
1384
- {
1385
- "time": 0.44971337926304744,
1386
- "value": 0.9319602436194028,
1387
- "inTangent": 0.061155585117630966,
1388
- "outTangent": 0.061155585117630966
1389
- },
1390
- {
1391
- "time": 0.6960317830845106,
1392
- "value": 0.961115881253485,
1393
- "inTangent": 0,
1394
- "outTangent": 0
1395
- },
1396
- {
1397
- "time": 1,
1398
- "value": 0.010069238351883891,
1399
- "inTangent": -3.1287700159981378,
1400
- "outTangent": -2.46508031364683
1401
- }
1402
- ]
1403
- }
1404
- },
1405
- "x": 970,
1406
- "y": 1821.75
1407
- },
1408
- {
1409
- "id": 53,
1410
- "type": "mul",
1411
- "parameters": {},
1412
- "x": 1398,
1413
- "y": 1747.75
1414
- },
1415
- {
1416
- "id": 54,
1417
- "type": "setAttribute",
1418
- "parameters": {
1419
- "name": "size"
1420
- },
1421
- "x": 1655.5,
1422
- "y": 1747.75
1423
- },
1424
- {
1425
- "id": 55,
1426
- "type": "gradientRGBA",
1427
- "parameters": {
1428
- "stops": [
1429
- {
1430
- "position": 0,
1431
- "color": [
1432
- 1,
1433
- 0.95,
1434
- 0.8,
1435
- 0
1436
- ]
1437
- },
1438
- {
1439
- "position": 0.06,
1440
- "color": [
1441
- 1,
1442
- 0.8,
1443
- 0.45,
1444
- 0.2
1445
- ]
1446
- },
1447
- {
1448
- "position": 0.28,
1449
- "color": [
1450
- 1,
1451
- 0.52,
1452
- 0.14,
1453
- 0.16
1454
- ]
1455
- },
1456
- {
1457
- "position": 0.62,
1458
- "color": [
1459
- 0.9,
1460
- 0.22,
1461
- 0.03,
1462
- 0.08
1463
- ]
1464
- },
1465
- {
1466
- "position": 1,
1467
- "color": [
1468
- 0.35,
1469
- 0.04,
1470
- 0.01,
1471
- 0
1472
- ]
1473
- }
1474
- ]
1475
- },
1476
- "x": 970,
1477
- "y": 1492.75
1478
- },
1479
- {
1480
- "id": 56,
1481
- "type": "setAttribute",
1482
- "parameters": {
1483
- "name": "color"
1484
- },
1485
- "x": 1372,
1486
- "y": 1492.75
1487
- }
1488
- ],
1489
- "connections": [
1490
- {
1491
- "from": 1,
1492
- "fromPort": "out",
1493
- "to": 2,
1494
- "toPort": "a"
1495
- },
1496
- {
1497
- "from": 0,
1498
- "fromPort": "out",
1499
- "to": 2,
1500
- "toPort": "b"
1501
- },
1502
- {
1503
- "from": 2,
1504
- "fromPort": "out",
1505
- "to": 3,
1506
- "toPort": "value"
1507
- },
1508
- {
1509
- "from": 2,
1510
- "fromPort": "out",
1511
- "to": 5,
1512
- "toPort": "a"
1513
- },
1514
- {
1515
- "from": 4,
1516
- "fromPort": "out",
1517
- "to": 5,
1518
- "toPort": "b"
1519
- },
1520
- {
1521
- "from": 5,
1522
- "fromPort": "out",
1523
- "to": 6,
1524
- "toPort": "a"
1525
- },
1526
- {
1527
- "from": 7,
1528
- "fromPort": "out",
1529
- "to": 6,
1530
- "toPort": "b"
1531
- },
1532
- {
1533
- "from": 6,
1534
- "fromPort": "out",
1535
- "to": 8,
1536
- "toPort": "condition"
1537
- },
1538
- {
1539
- "from": 9,
1540
- "fromPort": "out",
1541
- "to": 10,
1542
- "toPort": "a"
1543
- },
1544
- {
1545
- "from": 11,
1546
- "fromPort": "out",
1547
- "to": 10,
1548
- "toPort": "b"
1549
- },
1550
- {
1551
- "from": 12,
1552
- "fromPort": "out",
1553
- "to": 13,
1554
- "toPort": "x"
1555
- },
1556
- {
1557
- "from": 10,
1558
- "fromPort": "out",
1559
- "to": 13,
1560
- "toPort": "y"
1561
- },
1562
- {
1563
- "from": 14,
1564
- "fromPort": "out",
1565
- "to": 13,
1566
- "toPort": "z"
1567
- },
1568
- {
1569
- "from": 15,
1570
- "fromPort": "out",
1571
- "to": 16,
1572
- "toPort": "v"
1573
- },
1574
- {
1575
- "from": 17,
1576
- "fromPort": "out",
1577
- "to": 16,
1578
- "toPort": "s"
1579
- },
1580
- {
1581
- "from": 16,
1582
- "fromPort": "out",
1583
- "to": 18,
1584
- "toPort": "a"
1585
- },
1586
- {
1587
- "from": 13,
1588
- "fromPort": "out",
1589
- "to": 18,
1590
- "toPort": "b"
1591
- },
1592
- {
1593
- "from": 18,
1594
- "fromPort": "out",
1595
- "to": 20,
1596
- "toPort": "a"
1597
- },
1598
- {
1599
- "from": 19,
1600
- "fromPort": "out",
1601
- "to": 20,
1602
- "toPort": "b"
1603
- },
1604
- {
1605
- "from": 20,
1606
- "fromPort": "out",
1607
- "to": 21,
1608
- "toPort": "p"
1609
- },
1610
- {
1611
- "from": 18,
1612
- "fromPort": "out",
1613
- "to": 23,
1614
- "toPort": "a"
1615
- },
1616
- {
1617
- "from": 22,
1618
- "fromPort": "out",
1619
- "to": 23,
1620
- "toPort": "b"
1621
- },
1622
- {
1623
- "from": 23,
1624
- "fromPort": "out",
1625
- "to": 24,
1626
- "toPort": "p"
1627
- },
1628
- {
1629
- "from": 18,
1630
- "fromPort": "out",
1631
- "to": 26,
1632
- "toPort": "a"
1633
- },
1634
- {
1635
- "from": 25,
1636
- "fromPort": "out",
1637
- "to": 26,
1638
- "toPort": "b"
1639
- },
1640
- {
1641
- "from": 26,
1642
- "fromPort": "out",
1643
- "to": 27,
1644
- "toPort": "p"
1645
- },
1646
- {
1647
- "from": 21,
1648
- "fromPort": "out",
1649
- "to": 28,
1650
- "toPort": "x"
1651
- },
1652
- {
1653
- "from": 24,
1654
- "fromPort": "out",
1655
- "to": 28,
1656
- "toPort": "y"
1657
- },
1658
- {
1659
- "from": 27,
1660
- "fromPort": "out",
1661
- "to": 28,
1662
- "toPort": "z"
1663
- },
1664
- {
1665
- "from": 30,
1666
- "fromPort": "out",
1667
- "to": 29,
1668
- "toPort": "a"
1669
- },
1670
- {
1671
- "from": 5,
1672
- "fromPort": "out",
1673
- "to": 29,
1674
- "toPort": "b"
1675
- },
1676
- {
1677
- "from": 28,
1678
- "fromPort": "out",
1679
- "to": 31,
1680
- "toPort": "v"
1681
- },
1682
- {
1683
- "from": 29,
1684
- "fromPort": "out",
1685
- "to": 31,
1686
- "toPort": "s"
1687
- },
1688
- {
1689
- "from": 32,
1690
- "fromPort": "out",
1691
- "to": 34,
1692
- "toPort": "a"
1693
- },
1694
- {
1695
- "from": 33,
1696
- "fromPort": "out",
1697
- "to": 34,
1698
- "toPort": "b"
1699
- },
1700
- {
1701
- "from": 34,
1702
- "fromPort": "out",
1703
- "to": 35,
1704
- "toPort": "a"
1705
- },
1706
- {
1707
- "from": 36,
1708
- "fromPort": "out",
1709
- "to": 35,
1710
- "toPort": "b"
1711
- },
1712
- {
1713
- "from": 38,
1714
- "fromPort": "out",
1715
- "to": 37,
1716
- "toPort": "a"
1717
- },
1718
- {
1719
- "from": 5,
1720
- "fromPort": "out",
1721
- "to": 37,
1722
- "toPort": "b"
1723
- },
1724
- {
1725
- "from": 35,
1726
- "fromPort": "out",
1727
- "to": 39,
1728
- "toPort": "v"
1729
- },
1730
- {
1731
- "from": 37,
1732
- "fromPort": "out",
1733
- "to": 39,
1734
- "toPort": "s"
1735
- },
1736
- {
1737
- "from": 40,
1738
- "fromPort": "out",
1739
- "to": 41,
1740
- "toPort": "a"
1741
- },
1742
- {
1743
- "from": 31,
1744
- "fromPort": "out",
1745
- "to": 41,
1746
- "toPort": "b"
1747
- },
1748
- {
1749
- "from": 41,
1750
- "fromPort": "out",
1751
- "to": 42,
1752
- "toPort": "a"
1753
- },
1754
- {
1755
- "from": 39,
1756
- "fromPort": "out",
1757
- "to": 42,
1758
- "toPort": "b"
1759
- },
1760
- {
1761
- "from": 42,
1762
- "fromPort": "out",
1763
- "to": 44,
1764
- "toPort": "v"
1765
- },
1766
- {
1767
- "from": 0,
1768
- "fromPort": "out",
1769
- "to": 44,
1770
- "toPort": "s"
1771
- },
1772
- {
1773
- "from": 43,
1774
- "fromPort": "out",
1775
- "to": 45,
1776
- "toPort": "a"
1777
- },
1778
- {
1779
- "from": 44,
1780
- "fromPort": "out",
1781
- "to": 45,
1782
- "toPort": "b"
1783
- },
1784
- {
1785
- "from": 45,
1786
- "fromPort": "out",
1787
- "to": 46,
1788
- "toPort": "value"
1789
- },
1790
- {
1791
- "from": 45,
1792
- "fromPort": "out",
1793
- "to": 48,
1794
- "toPort": "v"
1795
- },
1796
- {
1797
- "from": 0,
1798
- "fromPort": "out",
1799
- "to": 48,
1800
- "toPort": "s"
1801
- },
1802
- {
1803
- "from": 47,
1804
- "fromPort": "out",
1805
- "to": 49,
1806
- "toPort": "a"
1807
- },
1808
- {
1809
- "from": 48,
1810
- "fromPort": "out",
1811
- "to": 49,
1812
- "toPort": "b"
1813
- },
1814
- {
1815
- "from": 49,
1816
- "fromPort": "out",
1817
- "to": 50,
1818
- "toPort": "value"
1819
- },
1820
- {
1821
- "from": 5,
1822
- "fromPort": "out",
1823
- "to": 52,
1824
- "toPort": "t"
1825
- },
1826
- {
1827
- "from": 51,
1828
- "fromPort": "out",
1829
- "to": 53,
1830
- "toPort": "a"
1831
- },
1832
- {
1833
- "from": 52,
1834
- "fromPort": "out",
1835
- "to": 53,
1836
- "toPort": "b"
1837
- },
1838
- {
1839
- "from": 53,
1840
- "fromPort": "out",
1841
- "to": 54,
1842
- "toPort": "value"
1843
- },
1844
- {
1845
- "from": 5,
1846
- "fromPort": "out",
1847
- "to": 55,
1848
- "toPort": "t"
1849
- },
1850
- {
1851
- "from": 55,
1852
- "fromPort": "out",
1853
- "to": 56,
1854
- "toPort": "value"
1855
- }
1856
- ]
1857
- },
1858
- "emitter": {
1859
- "spawn_rate": 560,
1860
- "prewarm": 1.2,
1861
- "blend": 1,
1862
- "projection": 0,
1863
- "lighting": false,
1864
- "soft_depth": true,
1865
- "sort": false,
1866
- "cull": false,
1867
- "texture": null,
1868
- "flipbook": [
1869
- 1,
1870
- 1
1871
- ],
1872
- "render": {
1873
- "position": "position",
1874
- "size": "size",
1875
- "color": "color",
1876
- "rotation": "spin"
1877
- }
1878
- },
1879
- "source": "graph",
1880
- "assembly": "",
1881
- "optimize": true
1
+ {
2
+ "name": "flame",
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": "seed",
38
+ "components": 1
39
+ },
40
+ {
41
+ "name": "orientation",
42
+ "components": 4
43
+ }
44
+ ],
45
+ "groups": [],
46
+ "init": {
47
+ "nodes": [
48
+ {
49
+ "id": 0,
50
+ "type": "sqrt",
51
+ "parameters": {},
52
+ "x": 989,
53
+ "y": 472
54
+ },
55
+ {
56
+ "id": 1,
57
+ "type": "random",
58
+ "parameters": {
59
+ "components": 1
60
+ },
61
+ "x": 700,
62
+ "y": 472
63
+ },
64
+ {
65
+ "id": 2,
66
+ "type": "scale",
67
+ "parameters": {},
68
+ "x": 1283.5,
69
+ "y": 432.5
70
+ },
71
+ {
72
+ "id": 3,
73
+ "type": "mul",
74
+ "parameters": {},
75
+ "x": 440.5,
76
+ "y": 376
77
+ },
78
+ {
79
+ "id": 4,
80
+ "type": "random",
81
+ "parameters": {
82
+ "components": 1
83
+ },
84
+ "x": 63.5,
85
+ "y": 262
86
+ },
87
+ {
88
+ "id": 5,
89
+ "type": "const",
90
+ "parameters": {
91
+ "value": [
92
+ 6.283185307179586
93
+ ]
94
+ },
95
+ "x": 61,
96
+ "y": 393
97
+ },
98
+ {
99
+ "id": 6,
100
+ "type": "cos",
101
+ "parameters": {},
102
+ "x": 731.5,
103
+ "y": 219.25
104
+ },
105
+ {
106
+ "id": 7,
107
+ "type": "sin",
108
+ "parameters": {},
109
+ "x": 734.5,
110
+ "y": 376
111
+ },
112
+ {
113
+ "id": 8,
114
+ "type": "vec2",
115
+ "parameters": {},
116
+ "x": 984,
117
+ "y": 359
118
+ },
119
+ {
120
+ "id": 9,
121
+ "type": "scale",
122
+ "parameters": {},
123
+ "x": 1536,
124
+ "y": 480.5
125
+ },
126
+ {
127
+ "id": 10,
128
+ "type": "const",
129
+ "parameters": {
130
+ "value": [
131
+ 0.34
132
+ ]
133
+ },
134
+ "x": 1247,
135
+ "y": 545.5
136
+ },
137
+ {
138
+ "id": 11,
139
+ "type": "swizzle",
140
+ "parameters": {
141
+ "pattern": [
142
+ 0
143
+ ]
144
+ },
145
+ "x": 1769,
146
+ "y": 219.25
147
+ },
148
+ {
149
+ "id": 12,
150
+ "type": "swizzle",
151
+ "parameters": {
152
+ "pattern": [
153
+ 1
154
+ ]
155
+ },
156
+ "x": 1769,
157
+ "y": 544
158
+ },
159
+ {
160
+ "id": 13,
161
+ "type": "random",
162
+ "parameters": {
163
+ "components": 1
164
+ },
165
+ "x": 63.5,
166
+ "y": 0
167
+ },
168
+ {
169
+ "id": 14,
170
+ "type": "mul",
171
+ "parameters": {},
172
+ "x": 440.5,
173
+ "y": 114
174
+ },
175
+ {
176
+ "id": 15,
177
+ "type": "const",
178
+ "parameters": {
179
+ "value": [
180
+ 0.18
181
+ ]
182
+ },
183
+ "x": 61,
184
+ "y": 131
185
+ },
186
+ {
187
+ "id": 16,
188
+ "type": "vec3",
189
+ "parameters": {},
190
+ "x": 2065,
191
+ "y": 219.25
192
+ },
193
+ {
194
+ "id": 17,
195
+ "type": "builtin",
196
+ "parameters": {
197
+ "id": 2
198
+ },
199
+ "x": 2041,
200
+ "y": 87.75
201
+ },
202
+ {
203
+ "id": 18,
204
+ "type": "add",
205
+ "parameters": {},
206
+ "x": 2428.5,
207
+ "y": 144.75
208
+ },
209
+ {
210
+ "id": 19,
211
+ "type": "setAttribute",
212
+ "parameters": {
213
+ "name": "position"
214
+ },
215
+ "x": 2722,
216
+ "y": 144.75
217
+ },
218
+ {
219
+ "id": 20,
220
+ "type": "vec3",
221
+ "parameters": {},
222
+ "x": 2065,
223
+ "y": 463.5
224
+ },
225
+ {
226
+ "id": 21,
227
+ "type": "const",
228
+ "parameters": {
229
+ "value": [
230
+ 0
231
+ ]
232
+ },
233
+ "x": 1752,
234
+ "y": 671
235
+ },
236
+ {
237
+ "id": 22,
238
+ "type": "scale",
239
+ "parameters": {},
240
+ "x": 2429,
241
+ "y": 520
242
+ },
243
+ {
244
+ "id": 23,
245
+ "type": "const",
246
+ "parameters": {
247
+ "value": [
248
+ 1.6
249
+ ]
250
+ },
251
+ "x": 2052,
252
+ "y": 593.5
253
+ },
254
+ {
255
+ "id": 24,
256
+ "type": "random",
257
+ "parameters": {
258
+ "components": 3
259
+ },
260
+ "x": 63.5,
261
+ "y": 655
262
+ },
263
+ {
264
+ "id": 25,
265
+ "type": "mad",
266
+ "parameters": {},
267
+ "x": 427,
268
+ "y": 786
269
+ },
270
+ {
271
+ "id": 26,
272
+ "type": "const",
273
+ "parameters": {
274
+ "value": [
275
+ 2
276
+ ]
277
+ },
278
+ "x": 61,
279
+ "y": 786
280
+ },
281
+ {
282
+ "id": 27,
283
+ "type": "const",
284
+ "parameters": {
285
+ "value": [
286
+ -1
287
+ ]
288
+ },
289
+ "x": 61,
290
+ "y": 917
291
+ },
292
+ {
293
+ "id": 28,
294
+ "type": "scale",
295
+ "parameters": {},
296
+ "x": 734,
297
+ "y": 842.5
298
+ },
299
+ {
300
+ "id": 29,
301
+ "type": "const",
302
+ "parameters": {
303
+ "value": [
304
+ 0.45
305
+ ]
306
+ },
307
+ "x": 411,
308
+ "y": 916
309
+ },
310
+ {
311
+ "id": 30,
312
+ "type": "const",
313
+ "parameters": {
314
+ "value": [
315
+ 0,
316
+ 1.5,
317
+ 0
318
+ ]
319
+ },
320
+ "x": 2352,
321
+ "y": 266.75
322
+ },
323
+ {
324
+ "id": 31,
325
+ "type": "add",
326
+ "parameters": {},
327
+ "x": 2754.5,
328
+ "y": 437
329
+ },
330
+ {
331
+ "id": 32,
332
+ "type": "add",
333
+ "parameters": {},
334
+ "x": 3004,
335
+ "y": 563
336
+ },
337
+ {
338
+ "id": 33,
339
+ "type": "setAttribute",
340
+ "parameters": {
341
+ "name": "velocity"
342
+ },
343
+ "x": 3221,
344
+ "y": 563
345
+ },
346
+ {
347
+ "id": 34,
348
+ "type": "setAttribute",
349
+ "parameters": {
350
+ "name": "age"
351
+ },
352
+ "x": 414.5,
353
+ "y": 524
354
+ },
355
+ {
356
+ "id": 35,
357
+ "type": "const",
358
+ "parameters": {
359
+ "value": [
360
+ 0
361
+ ]
362
+ },
363
+ "x": 61,
364
+ "y": 524
365
+ },
366
+ {
367
+ "id": 36,
368
+ "type": "random",
369
+ "parameters": {
370
+ "components": 1
371
+ },
372
+ "x": 63.5,
373
+ "y": 1048
374
+ },
375
+ {
376
+ "id": 37,
377
+ "type": "mad",
378
+ "parameters": {},
379
+ "x": 427,
380
+ "y": 1179
381
+ },
382
+ {
383
+ "id": 38,
384
+ "type": "const",
385
+ "parameters": {
386
+ "value": [
387
+ 0.5
388
+ ]
389
+ },
390
+ "x": 61,
391
+ "y": 1179
392
+ },
393
+ {
394
+ "id": 39,
395
+ "type": "const",
396
+ "parameters": {
397
+ "value": [
398
+ 0.5
399
+ ]
400
+ },
401
+ "x": 61,
402
+ "y": 1310
403
+ },
404
+ {
405
+ "id": 40,
406
+ "type": "setAttribute",
407
+ "parameters": {
408
+ "name": "life"
409
+ },
410
+ "x": 701,
411
+ "y": 1179
412
+ },
413
+ {
414
+ "id": 41,
415
+ "type": "random",
416
+ "parameters": {
417
+ "components": 1
418
+ },
419
+ "x": 63.5,
420
+ "y": 1441
421
+ },
422
+ {
423
+ "id": 42,
424
+ "type": "mad",
425
+ "parameters": {},
426
+ "x": 427,
427
+ "y": 1572
428
+ },
429
+ {
430
+ "id": 43,
431
+ "type": "const",
432
+ "parameters": {
433
+ "value": [
434
+ 0.4
435
+ ]
436
+ },
437
+ "x": 61,
438
+ "y": 1572
439
+ },
440
+ {
441
+ "id": 44,
442
+ "type": "const",
443
+ "parameters": {
444
+ "value": [
445
+ 0.1
446
+ ]
447
+ },
448
+ "x": 61,
449
+ "y": 1703
450
+ },
451
+ {
452
+ "id": 45,
453
+ "type": "setAttribute",
454
+ "parameters": {
455
+ "name": "size0"
456
+ },
457
+ "x": 701,
458
+ "y": 1481
459
+ },
460
+ {
461
+ "id": 46,
462
+ "type": "setAttribute",
463
+ "parameters": {
464
+ "name": "size"
465
+ },
466
+ "x": 701,
467
+ "y": 1677.5
468
+ },
469
+ {
470
+ "id": 47,
471
+ "type": "setAttribute",
472
+ "parameters": {
473
+ "name": "color"
474
+ },
475
+ "x": 414.5,
476
+ "y": 1834
477
+ },
478
+ {
479
+ "id": 48,
480
+ "type": "const",
481
+ "parameters": {
482
+ "value": [
483
+ 1,
484
+ 1,
485
+ 1,
486
+ 0
487
+ ]
488
+ },
489
+ "x": 0,
490
+ "y": 1834
491
+ },
492
+ {
493
+ "id": 49,
494
+ "type": "random",
495
+ "parameters": {
496
+ "components": 1
497
+ },
498
+ "x": 63.5,
499
+ "y": 1965
500
+ },
501
+ {
502
+ "id": 50,
503
+ "type": "mad",
504
+ "parameters": {},
505
+ "x": 427,
506
+ "y": 2096
507
+ },
508
+ {
509
+ "id": 51,
510
+ "type": "const",
511
+ "parameters": {
512
+ "value": [
513
+ 6.28
514
+ ]
515
+ },
516
+ "x": 61,
517
+ "y": 2096
518
+ },
519
+ {
520
+ "id": 52,
521
+ "type": "const",
522
+ "parameters": {
523
+ "value": [
524
+ -3.14
525
+ ]
526
+ },
527
+ "x": 61,
528
+ "y": 2227
529
+ },
530
+ {
531
+ "id": 53,
532
+ "type": "setAttribute",
533
+ "parameters": {
534
+ "name": "spin"
535
+ },
536
+ "x": 701,
537
+ "y": 2096
538
+ },
539
+ {
540
+ "id": 54,
541
+ "type": "random",
542
+ "parameters": {
543
+ "components": 1
544
+ },
545
+ "x": 63.5,
546
+ "y": 2358
547
+ },
548
+ {
549
+ "id": 55,
550
+ "type": "mad",
551
+ "parameters": {},
552
+ "x": 427,
553
+ "y": 2489
554
+ },
555
+ {
556
+ "id": 56,
557
+ "type": "const",
558
+ "parameters": {
559
+ "value": [
560
+ 64
561
+ ]
562
+ },
563
+ "x": 61,
564
+ "y": 2489
565
+ },
566
+ {
567
+ "id": 57,
568
+ "type": "const",
569
+ "parameters": {
570
+ "value": [
571
+ 0
572
+ ]
573
+ },
574
+ "x": 61,
575
+ "y": 2620
576
+ },
577
+ {
578
+ "id": 58,
579
+ "type": "setAttribute",
580
+ "parameters": {
581
+ "name": "seed"
582
+ },
583
+ "x": 701,
584
+ "y": 2489
585
+ },
586
+ {
587
+ "id": 59,
588
+ "type": "const",
589
+ "parameters": {
590
+ "value": [
591
+ 0,
592
+ 0,
593
+ 1
594
+ ]
595
+ },
596
+ "x": 201,
597
+ "y": 2760
598
+ },
599
+ {
600
+ "id": 60,
601
+ "type": "quatFromAxisAngle",
602
+ "parameters": {},
603
+ "x": 451,
604
+ "y": 2740
605
+ },
606
+ {
607
+ "id": 61,
608
+ "type": "setAttribute",
609
+ "parameters": {
610
+ "name": "orientation"
611
+ },
612
+ "x": 701,
613
+ "y": 2740
614
+ }
615
+ ],
616
+ "connections": [
617
+ {
618
+ "from": 1,
619
+ "fromPort": "out",
620
+ "to": 0,
621
+ "toPort": "x"
622
+ },
623
+ {
624
+ "from": 4,
625
+ "fromPort": "out",
626
+ "to": 3,
627
+ "toPort": "a"
628
+ },
629
+ {
630
+ "from": 5,
631
+ "fromPort": "out",
632
+ "to": 3,
633
+ "toPort": "b"
634
+ },
635
+ {
636
+ "from": 3,
637
+ "fromPort": "out",
638
+ "to": 6,
639
+ "toPort": "x"
640
+ },
641
+ {
642
+ "from": 3,
643
+ "fromPort": "out",
644
+ "to": 7,
645
+ "toPort": "x"
646
+ },
647
+ {
648
+ "from": 6,
649
+ "fromPort": "out",
650
+ "to": 8,
651
+ "toPort": "x"
652
+ },
653
+ {
654
+ "from": 7,
655
+ "fromPort": "out",
656
+ "to": 8,
657
+ "toPort": "y"
658
+ },
659
+ {
660
+ "from": 8,
661
+ "fromPort": "out",
662
+ "to": 2,
663
+ "toPort": "v"
664
+ },
665
+ {
666
+ "from": 0,
667
+ "fromPort": "out",
668
+ "to": 2,
669
+ "toPort": "s"
670
+ },
671
+ {
672
+ "from": 2,
673
+ "fromPort": "out",
674
+ "to": 9,
675
+ "toPort": "v"
676
+ },
677
+ {
678
+ "from": 10,
679
+ "fromPort": "out",
680
+ "to": 9,
681
+ "toPort": "s"
682
+ },
683
+ {
684
+ "from": 9,
685
+ "fromPort": "out",
686
+ "to": 11,
687
+ "toPort": "x"
688
+ },
689
+ {
690
+ "from": 9,
691
+ "fromPort": "out",
692
+ "to": 12,
693
+ "toPort": "x"
694
+ },
695
+ {
696
+ "from": 13,
697
+ "fromPort": "out",
698
+ "to": 14,
699
+ "toPort": "a"
700
+ },
701
+ {
702
+ "from": 15,
703
+ "fromPort": "out",
704
+ "to": 14,
705
+ "toPort": "b"
706
+ },
707
+ {
708
+ "from": 11,
709
+ "fromPort": "out",
710
+ "to": 16,
711
+ "toPort": "x"
712
+ },
713
+ {
714
+ "from": 14,
715
+ "fromPort": "out",
716
+ "to": 16,
717
+ "toPort": "y"
718
+ },
719
+ {
720
+ "from": 12,
721
+ "fromPort": "out",
722
+ "to": 16,
723
+ "toPort": "z"
724
+ },
725
+ {
726
+ "from": 17,
727
+ "fromPort": "out",
728
+ "to": 18,
729
+ "toPort": "a"
730
+ },
731
+ {
732
+ "from": 16,
733
+ "fromPort": "out",
734
+ "to": 18,
735
+ "toPort": "b"
736
+ },
737
+ {
738
+ "from": 18,
739
+ "fromPort": "out",
740
+ "to": 19,
741
+ "toPort": "value"
742
+ },
743
+ {
744
+ "from": 11,
745
+ "fromPort": "out",
746
+ "to": 20,
747
+ "toPort": "x"
748
+ },
749
+ {
750
+ "from": 21,
751
+ "fromPort": "out",
752
+ "to": 20,
753
+ "toPort": "y"
754
+ },
755
+ {
756
+ "from": 12,
757
+ "fromPort": "out",
758
+ "to": 20,
759
+ "toPort": "z"
760
+ },
761
+ {
762
+ "from": 20,
763
+ "fromPort": "out",
764
+ "to": 22,
765
+ "toPort": "v"
766
+ },
767
+ {
768
+ "from": 23,
769
+ "fromPort": "out",
770
+ "to": 22,
771
+ "toPort": "s"
772
+ },
773
+ {
774
+ "from": 24,
775
+ "fromPort": "out",
776
+ "to": 25,
777
+ "toPort": "a"
778
+ },
779
+ {
780
+ "from": 26,
781
+ "fromPort": "out",
782
+ "to": 25,
783
+ "toPort": "b"
784
+ },
785
+ {
786
+ "from": 27,
787
+ "fromPort": "out",
788
+ "to": 25,
789
+ "toPort": "c"
790
+ },
791
+ {
792
+ "from": 25,
793
+ "fromPort": "out",
794
+ "to": 28,
795
+ "toPort": "v"
796
+ },
797
+ {
798
+ "from": 29,
799
+ "fromPort": "out",
800
+ "to": 28,
801
+ "toPort": "s"
802
+ },
803
+ {
804
+ "from": 30,
805
+ "fromPort": "out",
806
+ "to": 31,
807
+ "toPort": "a"
808
+ },
809
+ {
810
+ "from": 22,
811
+ "fromPort": "out",
812
+ "to": 31,
813
+ "toPort": "b"
814
+ },
815
+ {
816
+ "from": 31,
817
+ "fromPort": "out",
818
+ "to": 32,
819
+ "toPort": "a"
820
+ },
821
+ {
822
+ "from": 28,
823
+ "fromPort": "out",
824
+ "to": 32,
825
+ "toPort": "b"
826
+ },
827
+ {
828
+ "from": 32,
829
+ "fromPort": "out",
830
+ "to": 33,
831
+ "toPort": "value"
832
+ },
833
+ {
834
+ "from": 35,
835
+ "fromPort": "out",
836
+ "to": 34,
837
+ "toPort": "value"
838
+ },
839
+ {
840
+ "from": 36,
841
+ "fromPort": "out",
842
+ "to": 37,
843
+ "toPort": "a"
844
+ },
845
+ {
846
+ "from": 38,
847
+ "fromPort": "out",
848
+ "to": 37,
849
+ "toPort": "b"
850
+ },
851
+ {
852
+ "from": 39,
853
+ "fromPort": "out",
854
+ "to": 37,
855
+ "toPort": "c"
856
+ },
857
+ {
858
+ "from": 37,
859
+ "fromPort": "out",
860
+ "to": 40,
861
+ "toPort": "value"
862
+ },
863
+ {
864
+ "from": 41,
865
+ "fromPort": "out",
866
+ "to": 42,
867
+ "toPort": "a"
868
+ },
869
+ {
870
+ "from": 43,
871
+ "fromPort": "out",
872
+ "to": 42,
873
+ "toPort": "b"
874
+ },
875
+ {
876
+ "from": 44,
877
+ "fromPort": "out",
878
+ "to": 42,
879
+ "toPort": "c"
880
+ },
881
+ {
882
+ "from": 42,
883
+ "fromPort": "out",
884
+ "to": 45,
885
+ "toPort": "value"
886
+ },
887
+ {
888
+ "from": 42,
889
+ "fromPort": "out",
890
+ "to": 46,
891
+ "toPort": "value"
892
+ },
893
+ {
894
+ "from": 48,
895
+ "fromPort": "out",
896
+ "to": 47,
897
+ "toPort": "value"
898
+ },
899
+ {
900
+ "from": 49,
901
+ "fromPort": "out",
902
+ "to": 50,
903
+ "toPort": "a"
904
+ },
905
+ {
906
+ "from": 51,
907
+ "fromPort": "out",
908
+ "to": 50,
909
+ "toPort": "b"
910
+ },
911
+ {
912
+ "from": 52,
913
+ "fromPort": "out",
914
+ "to": 50,
915
+ "toPort": "c"
916
+ },
917
+ {
918
+ "from": 50,
919
+ "fromPort": "out",
920
+ "to": 53,
921
+ "toPort": "value"
922
+ },
923
+ {
924
+ "from": 54,
925
+ "fromPort": "out",
926
+ "to": 55,
927
+ "toPort": "a"
928
+ },
929
+ {
930
+ "from": 56,
931
+ "fromPort": "out",
932
+ "to": 55,
933
+ "toPort": "b"
934
+ },
935
+ {
936
+ "from": 57,
937
+ "fromPort": "out",
938
+ "to": 55,
939
+ "toPort": "c"
940
+ },
941
+ {
942
+ "from": 55,
943
+ "fromPort": "out",
944
+ "to": 58,
945
+ "toPort": "value"
946
+ },
947
+ {
948
+ "from": 59,
949
+ "fromPort": "out",
950
+ "to": 60,
951
+ "toPort": "axis"
952
+ },
953
+ {
954
+ "from": 50,
955
+ "fromPort": "out",
956
+ "to": 60,
957
+ "toPort": "angle"
958
+ },
959
+ {
960
+ "from": 60,
961
+ "fromPort": "quat",
962
+ "to": 61,
963
+ "toPort": "value"
964
+ }
965
+ ]
966
+ },
967
+ "update": {
968
+ "nodes": [
969
+ {
970
+ "id": 0,
971
+ "type": "builtin",
972
+ "parameters": {
973
+ "id": 0
974
+ },
975
+ "x": 0,
976
+ "y": 1203
977
+ },
978
+ {
979
+ "id": 1,
980
+ "type": "attribute",
981
+ "parameters": {
982
+ "name": "age"
983
+ },
984
+ "x": 14.5,
985
+ "y": 1072
986
+ },
987
+ {
988
+ "id": 2,
989
+ "type": "add",
990
+ "parameters": {},
991
+ "x": 387.5,
992
+ "y": 1072
993
+ },
994
+ {
995
+ "id": 3,
996
+ "type": "setAttribute",
997
+ "parameters": {
998
+ "name": "age"
999
+ },
1000
+ "x": 684.5,
1001
+ "y": 1072
1002
+ },
1003
+ {
1004
+ "id": 4,
1005
+ "type": "attribute",
1006
+ "parameters": {
1007
+ "name": "life"
1008
+ },
1009
+ "x": 355,
1010
+ "y": 1525
1011
+ },
1012
+ {
1013
+ "id": 5,
1014
+ "type": "div",
1015
+ "parameters": {},
1016
+ "x": 716,
1017
+ "y": 1508
1018
+ },
1019
+ {
1020
+ "id": 6,
1021
+ "type": "compare",
1022
+ "parameters": {
1023
+ "op": "ge"
1024
+ },
1025
+ "x": 1054,
1026
+ "y": 2165.75
1027
+ },
1028
+ {
1029
+ "id": 7,
1030
+ "type": "const",
1031
+ "parameters": {
1032
+ "value": [
1033
+ 1
1034
+ ]
1035
+ },
1036
+ "x": 681,
1037
+ "y": 2182.75
1038
+ },
1039
+ {
1040
+ "id": 8,
1041
+ "type": "kill",
1042
+ "parameters": {},
1043
+ "x": 1389.5,
1044
+ "y": 2165.75
1045
+ },
1046
+ {
1047
+ "id": 9,
1048
+ "type": "builtin",
1049
+ "parameters": {
1050
+ "id": 7
1051
+ },
1052
+ "x": 0,
1053
+ "y": 262
1054
+ },
1055
+ {
1056
+ "id": 10,
1057
+ "type": "mul",
1058
+ "parameters": {},
1059
+ "x": 381,
1060
+ "y": 319
1061
+ },
1062
+ {
1063
+ "id": 11,
1064
+ "type": "const",
1065
+ "parameters": {
1066
+ "value": [
1067
+ -1.4
1068
+ ]
1069
+ },
1070
+ "x": 11,
1071
+ "y": 393
1072
+ },
1073
+ {
1074
+ "id": 12,
1075
+ "type": "attribute",
1076
+ "parameters": {
1077
+ "name": "seed"
1078
+ },
1079
+ "x": 355,
1080
+ "y": 170
1081
+ },
1082
+ {
1083
+ "id": 13,
1084
+ "type": "vec3",
1085
+ "parameters": {},
1086
+ "x": 694,
1087
+ "y": 301.75
1088
+ },
1089
+ {
1090
+ "id": 14,
1091
+ "type": "const",
1092
+ "parameters": {
1093
+ "value": [
1094
+ 0
1095
+ ]
1096
+ },
1097
+ "x": 351.5,
1098
+ "y": 441
1099
+ },
1100
+ {
1101
+ "id": 15,
1102
+ "type": "attribute",
1103
+ "parameters": {
1104
+ "name": "position"
1105
+ },
1106
+ "x": 14.5,
1107
+ "y": 0
1108
+ },
1109
+ {
1110
+ "id": 16,
1111
+ "type": "scale",
1112
+ "parameters": {},
1113
+ "x": 388,
1114
+ "y": 57
1115
+ },
1116
+ {
1117
+ "id": 17,
1118
+ "type": "const",
1119
+ "parameters": {
1120
+ "value": [
1121
+ 3.4
1122
+ ]
1123
+ },
1124
+ "x": 11,
1125
+ "y": 131
1126
+ },
1127
+ {
1128
+ "id": 18,
1129
+ "type": "add",
1130
+ "parameters": {},
1131
+ "x": 1062.5,
1132
+ "y": 170.75
1133
+ },
1134
+ {
1135
+ "id": 19,
1136
+ "type": "const",
1137
+ "parameters": {
1138
+ "value": [
1139
+ 0,
1140
+ 0,
1141
+ 0
1142
+ ]
1143
+ },
1144
+ "x": 986,
1145
+ "y": 39.75
1146
+ },
1147
+ {
1148
+ "id": 20,
1149
+ "type": "add",
1150
+ "parameters": {},
1151
+ "x": 1404.5,
1152
+ "y": 80
1153
+ },
1154
+ {
1155
+ "id": 21,
1156
+ "type": "simplex3",
1157
+ "parameters": {},
1158
+ "x": 1654,
1159
+ "y": 80
1160
+ },
1161
+ {
1162
+ "id": 22,
1163
+ "type": "const",
1164
+ "parameters": {
1165
+ "value": [
1166
+ 17.3,
1167
+ 5.1,
1168
+ 31.7
1169
+ ]
1170
+ },
1171
+ "x": 986,
1172
+ "y": 292.25
1173
+ },
1174
+ {
1175
+ "id": 23,
1176
+ "type": "add",
1177
+ "parameters": {},
1178
+ "x": 1404.5,
1179
+ "y": 227.25
1180
+ },
1181
+ {
1182
+ "id": 24,
1183
+ "type": "simplex3",
1184
+ "parameters": {},
1185
+ "x": 1654,
1186
+ "y": 227.25
1187
+ },
1188
+ {
1189
+ "id": 25,
1190
+ "type": "const",
1191
+ "parameters": {
1192
+ "value": [
1193
+ 73.9,
1194
+ 41.3,
1195
+ 11.5
1196
+ ]
1197
+ },
1198
+ "x": 986,
1199
+ "y": 423.25
1200
+ },
1201
+ {
1202
+ "id": 26,
1203
+ "type": "add",
1204
+ "parameters": {},
1205
+ "x": 1404.5,
1206
+ "y": 406.25
1207
+ },
1208
+ {
1209
+ "id": 27,
1210
+ "type": "simplex3",
1211
+ "parameters": {},
1212
+ "x": 1654,
1213
+ "y": 406.25
1214
+ },
1215
+ {
1216
+ "id": 28,
1217
+ "type": "vec3",
1218
+ "parameters": {},
1219
+ "x": 1939,
1220
+ "y": 210.25
1221
+ },
1222
+ {
1223
+ "id": 29,
1224
+ "type": "mul",
1225
+ "parameters": {},
1226
+ "x": 1056,
1227
+ "y": 810
1228
+ },
1229
+ {
1230
+ "id": 30,
1231
+ "type": "const",
1232
+ "parameters": {
1233
+ "value": [
1234
+ 9
1235
+ ]
1236
+ },
1237
+ "x": 681,
1238
+ "y": 810
1239
+ },
1240
+ {
1241
+ "id": 31,
1242
+ "type": "scale",
1243
+ "parameters": {},
1244
+ "x": 2279,
1245
+ "y": 822.25
1246
+ },
1247
+ {
1248
+ "id": 32,
1249
+ "type": "attribute",
1250
+ "parameters": {
1251
+ "name": "position"
1252
+ },
1253
+ "x": 14.5,
1254
+ "y": 524
1255
+ },
1256
+ {
1257
+ "id": 33,
1258
+ "type": "builtin",
1259
+ "parameters": {
1260
+ "id": 2
1261
+ },
1262
+ "x": 0,
1263
+ "y": 655
1264
+ },
1265
+ {
1266
+ "id": 34,
1267
+ "type": "sub",
1268
+ "parameters": {},
1269
+ "x": 380.5,
1270
+ "y": 581
1271
+ },
1272
+ {
1273
+ "id": 35,
1274
+ "type": "mul",
1275
+ "parameters": {},
1276
+ "x": 710.5,
1277
+ "y": 628.75
1278
+ },
1279
+ {
1280
+ "id": 36,
1281
+ "type": "const",
1282
+ "parameters": {
1283
+ "value": [
1284
+ 1,
1285
+ 0,
1286
+ 1
1287
+ ]
1288
+ },
1289
+ "x": 311,
1290
+ "y": 711
1291
+ },
1292
+ {
1293
+ "id": 37,
1294
+ "type": "mul",
1295
+ "parameters": {},
1296
+ "x": 1056,
1297
+ "y": 941
1298
+ },
1299
+ {
1300
+ "id": 38,
1301
+ "type": "const",
1302
+ "parameters": {
1303
+ "value": [
1304
+ -1.7
1305
+ ]
1306
+ },
1307
+ "x": 681,
1308
+ "y": 941
1309
+ },
1310
+ {
1311
+ "id": 39,
1312
+ "type": "scale",
1313
+ "parameters": {},
1314
+ "x": 1405,
1315
+ "y": 628.75
1316
+ },
1317
+ {
1318
+ "id": 40,
1319
+ "type": "const",
1320
+ "parameters": {
1321
+ "value": [
1322
+ 0,
1323
+ 4.2,
1324
+ 0
1325
+ ]
1326
+ },
1327
+ "x": 2202,
1328
+ "y": 691.25
1329
+ },
1330
+ {
1331
+ "id": 41,
1332
+ "type": "add",
1333
+ "parameters": {},
1334
+ "x": 2572,
1335
+ "y": 748.25
1336
+ },
1337
+ {
1338
+ "id": 42,
1339
+ "type": "add",
1340
+ "parameters": {},
1341
+ "x": 2789,
1342
+ "y": 708.5
1343
+ },
1344
+ {
1345
+ "id": 43,
1346
+ "type": "attribute",
1347
+ "parameters": {
1348
+ "name": "velocity"
1349
+ },
1350
+ "x": 3006,
1351
+ "y": 1282.25
1352
+ },
1353
+ {
1354
+ "id": 44,
1355
+ "type": "scale",
1356
+ "parameters": {},
1357
+ "x": 3039,
1358
+ "y": 1413.25
1359
+ },
1360
+ {
1361
+ "id": 45,
1362
+ "type": "add",
1363
+ "parameters": {},
1364
+ "x": 3288,
1365
+ "y": 1339.25
1366
+ },
1367
+ {
1368
+ "id": 46,
1369
+ "type": "setAttribute",
1370
+ "parameters": {
1371
+ "name": "velocity"
1372
+ },
1373
+ "x": 3505,
1374
+ "y": 1339.25
1375
+ },
1376
+ {
1377
+ "id": 47,
1378
+ "type": "attribute",
1379
+ "parameters": {
1380
+ "name": "position"
1381
+ },
1382
+ "x": 3505,
1383
+ "y": 1055
1384
+ },
1385
+ {
1386
+ "id": 48,
1387
+ "type": "scale",
1388
+ "parameters": {},
1389
+ "x": 3538,
1390
+ "y": 1186
1391
+ },
1392
+ {
1393
+ "id": 49,
1394
+ "type": "add",
1395
+ "parameters": {},
1396
+ "x": 3787,
1397
+ "y": 1112
1398
+ },
1399
+ {
1400
+ "id": 50,
1401
+ "type": "setAttribute",
1402
+ "parameters": {
1403
+ "name": "position"
1404
+ },
1405
+ "x": 4004,
1406
+ "y": 1112
1407
+ },
1408
+ {
1409
+ "id": 51,
1410
+ "type": "attribute",
1411
+ "parameters": {
1412
+ "name": "size0"
1413
+ },
1414
+ "x": 1030,
1415
+ "y": 1690.75
1416
+ },
1417
+ {
1418
+ "id": 52,
1419
+ "type": "curveLiteral",
1420
+ "parameters": {
1421
+ "curve": {
1422
+ "keys": [
1423
+ {
1424
+ "time": 0,
1425
+ "value": 0.662916438992136,
1426
+ "inTangent": 2.2471691826185145,
1427
+ "outTangent": 1.2269055440364782
1428
+ },
1429
+ {
1430
+ "time": 0.2192864853655495,
1431
+ "value": 0.9319602436194028,
1432
+ "inTangent": 0,
1433
+ "outTangent": 0
1434
+ },
1435
+ {
1436
+ "time": 0.44971337926304744,
1437
+ "value": 0.9319602436194028,
1438
+ "inTangent": 0.061155585117630966,
1439
+ "outTangent": 0.061155585117630966
1440
+ },
1441
+ {
1442
+ "time": 0.6960317830845106,
1443
+ "value": 0.961115881253485,
1444
+ "inTangent": 0,
1445
+ "outTangent": 0
1446
+ },
1447
+ {
1448
+ "time": 1,
1449
+ "value": 0.010069238351883891,
1450
+ "inTangent": -3.1287700159981378,
1451
+ "outTangent": -2.46508031364683
1452
+ }
1453
+ ]
1454
+ }
1455
+ },
1456
+ "x": 970,
1457
+ "y": 1821.75
1458
+ },
1459
+ {
1460
+ "id": 53,
1461
+ "type": "mul",
1462
+ "parameters": {},
1463
+ "x": 1398,
1464
+ "y": 1747.75
1465
+ },
1466
+ {
1467
+ "id": 54,
1468
+ "type": "setAttribute",
1469
+ "parameters": {
1470
+ "name": "size"
1471
+ },
1472
+ "x": 1655.5,
1473
+ "y": 1747.75
1474
+ },
1475
+ {
1476
+ "id": 55,
1477
+ "type": "gradientRGBA",
1478
+ "parameters": {
1479
+ "stops": [
1480
+ {
1481
+ "position": 0,
1482
+ "color": [
1483
+ 1,
1484
+ 0.95,
1485
+ 0.8,
1486
+ 0
1487
+ ]
1488
+ },
1489
+ {
1490
+ "position": 0.06,
1491
+ "color": [
1492
+ 1,
1493
+ 0.8,
1494
+ 0.45,
1495
+ 0.2
1496
+ ]
1497
+ },
1498
+ {
1499
+ "position": 0.28,
1500
+ "color": [
1501
+ 1,
1502
+ 0.52,
1503
+ 0.14,
1504
+ 0.16
1505
+ ]
1506
+ },
1507
+ {
1508
+ "position": 0.62,
1509
+ "color": [
1510
+ 0.9,
1511
+ 0.22,
1512
+ 0.03,
1513
+ 0.08
1514
+ ]
1515
+ },
1516
+ {
1517
+ "position": 1,
1518
+ "color": [
1519
+ 0.35,
1520
+ 0.04,
1521
+ 0.01,
1522
+ 0
1523
+ ]
1524
+ }
1525
+ ]
1526
+ },
1527
+ "x": 970,
1528
+ "y": 1492.75
1529
+ },
1530
+ {
1531
+ "id": 56,
1532
+ "type": "setAttribute",
1533
+ "parameters": {
1534
+ "name": "color"
1535
+ },
1536
+ "x": 1372,
1537
+ "y": 1492.75
1538
+ }
1539
+ ],
1540
+ "connections": [
1541
+ {
1542
+ "from": 1,
1543
+ "fromPort": "out",
1544
+ "to": 2,
1545
+ "toPort": "a"
1546
+ },
1547
+ {
1548
+ "from": 0,
1549
+ "fromPort": "out",
1550
+ "to": 2,
1551
+ "toPort": "b"
1552
+ },
1553
+ {
1554
+ "from": 2,
1555
+ "fromPort": "out",
1556
+ "to": 3,
1557
+ "toPort": "value"
1558
+ },
1559
+ {
1560
+ "from": 2,
1561
+ "fromPort": "out",
1562
+ "to": 5,
1563
+ "toPort": "a"
1564
+ },
1565
+ {
1566
+ "from": 4,
1567
+ "fromPort": "out",
1568
+ "to": 5,
1569
+ "toPort": "b"
1570
+ },
1571
+ {
1572
+ "from": 5,
1573
+ "fromPort": "out",
1574
+ "to": 6,
1575
+ "toPort": "a"
1576
+ },
1577
+ {
1578
+ "from": 7,
1579
+ "fromPort": "out",
1580
+ "to": 6,
1581
+ "toPort": "b"
1582
+ },
1583
+ {
1584
+ "from": 6,
1585
+ "fromPort": "out",
1586
+ "to": 8,
1587
+ "toPort": "condition"
1588
+ },
1589
+ {
1590
+ "from": 9,
1591
+ "fromPort": "out",
1592
+ "to": 10,
1593
+ "toPort": "a"
1594
+ },
1595
+ {
1596
+ "from": 11,
1597
+ "fromPort": "out",
1598
+ "to": 10,
1599
+ "toPort": "b"
1600
+ },
1601
+ {
1602
+ "from": 12,
1603
+ "fromPort": "out",
1604
+ "to": 13,
1605
+ "toPort": "x"
1606
+ },
1607
+ {
1608
+ "from": 10,
1609
+ "fromPort": "out",
1610
+ "to": 13,
1611
+ "toPort": "y"
1612
+ },
1613
+ {
1614
+ "from": 14,
1615
+ "fromPort": "out",
1616
+ "to": 13,
1617
+ "toPort": "z"
1618
+ },
1619
+ {
1620
+ "from": 15,
1621
+ "fromPort": "out",
1622
+ "to": 16,
1623
+ "toPort": "v"
1624
+ },
1625
+ {
1626
+ "from": 17,
1627
+ "fromPort": "out",
1628
+ "to": 16,
1629
+ "toPort": "s"
1630
+ },
1631
+ {
1632
+ "from": 16,
1633
+ "fromPort": "out",
1634
+ "to": 18,
1635
+ "toPort": "a"
1636
+ },
1637
+ {
1638
+ "from": 13,
1639
+ "fromPort": "out",
1640
+ "to": 18,
1641
+ "toPort": "b"
1642
+ },
1643
+ {
1644
+ "from": 18,
1645
+ "fromPort": "out",
1646
+ "to": 20,
1647
+ "toPort": "a"
1648
+ },
1649
+ {
1650
+ "from": 19,
1651
+ "fromPort": "out",
1652
+ "to": 20,
1653
+ "toPort": "b"
1654
+ },
1655
+ {
1656
+ "from": 20,
1657
+ "fromPort": "out",
1658
+ "to": 21,
1659
+ "toPort": "p"
1660
+ },
1661
+ {
1662
+ "from": 18,
1663
+ "fromPort": "out",
1664
+ "to": 23,
1665
+ "toPort": "a"
1666
+ },
1667
+ {
1668
+ "from": 22,
1669
+ "fromPort": "out",
1670
+ "to": 23,
1671
+ "toPort": "b"
1672
+ },
1673
+ {
1674
+ "from": 23,
1675
+ "fromPort": "out",
1676
+ "to": 24,
1677
+ "toPort": "p"
1678
+ },
1679
+ {
1680
+ "from": 18,
1681
+ "fromPort": "out",
1682
+ "to": 26,
1683
+ "toPort": "a"
1684
+ },
1685
+ {
1686
+ "from": 25,
1687
+ "fromPort": "out",
1688
+ "to": 26,
1689
+ "toPort": "b"
1690
+ },
1691
+ {
1692
+ "from": 26,
1693
+ "fromPort": "out",
1694
+ "to": 27,
1695
+ "toPort": "p"
1696
+ },
1697
+ {
1698
+ "from": 21,
1699
+ "fromPort": "out",
1700
+ "to": 28,
1701
+ "toPort": "x"
1702
+ },
1703
+ {
1704
+ "from": 24,
1705
+ "fromPort": "out",
1706
+ "to": 28,
1707
+ "toPort": "y"
1708
+ },
1709
+ {
1710
+ "from": 27,
1711
+ "fromPort": "out",
1712
+ "to": 28,
1713
+ "toPort": "z"
1714
+ },
1715
+ {
1716
+ "from": 30,
1717
+ "fromPort": "out",
1718
+ "to": 29,
1719
+ "toPort": "a"
1720
+ },
1721
+ {
1722
+ "from": 5,
1723
+ "fromPort": "out",
1724
+ "to": 29,
1725
+ "toPort": "b"
1726
+ },
1727
+ {
1728
+ "from": 28,
1729
+ "fromPort": "out",
1730
+ "to": 31,
1731
+ "toPort": "v"
1732
+ },
1733
+ {
1734
+ "from": 29,
1735
+ "fromPort": "out",
1736
+ "to": 31,
1737
+ "toPort": "s"
1738
+ },
1739
+ {
1740
+ "from": 32,
1741
+ "fromPort": "out",
1742
+ "to": 34,
1743
+ "toPort": "a"
1744
+ },
1745
+ {
1746
+ "from": 33,
1747
+ "fromPort": "out",
1748
+ "to": 34,
1749
+ "toPort": "b"
1750
+ },
1751
+ {
1752
+ "from": 34,
1753
+ "fromPort": "out",
1754
+ "to": 35,
1755
+ "toPort": "a"
1756
+ },
1757
+ {
1758
+ "from": 36,
1759
+ "fromPort": "out",
1760
+ "to": 35,
1761
+ "toPort": "b"
1762
+ },
1763
+ {
1764
+ "from": 38,
1765
+ "fromPort": "out",
1766
+ "to": 37,
1767
+ "toPort": "a"
1768
+ },
1769
+ {
1770
+ "from": 5,
1771
+ "fromPort": "out",
1772
+ "to": 37,
1773
+ "toPort": "b"
1774
+ },
1775
+ {
1776
+ "from": 35,
1777
+ "fromPort": "out",
1778
+ "to": 39,
1779
+ "toPort": "v"
1780
+ },
1781
+ {
1782
+ "from": 37,
1783
+ "fromPort": "out",
1784
+ "to": 39,
1785
+ "toPort": "s"
1786
+ },
1787
+ {
1788
+ "from": 40,
1789
+ "fromPort": "out",
1790
+ "to": 41,
1791
+ "toPort": "a"
1792
+ },
1793
+ {
1794
+ "from": 31,
1795
+ "fromPort": "out",
1796
+ "to": 41,
1797
+ "toPort": "b"
1798
+ },
1799
+ {
1800
+ "from": 41,
1801
+ "fromPort": "out",
1802
+ "to": 42,
1803
+ "toPort": "a"
1804
+ },
1805
+ {
1806
+ "from": 39,
1807
+ "fromPort": "out",
1808
+ "to": 42,
1809
+ "toPort": "b"
1810
+ },
1811
+ {
1812
+ "from": 42,
1813
+ "fromPort": "out",
1814
+ "to": 44,
1815
+ "toPort": "v"
1816
+ },
1817
+ {
1818
+ "from": 0,
1819
+ "fromPort": "out",
1820
+ "to": 44,
1821
+ "toPort": "s"
1822
+ },
1823
+ {
1824
+ "from": 43,
1825
+ "fromPort": "out",
1826
+ "to": 45,
1827
+ "toPort": "a"
1828
+ },
1829
+ {
1830
+ "from": 44,
1831
+ "fromPort": "out",
1832
+ "to": 45,
1833
+ "toPort": "b"
1834
+ },
1835
+ {
1836
+ "from": 45,
1837
+ "fromPort": "out",
1838
+ "to": 46,
1839
+ "toPort": "value"
1840
+ },
1841
+ {
1842
+ "from": 45,
1843
+ "fromPort": "out",
1844
+ "to": 48,
1845
+ "toPort": "v"
1846
+ },
1847
+ {
1848
+ "from": 0,
1849
+ "fromPort": "out",
1850
+ "to": 48,
1851
+ "toPort": "s"
1852
+ },
1853
+ {
1854
+ "from": 47,
1855
+ "fromPort": "out",
1856
+ "to": 49,
1857
+ "toPort": "a"
1858
+ },
1859
+ {
1860
+ "from": 48,
1861
+ "fromPort": "out",
1862
+ "to": 49,
1863
+ "toPort": "b"
1864
+ },
1865
+ {
1866
+ "from": 49,
1867
+ "fromPort": "out",
1868
+ "to": 50,
1869
+ "toPort": "value"
1870
+ },
1871
+ {
1872
+ "from": 5,
1873
+ "fromPort": "out",
1874
+ "to": 52,
1875
+ "toPort": "t"
1876
+ },
1877
+ {
1878
+ "from": 51,
1879
+ "fromPort": "out",
1880
+ "to": 53,
1881
+ "toPort": "a"
1882
+ },
1883
+ {
1884
+ "from": 52,
1885
+ "fromPort": "out",
1886
+ "to": 53,
1887
+ "toPort": "b"
1888
+ },
1889
+ {
1890
+ "from": 53,
1891
+ "fromPort": "out",
1892
+ "to": 54,
1893
+ "toPort": "value"
1894
+ },
1895
+ {
1896
+ "from": 5,
1897
+ "fromPort": "out",
1898
+ "to": 55,
1899
+ "toPort": "t"
1900
+ },
1901
+ {
1902
+ "from": 55,
1903
+ "fromPort": "out",
1904
+ "to": 56,
1905
+ "toPort": "value"
1906
+ }
1907
+ ]
1908
+ },
1909
+ "emitter": {
1910
+ "spawn_rate": 560,
1911
+ "prewarm": 1.2,
1912
+ "blend": 1,
1913
+ "projection": 0,
1914
+ "lighting": false,
1915
+ "soft_depth": true,
1916
+ "sort": false,
1917
+ "cull": false,
1918
+ "texture": null,
1919
+ "flipbook": [
1920
+ 1,
1921
+ 1
1922
+ ],
1923
+ "render": {
1924
+ "position": "position",
1925
+ "size": "size",
1926
+ "color": "color",
1927
+ "orientation": "orientation"
1928
+ }
1929
+ },
1930
+ "source": "graph",
1931
+ "assembly": "",
1932
+ "optimize": true
1882
1933
  }