It's been a long time since I wrote this notebook, but I think what's happening is that the "F" has a "dual" role this way. One the one hand, it definitely causes a draw/move, on the other hand, it also expands syntactically.
Another way of viewing it, is that these L-systems are a two-stepped thing:
(1) The actual L-system expansion. So in this case, three times (+ or -1 haha) the initial string (F+F+F+F) is expanded via the rule.
(2) Then, we draw it, and now, indeed the "F" has a different connotation: that it draw/moves.
Four of the supported instructions are currently undocumented:
- "|": Rotate 180°
- "{": Begin polygon (dotted line)
- "}": End polygon (closes path)
- ".": Add polygon point
I'm curious: Why did you decide to leave the "animate: no" in? You implemented animate as a boolean flag, so "animate" and "animate: no" both enable the animation.