A canvas app that you can play with explained using jsfiddle · HackerTrans