I'm also currently working on a plugin for Adobe Illustrator based on this. Screenshot: https://i.imgur.com/tIPTjLsr.png
May I ask how you made the notebook interactive? Is this based on a jupyter notebook?
The one thing left that I can't figure out is how to have the curvature comb update live as you drag the Bezier control points. Currently it only updates when you mouse up.
In a drawing program, the stiffness could be depicted by using grayscale values.
Here's what different degrees of curvature continuity look like: http://help.autodesk.com/cloudhelp/2017/ENU/Alias-Tutorials/...
.. or in 2d: http://help.autodesk.com/cloudhelp/2017/ENU/Alias-Tutorials/...
To make smooth surfaces you just need the tangents to line up. This is called G1.
But if you also want surface reflections to look smooth you need a higher degree of curvature continuity. G2 or higher.
It doesn't talk about dynamically varying stiffness along the curve, but is otherwise a very detailed dive into splines.
Confusingly, there seem to be other splines called "X-splines" that appear to be completely unrelated, where the X seems to refer to the varying degree of the spline instead of just cubic.
1. Pull curve handles out to about 1/3 of the curve segment they control.
2. Don’t turn more than 90° between two control points.
3. Avoid S-curves between two control points.
Following these generally results in nice-looking curves that are easy to edit
A lot of “designers” these days like to present a rule of “only put your control points at 0/90/180/270° and keep your curve handles axis aligned”, which makes some degree of sense in the arena of making fonts, but results in incredibly hard to manage curves as you get further away from circles.
There are some interactive widgets, but if you can forgo those, here is a screenshot of that page: https://screenshots.firefox.com/CoUJDgqyX5NtfC6v/beta.observ...
That way you can draw better looking curves when approximating them with (a limited number) of (straight) segments.