Hi McNeel,
I just found these new methods for Rhino 7:
https://developer.rhino3d.com/wip/api/RhinoCommon/html/M_Rhino_Geometry_NurbsCurve_UVNDirectionsAt.htm
https://developer.rhino3d.com/wip/api/RhinoCommon/html/M_Rhino_Geometry_NurbsSurface_UVNDirectionsAt.htm
I thought that since curves are unidimensional objects, their second or third derivative was undefined in 360 degrees of freedom. And to get one, you have to use some heuristic. This is what I did in the next version of Peacock, I have a curve object that contains an alignment object to evaluate the normal at any parameter via the closest point direction to the alignment geometry.
So, how do define the normal direction of a curve? How do you make it consistent for any two parameters along the curve?