Looking for the proper type of curve component for my needs

Coming from Autodesk Fusion 360, I’m used to working with so called ‘Fit Point splines’ to construct smooth ‘freeform’ curves, as shown in the picture. I’m wondering, if such type of curve is possible to implement in Grasshopper as a component or set of components.

The NURBS curve component is able to create smooth curves, but it’s not possible to add specific points where the curve has to go through (as far as I know). Only control points can be given

The interpolate component does have a vertices input, but the curvature is not editable (again, as far as I know).

The interpolate with tangents is better but you can only control the start and end point. And by controlling I mean only the direction of the tangent.

The tangent curve component is already a bit better, but I’m still not able to adjust the radius of the curve at those points, again only the direction. It seems like the vector I give as an input is not influencing the curve by its length, only by its direction. In other words, increasing the length of the vector does nothing.

I really would like to create a smooth curve (as shown) that is easily editable by parameters and with a number of input points. Those control lines (so called curvature handle bars) you see are really useful to control the curvature while still keeping the curve going through that specific point. And this is what I was hoping for with the tangent curve, but I cannot change the curvature magnitude, only the direction.

Any thoughts and/or tips?

There are no tools directly in Rhino for controlling the curvature of a curve, although I suspect all the required maths is available in the code somewhere.

What exactly do the inputs look like for a curve like this? How do you specify the curvature for example?

The input is a set of points (the black points you see).

Afterwards you are able to drag out the green/turquoise lines.
You can both:

  • change the direction of these curvature handles, the curve is tangent to the handle at that point
  • change the length, to increase or decrease the radius at that given point of the curve

You can see the effect of that in different point on the figure.

I first made this curve in Fusion 360, but now I needed/wanted (it’s a research project) to parametrize every single point/curve/… in Rhino/Grasshopper. But I stumbled upon this problem when I was trying to recreated this (actually not so complex) geometry.

And I tried to do this by using the tangent curve component, but as I mentioned before, I’m not able to change the length of the vector. That is, the length of the vector does not change the radius,

I know you can further approximate the curve by adding more points, but that is not really what I want/need. I need to be able to rotate this curve around the origin point on top and the curve needs to be adjusted based on the intial curvature and the angle of rotation.

I hope this somewhat answers your questions.
Thanks for taking the time to respond.

Would this be of use to you? From the crypt of the old forum.

1 Like

Ah, I thought you wanted numerical control over the curvature, potentially at locations away from control-points. Rhino does have the HandleBar (HBar?) command for editing curves like this, and anyway a set of consecutive control points with tangent/force controls is easily constructible by a series of 4-point nurbs splines joined together.

The hard part will be the user-interface.

At first sight, this seems to be very promising.
I’m gonna try this out, thanks.

I’ll report back!

This figure will probably make it a bit more clear.

You can see 2 cross sections and 1 longitudinal profile, which have to be interconnected (they will be lofted together). And so, I still need to be able to define exact points on the curve. Especially the highlighted bottom curve, connecting both cross sections. Those cross sections are made after that bottom curve and they need to include those black end points in order to use this bottom curve as a guide rail for the loft.
If that makes sense :stuck_out_tongue:

I’ll try the technique mentioned by Ethan and I’ll report back whether it worked or not. It needs to be done entirely inside Grasshopper, as I want every single aspect of the design to be parametric.

I could probably design this in 10 different ways, so still not sure if my way is the right way. But that’s probably part of the learning curve in parametric design.

I have tried to install the bezier curve ext component by dropping the .gha component in de special folder (libraries), but it does not load. I’m using Rhino 6.

Could you maybe try it and see whether I’m doing something wrong? I guess the old forum post would not get much attention, that’s why I ask you.


Managed to get it working. Same old mistake I made before, not unlocking the component, so it wouldn’t load. Ah well.

I tried the Bezier Span Extensible, as was mentioned here by Ethan, and it really completely solved my issues with the standard curve components. So big thanks!

David, I don’t know how components get added to the default version of Rino/Grasshopper, but this is a very useful addition in my opinion.