Interpolate Points vs Edit Points

What is the method rhino uses to create an interpolated curve? After reading a bit about Bezier curves etc I had thought it was something similar to what is described in section 20 & 21 here. However if I create an interpolated curve (black) from some set points (green), then turn on the edit points, two additional points appear, one just after the start point and one just before the end point. How are these points created?

Interpolated points

Edit Points

For some background: I have some custom production software that allows a user to generate and edit a curve to create a desired shape over an image. It is more intuitive for the user to create this curve using a method like interpolate points where the curve lies on the created points rather than a b-spline. I would like to recreate this curve as accurately as possible into rhino using these created points. I can change the method the software uses to generate the curve but I would like this to produce the same curve that rhino does.

Unfortunately using rhino itself to generate these original curves is not an option.

The points used for Interpolation, Edit points, and Control points are not part of the NURBS curve definition.
Edit points and Control points are “cooked up” at the time of editing.
When you interpolate a curve through points, it turns out that these locations are recreated (along with the extra points between the curve ends and first interior points) when using the Edit point tool.
NURBS curves use “knots”. Unfortunately, the location of these knots and how they effect the shape of a curve are not at all intuitive to use for editing.

So when one makes an interpolated curve, is Rhino making an assumption about the start and end tangents? How are these made?
If I understand you correctly, the edit points are more for usability and there is little correlation to a bezier/b-spline definition?

Thanks for the help

This should be useful:

Also, I think you’ll find that Edit points are somewhat close to your original points for interpolation, but not in the exact same location.

Hi @John_Brock
Could you please explain a little more about how those two points are created?
I think these two points are generated based on two calculated derivatives at the start and the end, but I can’t figure how.

Sorry no.
That would be a question for the Developers. I do not write core code.
I’d suggest posting your question in the Developer’s category so they will see it.