Page MenuHome

Boolean modifier mangles the mesh
Closed, DuplicatePublic


System Information
Operating system and graphics card

Windows 10
NVidia GeForce GTX 1060
MSi Dominator GT62VR laptop

Blender Version
Broken: (example: 2.69.7 4b206af, see splash screen)

2.78a, 2.79, blender-2.79.0-git.a8f11f5-windows64

Worked: (optional)

When performing a boolean operation, sometimes it drops faces, creates vertices where there should be none, and generally mangles the output mesh. I was able to reproduce one of the problems with a very simple test scene. In this test scene, there is a box cut out of a triangular box object. The cutout looks successful as far as vertices go, but the inside face is not filled so it creates non-manifold edges.

Exact steps for others to reproduce the error
Based on a (as simple as possible) attached .blend file with minimum amount of steps

The object "InfillNegative" has a Boolean Difference modifier for the hideen "ToeCutout" object. There are two missing faces where the "ToeCutout" object has been subtracted, leaving a non-manifold "InfillNegative" object.



Event Timeline

Sergey Sharybin (sergey) triaged this task as Confirmed, Medium priority.

There are some degenerated faces in your operand. Removing doubles cleans up a mesh and helps boolean to operate properly.

@Campbell Barton (campbellbarton), apparently, Carve handles such situation. Maybe we can tweak BMesh to deal with this as well?


I tried to make that example as simple as possible but missed the duplicated vertices in the difference object. I have a more complicated example of the operator failing. In this case I cannot find duplicate vertices or non-manifold edges. The mesh is very messy, but it is the result of another boolean operation from another scene (which I cut up to narrow it down as simple as I can). Let me know if you'd like the original scene (which contains multiple boolean operations).

Thank you,

In my last example, I just found that one vertex seems to be causing the issue (highlighted in this attached screenshot). It appears to create a face that crashes through another face. Moving or removing that vertex seems to cause the boolean operation to succeed.

The second example is fixed in daily builds. Zero area issue is known, so closing as duplicate.

Sorry, I didn't try the new example with the daily build. Thank you!