Recursive geometry is so much fun. You've seen those fractal plants and terrains. Here's a really simple way of making pleasing Escher-like townscapes:

(click to see larger version)

the same, viewed from above:

Starting with one large oblong where you want the town, repeatedly apply one of these:

  • break oblong into two smaller oblongs with a gap between them (two city blocks and a road), or

  • break oblong into four smaller oblongs around a courtyard, or

  • break oblong into two oblongs of different height.

After several subdivisions you get towns like those above. You can decorate it with windows and stairs and whatever you want. You need to tweak the randomness to taste.

Tools: C++, VTK, Blender

This post was originally on LiveJournal.