Procedural 2D Fluid Simulation
This simulation runs entirely in Blender Geo Nodes. You can customize the initial speed and color the particles using either a built-in noise textures or an image.
For optimal results, I suggest rendering in Cycles, as Eevee currently does not support rendering particles as spheres without manual instancing.
Geo Nodes Setup:

Shader for the particles:

You can use the built-in noise textures or an image file for point coloring.