Click through the pics to get to the awesome simulation! Click and drag to make lines
All made by me! (っ-●益●)っ eeexcept the reflection formula: reflectionDir = (2 * (normal + 90)) - incidentAngle