Personal project under the mentorship of Ian Shelanskey
Creative design and development of a procedural city generation tool in TouchDesigner
TouchDesigner
Blender
Having recently rewatched Blade Runner 2049, I was deeply inspired by the neo-noir aesthetic Denis Villeneuve had created for his futuristic Cyberpunk version of Los Angeles and I wanted to create a similar experience where the guest is flying over a large and densely-packed dystopian-looking city.
Modelling and visualisation of man-made systems such as large cities is a great challenge for computer graphics. Traditionally, creating an entire 3D city required an artist to manually place hundreds, if not thousands of models to create the look and feel they want. While this approach provides the artist with full control of how to generate their city, it requires a tremendous amount of skill and time and is not conducive to any big changes in the future. Since the cons outweigh the pros, artists have sought out ways to automate the process and create tools that aid in the generation of the cities.
There is a ton of research that has been done in this domain and the most popular of those is the 2001 paper on Procedural Modelling of Cities by Yoav I H Parish and Pascal Müller. There are also some existing tools available like SceneCity for Blender that allows you to create different types of cities and ArcGIS City Engine which is a standalone city design software. With this project in the Spring of 2022, I wanted to dive into the basics of what it takes to procedurally generate a city and have it run in a real-time software like TouchDesigner.
I have covered the development process for this project in a 4 part blog series, where in the first part I cover the point allocation algorithm I developed for this project. In the second and third part I cover the steps I had to take to optimize the project and in the final part, I cover the staggered asset loading algorithm I developed to assist with project startup.