Original demo by Jetro Lauha
WebGL port by Kenneth Waters