I’ve been wanting to do this for ages… and I finally did!
The idea is this:
- Create a square.
- If the square has more than n things inside it, divide it into four parts.
- Do the same for each of those squares and so on recursively.
My recent pet project1, cul-de-sacs (threshold = 10 or less per):

Dayton got a bit cut off, unfortunately. Trust me though: it has plenty of sprawl! This image sort of gives you an idea how the process works.
Population density, based on 2010 census blocks (threshold = 100 people or less per):
Many more to come, I’m sure, now that I’ve written the script…