The left column is the shapes library. The center area is the canvas/workspace. The right area is an outline view of the shapes in the canvas.
To add a shape to the canvas, drag your mouse from the shape in the shape library to the workspace.
To move a shape, drag inside it, when the whole shape is highlighted red.
To resize and rotate a shape, drag the edge of it, when it is outlined red.
To delete a shape on the canvas, right-click it and choose Delete Shape. (You currently cannot delete shapes directly from the outline, nor can you delete shapes from the shape library.)
To resize a shape non-uniformly or add skew, hold shift while dragging its outline. You can use this to make line segments and rhombuses, among other things.
Click the + button in the left column to start editing a new shape.
Remember that you can add any shape to the canvas by dragging it from the shape library. This also applies to shapes you create yourself.
Click on any shape in the shape library (except for the starting circle and square) to edit it in the canvas.
You can see the thumbnail of what's in the canvas in the current shape in the shape library. You can also see the shapes your shape is composed of in the outline. Everything is updated live.
To pan across the canvas, drag outside of any shape, in the white area. To zoom into or out from the canvas, scroll with the mouse wheel while pointing inside the canvas.
You can drag even the shape you are currently editing from the shape library into the canvas. That is what makes this recursive drawing rather than merely nested drawing. You will see the current shape repeated relative to itself. (You might call the shape inside itself a "recursive shape instance".)
You can move, rotate, and resize a recursive shape instance to change its repetition pattern. For instance, if you resize the recursive shape instance to be smaller, you will see a line of recursive shapes shrinking forever. If you edit one of the repetitions of a shape, it will edit the whole pattern.
You can go back and edit a sub-shape, and every shape including that shape will update live.
If you don't know what to draw, try drawing one of these: any kind of fractal tree (https://www.google.com/search?q=fractal+tree&tbm=isch...), Koch snowflake (http://en.wikipedia.org/wiki/Koch_snowflake), Sierpinski triangle (http://en.wikipedia.org/wiki/Sierpinski_triangle), Sierpinski carpet (http://en.wikipedia.org/wiki/Sierpinski_carpet), or any other fractal (http://en.wikipedia.org/wiki/List_of_fractals).
I found the demo trees a bit lacking, so I made some with more recursiveness and better fitting near the joints. Fibonacci rarely looked so cool.
Second order recursion can give you some interesting stuff. At some point I was successful in drawing a galaxy but things went whacky
I could see myself readily using this to generate artwork or material texture in some game.
This thing desperately needs some more love than shown in the video. I'm dying to export data, be able to remove elements from left and right sidebars, have more basic shapes (triangle?), a persistent shape library (html5 local storage?), and some form of snapping to grid/angles/ratio/edge.