A Class of C2 Interpolating Splines

Example curves generated from the same control points using our formulation with different interpolation functions. All curves have guaranteed C2 continuity and local support, but they produce different shapes from the same control points. The purple lines indicate the curvature of the curves.


We present a class of non-polynomial parametric splines that interpolate the given control points and show that some curve types in this class have a set of highly desirable properties that were not previously demonstrated for interpolating curves before. In particular, the formulation of this class guarantees that the resulting curves have C2 continuity everywhere and local support, such that only four control points define each curve segment between consecutive control points. These properties are achieved directly due to the mathematical formulation used for defining this class, without the need for a global numerical optimization step. We also provide four example spline types within this class. These examples show how guaranteed self-intersection-free curve segments can be achieved, regardless of the placement of control points, which has been a limitation of prior interpolating curve formulations. In addition, they present how perfect circular arcs and linear segments can be formed by splines within this class, which also have been challenging for prior methods of interpolating curves.

Paper Presentation

Paper presentation at SIGGRAPH 2020.

Live extended presentation.

Online Demo

An example implementation of our curve formulations (with full source code) in a webpage (using HTML, JavaScript, and WebGL), including all four example interpolation functions.


An example hair model generated using our curves with the hybrid interpolation function for both representing the hair strands and the edges of the hair mesh along the hair direction. The control points of the final hair curves are placed using procedural styling operations. The character and hair mesh models by Lee Perry-Smith. Designed and rendered using Hair Farm, the ultimate hair plugin for Autodesk 3ds Max.

Comparison of (a-d) curves generated using our method with four example interpolation functions and (e) κ-curves [Yan et al. 2017] from the same control points. The bottom row shows the control point positions and the curvature of the curves. The red arrows highlight the extremely sharp corners generated by κ-curves and the blue arrows show the curve segments that are bent due to the global support of κ-curves.