Again I’m not 100 % sure, but I always assumed that a Hermite and a Bézier Spline are the same, they are just expressed in a different form. So for a cubic spline, the Hermite form uses Start and Endpoint, and both tangents at start and end, whereas a cubic Bézier spline requires the 4 controlpoints. But essentially this is the same spline. (Because you get the tangents by subtracting p1 from p0 and pn-1 from pn)

Is it “just” a **cubic** Hermite spline you want?

So with that in mind, the problem you have is a little more complex!

You want to make out of an arbitrary NurbsCurve a set of non-rational cubic Beziersplines. Now a NurbsCurve is a composite Bezier spline, that’s the reason why you have something like knots. They essentially determine how a Nurbs is composed together.

So this task can be quite simple if some conditions are true. The NurbsCurve must be non-rational (all cp-weights == 1) and of degree 3 (=cubic). If it has one span, then it’s already a cubic Bezier = cubic Hermite. If it has more spans, then you need to decompose the cubic splines which is easy as well.

The problem begins if the degree is different and/or you have a rational spline. Then you need to approximate. At least this is what all the class A surface modelling softwares make very well. Especially ICEM Surf and Alias are very good at this. Rhino lacks powerful algorithms, but there are some approximation (“fitting”) algorithms. I think Rhinocommon’s approximation algorithm/command (which is not as powerful) is called “FitCurve”. One problem is, that you might need to approximate by using more than one Bezier/Hermite spline, which is one of the greater challenges. This is because it is not obvious where one sub-curve need to start or end to get a perfect fit.

E.g. If you want to convert a NurbsCircle you would need 4 Bezier-curves of degree 6 to match a real circle. This essential shows the advantage of Nurbs over Hermite/Bezier splines, although rational splines also have disadvantages. But this is another topic.

Another approach is degree elevation!

If your curve non-rational and of degree 2 you can increase the degree to 3, making it cubic without any deviation, but, depending on your curve properties, lowering the degree might lead to deviation as well.

But again, this is not a trivial problem!