See the blog post:
Processing: Square City