Shape Grammars are interesting. Closely related to L-systems but usually with a more approachable syntax.
Also see https://github.com/stefalie/shapeml