In my first year of uni I had a physics lecture on something wave-related. I'm not sure quite what; there's so much to choose from. Regardless, I certainly didn't learn anything, because I was far too preoccupied with the 'teaching aid' the lecturer had produced to demonstrate her point, whatever it was. It resembled a xylophone, except each slat was the same length and, it became clear, could pivot around a rod running through the centre of them all. Each slat was somehow sprung to the 'flat' position and to the slat next to it, so that when the slat at the end was wiggled, the wave would translate down the slats and reflect off the last one in a surprisingly entertaining way.
This is a quick and dirty simulation of that. Each little square represents the end of one of the slats. Damping and spring tensions can be modified, and a wave generator can be applied. The initial configuration produces a pleasant standing wave, demonstrating the principle of interference but, more importantly, looking quite funky.
You can select which block is being controlled by clicking with the right mouse-button. You can manually drag the control block around with the left mouse button. You can pause the simulation by pressing a key. The rest of the controls on the right should be fairly self-explanatory.
Like the rest of my older projects, I wrote this in Delphi, and so it's Windows only.
battleships.zip - Zip file containing Windows executable