This is an interactive blog post I wrote a few months ago about how to do fancy water simulations using FFTs. It doesn’t assume any Fourier Transform or complex number knowledge. Even if you aren’t interested in simulations, have a play with the widgets and learn a thing or two about waves. :)