The algorithm itself is a mashup of a paper I wrote for AAAI: http://www.cs.cmu.edu/~aothman/splines.pdf and this paper: http://link.springer.com/article/10.1007/s10543-005-0028-x