Procedural Parameters
Final Renders
Reference
I wanted to make a procedural building based on part of Montane Mansion in Hong Kong. I traveled to Hong Kong in 2018 and this was a really amazing place to see in real life and it was a lot of fun to recreate digitally.
![IMG_20181006_171147070.jpg](https://static.wixstatic.com/media/ce815b_6efffca3017843f49e0e08bfba2671f6~mv2.jpg/v1/fill/w_641,h_855,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/IMG_20181006_171147070.jpg)
![Hong Kong 1711 Part08-7.jpg](https://static.wixstatic.com/media/ce815b_1678836d00bc4ec4a4c6244e3cc2fb24~mv2.jpg/v1/fill/w_408,h_272,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/Hong%20Kong%201711%20Part08-7.jpg)
![hk sky2.jpg](https://static.wixstatic.com/media/ce815b_aa791c71332e445c9f4e7b9868af7215~mv2.jpg/v1/fill/w_415,h_311,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/hk%20sky2.jpg)
![street view.jpg](https://static.wixstatic.com/media/ce815b_c2aa40f50b0f4a90bbbebe7f0d974bf4~mv2.jpg/v1/fill/w_804,h_536,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/street%20view.jpg)
User Guide
Parameters
![Parameters.png](https://static.wixstatic.com/media/ce815b_38aa7e53054847fd8023c3dd7076b458~mv2.png/v1/fill/w_649,h_754,al_c,q_90,enc_avif,quality_auto/Parameters.png)
Parameter Descriptions
Number of Floors: Controls the number of floors above the ground floor.
Center Width: Controls the width (x-axis) of the center segment (not including the sides). It also controls the whole width of the building when the sides visibility is turned off.
Center Depth: Controls the depth (x-axis) of the center segment (not including the sides). It also controls the whole depth of the building when the sides visibility is turned off.
Wall Extrude Distance: Controls the distance that segments of the wall extrude from the main body of the building.
Random Color: Controls the random seed of the color applied to the extruded segments of the wall.
Window Side: Controls the width of the windows and the clothes racks on the walls.
Window Trim: Controls the thickness of the trim on the windows.
Horizontal Bar Height: Controls the height of the horizontal bar in the windows.
Number of Window Bars: Controls the number of bars dividing each window.
Garage Door Width: Controls the width of the garage doors on the bottom floor of the building.
Rooftop Density: Controls the density of the buildings on the roof.
Roof Seed: Controls the random placement of the buildings on the roof.
Rooftop Relax Radius: Controls how the buildings on the roof space themselves out.
Window Drying Racks: Lets the user turn on or off the visibility of the clothes drying racks on the walls.
Random Seed: Controls the random placement of the clothes drying racks on the walls.
Sides: Allows the user to hide the right and left sides of the building, leaving only the center (allowing for more variety and usability).
Side Width: Controls the width of the sides.
Side Depth: Controls the depth of the sides.
Rooftop Density Side: Controls the rooftop building density on the sides of the building.
Rooftop Seed Side: Controls the random placement of buildings on the roof of the sides.
Rooftop Relax Radius Side: Controls how the buildings on the side of the roof space themselves out.
Breakdown
Side Toggle Setup
I used a switch node controlled by a toggle on the top level building parameters to hide geometry. I wanted my building to have a higher level of customization, allowing the user to use it in more places.
![Screenshot (13).png](https://static.wixstatic.com/media/ce815b_5702726294724b23b1813e289a085701~mv2.png/v1/fill/w_861,h_465,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/Screenshot%20(13).png)
![Screenshot (23).jpg](https://static.wixstatic.com/media/ce815b_735c604d8d60429c9d92aa947cd52afc~mv2.jpg/v1/fill/w_864,h_351,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/Screenshot%20(23).jpg)
![Screenshot (21).jpg](https://static.wixstatic.com/media/ce815b_6f81bbe48aaa4a25a08cc9004de644ec~mv2.jpg/v1/fill/w_861,h_365,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/Screenshot%20(21).jpg)
Random Placement
I used the For-each loop to control random placement of geometry in a few places. I attached a switch node to a copy node in the For Each loop, which allowed the switch node to change its input for each iteration. That determined which geometry would be placed on which point. I used this same concept for the small huts on the roof, clothing racks under windows, and the color of the building extrusions.
![Screenshot (14).png](https://static.wixstatic.com/media/ce815b_4c03dbecf4d4484b96bbe2749cea43c9~mv2.png/v1/fill/w_848,h_571,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/Screenshot%20(14).png)