? about Boolean subtract/difference tool (error?)

I’m either having an error or just simply don’t know enough about how to properly use the Boolean difference tool correctly. I’m getting an error message saying how Rhino 6 is unable to do the Boolean subtract/difference operation. It is only saying object do not intersect. But one box is inside the other… so how can this be true!? In any other CAD program that is how this tool works. So, am I doing something wrong or is there really an error/bug in Rhino3D version 6? I’ll attach a pic so you all can see what I’m talking about:

Hello - that is the designed behavior - an object is completely inside another, it does not intersect. Rhino’s normal behavior is not to make disjoint Breps, or polysurfaces. You can do this with a mesh however - if you convert both objects into meshes, flip (Dir command) the inner one so its normals are pointing inward, you can Join the two meshes into a single disjoint mesh with a void in the middle.


I do not want to use mesh because of it’s shortcomings compared with solid modeling. I aim to make this a game asset, so I’m guessing that solid models are what I want (at least as an end result). So, let me get this strait: Rhino 6 (as a surface based modeler) cannot Boolean subtract or Boolean difference one object inside another? Rhino3D cannot make a solid model of a hollow object such as a tennis ball!? I mean that with thickness (as a solid model). Is that correct??
Also, what I’m doing now is a space craft with interior connections (such as doors/windows) to the exterior… so I’m good right? I might have to rethink how I’m going about doing this, but my guess is that I must push some ‘closed solid polysurface’ out from the inside going through the surface (exterior surfaces of craft) outwards, ending outside the craft’s body. Did I guess right? …I’m sure a tennis ball is at least possible when surface modeling, instead of solid modeling… but then it’s not a game asset with thickness…

Game assets are meshes. What you use to create those meshes is another story. game assets typically doesn’t need the precision of Nurbs surfaces, so Mesh editing, or (any) SubD should do.

Rhino is a Surface modeller, mimicking solids by enclosing volumes with a surface. Thickness can also be mimicked by creating an inner surface. That’s it. Then extract the mesh and off you go (to the game engine).

In any case, SubD is probably an ideal tool for creating game assets.

// Rolf

1 Like

I was thinking about SubD… maybe. But, wanting to know about mesh thickness. Does a mesh have thickness or can it be thickened? On YouTube I see where AutoCAD first has to convert a mesh to a surface and then thicken that surface in order to get the mesh model to end up having thickness to it. So, technically it’s not a mesh anymore but a surface that ends up having thickness… But how about Blender? Google comes up with something about a modifier, but how exactly does that work? Simply wondering for meshes to be game assets if they have to have thickness or should have thickness and if a mesh has any thickness without conversion?

No. You create double surfaces (where need be).

But you should know that “solid”, an enclosed (hollow) volume, doesn’t really matter. The render will make a thickened (fake) piece of glass look like its solid glass. And what it looks like is what matters.

And for a comparison; A body panel created as a Nurbs surface for a BMW is “infinitely thin”. It has no thickness. But the real car has thickness. But does it matter what thickness the blueprint has as long as it LOOKS what it should look like?

Game engines use meshes, and if you want something to look “thick” you just make it look thick. It’s the look that matters.

// Rolf

your talking about double surfaces in Rhino? u must mean ‘closed solid polysurface’ right?

It can be, but it doesn’t need to be. Simply because what matters is the looks of it. In most cases the inside of (something) isn’t visible, so why bother about “thinkness”? When you need thickness, like glass, then just make it thicker (although it’s then a hollow in Mesh, and a polysurface in Nurbs, but who cares?).

Just draw the looks you need. That’s how it’s done.

// Rolf

I can tell that Rhino 6 is capable of either 2 ways to Boolean subtracting; either like this where one solid object is exactly planar with or otherwise up against another solid object (indentation in lower part of block, after using Boolean difference/subtract), OR sticking out or protruding out while having it’s other end(s) inside the other solid object. So, to have it solid and hollow I must obviously connect somewhere to the outside of the larger solid object that is being subtracted from. And, what I was saying about game assets is that if during FPS gameplay a player’s character is moving, then I’m noticing how many ‘clipping’ errors that Star Citizen is having… so thinking solid modeling will ensure your character will never get stuck in walls/floors/etc.

You can create a “disjoint solid” by selecting your concentric spheres and first running _NonManifoldMerge on them, followed by _CreateRegions on the result. That will yield you 2 objects, one will be your “thick” sphere and the other one will be the “core” (i.e. the inner sphere) which you can delete.

The problem with that is, I think, that the inner sphere will have its normals pointing the wrong way… that’s why I always suggest using meshes, which allow inward normals. Of course that may not matter here, just sayin’


Dunno, they look “normal” to me… :stuck_out_tongue_winking_eye:

That is, that they point outward from the volume enclosed by the brep, even though it’s ‘inward’ into the “void”… In any case Rhino seems to be happy with calling it a valid, closed polysurface.

1 Like

That looks right! Cool - I’ve always found different. Must have been taking a shortcut someplace - thanks.
Yep, I’d stopped at NonManifoldMerge, did not CreateRegions


<seems to have worked from me as well… not sure if it’s easy enough to use on the many many many… many different 3D objects I’ve got, but at least on simple primitive shapes it seems to work perfectly with no errors. The outer/bigger 3D object is considered a ‘closed solid polysurface’ while the inner/smaller 3D object is considered a ‘closed surface’. If I remember this post, I’ll let you guys know if this was a good enough solution for me. If not, then there is always trimming stuff forever until it gets to be a 'closed solid polysurface for ALL of the interior connected at once AND connected to the outside parts of my space craft. Wish me luck…