I spent some spare time today doing a first draft at an L-System. I was always intrigued by how nature is apparently governed by mathematics like the Fibonacci sequence. L-Systems are basically grammars used commonly to model growth as it occurs in nature and to develop self-similar fractals. A stochastic L-System (an L-System where each possible change has a certain probability of being selected) is what was used in this procedural cities paper for SIGGRAPH 2001. There are some other methods, but I don't think they are as realistic as what Mueller and Pascal had done. The L-System (with some add-on rules) is used to draw out the streets and also to generate buildings with different LODs. I'm not sure where to go from my basic random-blocks-on-a-plane so I decided to look into L-Systems to try and generate a realistic city. But first things first, here's a fractal plant (L-Systems in WPF):
I coded a basic L-System and turtle graphics (something that draws whatever the L-System generates by following it like a path) and got the grammar for the plant on the wiki page. It looks very like something you'd find in nature, but it all follows a strict grammar with only 2 rules and if you look for it, you can see the self-similar patterns. It does take a while to execute however, especially at high iterations. This site has a few of the common L-System grammars in a java app so you can play about with different grammars/iterations etc. and here's a gallery of other simple fractal forms. Here's one more from my little app before I hit the hay - an arty close-up of part of a Koch snowflake:
I'll be honest, it's not arty, what it is is it's too fecking late to be messing about with WPF is what it is so screw you! Goodnight.