{
let size = 20
let height = width / 1.5;
let canvas = this || DOM.canvas(500, 750);
let ps = canvas.ps || (() => {
let ps = new paper.PaperScope();
ps.setup(canvas);
return ps;
})();
canvas.ps = ps;
let axiom = ["X"];
let grammar = {
"X": new Space([0.50, 0.55], ["+F[+XF-X]-F[-XF-X]", "+X[-FXF+]"]),
"F": new Space([0.60, 0.35, 0.5], ["FF", "FFF", ""]),
"+": new Rule("+"),
"-": new Rule("-"),
"[": new Rule("["),
"]": new Rule("]"),
}
let n = 6;
let code = axiom;
for (let i = 0; i < n; i++) {
code = code.map(l => grammar[l].rule).join("").split("")
}
draw(grammar, ps, code, 12, 2);
return canvas;
}