Skip to content

Torus Knots

The simplest infinite family of knots, and the one you can draw without lifting the pen. Take a doughnut and a loop drawn on its surface: going round the hole times while going through it times gives the torus knot .

The and carry it round the axis times; the and push it in and out through the hole times.

T(2,3) — the trefoil, on the torus it lives on

source
<ClientOnly>
  <notatio-curve-3d value="KnotCurve(TorusKnot(2, 3))" torus="2,1" azimuth="45" elevation="25" label="T(2,3) — the trefoil" />
</ClientOnly>

Hue runs along the parameter, so you can follow the strand through a crossing; where two strands meet, the nearer one is drawn over the farther, which is the whole content of a knot diagram. Drag to turn it over, ctrl/⌘ + scroll to zoom, double-click to reset — and the expression above each figure is live, so changing and redraws it.

KnotCurve(knot) evaluates to the list of points the embedding passes through; the figure is just that list, drawn. Move and — both whole numbers, since a knot cannot wind half a turn:

Or write the parameterisation out

KnotCurve is a convenience, not a primitive. The curve is a table of the parameterisation at the top of this page, so you can write that out instead and get the same picture — the equation is the figure:

ParametricCurve(x, y, z) samples three coordinate expressions in over a full turn. It is the equation from the top of this page, typed out — and KnotCurve is only a convenience over it. The head that draws a curve does not care where the list of points came from, so the equation and the shorthand give the same picture.

The square picture

A torus is two circles multiplied together, — so it is a square with opposite edges glued. On that square, is nothing but a straight line of slope , wrapping round each time it leaves an edge. Everything below follows from staring at that line.

The two circles are the two things a point can do. One takes it round the hole, the long way about the central axis; the other takes it round the tube, through the doughnut's cross-section. A single parameter drives both at once, at different rates: by the time has gone once round, the point has been times round the hole and times round the tube, and it is back exactly where it began — which is why the loop closes at all.

That control is not this figure's control. There is one clock per page, so pausing here stops every animated figure below as well — a reader who stops to look at something should not still be moved past by the figure beside it, and two pictures of the same parameter must never drift apart. Scrub it and both figures step together.

Slope, held still

at pins the point to a phase and the figure stops watching the clock, which is what a figure in a written argument wants. dials="false" drops the two circles and leaves the line.

source
<notatio-torus-square p="2" q="3" at="0.32" dials="false" />
<notatio-torus-square p="3" q="2" at="0.32" dials="false" />

Those two are the same knot seen the two ways round — and — and on the square that is just the line reflected in the diagonal. Swapping and is swapping which circle you call which, and a torus does not care.

When it is not a knot at all

If either winding number is , the line crosses itself nowhere and the loop pulls straight: and are unknots, however large the other number.

T(1,7) — a circle, wound seven times

source
<ClientOnly>
  <notatio-curve-3d value="KnotCurve(TorusKnot(1, 7))" azimuth="45" elevation="25" label="T(1,7) — a circle, wound seven times" />
</ClientOnly>

More generally, the line closes up into a single loop only when and are coprime. When you get parallel strands — a link, not a knot.

Two symmetries, and then nothing

and are the same knot. That is not obvious from the pictures — one is tall and thin where the other is squat — but it is obvious on the square, where swapping and is reflecting the line in the diagonal.

T(2,3) and T(3,2)

source
<ClientOnly>
  <notatio-curve-3d value="KnotCurve(TorusKnot(2, 3))" azimuth="20" label="T(2,3)" />
  <notatio-curve-3d value="KnotCurve(TorusKnot(3, 2))" azimuth="20" label="T(3,2) — the same knot" />
</ClientOnly>

Past that, the family is rigid: for coprime , distinct pairs give distinct knots. The proof is a van Kampen argument on the knot group, whose presentation remembers and and nothing else.

T(7,3) and T(5,4)

source
<ClientOnly>
  <notatio-curve-3d value="KnotCurve(TorusKnot(7, 3))" azimuth="30" label="T(7,3)" />
  <notatio-curve-3d value="KnotCurve(TorusKnot(5, 4))" azimuth="30" label="T(5,4) — genuinely different" />
</ClientOnly>

As a braid

A torus knot is the closure of a braid you can write down without thinking:

Take strands, cycle them all once — that is the — and repeat times. The strands are the times round the axis, and the repeats are the times through the hole.

The braid, and what it knows

The trefoil as a two-strand braid: cross the same pair three times.

source
<notatio-cell value="TorusBraid(2, 3)" />
<notatio-cell value="AlexanderPolynomial(TorusKnot(2, 3))" />
<notatio-cell value="JonesPolynomial(TorusKnot(2, 3))" />

Because the braid is positive — every crossing the same way — the closure's Seifert genus comes straight out of the strand and crossing counts:

So has genus and has genus , and the crossing number of with is .

Distinct pairs, distinct invariants

The Jones polynomials of T(7,3) and T(5,4) differ, which is one way to see the knots do.

source
<notatio-cell value="JonesPolynomial(TorusKnot(7, 3))" />
<notatio-cell value="JonesPolynomial(TorusKnot(5, 4))" />

What this connects to

Every torus knot is a Lorenz knot — a periodic orbit of the flow on the next page — because is a positive braid, and positive braids are exactly what the Lorenz template produces. The trefoil is the first of both families, and it is also the knot whose complement is the modular surface.