Introduction to the HTML5 <canvas> element and to creating recursive visual elements