Urban Planning using Generative Adversarial Networks
While working as urban planner the tasks can be divided by routine (manual) side of work, which contains some analysis, drawing, calculating, and creative, which contains making concepts of a new parts of area, districts, cities. It is pretty easy to imagine how to write a program for doing routine stuff, but it is hard to write a program for tasks that require creative work such as making concepts. The purpose of this project was to create a tool for urban planners which can allow them to create concepts with much more ease.
Dataset
There are only so many examples of modern residential areas around the world. Therefore, in order to create a dataset, I used Grasshopper (a plugin for Rhinoceros 3D), which allows to write your own scripts for algorithmic design.
An example of a residential area generated by Grasshopper
Using the Grasshopper algorithm 10000 images were generated and split by two in order to use in Pix2Pix GAN.
Samples of X and Y pictures used in training
Training
In this project a Pix2Pix GAN was used. It allows to send an image as an input and receive another image as an output. Reminding the task, our goal is to send an image of different functional zones and receive building layouts. With that said, Pix2pix is the best choice.
Test predict
We can clearly see how it was able to detect the key principles I made while creating algorithm in Grasshopper: it draws buildings so the courtyard is always open either to park or south, courtyards are mostly closed from the road, the buildings are perfectly aligned.
Prediction
The planning quality of generated areas is poor, so let’s see how it can deal with something more likely to be a part of area.
Fictional area
The opportunity to generate several options with ease opens up a lot of doors for experimenting with creating various concepts. With that in mind, we can feel free to change the direction of roads, parks, functional zones, and almost instantly get a new concept.
Various sketches can be done in seconds