Understanding G0, G2 & G3 In Relation to Curvature Combs/Continuity


I am trying to understand how to make surfaces that do not have noticeable continuity breaks. I did this exercise to illustrate the issue I am having. These are all duplicate curves, the only difference being the continuity option chosen to blend the gap at the ‘elbow’ of the curve (ie. G0, G1, G2 etc.). This blend was done with the adjustable curve blend tool. This is how I have gone about attempting to make custom fillets between the nexus of 2 relatively flat curves in the past.

According to the curvature combs G0-G2 have noticeable dislocation of curve acceleration, which will be evident on the extruded surface. G3 is marginally better than G2 as it adds micro transitions in the curve of the comb to make it truly curve continuous. The only surface that I was able to create from these curves that didn’t have noticeable continuity breaks was the last one ‘G3 rebuilt’, which was the G3 curve duplicated then run through a ‘rebuild curve non uniform’ procedure. However this last option loses some of the original design intent as it rebuilds the curve and will further lose initial intent if the control points are moved to get rid of the negative curvature it created.

How does one go about creating seamless custom fillets between two curves/surfaces if G0-G3 create noticeable seams? Is it common practice to build everything in G3, rebuild the curves and then move control points to iron out the curve combs, before creating any surfaces?

Continuity.3dm (43.6 KB)

Thank You,

Hi Justin - you really need to boost the mesh accuracy on Zebra to see the smooth transition - it is there and smooth but very localized - your display shows a coarse mesh that will not pick this up

If you extrude as separate surfaces you don’t need quite so much analysis mesh.


The problem with continuity is, that it only partially tells you something about the quality of the whole shape. Technically, you might have a G3 in your example if you really zoom in, but this does not affect the visual quality at all. This topic is quite complex to answer in 5 sentences. But essentially, if one part of your shape does not already start accelerating into the more curved area, then it doesn’t make any sense to apply a G3 transition. In practice, a G2 continuity is visually totally sufficient for the majority of use-cases. On strongly curved areas a good G1 transition can even be better than a bad G2. The overall flow of the curvature is what matters, not the connection at the borders. (I did class A in automotive for some years, I do have seen and created many professional surface models).
What you definitely not want is the infliction point in your ‘rebuild’-G3. You want a curvature flow from low into high, back into low.


To get rid of the ‘W’ flow in your fillet, your curve must be properly constructed:


In addition to Pascal’s and Tom’s comments, you made the blend area short. For a more gradual blend with G1 or greater continuity increase the size of the blend area.

When using BlendCrv the “W” can be eliminated by adjustment of the control handles. While using BlendSrf Turn on Show curvature and experiment with moving the handles until you like the result.
Continuity_DC01.3dm (1.5 MB)

Hey Pascal,

Upping the grid quads was helpful. Thank you for the suggestion.


I had wondered about the ‘W’ shape in the curve combs, thanks for the insight. When you are using BlendSrf and it creates 2 or more adjustment curves on surface, is there a way to manipulate all the points that are parallel to each other simultaneously, to uniformly alter the surface across it’s entire distance? I have been clicking around on the BlendSrf handles with various modifier keys and have not found a way to grab more than one point at a time. Holding shift allows you to symmetrically change the points found on the same curve, but the other curves remain unchanged.

BlendSrf can have the sliders locked together. I don’t know a method to have the corresponding handles at different locations move together.


Thank you for the feedback, it’s helpful to learn how nuanced surfacing is.

I don’t understand why the G2 and G3 curvature combs show such abrupt jumps in the blend zone i.e. looking like a stair step rather than an accelerating ramp. Doesn’t using the G2 or G3 parameter in the ‘adjustable curve blend tool’ add enough control points on both ends of the blend curve to transition into the other longer curves without these comb kinks? This graphic shows continuous curve combs without stair stepping:


That makes sense. Is it correct to say that even if a G2 blend is applied to two intersecting curves, the generated surface might still have undesirable surface continuity because the initial intersecting curves don’t lend themselves to the overall shape? In effect asking the G2 blend to accomplish more than it’s capable of?

I took some automotive surfacing classes a few years back. I remember the teacher building what he called, primary (largest) and secondary (medium) surfaces first, leaving all the blending of primary/secondary surfaces till the very end with blending/filleting. Following this logic, is there ever a scenario to build fillets into a curve before extruding the curve into a surfaces, or should surface fillets always be added much later in the build, leaving all the theoretical surface junctions intact before blending/filleting? I’ve been trying to model as if I’m blocking in the overall form (primary/secondary surfaces) while leaving the smaller fillets and blends till the end to effectively round off what looks like a primitive polygon model. Unsure if that is the best approach for Class A…

Yeah seems odd that corresponding points on different curves can’t be moved together. I guess after the adjsutable blend surf command is done, the surface can be modified uniformly with the control point cage.

Hi Justin - measuring G2 or whatever is a useful tool but not a solutiuon - that is, it is perfectly possible to have G2 curves or surfaces that don’t look as good as G1 ones - if you need to have a particular continuity, I would say look at that as ‘necessary but not sufficient’ to have a nice looking transition; there may be adjustments to make - making the transition wider and not so sudden, for example.


As David already said, you can of course adjust the blend factor. By moving the third control point in the curve’s tangent direction (at the endpoint), you can hold curvature-continuity but adjusting the acceleration. This is what the slider is doing in the blend menu. However, there are some things to note here: Usually you want a harmonic distribution, the closer two cps are, the stronger the curvature, and so the delta will be. So moving two cps closer within a fillet increases the sharpness. If you want a smoother overall flow, it is good practice to accelerate the main surfaces in direction to the desired blend. So your image, shows uncurved surfaces which is something you should prevent if possible. Even the main surfaces should be curved, and they should slightly accelerate to the blend direction. This makes the curvature flow more smooth and less increasing. Personally, I wouldn’t apply G2/3 to flat surfaces, because flat surfaces can then appear to bend in.

With overall flow, I mean that main surfaces must somehow fit together and be smooth without much torsion. Ideally having similar curvature. A good blend is always determined by the quality of the main, less curved surfaces. You cannot compensate this in a blend. Without a proper “theory”, you cannot guarantee to make smooth blends because any area with high curvature does only increase the error of your main surfaces by a magnitude. In other words, if you see an error in the blend, its likely your main surface having issues.
Another thing is, that blending a curve and a surface is a completely different thing. For surfaces, you have more directions involved, so even if one direction is okay, the other direction can have a negative impact. This is also why your surface layout must work in multiple dimension and this can only be ensured if you care about clean base-surfaces, with proper isocurves (=flow of curvature). Any complexity (such as twists, different weights, multi-span, high degree/order etc.) makes it harder to keep things clean.

In most cases, applying fillets to a shape is a post-process. For blending, it depends. There are parts of a model, which might require to create a blend surface early on. Usually if it’s a large blend, e.g. found at the roof of a car or when modelling outer parts of bumpers, where multiple directions are involved. There are also situations when you cannot properly create a theory, usually at locations where multiple “features” come together. Then you need to create a blend more “free-style”. But this is way more difficult, so these occurrences should be kept rare. Again a proper theoretical model, makes blending much easier.
Also, Rhino is not a true class A modelling software, which means in Rhino proper blending might be a bit more challenging as if you would use Alias or Icem Surf. Because in Icem Surf, the majority of blendings, can be created without the need for using curves, but by directly blending surfaces with a couple of surface manipulations involved. How you do proper modelling for a given situation is something which would go beyond someone can write in such a thread. There are blending techniques for many scenarios, and this also depends on which CAD you are actually using.

This is really good information. I think modelers often unknowingly expect the blend tools to compensate for bad theory. Understanding this is a great turning point, thank you.

I was really impressed with Alias when I took classes. The ability to create nicely shaped low span surfaces is something I haven’t been able to replicate in Rhino.