Inkscape, L-Systems, SVG, Penrose and other tilings

I’ve been playing with the L-System support in Inkscape, generating Penrose Tilings. Damn this is clever neat nifty fun!

Axiom: 
  [N]++[N]++[N]++[N]++[N]
Rules:
  M=OA++pA----NA[-OA----MA]++;
  N=+OA--PA[---MA--NA]+;
  O=-MA++NA[+++OA++PA]-;
  P=--OA++++MA[+PA++++NA]--NA;
  A=
Angle:36

Just drop that into Inkscape/Effect/Render/L-System (put all the rules on one line) and you should get this:

Inkscape-LSystem-PenroseRender

Increase the Order value and it will iterate more, drawing a larger graph. Be careful though as execution time grows exponentially as the number of iterations grows.

Inkscape-LSystem-PenroseRender-Big

Some other L-system-derived graphs produced with Inkscape:

Axiom:
  f
Rules:
  f=-f+f+g[+f+f]-;
  g=gg;
Angle: 60

LSystem-Hex

Or perhaps more entertainingly:

Axiom:
  W
Rules:
  W=+++X--F--ZFX+;
  X=---W++F++YFW-;
  Y=+ZFX--F--Z+++;
  Z=-YFW++F++Y---;
Angle: 30

LSystem-Lace

Yes, that’s a single continuous line in what is known as a space filling curve. Wander about Wikipedia or with a search engine and you’ll find many other little L-system programs for other tilings or space filling curves. Plug them in and play! They’re not only a heck of a lot of fun but such curious tilings can easily form the backdrop for interesting games and there are many many such interesting patterns.

5711f24bc6717f9efd48c93e82fbc2e1