Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

Every way to measure a space curve

Length, tangent direction, bending, and twisting — four separate questions about one curve.

These build on each other in a fixed order: you need the tangent vector before curvature makes sense, and curvature before torsion does. Reach for arc length when the question is "how far," the unit tangent when it's "which way," curvature when it's "how sharply is it turning," and torsion only once you're asking about a genuinely 3D bend out of the curve's own osculating plane.

How far

For a smooth curve \mathbf{r}(t) = \langle f(t), g(t), h(t)\rangle on [a,b], the arc length is L = \int_a^b |\mathbf{r}'(t)|\,dt = \int_a^b \sqrt{[f'(t)]^2 + [g'(t)]^2 + [h'(t)]^2}\,dt.

Example

L=\int_a^b |\mathbf{r}'(t)|\,dt — the speed, integrated.
Show proof

Partition [a,b] into n pieces of width \Delta t. The straight-line distance between consecutive sample points \mathbf{r}(t_{i-1}) and \mathbf{r}(t_i) approximates |\mathbf{r}'(t_i)|\,\Delta t, the same "speed times a short time interval" approximation used for a plane curve, since |\mathbf{r}'(t)| is exactly the instantaneous speed \dfrac{ds}{dt}. Summing these n straight-line pieces gives a Riemann sum \sum |\mathbf{r}'(t_i)|\,\Delta t for the length of the inscribed polygonal path; letting n \to \infty turns the sum into \int_a^b |\mathbf{r}'(t)|\,dt, and the polygonal path's length converges to the curve's own length because \mathbf{r} is smooth (continuously differentiable with \mathbf{r}'(t)\ne\mathbf{0}).

The length of a curve traced by \mathbf{r}(t), found by integrating speed over time.

Which way, and how sharply it turns

The direction \mathbf{r}'(t) points, with speed divided out: \mathbf{T}(t)=\mathbf{r}'(t)/|\mathbf{r}'(t)|.

\mathbf{T}(t)=\mathbf{r}'(t)/|\mathbf{r}'(t)| — direction only, speed divided out.

The curvature of a smooth curve \mathbf{r}(t) at a point is \kappa = \left|\frac{d\mathbf{T}}{ds}\right| = \frac{|\mathbf{T}'(t)|}{|\mathbf{r}'(t)|}. Equivalently, \kappa can be computed directly from \mathbf{r} without first finding \mathbf{T}: \kappa = \frac{|\mathbf{r}'(t)\times\mathbf{r}''(t)|}{|\mathbf{r}'(t)|^3}. This measures how fast the unit tangent turns per unit of arc length traveled: large where the curve bends sharply, zero along a straight line.

The (principal) unit normal vector is \mathbf{N}(t) = \frac{\mathbf{T}'(t)}{|\mathbf{T}'(t)|}. It always points toward the concave side of the curve, perpendicular to \mathbf{T}.

Example

\kappa = |\mathbf{r}'(t)\times\mathbf{r}''(t)|\,/\,|\mathbf{r}'(t)|^3 — a straight line has \kappa=0 everywhere.
Show proof

Since \mathbf{T}(t)\cdot\mathbf{T}(t)=1 for every t (it's a unit vector), differentiating both sides with the dot-product rule gives 2\,\mathbf{T}(t)\cdot\mathbf{T}'(t) = 0, so \mathbf{T}'(t) is always perpendicular to \mathbf{T}(t) — that perpendicularity is exactly what makes \mathbf{N}(t), the normalized \mathbf{T}'(t), well-defined as "the direction the tangent is turning toward." For the cross-product form: \mathbf{r}'=|\mathbf{r}'|\mathbf{T}, so differentiating with the product rule gives \mathbf{r}'' = |\mathbf{r}'|'\mathbf{T} + |\mathbf{r}'|\mathbf{T}'. Crossing both sides with \mathbf{r}' kills the first term (a vector crossed with a parallel multiple of itself is \mathbf{0}), leaving \mathbf{r}'\times\mathbf{r}'' = |\mathbf{r}'|^2(\mathbf{T}\times\mathbf{T}'), and since \mathbf{T} and \mathbf{T}' are perpendicular, |\mathbf{T}\times\mathbf{T}'| = |\mathbf{T}'|. Solving for |\mathbf{T}'| and substituting into \kappa = |\mathbf{T}'|/|\mathbf{r}'| produces the stated formula.

How fast the unit tangent vector turns per unit of arc length, \kappa=|\mathbf{r}'\times\mathbf{r}''|/|\mathbf{r}'|^3.

The full moving frame, and how it twists

The unit tangent \mathbf{T}, unit normal \mathbf{N}, and binormal \mathbf{B}=\mathbf{T}\times\mathbf{N} form a moving frame (three mutually perpendicular unit vectors riding along the curve). Their rates of change with respect to arc length s are \frac{d\mathbf{T}}{ds}=\kappa\mathbf{N}, \qquad \frac{d\mathbf{N}}{ds}=-\kappa\mathbf{T}+\tau\mathbf{B}, \qquad \frac{d\mathbf{B}}{ds}=-\tau\mathbf{N}. Here, \kappa is curvature, already defined, and \tau (torsion) measures how fast the curve twists OUT of its osculating (instantaneous \mathbf{T}-\mathbf{N}) plane. In terms of t directly, \tau = \frac{(\mathbf{r}'(t)\times\mathbf{r}''(t))\cdot \mathbf{r}'''(t)}{|\mathbf{r}'(t)\times\mathbf{r}''(t)|^2}. A planar curve (one that never leaves a single flat plane) has \tau=0 everywhere, since \mathbf{B} never has to tilt away from that plane at all.

The TNB frame's own rates of change — how T, N, and B rotate as you move along the curve.

Show proof

\mathbf{T}\cdot\mathbf{T}=1, \mathbf{N}\cdot\mathbf{N}=1, and \mathbf{T}\cdot\mathbf{N}=0 hold at every s; differentiating each with the product rule shows d\mathbf{T}/ds is perpendicular to \mathbf{T} (so it's some combination of \mathbf{N} and \mathbf{B}) and, by curvature's own definition \kappa=|d\mathbf{T}/ds| together with \mathbf{N}'s definition as the normalized d\mathbf{T}/ds, that combination is exactly \kappa\mathbf{N} with no \mathbf{B} part. Differentiating \mathbf{B}=\mathbf{T}\times\mathbf{N} and substituting d\mathbf{T}/ds=\kappa\mathbf{N} kills the first term (a vector crossed with a parallel multiple of itself), leaving d\mathbf{B}/ds = \mathbf{T}\times(d\mathbf{N}/ds), which turns out to have no \mathbf{T}-component and no \mathbf{B}-component (both follow from differentiating \mathbf{B}\cdot\mathbf{T}=0 and \mathbf{B}\cdot\mathbf{B}=1 the same way) — so d\mathbf{B}/ds is a multiple of \mathbf{N} alone; that multiple is DEFINED to be -\tau. Finally \mathbf{N}=\mathbf{B}\times\mathbf{T}, so differentiating and substituting the first two formulas produces the middle one, d\mathbf{N}/ds = -\kappa\mathbf{T}+\tau\mathbf{B}.

How fast a curve's osculating plane tilts as it twists out of that plane, per unit arc length.

For a smooth motion \mathbf{r}(t) with speed v(t) = |\mathbf{r}'(t)|, the acceleration decomposes into TNB-frame components as \mathbf{a}(t) = a_T\,\mathbf{T}(t) + a_N\,\mathbf{N}(t), \qquad a_T = v'(t) = \frac{\mathbf{r}'(t)\cdot\mathbf{r}''(t)}{|\mathbf{r}'(t)|}, \qquad a_N = \kappa v(t)^2 = \frac{|\mathbf{r}'(t)\times \mathbf{r}''(t)|}{|\mathbf{r}'(t)|}. a_T is the rate speed itself is changing (zero at constant speed); a_N measures how sharply the path curves, and is zero only along a straight line. Acceleration has no component along the binormal \mathbf{B}(t) = \mathbf{T}(t)\times\mathbf{N}(t) at all: motion always bends within the plane spanned by \mathbf{T} and \mathbf{N}.

Example

\mathbf{a}=a_T\mathbf{T}+a_N\mathbf{N} splits acceleration into speeding-up and turning components.
Show proof

Write \mathbf{r}' = v\mathbf{T} (velocity is speed times direction) and differentiate with the product rule: \mathbf{a} = \mathbf{r}'' = v'\mathbf{T} + v\mathbf{T}'. Since \mathbf{T}' = |\mathbf{T}'|\mathbf{N} by the definition of \mathbf{N}, and \kappa = |\mathbf{T}'|/v gives |\mathbf{T}'| = \kappa v, the second term becomes v(\kappa v)\mathbf{N} = \kappa v^2\mathbf{N}. So \mathbf{a} = v'\mathbf{T} + \kappa v^2\mathbf{N} — no \mathbf{B} term appears at all, matching a_T=v', a_N=\kappa v^2. The dot/cross-product forms of a_T, a_N follow by dotting or crossing \mathbf{a} = v'\mathbf{T}+\kappa v^2\mathbf{N} with \mathbf{r}'=v\mathbf{T}: dotting kills the \mathbf{N} term (\mathbf{T}\cdot\mathbf{N}=0) and leaves v v', matching \mathbf{r}'\cdot\mathbf{r}''=vv' divided by v; crossing kills the \mathbf{T} term (\mathbf{T}\times\mathbf{T}=\mathbf{0}) and leaves v\cdot\kappa v^2(\mathbf{T}\times\mathbf{N}), a unit vector magnitude \kappa v^3, matching |\mathbf{r}'\times\mathbf{r}''| divided by v.

Graph settings

Calculator