Emil Guder dissected the Houdini Digital Asset (HDA) he set up to simulate the construction process of a customizable building.
Hi, my name is Emil Guder, I am currently working as a Procedural Artist at weltfern interactive, a Hamburg-based future tech company. On the side, I am studying Art & Animation at the SAE Institute. I started to develop an interest in art and design when I was a little kid. Back then, my parents would wake up early in the morning because I was already up and rummaging around in the huge box of Legos searching for the bricks I needed to build some random stuff I'd come up with the night before. Today, it feels like I am still doing the same thing, just using nodes instead of bricks.
During my time at weltfern, I got to work on a couple of cool projects. The one that stands out for me is the OZM Gallery. It was a famous street art gallery in my hometown Hamburg which was torn down in 2018. Before that happened though we did a scan of the entire building, capturing all the artwork in it and later converting the data into a 3D scene. Using a procedural workflow, we quickly got rid of all the things the scan failed to capture correctly and replaced them with HDAs. Nowadays, you can still visit the OZM digitally using a Virtual Reality Headset.
Konstruct: Simulated Architecture Project
The idea for the Konstruct project originated from some photographs of brutalist architecture. When it comes to design, I really appreciate minimalism, it fascinates me how you can create an impressive composition with just a few elements. That's probably the reason why I liked brutalist architecture so much. But I also didn't want to simply replicate a photograph. I wanted to try out something new and see how I could use today's technology and achieve something different than a photo. At that time, there was a construction site across from my dad's flat and every time I looked out of the window I could see the progress the workers had made. All this led me to the idea of developing a procedural construction process and combining it with the visuals of the brutalist photographs.
What Is HDA?
I will just pick up the Lego analogy to break down Houdini Digital Assets (HDAs) a little. Imagine a simple Lego house with a door, two windows, and a chimney. You are not quite satisfied with the design of this house though so you want to change the positions of the windows and also make the house a little taller. In order to achieve the desired result, you have to disassemble almost the whole house to reposition the window, then add some bricks for extra height and reassemble everything again. Eventually, you realize that you liked it better before and you gotta do the whole process again. Now, imagine the window would move to the desired position and the bricks would be added without you ever touching the house. This way, you could play with the design without having to disassemble and reassemble the whole thing every time. This would be a procedural workflow and it resembles the basics of how an HDA works. An HDA is a tool that lets you modify the outcome without actually changing the content. The strength of this approach is seen even better when the Lego house is not just made out of a couple but of thousands of bricks and has not just two but hundreds of windows that you want to reorganize.
Inside Houdini, everything works procedurally. However, there are a lot of different contexts with operators specialized for certain tasks. You can simply model objects in SOPs (Surface Operators), simulate an interaction between them in DOPs (Dynamic Operators) or create materials for them in SHOPs (Shader Operators). The list goes on for a little longer but I want to focus on the SOPs context for now. That is where I created this project.
Breaking Down the Construction
Before I could really work with the photographic reference, I had to understand how a construction process is set up. I started reading about different construction techniques and building frameworks. The one I found most interesting was the skeleton frame setup similar to the one of the Willis Tower (formerly known as Sears Tower). As follows, the main references for the construction itself were photographs of the Willis Tower construction taken between 1970 to 1973. I wanted to stay visually close to the photographs in terms of realism but at the same time keep the HDA as performant as possible. So I decided to not focus on unnecessary details but rather achieve a realistic image with the least geometry possible. Eventually, I was left with six essential pieces: steel beams, concrete coating, scaffold tubes, tube connectors, scaffold nets, and the facade for which I could start developing a visual style that would fit the brutalist theme.
Most of the time, when working in Houdini, you are working with points. My project isn't any different and my preferred way of dealing with points is an Attribute Wrangle and VEX. Writing VEX has become an essential part of my workflow as it is very versatile and applicable inside almost every Houdini context. For this project, one of the functions I have been using a lot was the simple if() function in combination with different methods to check for an attribute, meaning that if the point I'm checking has a certain attribute applied to do something with this point. This has helped me a lot in setting up the basic simulation. When it came to creating actual geometry data I still used a lot of VEX but I also relied on prefabricated nodes like the Sweep SOP, for example, when creating the scaffold tubes or the steel beams.
Logic Behind Simulation
Before starting to work on any HDA, I write down what the tool is supposed to do and which features it should inherit. With this in mind, I try to outline how the tool is gonna be set up and which parameters are needed.
This HDA revolves around one single slider that lets you control the progress of the entire construction process. Additionally, there is a variety of possible configurations ranging from the base layout of the building to the radius of the scaffold tubes.
During the 80s, they often used a skeleton frame to construct multi-storey buildings. These frameworks incorporate a network of connecting beams that support the interior of the building. At the base of such a skeleton, there are steel beams. In a later stage of the construction, the beams get a concrete coating on which the facade could be hung. The coating process required a scaffold for the workers to work on. The scaffold needed to be easily constructible and destructible as it moved higher with the progress of the construction.
As previously mentioned, the core of the simulation is points. The actual geometry gets copied to the points after the simulation takes place to ensure that the HDA stays as performant as possible. The tool starts by creating a simple base that acts as a layout for all the later steps. During the first construction phase, the tool simply creates and arranges points for the steel beams to be copied to.
The following phase consists of the scaffold getting placed and moving upwards as the construction progresses. For this to work, the tool iterates over every built floor and finds the highest one with a completed steel beam framework. The found floor gets used as an orientation for the scaffold. The latter extends across multiple floors and starts at the recently completed floor covering the floors below. In order for the scaffold to not simply teleport from one floor to the next one, the lowest scaffold floor is disassembled while the highest scaffold floor gets constructed. The tool checks the completion percentage of the floor above the current highest completed one and uses this number as a progress benchmark for the disassembling and reconstruction of the scaffold. This creates the illusion of an upwards climbing scaffold.
The third phase is pretty simple. It comprises the coating of the steel beam framework in concrete. For this to work properly, the tool simply finds the middle of the scaffold as well as the matching floor and applies the concrete coating to the steel beams.
The last phase is just as simple, the tool checks the highest concrete coated floor and places the facade accordingly with an offset.
The most difficult part of this project was definitely implementing completely new parameters later on in the process. As the setup grew more complex, I found it increasingly harder to navigate through the nodes and check if everything worked as expected. It's not only important to plan a complex HDA before starting but what's equally important is to keep the setup as clean as possible and label everything correctly over the course of the whole project. Even though I did both while working on this project, it started to get a little confusing at the end so there is some room for improvement.
In hindsight, there are two major improvements I would like to add to this project. The first thing would be to add randomness to the steel beam framework construction. At the moment, every floor framework is constructed in the same order somehow ruining the illusion. The second is also about adding randomness to the process. This time, I would add a random offset to the facade construction. Instead of every facade division being constructed on the same floor and then advancing to the next one, I would like them to be constructed on different floors to create a more irregular pattern.
Another idea could be to set up a more universal tool that also works on more organic objects. For this tool, I wouldn’t rely so heavily on architectural construction but choose a more general approach.