Nah, I’m not really artistic, nor creative for that matter. I love to do designing and optimising, but don’t expect me to release something playable.
Wow, well, it seems like the algorithm still takes more advantage of the clockspeed than the amount of cores.
The turbulence is just a side effect if the integrator, not really hard work
Another nice thing is that the current algorithm works in 3D too - I’d only have to change 1 line of code - basically assigning a z-value (instead of 0.0) to every drop and watch it go. I’m just not really into writing a 3D renderer in Java2D, and going to LWJGL is a bit out of scope of this probject.
The only problem with the current algorithm is that large liquid bodies tend to get unstable at the bottom, due to the massive stress and conflicting constraints. The problem is that I can’t relax the collision response (or releasing tension of springs), because then the liquid becomes compressable, which causes ‘global resonation’ - the fluid falls in on itself, then explodes, in an infinte loop - besides that, real fluids are not compressible anyway, so relaxing is not how I should be solving the stress problem anyway. I already slightly hacked the verlet code to handle fluids differently from your average sphere/sphere collision, but there are still some drops shooting out like fireworks.