Building Facade.gh (17.1 KB)
Solid difference component in grasshopper partly fails, but when baking and performing the action in rhino it succeeds. Any insights? Im going insane
Building Facade.gh (17.1 KB)
Solid difference component in grasshopper partly fails, but when baking and performing the action in rhino it succeeds. Any insights? Im going insane
Can you tell in which Rhino version you’re working?
This way we can diagnose the Brep booleans better.
Reported at: RH-98363
Thanks!
Giulio
--
Giulio Piacentino
for Robert McNeel & Associates
Can’t see anything without LunchBox (Quad Panels).
@piac ,
The grasshopper file posted behaves differently in R8 and the Beta. In R8 the extrusions are placed inside the tower; in R9 they are outside it:
Note that this is different from the error the O.P. posted.
No changes made to the GH file.
R8 is 8.35.26237.11001, 2026-08-25.
Beta is 9.0.26244.12303, 01/09/2026.
Thanks, RH-98368 reported
I attempted boolean difference in both Rhino9 beta and Rhino8 and the problem occurs in both versions.
Also offset srf seems to flip sides in rhino9
It occurs in both rhino 8 and 9 beta
Building Facade Internalised.gh (130.4 KB)
Here i have internalised the breps, no need to install lunchbox
The issue still occurs in both rhino8 and rhino9 beta
Taking the R9 beta option. If I bake Brep A and Brep B into Rhino and use Boolean Difference there, the result looks like this:
If I bake Result into Rhino, it looks like this:
As far as I can make out, the two outcomes are identical. In each case there are 72 recesses in the tower. The similarity is further supported by having identical volumes:
How do your outcomes differ from these?
Regards
Jeremy
Hi, the issue is not with the rhino version but with grasshopper not performing solid difference.
Ditto EEf’s result. Running Rhino8 on a Win11 Pro C the internalized parts work OK. And I didn’t change anything in the file.
I just demonstrated that grasshopper performs exactly the same solid difference as Rhino does. If you are getting a different outcome from the same simple data you need to start by showing us where your outcome differs.
Hi, after some investigating i found out it was a unit tolerance issue which caused grasshopper to think there was a non manifold edge, but it is a bit strange that grasshopper fails the solid difference but rhino succeeds (Tested in RHINO 8)
![]()
Edit: I marked this as the “solution” because I am fairly confident it was a units tolerance issue (0.01 - 0.0001) and having low tolerances would fix the issue but I am not sure as to why there is a difference between rhino and grasshopper in the first place, it might be a floating point issue or something weird when it comes to calculating tolerances between grasshopper and rhino.
Setting Rhino tolerance to 0.01 causes Grasshopper to create a non-manifold edge. I suspect Grasshopper stops subtracting geometry at that point, leaving the boolean visibly unfinished. Whereas that tolerance also causes Rhino to create a non-manifold edge, but the difference is that Rhino carries on creating the geometry (and in the process creates two more non-manifold edges) so it looks right but it isn’t actually a closed polysurface (as you will see in the command line if you select it). So both Grasshopper and Rhino are failing, but the failure is much more obvious in Grasshopper.
With a tolerance of 0.001 there is sufficient distance between the subtracting breps that the issue of non-manifold edges doesn’t arise - but it absolutely could with different geometry where the gap is 1/10 of what you have here.
So the issue is not about tolerance but rather designing objects so that non-manifold edges can’t arise.
HTH
Jeremy
This is correct, thank you Jeremy.
I think there’s a deeper issue at play here. I investigated why there’s a change in the two different versions (8 vs 9) and I think I know why but I need to discuss the issue further with one of the other developers who is currently out of town. So this is still under investigation but I “think” I know why there are different behaviors showing up. Figuring out a proper fix is another story but it’s something we’re looking into.
Thank you Andy
I’ve found this many times, that the same operation has different success rates depending on whether you try it in Rhino, Grasshopper and pure RhinoCommon in your own app.