An optimization routine utilizing particle systems in Rhino Grasshopper + Kangaroo. The typical approach to rationalizing a curve in to line segments is to create segments of equal length constrained to the input curve. This works if the outputs only need to be constrained on one end or the other. But if both ends of the input curve need to be fixed, you need to find a way to relax the input geometry to satisfy both the end conditions and the target segment length.
This is based on some work done with Nick Pisca using non-linear optimization in 2008 and with the help of Zach Downey from Parabox.