Potential bug when using BooleanDifference

Dear McNeel Team,

I have attached 2 Rhino files, one with two objects for which I have to perform Boolean Difference, and the other one with the result that I get, which is clearly not the expected one.

ObjectsForBooleanDifference.3dm(505.6 KB)

ResultBooleanDifference.3dm(516.8 KB)

For my application this is pretty catastrophic since I am performing thousands of these operations on batch using RhinoScript, and Rhino does not give an error but behaves as if the output was valid. Unfortunately, manual checks are not an option here.

I have tried lowering the tolerance, and this helps sometimes, but creates even more equivalent errors elsewhere.

I would be grateful if someone could look at this issue soon.


Hi Mathias,
it seems to work with the tolerance set to 0.0001 in this case.

Hi violine,

thanks, I noticed that, too. But as I wrote, I am repeating this operation thousands of times, and I haven’t found a tolerance setting which avoids this problem for all cases. Regardless, Rhino should give an error if it happens, otherwise I can never be sure that my output data is valid.


Yes, it is completely true, it should recognize the error and autochange the tolerance to complete the task.

Hmmm- the radius on those ridges is .00025. You’d need to model this from the start at .00001 or so to even have a chance, I would think, of this working consistently.


Hey Pascal,

thanks for your input. I am currently working with this precision, this didn’t solve it. And again, I can fully accept that the operation will fail in some cases when the geometry is not modeled well enough, I just need Rhino to give me an error message instead of invalid output.