Monocurl Essays
Main site Discord Download

Curvature Is Turning Per Unit Distance

When a curve bends, it is tempting to describe the bend by eye. A parabola near its vertex seems more curved than it does far away. A circle with a small radius seems more curved than a circle with a large radius. A straight line has no curvature at all.

Those statements are true, but they hide the real quantity. Curvature is not how far a curve strays from a line. It is how fast the direction of motion changes as you walk along the curve.

Imagine carrying a tiny arrow tangent to the curve. The arrow points in the direction your feet are moving. After you take a very small step of length $ds$, the arrow has rotated by a very small angle $d\theta$. Curvature is the ratio

$$ \kappa = \frac{d\theta}{ds}. $$

That definition is deliberately local. It does not ask whether the whole curve looks dramatic. It asks what a traveler standing at one point can detect by taking an infinitesimal step.

Loading runtime...
0.00s
live slideshowessay-2026-curvature-is-turning-1.mcs
param curve_bend = 0.24
param marker = 0.8

background = BLACK
camera = Camera(4b)

let Curve = |bend|
    stroke{BLUE, 3} ExplicitFunc(|x| bend * x * x, [-2.2, 2.2, 180])

let Tangent = |bend, marker| block {
    let y = bend * marker * marker
    let slope = 2 * bend * marker
    let dx = 0.7 / sqrt(1 + slope * slope)
    let dy = slope * dx
    . stroke{ORANGE, 3} Line(
        start: [marker - dx, y - dy, 0],
        end: [marker + dx, y + dy, 0]
    )
}

let OsculatingCircle = |bend, marker| block {
    let y = bend * marker * marker
    let slope = 2 * bend * marker
    let scale = sqrt(1 + slope * slope)
    let kappa = 2 * bend / (scale * scale * scale)
    let radius = 1 / kappa
    let nx = -slope / scale
    let ny = 1 / scale
    let c = [marker + nx * radius, y + ny * radius, 0]
    . stroke{GREEN, 1.7} center{c} Circle(radius)
    . fill{WHITE} center{[marker, y, 0]} Circle(0.045)
}

let Diagram = |curve_bend, marker| block {
    . stroke{GRAY, 1} Line(start: [-2.5, 0, 0], end: [2.5, 0, 0])
    . Curve(curve_bend)
    . Tangent(curve_bend, marker)
    . OsculatingCircle(curve_bend, marker)
    . color{WHITE} center{[0, -1.55, 0]} Text("curvature = turning / distance", 1.00)
}

mesh diagram = Diagram($curve_bend, $marker)

slide "bend the curve"
    curve_bend = 0.42
    play Lerp(1.2)

slide "move the point"
    marker = -1.05
    play Lerp(1.2)

The green circle is the osculating circle: the circle that has the same position, tangent direction, and curvature as the curve at the marked point. It is not meant to match the whole curve. It is a local stand-in, the second-order shape the curve whispers if you zoom in far enough.

Why distance matters

You might ask why the denominator is distance along the curve rather than a convenient coordinate like $x$. The reason is that curvature should belong to the shape itself, not to the speed of a particular parametrization.

Suppose a curve is traced by a function $\gamma(t)$. If someone replays the same movie at double speed, the tangent direction changes twice as fast with respect to $t$. But the curve has not become twice as curved. The correction is to divide by how fast arc length is being accumulated:

$$ \kappa(t) = \frac{\lVert T'(t) \rVert}{\lVert \gamma'(t) \rVert}, $$

where $T(t)$ is the unit tangent. The numerator says how fast the direction arrow turns in time. The denominator converts time into distance traveled. The quotient is geometric.

For a graph $y=f(x)$, this becomes the familiar formula

$$ \kappa(x)=\frac{|f''(x)|}{(1+f'(x)^2)^{3/2}}. $$

Notice the denominator. A graph can have the same second derivative at two points, but if one point is steep, then walking a small distance along the curve changes $x$ only a little. The tangent gets more room, measured by arc length, to change direction. The result is lower curvature.

Circles calibrate the scale

A circle of radius $R$ turns through angle $2\pi$ over arc length $2\pi R$. Its curvature is therefore

$$ \kappa=\frac{2\pi}{2\pi R}=\frac1R. $$

That is why the osculating circle is such a useful mental model. Large radius means gentle turn. Small radius means sharp turn. A line is the limiting case $R=\infty$, so $\kappa=0$.

rendered Monocurl scene
imageessay-2026-curvature-is-turning-2.mcs
background = BLACK
camera = Camera(4.5b)

mesh comparison = block {
    . stroke{GREEN, 2} center{[-1.45, -0.1, 0]} Circle(0.48)
    . stroke{GREEN, 2} center{[1.05, 0, 0]} Circle(1.65)
    . color{WHITE} center{[-1.45, -0.78, 0]} Text("small radius", 0.84)
    . color{WHITE} center{[1.05, -1.92, 0]} Text("large radius", 0.84)
    . color{GRAY} center{[0, 1.92, 0]} Text("curvature = 1 / radius", 0.98)
}

slide "circle scale"
    play Fade(0.6)

The subtle point is that every sufficiently smooth curve borrows this circle idea at each point. Not globally. Locally. Curvature is the inverse radius of the best local circle.

The theorem hidden in the picture

There is a compact way to say what the animation is showing. If a plane curve is parametrized by arc length $s$, then the unit tangent can be written as

$$ T(s)=(\cos\theta(s),\sin\theta(s)). $$

Differentiating gives

$$ T'(s)=\theta'(s)(-\sin\theta(s),\cos\theta(s)). $$

The vector in parentheses has length $1$, so $\lVert T'(s)\rVert=|\theta'(s)|$. In words: the rate at which the tangent vector moves on the unit circle is exactly the rate at which the tangent angle turns.

Curvature is therefore not an extra decoration placed on a curve. It is the speed of the tangent's own motion.