Blender3D - Creating a procedural Building with Blender 2.93 Geometry Nodes (TUTORIAL PART2)

Decor Design 3D
20 followers
Sep 21, 2025
Hi guys, welcome back to my channel, I'm Chong.
Today I'm going to continue the artwork by duplicate another tree wall,
then link it together and add a roof.
So without further ado, let's get started.
So in order to duplicate another wall,
press Shift A and add a Transform node.
Add after the Joint Geometry node.
Then select the Transform node and press Shift D to duplicate.
Then select the Joint Geometry, press Shift D again to duplicate it
and put before the group output.
And then connect it.
And now we have done duplicate the wall, but currently is overlapping together
because if we refer to both of the Transform node,
both of the wall is in the same position.
And now select the Transform node below, then adjust the Y to split it.
So let me explain a little bit about this.
The first Transform node here is actually controlling the first wall
we created in the last video.
And the second Transform node here is controlling the second wall we just duplicate.
And now we want to make the second wall facing another side.
So select the Transform node below in the rotation section,
adjust the Z-axis to 180 degree.
Okay, then next we want to duplicate another two wall facing to the X-axis.
So jump out until we can see all the node.
Select everything from the group input to the Joint Geometry
and then press Shift D to duplicate it.
Move the group output to the center
and then press Shift A and add a Joint Geometry.
Add it before the group output.
And then connect the Joint Geometry below to the Joint Geometry before group output.
That means now we are joining four side of wall together.
Then now select the Transform node we duplicate just now.
In the rotation section, rotate the Z-axis 90 degree.
Then we do the same thing for another side of wall.
Rotate it minus 90 degree.
Make it facing another side.
And now we can start to adjust four of the Transform node here
to put four side of wall together.
Okay, now we have put it together.
And previously we already set up the properties for width and height.
And now we need to add another properties for length
so that we can adjust the length of the wall that facing at the X-axis.
So now go to the group input at the very beginning of the node tree.
And then disconnect everything that connect to width.
Connect the vertices X to the empty dot in the group input.
Then connect the vertices X from the group input to the Math node.
Then connect it to the size X.
And then we go to the group tab.
Select the vertices X and rename it length.
And now we need to go to the group input here.
The group input that connect to the attribute compare node for pillar.
For this pillar.
So we want this.
And then disconnect the width.
And then connect the value from the Math node to the length.
And now we can try to play around with the properties for width, height and length.
And now we can see when we adjust the width, height and length,
the another side of wall is not moving together.
For example, when we try to adjust the width,
the wall that facing to X-axis supposed need to be moved
and sticking together at the edge of another wall.
So in order to fix this issue,
go to the transform node for the wall that facing at X-axis.
If you not sure which wall you are selecting,
you can select the transform node and press M to mute it.
So you will know what you are selecting.
Okay, before we continue, let me adjust the width and length to stick it together.
So we won't get confused later.
And then now we need to make it when we adjust the width.
At the same time, we want this wall to auto adjust the position at X-axis as well.
So that when we adjust the width,
this wall will always stick together with the wall beside.
Move this beside so we have more space.
Okay, now press Shift A and add a combine XYZ.
And then we need to copy all the value in the translation section here to the combine XYZ.
Then connect it.
And then press Shift A and add a group input.
And then we connect the width to the X-axis in combine XYZ.
And then we can try to adjust the width and see.
So now you can see the more we adjust the width, the further the wall move away.
The position of the wall is currently 2 times faster than the width.
So in order to fix this issue, we need to add a math node before the combine XYZ.
So press Shift A, go to utilities and add a math node.
Change the function to divide and change the value to 2.
So we want to divide 2.
And now we try to adjust the width again.
And we can see now the wall is moving together in the same speed with the width.
But the wall is still not sticking together.
So to fix this issue, we need to duplicate the math node.
Change the function to add.
And we can start to adjust the add value here until the wall stick together.
And now try to adjust the width again.
Okay now it stick together perfectly.
And next we want to do the exactly same thing for the other 3 sides of wall.
Okay now select the transform node for another side of wall in X-axis.
You can try to select the transform node and double press M to check it.
So you know what you are selecting.
Select 3 of the node here, the combine XYZ and the math node.
Press Shift Ctrl D to duplicate it.
Make sure the width in the group input still connected with the math node.
And then connect the combine XYZ node to the transform node.
And now you can see the wall have reflect to the opposite position.
To reflect it back to the correct position, we need to duplicate the math node again.
And put it before add.
Then change the function to multiply.
Change the value to minus 1.
So that's mean we are using multiply minus 1 to reflect to the opposite position.
Then only we adjust the add node until the wall stick together.
And now let's try to adjust the width again.
Okay now when we adjust the width, both of the wall is sticking together.
And next we want to do the same thing for the length as well.
So select the combine XYZ together with the math node and the group input.
Press Shift D to duplicate it and move it above.
Move this beside so we have more space.
And then disconnect everything that connect to width.
Connect the length to both of the math node.
Connect the math node to Y-axis instead of X-axis.
Because we need the length to affect the position at Y-axis.
When we adjust the length, we want it to affect the position of this wall in Y-axis.
Connect this to Y-axis as well.
So before we connect the combine XYZ to the transform node.
Please remember to copy the translation value here to the combine XYZ.
So copy the translation value in the transform node below to this combine XYZ.
And copy this transform node to this combine XYZ.
And then connect it.
And now we can use the add math node to adjust until the wall stick together.
And same for this as well.
Okay now everything is stick together.
Then we try to adjust the length again.
And now it stick together.
And next we want to add a roof to the building.
So go to the group output.
Duplicate the joint geometry.
And put it before group output.
Press Shift A, go to mesh primitive and add a grid.
Connect it to joint geometry.
This is the grid we just added.
So now I want to move it to the top of the building here.
So we are easy to see it.
Press Shift A and add a transform node.
Then adjust it.
Just simply put it here first.
And now I want to make it when I adjust the width or the length of the building.
I want the size of the grid to follow the width and length of the building.
So that it will cover properly on the top of the building.
So now in the geometry node editor, press Shift A and add a group input.
Connect the width to the vertices X and connect the length to the vertices Y.
Press Shift A again, go to utilities and add a math node.
Change the function to subtract.
And change the value to 1.
Duplicate it.
Then connect the width to the math node and connect it to size X.
Then connect the length to the math node.
And connect it to size Y.
So now it cover on the top now.
And now if we try to play with the width and length.
You will notice the roof is now covered properly on the top of the building.
But if we adjust the height, you will notice the height is still not linked together yet.
So in order to link it, press Shift A and add a combine XYZ.
Copy the translation value from the transform node to the combine XYZ.
Connect it.
And then connect the height from the group input to the Z-axis in combine XYZ.
And then we can move this beside so we have more space.
And then duplicate the math node and put it before the combine XYZ.
Change the function to divide.
And change the value to 2.
Duplicate another math node again and put it before combine XYZ.
Change the function to add.
And we can adjust the roof until the height we want using the add node.
And now we adjust the height again.
And you can see the roof is stick properly at the top of the building.
Okay next, I actually want to add our instant object to the modifier properties here.
So next time if we need to change the instant object,
we don't have to go back to the node tree again.
So now let's go back to our point instant node.
So 4 of this is our point instant node.
Press Shift A and add a group input.
Connect the instant object to the group input.
So select the point instant.
Double press M to check what we are selecting.
Then go to the group tab, select the object and rename it to roof corner.
And then we are going to do the same thing for the other 3 objects as well.
So connect it to group input.
Go to group tab, select the object.
And rename it pillar.
Connect the collection to the group input.
Go to group tab, rename it ground floor.
Connect it.
Select the object and rename it to roof.
And now we need to do the same thing for the another side of wall as well.
Here.
So duplicate the group input.
And then connect it.
And now we have done the point instant part.
Next time when we need to change the instant object,
we can straight away change it in the modifier properties.
Okay next, not sure if you notice,
when we adjust the height of the building,
the building is scaled from the center into both direction.
So in order to fix this issue in the 3D viewport,
press Shift A and add a plane.
So we add a floor to our scene and we want our building to stick on the floor.
Let's select this and move it beside.
So go back to the geometry node editor.
Go to the group output node.
Duplicate 4 of the node here from divide math node to the transform node.
Select it.
And press Shift D to duplicate it.
And then drag the transform node to put before the group output.
Connect it.
In the combine XYZ node, change the X and Y axis to 0.
And then press Shift A again and add a group input.
Connect the height to divide.
And then we can adjust the add value here until our building touch the floor.
And then in the modifier properties, we try to adjust the height again.
And now if you notice, the building is not going into both direction anymore.
Okay, now we have finished the building.
In the next video, I'm going to put on the color and finish the scene.
So if you like my video, please subscribe.
And see you next week.
Bye.
