top of page

Houdini Procedural City Building Generator


Houdini Procedural Buildings based on Mapbox node

This is an internship project from Hoyt Architects and it is made to create buildings from far sight in Unreal Engine 4. The project is inspired by Spider-man PS4 game and I used SOP network and VEX for the tool and it is optimized a lot to create buildings inside of Unreal Engine 4. The building modular kits modeling and material are made from Hoyt Architects. Music: https://www.bensound.com


Building Segmenting System


The first stage is all about segment and block out buildings. In this step, I made a segment system that allow you to choose which part of the map do you want to render. This system is made for optimization and not build whole city by accident. It is possible to build city at once, but you need a good computer to make it happen. Also, it creates boolean buildings based on attributes data. After this stage, only a few buildings left in the map.


The next stage is all about putting another block out box on top of randomly selected buildings. This stage is optional, but I got a request to make the randomly generated blocks to make interesting shapes. These nodes are randomly select which buildings are going to have second parts. If the building has a second part, I extrude a mesh from the ceiling and make it as a second building group. All the attributes and group processes are important for the last step.



Third step is all about the Level of Detail system. The system is all about moving tubes that define the LOD groups. I also put the color so that people can see which meshes are LOD0, LOD1,LOD2.


The last step is all about putting all the mod-kit pieces on the block out buildings. These stage is all about using attributes and groups information from previous stages and use them for adding mod-kit pieces. It is also the hardest step because it requires a lot of memories and uses all the information from previous nodes. If one of the information does not work on the top, the whole system can be broken here. Each network box represents mod-kit piece network like wall, ceiling, trims, etc and each mod-kit has different rules. For example, the wall mod-kit gets the information from block out primitives that does not face toward the top or the bottom. I used @N.y to defined the wall. After that, it calculates how many walls are there going to be and spawn them on the spot. After this step, I added vertex colors based on material attributes (shop_materialpath).

bottom of page