Global Edge Continuity - beta now on packagemanager

I’ve been working on a global edge continuity tool lately and am looking for people that want to try it out and give me feedback for improvement. If you’re interested, please send me a pm. Sending a pm will not be a guarantee that you are sent the tool for evaluation, I will do this based on your given contributions on this forum, as I am looking for valuable feedback.

You can select a single surface (and it will detect surrounding surfaces) or select multiple surfaces and or polysurfaces. Extrusions and Subd objects can be selected too. In the latter case it will convert it on the fly to nurbs (with options packed and G2) so you can study the resulting deficiencies of the subd if it would be converted into a nurbs object.

In it’s current state this is what it looks like:
After running you get this view (all evaluated edges are displayed as well as any G0 errors found:
Then you can also choose to focus on just G1 issues and sort on biggest deviation like this:
I you want to display more than one type, it will highlight the lowest level deficiency like this:
Lowering or increasing the min value will work interactively:
When clicking on one of the table cells, it will zoom in on the edge in question and point at the place where the largest deviation is:
It can measure up to G2 level of deviations and will (in general) match up with Rhino’s values:

A subd might look this way. Notice that the colors and transparency of the feedback colors is customizable. As a by-product, this tool will point out where any star points in the model will end up.


added graphs:

ps: I noticed they are much faster than Rhino’s Edge Continuity graphs: @Pascal this seems to be a bug in Edge Continuity, it slows down my display considerably if I select multiple edge pairs, whereas in my tool it hardly influences display speed.

A unique feature compared to the native Edge Continuity tool is that it can also detect matching edge pairs even when the surface edges are not split:



The tool is gradually becoming more finalized. Surfaces can be added and removed, and it’s interactively changing the data. Next up is to make that last part more intelligent, because right now it will recalculate everything. For that to work I am currently rethinking some parts to make that possible.


star points I guess

1 Like

Thanks, corrected

1 Like

hi gijs

i have some suggestions for the global contunuity tool.
i find the interface just needs some modification to be easy to understand.
the visibility choices were organized in a single line, at first glance there are 5 words against 4 boxes.
That confused me at first.
if you can rearrange them that would be better

if you can also put the boxes (graph scale) and (samples) in the same place, it’s less confusing.

for G0, I see that there is only one box, whereas G1 and G2 have two boxes min and max.
I would have liked it to be the same for all three.

for the colors, I am confused.
if I understood correctly each colored box corresponds to a contunuity.
but to distinguish the contunuity out of tolerance I cannot find the appropriate name for this thing.

the choice (G0 fail) seems like the thing I’m looking for, but the name confuses me.
is this choice intended for the wrong continuity for all three choices ?.
a page (help) would be a good solution maybe,
but I understand that at this stage of development it is useless to write a help page, while the modifications are not yet finished.

I illustrated a photo of the modifications
there she is

my best remark is that the speed of the tool is great


I’ve uploaded a beta version on package manager. After installing, you can run it with the command

You can find the package by looking for stgGlobalEdgeContinuity
Make sure you have checked ‘prereleases’:

if you have any questions about the working of the plugin, ask them here.
Word of warning: I did my best to prevent this program to crash Rhino, but I cannot guarantee that I have caught every possible exception. So before using, save your work…

A few pointers about how it works:

  • The zoom slider zooms in on the point with the highest deviation, depending on the mode. (G0, G1, G2)

  • You can show (or hide) labels, graphs or both. when graphs or both labels and graphs are enabled, you can set the scale with the graph scale spinner.

  • Interactive mode means, any edit will make the results update (recommended to be left on)

  • G0 fail: if the edge is not within tolerance, it means it cannot be joined, this makes the model fail since you cannot get a water tight object. So this I gave the extra (alarming) color. If the edges form a water tight model, they get a gray color to indicate the model is closable. This you could call the base level.

  • there is no G0 max setting. The max is hard coded to 0.5 units to make the edge matching algorithm possible.

  • Next is G1: you set a tolerance and then you indicate what your maximum is to consider edges to be included in the search. For example, a 90 degree angle is not a fail, it is intended, so with the max setting you can filter out any edge that you don’t want to include in the search for ‘faulty’ G1 edges.

  • Once an edge has reached G1 level it becomes the G1 color and then it can be ‘promoted’ to G2 level if it also reaches the G2 tolerance. Again here you can filter out edges to be included in the search, because in general edges that are G1 due to a fillet, will have quite a high G2 abs. value and you want to be able to filter these out. The filtering happens if the ‘All’ checkbox is disabled.

Special thanks to @Rhino_Bulgaria for your input and feedback and thanks to @fares.boulamaali for the additional feedback and suggestions for improvement to the UI.


It’s a great analysis tool that I combine with Rhino’s own “Edge continuity” tool (both have their strengths) and so far it’s quite stable and I haven’t experienced any crash nor any major performance issue. :slight_smile: Also, thank you for changing the edge colours to ones that are easier to distinguish by colour-blind people!

1 Like

@Rhino_Bulgaria @fares.boulamaali @sgreenawalt and others, version 0.9.4-beta is now on PackageManager and Food4Rhino. Mainly bug fixes and extended expiration date. The previously announced ‘fast update when point editing’ was broken in previous beta’s and should now work again, meaning point editing will give you a more interactive experience (especially when you have a large amount of surfaces that are active in the tool).
Added in this update is a min and max deviation for the selected edge pair: