Website powered by

Procedural Destroyed Building in Blender

This is a personal project that I have been thinking about doing for quite some time now. It now also serves as an example of what I usually work on in Blender, since most of my projects as of now are mainly tools and procedural setups that on their own don't hold up as a whole project.

Initially the problem was that the boolean operations in geometry nodes have been quite unreliable. The method I use in this setup does not use any booleans whatsoever, meaning its faster and not as prone to glitches.

In the first version I made the building fully procedural with pre-made wall elements. This meant that I could only create square buildings. While this technically worked, I was unhappy with the amount of custom shapes, not to even talk about the absolute chaos my geo-node tree was.
Then I decided to remake the setup from scratch making the node tree much more organized, added some features that the previous one lacked, and while the new version needs a bit more work upfront, it creates a much more beliveable output.

Overall the setup allows the user to control how many floors the building has, where the destruction is happening in what shape, and some material controls such as moss and leakage spread. And of course all the distribution aspects are editable along with the seed of the generation.

(The first version is available on my gumroad for free if you want to take a poke at it!)

V2 of the generator

V2 of the generator

V1 viewport

V1 viewport

V1 rendered view

V1 rendered view

V1 geo node tree

V1 geo node tree

Rubble Assets. These mostly remained the same for both projects. I wanted some low poly assets, so I decided to model and texture them myself.

Rubble Assets. These mostly remained the same for both projects. I wanted some low poly assets, so I decided to model and texture them myself.

For V2 the base shape of the building was modeled by hand such as this. This gives more control over the final shape.

For V2 the base shape of the building was modeled by hand such as this. This gives more control over the final shape.

The base model was then randomly triangulated utilizing geometry nodes. For this I used a delaunay triangualtion method. The parts are then arrayed to form a building.

The base model was then randomly triangulated utilizing geometry nodes. For this I used a delaunay triangualtion method. The parts are then arrayed to form a building.

The destruction is handeled by a displaced icosphere. Any geometry that falls inside is deleted. The edges close to the icosphere are displaced. After that the faces are extruded to give the walls some thickness, rebar and rubble are distributed along it.

The destruction is handeled by a displaced icosphere. Any geometry that falls inside is deleted. The edges close to the icosphere are displaced. After that the faces are extruded to give the walls some thickness, rebar and rubble are distributed along it.

Further rubble and vegetation are distributed along with some furniture.

Further rubble and vegetation are distributed along with some furniture.

The node setup for the V2 version. There were a lot of functions that I needed to use a lot, so I organized them into node groups so I could easily re use them, and so the node tree doesn't become cluttered.

The node setup for the V2 version. There were a lot of functions that I needed to use a lot, so I organized them into node groups so I could easily re use them, and so the node tree doesn't become cluttered.

The materials are a combination of images and procedural setups. This allows me to have global control on materials such as the spread of moss, leakage and grunge.

The materials are a combination of images and procedural setups. This allows me to have global control on materials such as the spread of moss, leakage and grunge.

Some further variations. I did not model any other base building shapes, but the generator should work the same with any shape.

Some further variations. I did not model any other base building shapes, but the generator should work the same with any shape.