me: I improved the speed of neighbors searching by using my improved Quad-Tree and made major steps to make the code fully parallelizable. Now the main bottleneck of the code can be easily translated to GPU code, because functions don't have any recursion It means every particle edits only Its' own position and velocity data. Quad tree building needs to be done on CPU unfortunately. I'm still looking for solutions Use turbowarp for full 60FPS: https://turbowarp.org/1208299844?hqpen&fps=60 instructions by the original creator @n-clue : controls: space to spawn mouse to attract r to repel d to delete s for settings turbowarp: https://turbowarp.org/1070503090?fps=60 references: https://www.researchgate.net/publication/220789321_Particle-based_viscoelastic_fluid_simulation https://scratch.mit.edu/projects/1045449083/ https://github.com/kotsoft/particle_based_viscoelastic_fluid/blob/main/sim_5.js#L610 update log: v0.1 - initial release, bare minimum simulation implementing double density relaxation v0.2 - viscosity implemented, elasticity in progress and currently completely broken