I would like to have an equivalent of an array modifier, but with separate offsets. There are many answers but I found nothing which:

  • is non-destructive,
  • works with preceding boolean operators like "array" does,
  • works as an argument of another boolean operator, again, like "array" does.

An array has a fixed step, and thus I tried instancing on vertices. It seems, however, that the obtained instances do not exist for the boolean modifier (instancing details in the description attached below). Linked copy does not work either as I would like, because it re-applies the original "non-translated" modifiers to the copy after the copy is translated.

Here is an abstract example which shows the problem. Imagine that there is a cube and a torus has been carved in one of its sides with a boolean modifier "difference". Then, the carved cube is multiplied into 3 carved cubes with the array modifier. Finally, these three carved cubes are embossed into a large base, by using that base's boolean modifier "difference".

This all can be done in Blender in a non-destructive fashion, provided that the three carved cubes are equidistant. But I would like to vary the step between them: enter image description here

The question: how to obtain such a result as in the image, without destructive copying/destructive boolean operators?


This describes how I did the instancing to obtain a similar effect, and why it did not work:

I have a mesh P of few points, which is a parent of another mesh C. I set in P "instancing on vertices" and thus, when P made visible, see additional instances of C, one per point in P.

The problem is, I cannot use P or C as an argument of a boolean operator. So if I have another object B with a boolean modifier "union" and an argument of either P or C, B becomes a union with only C. The instances created by vertices of P are ignored in that case.


Since V2.93 you can indeed use boolean operations on instanced collections. That's a pretty big deal.

Say you have a collection containing some objects :

enter image description here

Now we want to instance this collection on the vertices of another mesh. In my case a cube.

enter image description here

Add a Geometry Nodes modifier, and simply plug a Point Instance node set to Collection and choose your starting collection.

enter image description here

Now you could add a Boolean geometry node inside your node tree, but I feel like the performance is severly lacking so we'll stick to a regular boolean modifier. Add your cutter object and set it as the target in your boolean modifier. Cut quality may vary depending on a lot of factors.

enter image description here enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.