Map Solutions
Method 1: Labs Lot Subdivision Node
Quick, convenient · Not realistic enough
I considered use Lot Subdivision to divide the grid and generate street blocks, but the map generated by this way was too simple, so I decided to grab the real world's data instead.
The nodes I used to generate it.
Method 2: Open Street Map (OSM) Data
More realistic and complicated · Data is not precise, need to process the raw data, repetitive work, time consuming
The streets I grabbed data from on Google Maps
Import OSM data into Houdini using OSM import node
Separate the roads and clean
Separate the buildings and clean
Nodes used
Process the Roads
Grab the edge of the roads using Boolean
Use Labs tools Building Generator Utility and Building from Patterns to place curbs on the edge of the road.
Use Copy to Points to place railings, trees and other street props. (The models will be replaced by high poly models later)
Use Group Transfer to transfer the points of the crossroads to the points of the road edges, and remove them.
The road signs face the correct directions, because Road Generator automatically sets the correct orientation along curves.
Make sure the street props don't overlap by removing the points too close to each other.
Building Solutions
Method 1: Use modular assets and Building from Patterns node
Quickly generate buildings · Less flexibility; some bugs in the tool, need to fix by hand
Here I grabbed the positions of the buildings, and wrote a wrangle to let the faces extrude for random levels.
Use Labs tools to set the modules of the first floor and the upper floors
Method 2: Make my own procedural building generator
High Flexibility · Time consuming
Adjust building shapes
Adjust floor levels
Nodes of the building generator
Subnet: GroundFloor
Subnet: Window
Subnet: Door