The way the water moves is interesting, and pretty
I came up with the idea in the shower :) . It uses perlin noise with linearly adjusting seed values to generate a height map which is then used to adjust the position and scale of a bunch of cubes.