render 1 [x2500].jpg

Art-Directable Procedural Architecture

This project aims at creating an art-directable procedural modeling workflow for architecture by taking inspirations from architects' actual design process. Its goal is to provide a design productivity solution for creating massive environments while maintaining artist control.

The first phase of the project was researching into established practices of modularity, kit-bashing, and proceduralism. I looked at how procedural workflow was applied in production and took notes of what kind of controls artist would want. Then I developed a draft for a practical theory of art-directable procedural architecture.

My proposed theory was a multi-layered procedural workflow: Layer 1 includes rough sketches, floor plan and silhouette; Layer 2 includes structural elements defined by layer 1 bounding geometry; Layer 3 includes high-poly model instancing based on layer 2 elements.

The second phase of the project is about exploring the procedural modeling workflow in Houdini with Python scripting, in preparation to implement the theory developed earlier in upcoming phase 3.

 Layer 1: Rough ketches, floor plan and silhouette (blocks).

Layer 1: Rough ketches, floor plan and silhouette (blocks).

L1B1 [x1500].jpg
L1B2 [x1500].jpg
L1A2 [x1500].jpg
 Layer 2: Structural elements (walls, pillars, domes etc.) defined by layer 1 bounding geometry.

Layer 2: Structural elements (walls, pillars, domes etc.) defined by layer 1 bounding geometry.

L2A1 [x1500].jpg
L2A2 [x1500].jpg
L2B [x1500].jpg
L2C [x1500].jpg
 Layer 3: High-poly model instancing based on layer 2 structural elements.

Layer 3: High-poly model instancing based on layer 2 structural elements.

L3B2 [x1500].jpg
L3B1 [x1500].jpg
 Phase 2: Explore procedural workflow in Houdini.  Case study: Procedural city generation, with Houdini and Python. 3rd party art assets instanced on point clouds that was procedurallly laid out according to street map and zonal assignment.  Based on tutorial by FX TD Timothy Stam. With my own modification and improvements including: vegetation instancing on point clouds, more realistic building clustering, and building height variation on top of height map.

Phase 2: Explore procedural workflow in Houdini.

Case study: Procedural city generation, with Houdini and Python. 3rd party art assets instanced on point clouds that was procedurallly laid out according to street map and zonal assignment.

Based on tutorial by FX TD Timothy Stam. With my own modification and improvements including: vegetation instancing on point clouds, more realistic building clustering, and building height variation on top of height map.

render 1 [x1500].jpg
render 2 [x1500].jpg
 Artist hand-painted height map, used to infer skyline of high-rise building clusters.

Artist hand-painted height map, used to infer skyline of high-rise building clusters.

 Point cloud. Each point represents a house, a tree, or in case of stacked points, a section of a high-rise building. Heights of individual high-rise buildings are derived from the height map, but randomized within a range on per building bases. This is because the height map create "height plateaus", but realistically, two nearby buildings can vary a lot in heights.

Point cloud. Each point represents a house, a tree, or in case of stacked points, a section of a high-rise building. Heights of individual high-rise buildings are derived from the height map, but randomized within a range on per building bases. This is because the height map create "height plateaus", but realistically, two nearby buildings can vary a lot in heights.

 Bounding geometries. They are created based on the high-poly models that will be instanced on the point clouds. Bounding boxes are used in simulating building clusters within each city block. The arrangement of buildings and trees are based on rigid body simulations where forces and collision padding contribute to the desired positioning and density. 

Bounding geometries. They are created based on the high-poly models that will be instanced on the point clouds. Bounding boxes are used in simulating building clusters within each city block. The arrangement of buildings and trees are based on rigid body simulations where forces and collision padding contribute to the desired positioning and density.