Global Edge Continuity - Release Candidate 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


1 Like

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 Global-Edge-Continuity

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!


@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:


@Rhino_Bulgaria @fares.boulamaali @sgreenawalt there were a few nasty bugs in 0.9.4 with refreshing, so I updated to 0.9.5-beta on package manager/food4rhino, I highly recommend to update to the newer version. Still there are some cases when the tool doesn’t properly update. Things can become pretty dense handling all the possible scenarios (history, undo, redo, commands that do and those that don’t change the id of the modified surface etc) so if you do encounter a repeatable issue, let me know.


I will try it out tomorrow. Thanks for the update! :slight_smile:

Hi Gijs, I installed this beta app, then when I tried to run it, but appears a message I attached below as rhino capture.
Thanks in advance.


Sorry about that, I will upload a version with an extended period shortly

1 Like

@jordi.rovira it’s uploaded (0.9.6) and extends the usage for another 25 days. I did not change anything other than the expiration date. There are still a few bugs in there that I would like to solve before releasing the final one, just need to find the right time and inspiration to do that. I hope it is of use, feedback is still welcome :slight_smile:

1 Like

Thank you Gijs,
I will let you know, if I see any bug.

Best plugin for Rhino… ever…

This is nothing short of amazing!

Thank you Gijs! :heart_eyes:


Thanks Rob, good to hear you like it :slight_smile:

I love it!

Finally, I can do fast manual tweaking of surfaces in Rhino and know exactly what I’m getting!

I started the project below in ICEM Surf but think I should be able to do it all in Rhino now. :+1:


Looks great! Let me know how it functions for you and if you have additional wishes regarding the tool.
I have some ideas myself as well and have already made the foundation for that in the current version, just not yet exposed. For example the possibility to monitor an edge at specific locations along the edge. Or output the report of the edges as a csv file.


Being able to monitor a specific area of a surface edge pair by adding an additional marker (or locking the single one in place) is a huge advantage.