left click and move rotating scroll dollying right click and move panning double click edit mode
Model Properties:
Discretization Parameters:
Standard Knots:
Or Enter a Parametric Representation for $$x\in[0,1]$$ A re-parametrization to arc-length is applied automatically.
Boundary Conditions:
Or Enter a Torus Knot
Draw a Braid Representation:
Enter JSON data:
Confining Shape:
Confinement Semi-Axes: For no confinement, enter "0" along the corresponding direction.
Confinement Center of Mass:
Visible Objects:
Color Scheme:
Curve Visualization
Energy Warning
Data of Current Step
Video of Canvas Evolution
Welcome to KNOTEVOLVE!

You are watching a "" curve with discrete points. The total length is .

If you would like to load a different knot or to change the elastic parameters, click on the "Parameter" button. You may choose from a set of predefined knots (all closed). As an alternative, a torus knot, which is defined by two winding-numbers, can be calculated. Also, loading a knot based on braids is possible. Based on a list of points or an explicit equation, rods with other types of boundary conditions can be calculated as well. All curves are automatically reparametrized to arc-length. A list of the current parameters and the curve position can be obtained in the "Export" tab in the section of "Data of Current Step".

To confine the rod/knot to a set of predefined shapes, please click on the "Confinement" tab. We offer spheres, cylinders and boxes.

The knot visualization can be rotated, zoomed and panned. The colors and other render options can be modified in the "Rendering" tab. If you double click on the figure, the knot becomes editable and you can move points around, coarsen, and refine the existing knot. On mobile devices, some features might not be available.

What's happening

Given a curve $$u:I\to\mathbf{R}^{3}$$ for an interval $$I=(0,L)$$ that is parametrized by arc-length (i.e. $$|u'|=1$$), we define the energy as the functional $E[u]=\frac\kappa2\int_I\left|u''(x)\right|^2\mathrm{d}x + \varrho\,\mathrm{TP}[u] + \mu\,\mathrm{VP}[u],$ where $$\kappa$$ is the bending rigidity, $$\varrho$$ the self-repulsion, and $$\mu$$ the confinement strength. The energy includes the curvature term $$\left|u''(x)\right|^2$$, the tangent-point functional $\mathrm{TP}[u]=\frac{2^{-2\ell}}{2\ell}\iint_{I\times I}\frac1{\mathbf r^{2\ell}(u(y), u(x))}\mathrm{d}x\mathrm{d}y$ for a suitable $$\ell>1$$ (default: $$\ell=1.5$$) and the the domain violation penalty $\mathrm{VP}[u]=\int_I\left(\sqrt{(u(x)-m_D)^T\,Q_D\,(u(x)-m_D)}-1\right)_+^2$ for a positive semi-definite quadratic form $$Q_D$$ and the domain center of mass $$m_D$$. The temporal evolution is calculated as a gradient flow $(\partial_t u,w)+h^r([\partial_t u]'',w'')=-\delta E[u][w]$ for all admissible test curves $$w$$ and the L2 inner product $$(\cdot,\cdot)$$, where $$h^r=0$$ if $$r<0$$.

The implemented scheme has an energy monotonicity property with controlled arc-length constraint violation for suitably chosen parameters. The algorithm is semi-implicit and based on cubic finite elements to represent the rod.

A detailed description of the calculations performed by KNOTEVOLVE is given in this manual.