Mesh boolean is a garbage?

Hello,

Can someone explain me why “mesh boolean” is so slow and memory hog?

I’m using windows 10, 24-threads CPU with 128GB of RAM. The “mesh boolean” is using single thread and much of the RAM taking hours to execute.
Boolean operation is most basic feature I need to design my CAD models. When using Orca slicer I see almost no difference between Bambu Studio and both share same issue with boolean operation. When I run “mesh boolean” on an object having about 50 primitive parts (cubes and circles) and similar amount of negatives (also primitives), it consumes about 7% of my CPU (1 thread?) and memory consumption slowly grows to dozens of gigabytes. During that time UI remains unresponsive.


half an hour later (still doing “mesh boolean” and UI not responsive)

and even later

and 40GB :slight_smile:

I’m not sure this is an apples to apples comparison.

If we’re discussing a parametric CAD program such as Fusion360, Solidworks, FreeCAD, OnShape etc, the boolean functions in those programs are working on vector-based solid models(STEP, IGES, etc). In the slicer it is working on a mesh(STL files). The challenges between the two are very different.

A better example or test is to bring the model into something like Blender which can only operate on a mesh and then do a comparison.

1 Like

That’s a pitty that bambu studio remains unresponsive while “mesh boolean” is running.
I have no experience with the algorithms behind this - would be nice if this could use multiple threads (maybe not applicable?).
Thanks for a start point for the lecture. I could now search for mesh boolean vs the second approach.

Yeah, unfortunately the boolean feature still need more baking in the oven of software development. Bambu “borrowed” this from Orca who had it first. Orca I believe simply reconstituted original code that had been excluded when Bambu Studio was forked from Prusa and Cura Slicer. The original source is a bit obscure to me. Nevertheless, it is in my view still “experimental” code and has lots of bugs in it… Nevertheless, it has its uses.

“Borrowed”… I see no difference between Orca and Bambu. Yet another argument why it might not be the best idea to buy bambu :confused:

It’s still insanely slow:

Been grinding away on it for over 10 minutes. It’s warning about too many triangles as a possible cause for slowing down.

Since the bottleneck is GPU, apparently I either find a way to use fewer triangles, or else I need a better GPU.

At this rate it’s going to be literally multiple hours to union the last four mouse ears using mesh boolean. Ouch. Bambu needs to hire some real computer scientists to speed up their algorithm.

I rebooted prior to running the mesh union, so up-time is fairly close to execution time.

The progress bar just seems to keep getting slower and slower.

I gave up and ran simplify. Apparently it has more than 11 million triangles.

MS 3D Builder is a pretty good quick boolean combiner if you give up. Full resolution on export too, unlike tinkercad’s triangle crushing machine

Correct me if I’m wrong but I’m pretty sure this is what Bambu Studio uses for mesh fixes/combination.

1 Like

That is correct. The windows intrinsic function that is used to simplify a 3D mesh is the same OS library that both 3D Builder and BS and ORCA use.

If one want to try something else, Meshmixer is still available for free but is no longer update. It has a simplify feature that uses its own libraries.

I should also now add that FreeCAD 1.0 is now a decent contender for manipulating geometries into solids. It has been my Go-to utility to convert STLs to STEP files where other utilities online have choked. But be warned, a 260,000 triangle conversion can take 25 minutes and you might believe the program had crashed because there is no on screen update. But is a tool that works when the other tools do not, at least so far it has.

1 Like

It was taking too long to complete, so I just went ahead and ran without the last four mouse ears:

Time will tell, but it might have been overkill anyway.

I’m doing these manual mouse ears rather than using the mouse ear tool because with the mouse ear tool, it won’t print supports on top of the mouse ears, whereas with this method it will, and that’s what I need.

You shouldn’t have to boolean mesh manual mouse ears? You just need to “merge” them into the model so the slicer treats everything as one object.

1 Like

Eureeka! That’s the solution. Thank you! I didn’t realize there was a difference, but evidently there is.

1 Like

Reporting back: Using the merge technique, I was able to merge gobs of mouse ears to the model:

undoubtedly way more than needed, but it’s doing a great job of pinning the print down to avoid warping, as well as provide well anchored support for the supports. Unlike the mesh union, the merge function happens very quickly.

I’ve been struggling for a while now getting this model to print without curling and other errors, and so far this brute force approach is working quite nicely.

Again, these are mouse ears generated using primitives (basically a 25mm cylinder of height 0.2mm) rather than the mouse ear tool, because otherwise the regular supports decimate the mouse ears and print directly to the plate. This way the supports print on top of the mouse ears, which really helps a lot at locking down the print.

So, if someday you’re desperate, maybe give it a try.

How do I simplify? I can’t figure out where it is

Select your model in the slicer and then right-click