A perfect maze in a HTML5 canvas.