Booleans and why do they fail?

Recently I’ve begun using Hard Ops and Decal Machine

I’ve noticed if an operations fails in one, it will fail in the other.

So, contrary to the video’s put out by hard ops it’s not a bug with the addon.

There must be some way to diagnose what is happening.

In many cases,I can see it has failed just because of the faces of the cut object, I do not need
to remove the pieces to check the cut.
In other cases, the object being cut will disappear.

Is there a way to diagnose these problems by your result??

Short answer: the booleans in blender don’t always work and this will always be the case with the internal code that is currently used to perform booleans. It’s because of math and the way numbers work in computers.

Longer answer: values in blender like the XYZ position of a vertex are stored as floating point numbers which means they are essentially scientific notation approximations of actual decimal numbers. 3D boolean operations rely on calculating which parts of one object are in front of or behind a plane or face. Since positions of vertices are approximations it can sometimes be hard or impossible to determine if a given point is behind or in front of a plane. This results in degenerate situations where the boolean operation fails. There are other tools that have more precise boolean operations but they have a trade off which is that the operations take much more time. They take more time because those applications use infinite precision numbers instead of floating point numbers, but those numbers are harder to work with and slower to compute answers.

the really long answer: read articles on computational geometry, numerically robust CSG or check out this github project’s readme for more info

So, the short answer should be “just fiddle with it until it works” by changing location/size/etc.
I was hoping for a practical answer. such as look from an orthographic view for said vertices lining up. Oh well.


Well, there are a few “classic” modeling mistakes that will cause Booleans to fail…

In short: Booleans are supposed to deal with interactions of solid objects. So, make sure the normals of all concerned objects are consistent and pointing in the right direction and all objects are manifold. Make also sure you don’t have unapplied (or even negative) scale. Make sure you don’t have floating or doubled geometry.

Upload an example .blend file of one of those failing Booleans so we can see what we’re dealing with.

Sorry, that was an annoyingly unhelpful answer. Things like coincident faces (faces that perfectly overlap) can be a problem as well as the issues of manifold-ness mentioned by IkariShinji. You can check if a mesh is manifold by tabbing into edit mode on that mesh, deselecting all verts, then press Shift-Ctrl-Alt-M to select all non-manifold verts. If no verts are selected you are golden. To make normals consistant, select all verts then press Ctrl-N.

sometimes, just moving one of the boolean operands (meshes) by a very small amount can fix the boolean operation. for instance translate it in the x,y, or z direction .001 units.