Free, simple office building w/ geometry-nodes and a question

Hey there, artists! I have made a neat Geo Nodes setup that generates a simple office building by dividing up a cube and extruding some faces inward to make a grid of holes in it.
Seems simple right? Well it would be if GN had a better selection system, but the majority of the work here went into selecting the right faces to extrude. I used this node setup:

I had to all of this so that I could make the office building any size I wanted.
The real meat is in this node group. The main GN tree just passes the values through the node as shown.

My question to you is this: I want to take that skyscraper group and instance it on points to make a city which is easy enough BUT I want to randomize the X, Y, Z etc of the skyscraper01 node for every instance, that way the buildings aren’t identical. How can I do this? I looked around and couldn’t find a way to do it.

So far the only way I know to do this is a workaround: duplicate the building object and make a ton skyscrapers with different X, Y, Z, Offset, etc. put them into a collection then do a collection info instancing with “pick instance” turned on, as usual. But that method is ultimately limiting.

Attached is the blend file that has all of this in it
bldgs4a.blend (4.3 MB)
I hope you find it useful!


Not sure if this is exactly what you are looking for, but you can select all of the points in a direction by taking the dot product of the face normal and a custom vector. This may help in reducing the tediousness of isolating the right faces.


As for the second question, I don’t believe it’s possible in the current system. We don’t have for loops or meta-geometry-fields yet.

1 Like

At the moment, the development of nodes is focused on fields and attributes.
Geometry and text are still related to variable size data, which is why editing tools are developing, but conceptually nothing is updated.
So for the time being, there is no way to work with geometry more complicated than with individual ones. Yes, it’s best to create 10 nodes, compute the geometry, and instantiate it.
Although in the future it will be developed much more, but for now we are here