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 pp times while going through it qq times gives the torus knot T(p,q)T(p, q).

t↦((2+cos⁡qt)cos⁡pt,  (2+cos⁡qt)sin⁡pt,  −sin⁡qt),t∈[0,2π).t ↦ \bigl((2 + \cos qt)\cos pt,\; (2 + \cos qt)\sin pt,\; -\sin qt\bigr), \qquad t ∈ [0, 2π).

The cos⁡pt\cos pt and sin⁡pt\sin pt carry it round the axis pp times; the cos⁡qt\cos qt and sin⁡qt\sin qt push it in and out through the hole qq times.

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

source
<ClientOnly>
  <graphics-3d-box value='Graphics3D(Line(KnotCurve(TorusKnot(2, 3))), Closed -> True, Torus -> (2, 1), Azimuth -> 45, Elevation -> 25, Caption -> "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 pp and qq redraws it.

KnotCurve(knot) evaluates to the list of points the embedding passes through; the figure is just that list, drawn. Move pp and qq — 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 tt 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, S1×S1S^1 × S^1 — so it is a square with opposite edges glued. On that square, T(p,q)T(p,q) is nothing but a straight line of slope q/pq/p, 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 tt drives both at once, at different rates: by the time tt has gone once round, the point has been pp times round the hole and qq 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

Phase -> 0.32 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 · editable

Those two are the same knot seen the two ways round — T(2,3)T(2,3) and T(3,2)T(3,2) — and on the square that is just the line reflected in the diagonal. Swapping pp and qq 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 11, the line crosses itself nowhere and the loop pulls straight: T(1,q)T(1, q) and T(p,1)T(p, 1) are unknots, however large the other number.

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

source
<ClientOnly>
  <graphics-3d-box value='Graphics3D(Line(KnotCurve(TorusKnot(1, 7))), Closed -> True, Azimuth -> 45, Elevation -> 25, Caption -> "T(1,7) — a circle, wound seven times")' />
</ClientOnly>

More generally, the line closes up into a single loop only when pp and qq are coprime. When gcd⁡(p,q)=d>1\gcd(p,q) = d > 1 you get dd parallel strands — a link, not a knot.

Two symmetries, and then nothing ​

T(p,q)T(p,q) and T(q,p)T(q,p) 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 pp and qq is reflecting the line in the diagonal.

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

source
<ClientOnly>
  <graphics-3d-box value='Graphics3D(Line(KnotCurve(TorusKnot(2, 3))), Closed -> True, Azimuth -> 20, Caption -> "T(2,3)")' />
  <graphics-3d-box value='Graphics3D(Line(KnotCurve(TorusKnot(3, 2))), Closed -> True, Azimuth -> 20, Caption -> "T(3,2) — the same knot")' />
</ClientOnly>

Past that, the family is rigid: for coprime p>q≥2p > q ≥ 2, distinct pairs give distinct knots. The proof is a van Kampen argument on the knot group, whose presentation ⟨a,b∣ap=bq⟩\langle a, b \mid a^p = b^q \rangle remembers pp and qq and nothing else.

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

source
<ClientOnly>
  <graphics-3d-box value='Graphics3D(Line(KnotCurve(TorusKnot(7, 3))), Closed -> True, Azimuth -> 30, Caption -> "T(7,3)")' />
  <graphics-3d-box value='Graphics3D(Line(KnotCurve(TorusKnot(5, 4))), Closed -> True, Azimuth -> 30, Caption -> "T(5,4) — genuinely different")' />
</ClientOnly>

As a braid ​

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

T(p,q)=closure of (σ1σ2⋯σp−1)q.T(p, q) = \text{closure of } (σ_1 σ_2 \cdots σ_{p-1})^q.

Take pp strands, cycle them all once — that is the σ1⋯σp−1σ_1 \cdots σ_{p-1} — and repeat qq times. The pp strands are the pp times round the axis, and the qq repeats are the qq times through the hole.

The braid, and what it knows

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

InTorusBraid(2,3)\mathrm{TorusBraid}(2, 3)OutBraid(2,[1,1,1])\mathrm{Braid}(2, \bigl\lbrack1, 1, 1\bigr\rbrack)InAlexanderPolynomial(TorusKnot(2,3))\mathrm{AlexanderPolynomial}(\mathrm{TorusKnot}(2, 3))Outt2−t+1t^2-t+1InJonesPolynomial(TorusKnot(2,3))\mathrm{JonesPolynomial}(\mathrm{TorusKnot}(2, 3))Out−1t4+1t+1t3-\frac{1}{t^4}+\frac{1}{t}+\frac{1}{t^3}
source · editable

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

g=12(p−1)(q−1).g = \tfrac{1}{2}(p-1)(q-1).

So T(2,3)T(2,3) has genus 11 and T(5,4)T(5,4) has genus 66, and the crossing number of T(p,q)T(p,q) with p>qp > q is p(q−1)p(q-1).

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.

InJonesPolynomial(TorusKnot(7,3))\mathrm{JonesPolynomial}(\mathrm{TorusKnot}(7, 3))Out−1t14+1t8+1t6-\frac{1}{t^{14}}+\frac{1}{t^8}+\frac{1}{t^6}InJonesPolynomial(TorusKnot(5,4))\mathrm{JonesPolynomial}(\mathrm{TorusKnot}(5, 4))Out−1t13−1t11+1t10+1t8+1t6-\frac{1}{t^{13}}-\frac{1}{t^{11}}+\frac{1}{t^{10}}+\frac{1}{t^8}+\frac{1}{t^6}
source · editable

What this connects to ​

Every torus knot is a Lorenz knot — a periodic orbit of the flow on the next page — because (σ1⋯σp−1)q(σ_1 \cdots σ_{p-1})^q 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.