Skip to content
A repository for research code, papers, interactive visualizers, etc., for spline research
JavaScript PostScript TeX Python HTML Gnuplot
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
euler_explorer
paper1
LICENSE-APACHE
LICENSE-MIT
README.md
bezpath.js
beztoy.html
beztoy.js
biparab.gnuplot
biparab_plots.js
biparabola.html
biparabola.js
curves.js
deploy.sh
kblend.py
kmap3d.gnuplot
locality.py
plotcurve.js
spiro.js
spline.html
splineui.js
tuner.html
tuner.js
tunerui.js

README.md

Spline research

This repo contains protoype research code for a new spline. It is based on my earlier Spiro work and builds on my PhD thesis but has significant advantages.

First, the new spline is robust. That means that a small change to an input point yields a proportionally small change in the generated spline. By contrast, Spiro was prone to large flips, as a loop would change direction. Even worse, Spiro would sometimes fail to converge (often producing incorrect results resembline particle accelerator tracks). This lack of robustness was a major reason Spiro didn’t catch on more widely.

Second, it uses explicit tangents as a unifying and simple user experience refinement to control a wide range of behaviors. These explicit tangents replace Spiro’s “one-way constraints,” which were powerful but confusing from a user-experience perspective. With explicit tangents, the designer make smooth straight-to-curved transitions, control the curvature when a curve is terminated at a corner, control the exact locations of extrema (especially important for font design), and signal a transition from low curvature to high curvature regions. The new control is intuitive and will be familiar to designers experienced in Bézier drawing.

The new spline should be useful in font design (my original motivation), vector illustration in general, CAD, and other applications such as maps and representation of path centerlines for autonomous vehicles.

Try the online demo.

Read more about the spline in research paper 1.

License

The code in this repository is licensed under the terms of the Apache-2 or MIT license, at your choice.

The ideas in this repository are free for all to implement. Previously there were patents and a provisional patent application, but those are hereby passed into the public domain.

Contributions

Contributions are welcome.

Raph Levien

You can’t perform that action at this time.