Mark Cavolowsky, Jeff Dezso and I programmed this wave simulator as a final project for a class called Engineering of Distributed Systems. Since light is wave, we decided to program various different light experiments, including a parabolic mirror, a prism, and the double slit experiment above.
This video shows the double slit, prism, and "sonic" boom experiments.
The simulation was done using MATLAB.