CAD09_Levien_Sequin

Interpolating Splines:
Which is the fairest of them all?
Raph Levien, Google
Carlo Séquin, UC Berkeley
Approaches to 2D Curve Design
• Bézier curves
• Approximating splines
– Useful if noisy data
 Interpolating splines
What is the best interpolating spline?
• How do you define “best”?
– Fairness (smoothness)
– Locality (ripples and wiggles)
– Robustness (does it always converge?)
– Stability (perturbation  small change)
– NOT: Compute cost !
Minimal Energy Curve
• Idealized thin elastic strip that goes through
the data points;
• The curve that minimizes bending energy:
E MEC    ds
2

Problems with MEC
• Lack of roundness
• Lack of convergence
Does MEC optimize the wrong functional?
• Is there a better functional?
• Tweaks to fix roundness:
– Scale-Invariant MEC
– MVC
• Space of all possible functionals
is a pretty big zoo;
– How to choose one?
Properties of MEC worth preserving:
These hold for any sane variational spline:
• Extensionality
– Adding an on-curve point preserves shape.
– Direct consequence of variational definition.
• G2-continuity
– Known splines with higher continuity have worse locality.
– G2 is “fair enough” (for drawn curves).
2-Parameter Splines
• Each curve segment determined by a
2-dimensional parameter space,
– Modulo scaling, rotation, translation
– Two parameters are tangent angles
MEC is cut piecewise from a fixed curve
• Known as the “rectangular elastica”
A Major New Result:
• All 2-parameter, extensible splines
have segments cut from a generator curve!
(With scaling, rotation, translation to fit)
Generator  Extensional Spline
• Conversely, start with a curve and use it
to generate a spline.
• Relationship between ’/2 and ’’/3
must be single-valued.
• Preserve G2-continuity across points.
Euler Spiral
• Curvature is linear in arc-length
• Aka: Cornu spiral, Fresnel integrals,
Clothoid, Railroad transition curve . . .
Euler Spiral Spline
• A really good curve: Euler spiral
– Fixes roundness problem
– Far more robust
• Some solution always seems to exist.
• Mentioned by Birkhoff & de Boor, 1965
• Implemented by Mehlum, ’70s
• Why is it not more popular?
Which generating curve looks best?
• Much simpler than:
Which functional
is best?
• We can employ
empirical testing.
• Aesthetic curve
family is promising.
Empirical Study: Aesthetic Curves
MEC
minimum
popular
votes
Exponent of Aesthetic Curve
4-Parameter Splines (MVC)
• G4-continuity
• Locality is poorer
• 2-parameter is sparser
(experience from font design)
Exponential
falloff
Fairness/Locality Tradeoff
Exponential falloff factor
Exponent of Aesthetic Curve
Applications for Font Design
• Euler spiral spline
• Sparse control points
• Interactive editing
• G2 straight-to-curve
transitions
• Several fonts drawn
– Inconsolata
Efficient Implementation
• Can just use 2-D LUT to compute
curvature from tangent angles.
• Newton solver to enforce G2 globally.
• Drawing is not much more expensive
than de Casteljau.
• Can convert to concise Bézier curves.
Bézier Representation of Font
• Euler spiral master
• Optimized conversion to
Béziers
• Error tolerance < 10-3
• Compatible with industry
standard font formats
Conclusions
• Best 2D spline is cut piecewise from
some generating curve.
• Euler spiral is a very good choice.
• Aesthetic curves may be slightly better.
• Efficient and practical implementations.