Geometry nodes: address discrete parts of geometry individually?

Hi folks,

This is probably really simple to do and i’m not quite sure to express it, but here goes:

In the image and attached blend file you see i’ve created a number of separate objects by combining two meshes and performing a Boolean operation on them.

What i’m left with is twelve thin boxes, stacked, with space in between.

My question is: is there a way (using geo nodes) to take each of these separate 12 meshes and perform an operation on them, like move each one individually and randomly (by a small amount) in the X/Y axis?

So i guess i would need a node that takes the geometry input, works out how many discrete parts there are and lets me address them individually.

Any ideas?


boolean.blend (842.2 KB)

Hi, there’s the mesh island node

Thanks! … i tried it and i can’t get it to do much, other than delete 11 of the 12 boxes if i plug it into a “delete geometry” node. But i guess that shows it’s working.

Any idea how i incorporate it into my blend file in order to move the 12 boxes randomly?

If someone could explain, I’ll make a youtube film explaining it so others can also benefit.

here is an entirely different way to do what you have here:

This keeps everything as instances and avoids the mesh boolean node (which kills performance)

the important lesson is using the index to drive a noise texture, which then transforms the instances

1 Like

If you must use booleans, or you have a mesh with multiple bodies from some other operation, you can do this:

as @Hadriscus mentioned, the mesh island node is your friend here

1 Like

Many thanks, i made a youtube film for any noobs like myself to get this working: