I'm making a procedural building with geometry nodes where the walls are instanced on a generated profile from a grid and those instanced walls are being instanced vertically along a mesh line. While the 1st instance on points node is able to randomly pick mesh from a collection that contains more than 1 wall mesh, I can't find a way to randomize the walls being picked in the 2nd instance on points node which dictates the height of the building. I would also like to avoid using the realize instances node. Any help would be appreciated.

enter image description here

  • $\begingroup$ pls show us your nodes tree or upload blend file...thanks. $\endgroup$
    – user146132
    Commented Apr 13, 2022 at 12:10

1 Answer 1


Basically, you would only have to pass a random value when instantiating the objects in the individual floors, so that the objects from your collection are selected in different order.

What I do in this example:

  1. First I create a floor from single points of a subdivided quadrilateral curve.

  2. I multiply this floor with Instance on Points along a mesh line in the height and realize the points with Realize Instances (The Realize Instances node is used here only to achieve the points for instantiation, but not to transform the individual objects to be instantiated).

  3. Then I create a selection/mask with which I can separate the lowest floor from the upper floors.

  4. When instantiating the upper floors with the node Instance on Points, I select the objects from the collection using a random value.

    enter image description here

Here is the blend file:

  • 1
    $\begingroup$ I've tested it and it works quite well. $\endgroup$
    – Kenan Clay
    Commented Apr 13, 2022 at 13:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .