ropelength - find ropelength of tube with Geomview VECT core


ropelength -L lambda -l levels -d debuglevel file


ropelength is designed to demonstrate some of the features of the liboctrope library by computing a scale-invariant geometric measure of the complexity of the input polygon called ropelength. For the default value of lambda = 1.0, the ropelength of a curve is the quotient of its length and the diameter of the largest embedded tube around the curve. This answers a natural geometric question: what length of unit-diameter perfectly flexible tube is required to form a scaled copy of the given curve without any self-intersections of the tube? For sharply bent or tightly-wrapped input curves, ropelength will be large, because the core must be scaled to a large size to make room for the tube. For simpler core shapes, ropelength will be lower.


-L, --lambda=lambda
By setting lambda > 1.0, the user can model a related question: how much unit-diameter rope with diameter of curvature at least lambda is required to form a scaled copy of the core without self-intersections of the tube? This ``stiff rope'' problem is more physically natural than the perfectly flexible tube of the original problem.

-l levels, --levels=levels
ropelength efficiently identifies self-contacts of the tube among all pairs of edges on the core polygon using an octree-based clustering algorithm called octrope. The number of levels in the octree affects the resolution at which edges are clustered-- a higher number of levels allows more pairs of edges to be eliminated from ropelength' search before the code begins checking pairs of edges against one another. But this speedup must be balanced against the overhead incurred in building a larger tree.

The user can fine-tune this tradeoff by setting levels. Setting levels = 1 reduces the algorithm to checking all pairs of edges (very slow), while for an n edge link the default is levels = 0.75*log2(n).

-d debuglevel, -D debuglevel, --debug debuglevel
The user can print debugging information by setting debuglevel from 0 (lowest) to 9 (highest). Usually useful only for library maintainers.

The input file, expected to be in Geomview VECT format. See for details on the file format. ropelength will accept up to 100 files in any one invocation. This argument is not optional.


Find ropelength for the file 3_1.vect with perfectly flexible tube:

 ropelength 3_1.vect

Find ropelength for the file 3_1.vect with a stiff tube of minimum diameter of curvature 2.0 (should be larger than the results of the last example):

 ropelength -L 2.0 3_1.vect


the liboctrope manpage, the octrope_link manpage,


Ted Ashton and Jason Cantarella


This program is covered by the GNU General Public License for free software, modified as follows: Any publication of computations performed using ropelength must include a citation of the paper A Fast Octree-Based Algorithm for Computing Ropelength (arXiv:math.DG/0409416).