The window "Curves: X(t) and Y(t)" displays the
curves X(t) and Y(t), which are circles by default, with disp giving
the displacement of the circle Y(t) from its starting position.

The window
"Z(t, s)" displays the surface Z(t,s) = (X(t) – Y(s))/|X(t) – Y(s)|,
which lies on a sphere and is colored green for Z_{t}(t,s) × Z_{s}(t,s)
pointing away from the origin and magenta for Z_{t}(t,s) × Z_{s}(t,s)
pointing toward the origin. The linking number of X(t) and Y(t) is
given by the number of times that Z(t,s) covers the sphere, where the
number of times Z(t,s) covers a point P on the sphere is given by the
number of green points of Z(t,s) at P minus the number of magenta
points of Z(t,s) at P. The surface Z(t,s) is distorted slightly, with
the magnitude of this distortion given by sep, to make it easier to see
how many times each point on the sphere is covered.

It is possible to
change disp, sep, X(t), and Y(t) in the control window. Observe what
happens in the default example as disp increases from 0 to 2.