This java applet is a simulation of a ripple tank. Here, it is demonstrating refraction. A series of wave packets are emitted from the upper left. These waves are reflected and refracted by the blue medium, which has a higher refractive index than the gray medium.
Use the sliders at the lower right to adjust the simulation speed, resolution, source frequency, and brightness.
Main Ripple Tank Applet.