2
$\begingroup$

It seems there is no question about this yet.

So, how to make a Blender 4.0 Repeat Zone or Loop for Mesh Boolean? I mean, to have the boolean cubes, for example, to randomly change location and rotation and cut the main object at each iteration of the loop.

I know it's possible (but quite slow, 150 iterations = 14 seconds, but still) but don't know how, yet.

How to make even this work? It's not boolean, but it splits the geometry based on faces. But how to get it to accumulate the pieces?

enter image description here

(Blender 4.0 alpha)

$\endgroup$
4
  • $\begingroup$ Your question refers to an early alpha version, and thus should unfortunately have little relevance (things can still change). But are you sure you want to add looping to an already slow process? Mesh Boolean is anything but performant, and should rather be avoided in such a combination. Maybe there is another way to achieve your goal? $\endgroup$
    – quellenform
    Commented Jul 24, 2023 at 9:10
  • $\begingroup$ @quellenform yes! Would love to know an alternative method of course, yes! Can't think of any good ones, though $\endgroup$ Commented Jul 24, 2023 at 9:23
  • $\begingroup$ @quellenform Would it perhaps be possible to have a random position with a random rotation and everything from the position's local + side would become a new instance and on the minus - side would become another instance? And then this would be looped many times over? Something like this? $\endgroup$ Commented Jul 24, 2023 at 9:26
  • $\begingroup$ @quellenform I updated the question with a .blend about splitting the geometry based on faces, not boolean. Would this be something that you could solve? :) I can't make it work, even still $\endgroup$ Commented Jul 25, 2023 at 12:09

1 Answer 1

4
$\begingroup$

Blender 4.0

Convert each mesh island to a separate instance. Then pick a random instance (using a different seed on each frame), realize it, use Mesh Boolean: Difference with two randomly rotated cubes to cut, then again convert all mesh islands to separate instances and join with existing instances. Repeat.

Converting to Instances: [read the end to see B3.6 alternatives]

Result:

  • I used a torus instead of Suzanne because I was worried about Suzanne's eyes, which aren't manifold.
  • I used i instead of Scene Time: Frame to make it easy to convert the simulation zone to a repeat zone.
  • Since each island is an instance, moving those pieces around should be trivial:

Blender 3.6

This solution can be implemented in Blender 3.6 under a naive assumption a boolean operation has a limit to mesh islands created. At first it might seem intuitive cutting a single mesh island will create two islands, but unfortunately this is not the case:

Of course you can just consider (1), (2), (3) to be a single piece, if you don't care that now these visually 3 separate pieces will move in unison, magically glued together. Alternatively, you can replace the loop used with the chain of custom groups as I do here:

Realistically randomize Rubik's Cube

This will allow you to support up to some number of maximum pieces, which may start failing so late in the division process that you run into different problems earlier (performance), and so it might be a fair solution to the problem (well, for most geometries at least).

$\endgroup$
1
  • 1
    $\begingroup$ Wow! Thank you :) Tested it out with many types of objects and also tried it with Repeat Zone instead of simulation. Works quite well! - Of course needs a little preparation from the objects that are going to be splitted and not everything goes smoothly, but this is probably what the tools so far isn't meant for, even, I guess. So, fantastic all in all! :) $\endgroup$ Commented Jul 26, 2023 at 11:27

You must log in to answer this question.

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