Procedural Cities with Houdini and Python
This Houdini course covers a feature film approach to procedural city generation. It takes you from start to finish, building your knowledge of Python from the ground up, from elementary to advanced examples, and many other techniques along the way.
What you'll learn
With expectations in VFX ever increasing, everything needs to be bigger, better, and faster than ever before. Huge environments are no exception to this trend.
In this course, Procedural Cities with Houdini and Python, you will learn how to tackle the problem of generating vast CG cities, making use of Python and various Houdini techniques, while maintaining artist control every step of the way.
First, you will be introduced to Python itself, and where and how it can be used in Houdini.
Next, you will learn how to populate a city plan with buildings of various types, block by block, and how to automate this using Python.
Finally, Python is again used to do the heavy lifting on the skyline, building a tool that ensures artist control over the height of buildings.
You will use Python to:
- Import files from disk
- Read from and write to files
- Keep track of what the set-up is doing
- Build node networks automatically
- Develop the technology required to make this city generator work internally
Table of contents
- Module Introduction 3m
- The City Blocks 6m
- The City Blocks - Creating Attributes with Python 1 6m
- The City Blocks - Creating Attributes with Python 2 5m
- The City Blocks - Geometry Packing 3m
- The City Blocks - Retrieving And Setting Position 5m
- Importing Buildings - Naming Conventions 5m
- Importing Buildings - Listing Files in a Folder 4m
- Importing Buildings - Blocking out the Code 4m
- Importing Buildings - Adding and Setting Attributes 4m
- Importing Buildings - Setting an Expression 6m
- The Import Network - Connecting Multiple Inputs 4m
- Module Recap 2m
- Introducing the Module 2m
- Tweaking the System - 1 9m
- Tweaking the System - 2 5m
- Preparing for the Main Simulation - 1 7m
- Preparing for the Main Simulation - 2 7m
- Preparing for the Main Simulation - 3 7m
- The Main Simulation - 1 8m
- The Main Simulation - 2 6m
- A Single City Block Point Cloud 6m
- Module Recap 1m
- Module Introduction 1m
- Filling up the Open Spaces in the City Blocks - 1 7m
- Filling up the Open Spaces in the City Blocks - 2 5m
- Filling up the Open Spaces in the City Blocks - 3 7m
- Automating the Main Simulation with Python - 1 8m
- Automating the Main Simulation with Python - 2 6m
- Using the Wedge ROP and Writing to File with Python 7m
- Filtering and Importing Files with Python 9m
- The City Point Cloud 6m
- Module Recap 2m
- Module Introduction 1m
- Painting the Skyline - 1 5m
- Painting the Skyline - 2 8m
- The Skyline Code - Height Data 7m
- The Skyline Code - Preparing the Base Point Cloud 8m
- The Skyline Code - Point Positions 4m
- The Skyline Code - While Loop 6m
- The Skyline Code - The Building Sections 3m
- The Skyline Code - Placing the Buildings 7m
- The Skyline Code - Examining Your Code 7m
- The Final City 3m
- Module Recap 2m
- Final Result Presentation 2m
Course FAQ
Procedural city generation is the practice of creating 3d models of a city through a combination of human-generated assets and algorithms, combined with computer-generated randomness and processing power. We will be using small modular 3d buildings, perlin noise, and grid-based spawning.
The main advantage of using procedural generation techniques is that it allows the creation of 3d assets algorithmically as opposed to manually. This saves a lot of time and energy.
In this course you will learn a feature film approach to procedural city generation through:
- An introduction to Python for Houdini
- How to populate and automate a city plan
- Using Python for a skyline
- Building node networks automatically
- Developing the technology required for the city generator
- Much more
This course is for anyone who wants to learn how to do procedural city generation, whether for games, films, or other projects. It will be especially useful for VFX specialists.
If you have prior knowledge of or experience with Python or Houdini, that will be helpful, but is not necessarily required.