I learned about basic shaders, and how to optimize performance in WebGL applications. This application only passes the updated time in the render loop, all other calculations are done in the shaders. Without these optimizations a browser could only render a fraction of the elements.