Blend and BlendCrv problem

I made two black arcs and I tried to join them with a curve that gradually changes curvature along its length. I used Blend and BlendCrv commands. Both commands failed. As you can see in the following CurvatureGraphs, the transition is always random. I use Rhino 7.23. Should I abandon all hope?

blend bugs.3dm (36.4 KB)

The commands did not fail. They returned blend curves with the specified continuity.

Your desired curve may or may not be mathematically possible.

Both Blend and BlendCrv produce single span degree blend curves of the required degee to satisify the specified continuity conditions at both ends. For a given set of input curves there are an infinite number of such curves with curvature continuity at each end.

Blend returns one particular curve. The shape of the curve can be adjusted after completion of the Blend command using the Bulge command. The Bulge commands provides handles for the user to adjust the shape curve with the available degrees of freedom while maintaining the specified continuity at the ends.

BlendCrv starts with one curve and provides handles similar to the Bulge command for the user to adjust the shape of the curve.

Users should be aware that their particular desired curve may not be mathematically possible.

Hello- if you asked for curvature continuity in the blend, you got that accordiing to the curvature graphs- it may be that what you expected was a G3 blend where the acceleration is smooth - but you need to ask for G3 to get that. The shape of such a curve may or may not be anything you like-


In this case probably the nicest looking curve is G1.



The best way to smoothly transition from G1 curves and surfaces is to use G1 for the adjacent surface of curve, too. Works 99% of the time. This is a well known rule in the injection moulding field related to bottle design, where the general shape is a revolved surface with degree 1. @pascal’s suggestion to try “Curve blend” with both ends set to G1 is what could help in your case.

ArcBlend works here too…


1 Like

Are claiming that an arc is a “G1” curve? An arc has continuous, non zero curvature for it’s entire length. It is G2 for it’s entire length. Nothing G1 about it.

Or are you claiming that all degree 2 curves including conics are automatically G1? If so that is not a standard definition of G1.

1 Like

I claim that trying to match with G1 to an arc curve or a surface (revolved one) is the best way to properly maintain the flow of the reflections. Matching with G2 to those degree 2 curves or surfaces usually results into a noticeable unnatural flow of the reflections. It’s easy to notice that issue with the Zebra stripes.
And vice versa: Matching with G2 to a freeform curve or a surface whose end is also G2 gives a better result than matching with G1.

I spent about 3 hours trying to make the blended curve by hand. I have added two control points and raised degree by two. It did not not help. Every time I inflated the area under the curve in one spot, it was deflated in another spot. EndBulge and Rebuild did not help. My conclusion is in the following picture.

@pascal By the way, I stumbled on two bugs:

  1. Rebuild did not preserve end tangent direction on one end of the curve when I asked it to do it.
  2. When I copied simple (5 control points) curve in place (Copy InPlace), and edited control points of the copy, the control points of the original curve moved the same way. The bug disappeared when I moved the original curve after making the copy.

A long time ago I wished for a way to manipulate directly the curvature comb to modify a curve…


Note that there are two blend surfaces. One is a proper G2 blend while the other is sort of G1,5 with better optical quality. G1,5 stands for “Greater than G1 but still not reaching a true G2”. I saved a Named view that easily exposes the disadvantage of the true G2 surface. Using manually set G1,5 is much better in this case.

blend bugs MoveUVN hack.3dm (150.2 KB)

Automatic true G2 blend:

Manual G1,5 with better optical quality:

That occurs if History is enabled during the Copy command. Move breaks History.

1 Like

Selecting InPlace automatically turns on ‘Record History’. It looks like bug to me.

Does not happen for me.
Version 7 SR24
(7.24.22290.19001, 2022-10-17)

:exploding_head: :+1: