An Energy-Driven Approach to Linkage Unfolding
Abstract
We present a new algorithm for unfolding planar polygonal linkages without self-intersection based on following the gradient flow of a "repulsive" energy function. This algorithm has several advantages over previous methods. (1) The output motion is represented explicitly and exactly as a piecewise-linear curve in angle space. As a consequence, an exact snapshot of the linkage at any time can be extracted from the output in strongly polynomial time (on a real RAM supporting arithmetic, sin and arcsin). (2) Each linear step of the motion can be computed exactly in O(n2) time on a real RAM where n is the number of vertices. (3) We explicitly bound the number of linear steps (and hence running time) as a polynomial in n and the ratio between the maximum edge length and the initial minimum distance between a vertex and an edge. (4) Our method is practical and easy to implement. We provide a publicly accessible Java applet that implements the algorithm.
Supplemental Material

Paper video on YouTube
YouTube
Complete Paper Video
Locally hosted H.264 version of the complete paper video.
Video
Teeth Example
Teeth with energy method.
Video
Tree Example
Tree with energy method.
Video
Spiral Open Chain
A spiral open chain.
Video
Tentacle Example
Tentacle opening.
Video
Spider Example
Spider shape opening.
VideoArchived Java Applet
Download the original Java 1.2 demonstration applet. Modern browsers no longer run Java applets.
DownloadCitation
Jason H. Cantarella, Eric D. Demaine, Hayley N. Iben, and James F. O'Brien. "An Energy-Driven Approach to Linkage Unfolding". In Proceedings of the 20th Annual Symposium on Computational Geometry, June 2004.