Non-manifold problem : can't create the error!

I’m doing a demo on using the ‘Find Edges’ command and using it to define the non-manifold problem. The problem is that I have created a non-manifold edge, but Rhino does not recognize it as such.

From McNeel website / definition of Nonmanifold : Edges of polysurfaces or meshes that have more than two faces joined to a single edge are non-manifold. See pic.


My model meets these conditions, but I can’t get the command to recognize my crappy modelling!

Rhino file is also uploaded.
Non-manifold.3dm (95.2 KB)

hi Schultze, i guess this edge is not a single edge since its being shared by further closed faces. so basically 2 objects joined in one edge. if you explode it and join everything except that closed triangular surface it becomes non manifold.


Thanks for checking it out. I’m still not getting it to work.

  1. I hid your highlighted & closed triangular section at the end.
  2. I joined the remaining surfaces. [They will not join, unless you do it in two passes.]
  3. I then run the Find Edges command … and nothing is registering as non-manifold. Weird!

Rhino file attached.
Non-manifold 002.3dm (89.0 KB)

Well, when I open the file I see the three-srf join. But if I explode it, it will not rejoin. :tophat:

yes sorry i didnt see that it does not join. you have to use non manifold merge

edit: that means actually it also works on your initial surface after you explode the whole thing and use NonmanifoldMerge it then creates a non manifold edge so no need to delete what i suggested first. to simplify that you could just rotate 3 surfaces and merge them.

1 Like

Here is how I usually produce a non-manifold object:

  • Create 4 adjoining squares like in the attached
  • Extrude 2 diagonal squares to some height
  • Extrude the other two to a lower height
  • Select all the boxes and BooleanUnion.
  • Presto…

Non-Manifold.3dm (105.4 KB)


Extract the bottom right surface and delete it.
click on one of the remaining surfaces and you’ll see only two of the three surfaces that appear to be at that apparent nonmanifold edge are joined; not all three.
It is not a nonmanifold edge.

Because it isn’t a nonmanifold edge.
extract the three surfaces that are not near the common edge and delete them.
Pick a remaining surface and you’ll see that the edges are coincident but not joined and therefore not nonmanifold.

This is a nonmanifold edge:

Draw the larger box and the two smaller boxes embedded into the top.
BooleanDifference one small box from the larger.
Then the second small box to get a non-manifold edge.

If you try to Boolean both small boxes from the larger at the same time, V6 will bark at you and place a annotation Dot with an exclamation mark in it.
Select the Dot and it’s secondary text will tell you the intersection curve ends at a non-manifold edge, and fails.

1 Like

First of all, THANKS for the help and file. Nice!

I thought I was exactly matching the Rhino non-manifold definition and image. How did I screw up (in trying to make a mistake!)?

Edges of polysurfaces [or meshes] that have more than two faces joined to a single edge are non-manifold.

It now seems like this condition is pretty rare … but, I do see a fair amount of students with multiple surfaces on top of each other. I guess that is a separate error and not non-manifold.

It’s not as rare as I’d like it to be. It is almost always caused by a Boolean operation - as Rhino does not normally allow you to create one directly. Some of the results are indeed “valid” and legitimate - John’s and my methods produce the same “edges just touch” structure, just with a different order of operations. One can of course question whether these type of structures (with edges that touch over a 0 width area) are actually viable/buildable in the “real world”…

And then there are the other situations I often see where the original objects are just out of tolerance and Rhino leaves a surface “stuck” inside some seemingly valid solid after a Boolean op… Those are the ones that usually cause headaches.


Think of it as a segmented ribbon that bends around and touches itself then continues on.
In your example, only two surfaces were joined at a common edge down the length of the polysurface. A third surface edge had been positioned so it was coincident with the joined edge, but not actually joined to it into a non-manifold edge.

OK, that’s a better explanation than the ‘official’ Rhino definition. Thanks again, sir. I am using your cubes & Boolean example in my next lesson on the Analysis Tool → Show Edges.

By the way, if you or Helvetosaur would like a coupon for 90-days free at LinkedIn Learning /, just send me a message or email me and its yours! Three months is worth US $75.

Thanks for all your participation here, particularly with Vray. I recommend your training to new users almost daily.