Curvature and the Frenet Frame

Drive down a road with your eyes on the steering wheel. On a straight stretch the wheel sits dead centre; on a gentle bend you hold a little turn; on a hairpin you crank it hard. Curvature is the mathematical steering wheel: it measures how sharply a curve is turning at each point. A straight line has zero curvature; a tight circle has a lot.

To make this precise we ride along the curve in its arc-length parametrization \boldsymbol{\gamma}(s), where the velocity is the unit tangent \mathbf{T}(s) = \boldsymbol{\gamma}'(s) and has constant length one. Since \mathbf{T} never changes length, the only way it can change at all is by changing direction — and the rate of that turning is the curvature.

\kappa(s) = \left\lVert \frac{d\mathbf{T}}{ds} \right\rVert.

The moving frame: T, N, B

Differentiate the identity \mathbf{T}\cdot\mathbf{T} = 1. The product rule gives 2\,\mathbf{T}\cdot\mathbf{T}' = 0, so \mathbf{T}' is perpendicular to \mathbf{T}. That perpendicular direction is where the curve is heading into its bend, and normalising it defines the principal normal:

\mathbf{N}(s) = \frac{\mathbf{T}'(s)}{\lVert \mathbf{T}'(s)\rVert} = \frac{\mathbf{T}'(s)}{\kappa(s)}.

Now we have two perpendicular unit vectors. In three dimensions there is exactly one more unit vector completing a right-handed orthonormal trio, built — as promised on the parametrized curves page — with the cross product. It is the binormal:

\mathbf{B}(s) = \mathbf{T}(s) \times \mathbf{N}(s).

Together \{\mathbf{T}, \mathbf{N}, \mathbf{B}\} form the Frenet frame: a little set of axes carried by the curve, tumbling along with it. Unlike the fixed x, y, z axes stuck to the room, this frame is glued to the traveller — it always knows "forward" (\mathbf{T}), "into the bend" (\mathbf{N}), and "out of the plane of the bend" (\mathbf{B}).

The Frenet–Serret formulas

The real magic is how the three frame vectors change as you slide along. Each derivative is itself a combination of the frame vectors, and the coefficients are just two numbers: the curvature \kappa and a new quantity \tau, the torsion, which measures how fast the curve twists out of the plane of its bend.

For a unit-speed curve with curvature \kappa > 0 and torsion \tau, the frame evolves by Here \kappa = \lVert \mathbf{T}'\rVert \geq 0 measures bending, and \tau measures twisting; all derivatives are with respect to arc length s.

Read them as a story. The tangent turns toward the normal at rate \kappa (bending). The binormal turns toward the normal at rate \tau (twisting). And the normal, caught between them, feeds back into both. These three vector equations bottle up everything about the local shape of a curve: the celebrated fundamental theorem of space curves says that a curve is completely determined, up to rigid motion, by its two scalar functions \kappa(s) and \tau(s). Give me your curvature and torsion, and I can rebuild your curve.

A practical formula (any parametrization)

Reparametrizing by arc length is lovely in theory but, as we saw, usually impossible in closed form. Happily there is a formula for curvature that works from any regular parametrization \mathbf{r}(t), using the velocity and acceleration directly:

\kappa = \frac{\lVert \mathbf{r}'(t) \times \mathbf{r}''(t) \rVert}{\lVert \mathbf{r}'(t) \rVert^{3}}.

The cross product in the numerator measures how much the acceleration \mathbf{r}'' points sideways, away from the direction of travel \mathbf{r}' — which is exactly the part of the acceleration that bends the path rather than speeding it up. Dividing by \lVert \mathbf{r}'\rVert^3 removes the parametrization's arbitrary speed, leaving a pure geometric number.

Worked example — the circle and the helix

The circle \mathbf{r}(t) = (R\cos t,\ R\sin t) has

\mathbf{r}'(t) = (-R\sin t,\ R\cos t), \qquad \mathbf{r}''(t) = (-R\cos t,\ -R\sin t).

In the plane the cross product reduces to the scalar x'y'' - y'x'' = (-R\sin t)(-R\sin t) - (R\cos t)(-R\cos t) = R^2, while \lVert\mathbf{r}'\rVert^3 = R^3. So

\kappa = \frac{R^2}{R^3} = \frac{1}{R}.

A circle of radius R has constant curvature 1/R — small circles bend hard, huge circles are nearly straight — and its torsion is \tau = 0 because it lies flat in a plane. The quantity 1/\kappa = R is called the radius of curvature: at each point of any curve, it is the radius of the circle that best hugs the curve there (the "osculating circle").

The helix \mathbf{r}(t) = (\cos t,\ \sin t,\ c\,t), after grinding through the cross product, gives the tidy constants

\kappa = \frac{1}{1 + c^2}, \qquad \tau = \frac{c}{1 + c^2}.

Both are constant — the helix bends and twists by the same amount at every point, which is exactly why it looks so uniform. Set c = 0 and it collapses to the unit circle: \kappa = 1, \tau = 0. The bigger the pitch c, the more the twist \tau asserts itself.

Torsion is the signature of true three-dimensionality. There is a clean theorem: a curve with \kappa > 0 has \tau = 0 everywhere if and only if it lies entirely in a single plane. The reasoning is visible in the Frenet–Serret formulas: \mathbf{B}' = -\tau\,\mathbf{N}, so \tau = 0 means \mathbf{B}' = \mathbf{0} — the binormal is a constant vector. A curve whose "out-of-plane" direction never changes is trapped in the plane perpendicular to that fixed \mathbf{B}. So the circle (flat) has \tau = 0, while the helix (genuinely climbing) has \tau \neq 0. Torsion is the number that a flat creature living in a plane could never even detect.

The definition \kappa = \lVert d\mathbf{T}/ds\rVert uses the derivative with respect to arc length s, not the parameter t. This trips almost everyone up: \lVert d\mathbf{T}/dt\rVert is generally not the curvature. They agree only for a unit-speed curve, where s and t advance in lockstep. For a general parametrization the chain rule inserts a speed factor,

\frac{d\mathbf{T}}{dt} = \frac{d\mathbf{T}}{ds}\,\frac{ds}{dt} = \kappa\,\lVert\mathbf{r}'\rVert\,\mathbf{N},

so \lVert d\mathbf{T}/dt\rVert = \kappa\,\lVert\mathbf{r}'\rVert, which is inflated by the speed. Drive the same road faster and \lVert d\mathbf{T}/dt\rVert shoots up even though the road's actual bendiness hasn't changed one bit. That is precisely why we divide it out — either by reparametrizing to unit speed, or by using the practical formula \kappa = \lVert\mathbf{r}'\times\mathbf{r}''\rVert/\lVert\mathbf{r}'\rVert^3, whose denominator does the dividing for you.

Watch the frame turn

Here is the parabola \mathbf{r}(t) = (t,\ t^2). Drag the slider to move the point. The forward arrow is the unit tangent \mathbf{T}; the perpendicular arrow is the principal normal \mathbf{N}, which always points toward the inside of the bend. Watch how \mathbf{T} swings quickly near the sharply-curved vertex and barely turns out on the nearly-straight arms — the speed of that turning (per unit length) is exactly the curvature \kappa, read out live below the frame.