I wanted to create a follow up post to document some of the work that went into creating a geometry node project of this scale.
The tool allows for a lot of freedom for the user to customise a procedural showroom interior of their liking, with 80+ customisation parameters per room, and the ability to have multiple different rooms, connected by procedurally generated tunnels. The result of this is seeminlgy endless possibilities, some of which are demonstrated in the YouTube video in the original post.
To make such a complex setup manageable, I dedicated a lot of time to maintaining a neat and organised node tree, as well as making frequent use of node grouping to break the project into smaller chunks. This was also done to make revisiting the project in future a lot easier, as node groups would be easier to update or replace.
The primary tree contains 4 node groups: a rectangular room generator, a circular room generator, a staircase generator, and a tunnel generator. These 4 node groups are used multiple times to connect up to 5 different rooms (can choose rectangular or circular) that can be activated and/or edited individually.
Screenshot:
Next is the room generators. These also consist of various node groups, each dedicated to a different stage in the room construction or to extra details such as lights, blinds, floor platforms etc.
An example of this workflow being useful was during the development of a new room shape. To create the circular room I was able to use the rectangular room setup as a base and rework the node groups that needed changing.
Screenshots:
With the rooms in place, I needed a way to connect multiple floors with stairs. This Topic: "Z-Up Curve Tilt" NodeGroup for Blender 3.0 (Geometry Nodes) helped with the base for a spiral staircase setup, which I expanded to contain all the customisation options I wanted to include.
The staircase generator also produces a shape that can be used within the main tree as a boolean, to cut the correct hole for the stairs generated.
Screenshot:
Finally I created a tunnel generator that places a tunnel between 2 rooms at the shortest distance as well as cutting appropriate holes in the walls.
Screenshot:
That’s about it! I am not sure how many people will see this but I wanted to create the post anyway to document it online.
If you have any questions about certain elements or would like me to go into more detail about certain things, please don’t hesitate to ask. I would love to share some of what I have learnt!