Lab › Geometry of Seeing › Appendix A5

Appendix A5 — The Sub-Riemannian Exponential Map of SE(2)

How initial-costate parameters $(c, \omega_0, \phi_0)$ generate every SE(2) geodesic from the origin; what conjugate, cut, and Maxwell points are; why the elastica mirror pair first ties after one curvature period $4K(k^2)$ while the free SR cut fires at half a pendulum period, $2K(k^2)$. Bridges Parts 1–2 to Parts 3–4.

By Igor Moiseev · 5 May 2026 · arXiv:0807.4731 · with Yu. L. Sachkov
Geometry of Seeing
  1. The Visual Cortex as a Contact Manifold
  2. Euler's Elastica and Jacobi Elliptic Functions
  3. Maxwell Strata: When Optimal Paths Fork
  4. The Exact Cut Time on SE(2) — and the Open Problem Beyond It
Appendices — theory background (5)
  1. A1. Lie Groups, Lie Algebras, and the Exponential Map of SE(2)
  2. A2. Distributions, Frobenius, and Contact Geometry
  3. A3. Calculus of Variations and the Pontryagin Maximum Principle
  4. A4. Jacobi Elliptic Functions, Elliptic Integrals, and the AGM
  5. A5. The Sub-Riemannian Exponential Map of SE(2) ← you are here
What this appendix is for
Parts 3 and 4 of the series discuss the cut locus and the Maxwell strata of the SE(2) sub-Riemannian problem. This appendix builds the object both rest on: the SR exponential map. It also makes precise the difference between the matrix exponential of Appendix A1 and this SR exponential — they are different functions on the same manifold. The interactive figures borrow the geodesic-family visualisation directly from the elliptic project's Dubins–visual-cortex example; the Maxwell-pair and conjugate-locus figures formalise what that figure was already showing.

Two exponential maps, both relevant

Lie-group $\exp$ (Appendix A1):

\[\exp_{\mathrm{group}}: \mathfrak{se}(2) \to \mathrm{SE}(2), \qquad X \mapsto \exp(X) \cdot e.\]

The 1-parameter subgroups $t \mapsto \exp(tX) \cdot e$ would be the geodesics of a bi-invariant Riemannian metric — but Appendix A1 showed $\mathrm{SE}(2)$ carries no such metric (its adjoint action is non-compact). They remain the natural “group-straight” curves on $\mathrm{SE}(2)$; they are certainly not the geodesics of the sub-Riemannian (SR) metric of Part 1’s primary-visual-cortex (V1) model.

Sub-Riemannian $\mathrm{Exp}$:

\[\mathrm{Exp}: \mathfrak{se}(2)^{\ast} \times \mathbb R_{\geq 0} \to \mathrm{SE}(2), \qquad (\mu_0, t) \mapsto g(t),\]

where $g(t)$ is the SR geodesic with initial costate $\mu_0 = (h_1^0, h_2^0, h_3^0) \in \mathfrak{se}(2)^{\ast}$ on the unit-Hamiltonian surface $h_1^2 + h_2^2 = 1$. This is the map that generates “Petitot’s family of candidate completion paths” from a fixed lifted state. When we say “exponential map” in Parts 3–4 we always mean this one.

Two parametrisations of the same costate space are convenient:

The exponential map is a smooth map $\mathrm{Exp}T : \mathfrak{se}(2)^{\ast}{c=1} \to \mathrm{SE}(2)$ at each time $T$; it is generically a local diffeomorphism but has degeneracies — that is the whole story of cut/conjugate analysis.

Closed-form geodesic endpoints

Two closed forms live here, one per horizontal problem — and this appendix keeps them apart (Part 2, Appendix A3).

The elastica sister curve (pinned $u_1 \equiv 1$; the smooth family every figure in this series integrates). With heading $\theta(s) = 2\arcsin(k\,\mathrm{sn}(s\mid k^2))$,

\[\boxed{\;x(s) \;=\; 2E(\mathrm{am}(s\mid k^2)\mid k^2) - s,\;}\] \[\boxed{\;y(s) \;=\; 2k\bigl(1 - \mathrm{cn}(s\mid k^2)\bigr).\;}\]

The free SR geodesics (Moiseev–Sachkov 2010, §3.3 “Parameterization of extremal trajectories” of the journal version — §4.3 in the preprint arXiv:0807.4731; the displays are unnumbered in both). In the paper’s elliptic coordinates $(\varphi, k)$ on $C_1$ — here, and only in this formula, $\varphi$ is the time along the pendulum orbit (not the pendulum angle), with $\varphi_t = \varphi + t$ — e.g.

\[y_t \;=\; \tfrac{1}{k}\bigl[\,\mathrm{sn}\,\varphi\,(\mathrm{dn}\,\varphi - \mathrm{dn}\,\varphi_t) - \mathrm{cn}\,\varphi\,\bigl(t + \mathrm{E}(\varphi) - \mathrm{E}(\varphi_t)\bigr)\bigr],\]

with matching expressions for $x_t$ and $\sin\theta_t$ (the paper’s $x_t$ and $\sin\theta_t$ carry the sign $s_1 = \operatorname{sgn}\cos(\gamma/2)$). Conventions of the paper, as used in this display: Jacobi functions are written with the modulus $k$ (parameter $m = k^2$ in this series), and $\mathrm{E}(\varphi) = E(\mathrm{am}\,\varphi \mid k^2)$ is Jacobi’s epsilon function. Still nothing but $\mathrm{sn}, \mathrm{cn}, \mathrm{dn}$ and incomplete elliptic integrals, but a different curve: with the paper’s pendulum angle $\gamma_t$ (controls $u_1 = \sin(\gamma_t/2)$, $u_2 = -\cos(\gamma_t/2)$, its eq. (3.9)) the plane projection has curvature $u_2/u_1 = -\cot(\gamma_t/2)$ — the same quantity as the $\cot(\varphi/2)$ of Appendix A3, whose pendulum angle is $\varphi = 2\pi - \gamma$ — and generic cusps wherever the forward speed changes sign. No numerical ODE integration is needed for either family.

Three takeaways:

  1. $\mathrm{Exp}_T(\mu_0)$ is a transcendental but explicit function of $T$ and the initial costate. Compute every entry with two elliptic12 calls and one ellipj call.
  2. Periodic curvature is not necessarily a closed curve. Since $\mathrm{cn},\mathrm{sn}$ are $4K(k^2)$-periodic, the elastica curvature and tangent repeat after $4K(k^2)$, but $(x,y)$ generally acquires a translational drift. Closure requires the additional condition that this net displacement vanish; the figure-eight modulus is a special case.
  3. The exponential map is not injective. Different $(c, \omega_0, \phi_0)$ can land at the same $g(T)$. When two distinct costates produce the same end with the same $T$, that endpoint is a Maxwell point, and the corresponding $T$ is its Maxwell time.
pinned elastica endpoint from origin
Figure A5.1. The elastica sister curve for $s \in [0, T]$ — the smooth family ($\kappa = 2k\,\mathrm{cn}$) that stands in for the free SR geodesics throughout the series' figures (the true SR projections are their cuspidal cousins; §Closed-form above). The blue, red, green colour scheme matches Part 1 Figure 4 — and indeed this figure is the same one, lifted to a more controllable form. As $k \to 1^-$ the inflectional family's period $4K(k^2)$ diverges (Appendix A4) and the curve approaches the borderline elastica on bounded intervals; for $k > 1$ (non-inflectional) the curvature is one-signed with spatial period $T = 2K(m)$ (a closed circle only in the $m \to 0$ limit). The endpoint dot is the endpoint of the selected pinned elastica at $T$. It is not the value of the free-SR exponential map unless the free reconstruction is used. Axes and units: the plane $(x, y)$ — $x$ to the right, $y$ up, origin at the grey dot, faint lines the axes $y = 0$ and $x = 0$ — in dimensionless units of the elastica length scale $\ell$ (the unit of arc length in which the inflectional curvature is $\kappa(s) = 2k\,\mathrm{cn}(s\mid k^2)$ and the pendulum equation is $\ddot\varphi + \sin\varphi = 0$); no tick axes, the scale bar (bottom left) gives the length scale. The readout lists the endpoint as $(x, y, \theta)$ with $\theta$ in radians.

Conjugate points and Jacobi fields

A Jacobi field along a geodesic $\gamma : [0, T] \to G$ is a variational vector field \(J(s) \in T_{\gamma(s)} G\) obtained by varying $\gamma$ through nearby geodesics with the same $\gamma(0)$:

\[J(s) \;=\; \tfrac{\partial}{\partial\varepsilon}\Big|_{\varepsilon=0} \gamma_\varepsilon(s),\]

where \(\gamma_\varepsilon\) is a 1-parameter family of geodesics with $\gamma_0 = \gamma$.

A point $\gamma(t^{\ast})$ is a conjugate point to $\gamma(0)$ if a non-trivial Jacobi field with $J(0) = 0$ also has $J(t^{\ast}) = 0$. Equivalently, $t^{\ast}$ is a time at which the differential of the SR exponential map is singular:

\[\det d_{\mu_0}\!\mathrm{Exp}_{t^{\ast}} \;=\; 0.\]

The relevance: past the first conjugate point, the geodesic stops being a local length-minimiser. Any sufficiently small perturbation produces a strictly shorter horizontal curve. This is the SR analogue of the classical Riemannian Morse-theoretic statement.

For SE(2), Sachkov’s analysis (2010, Thms 2.1–2.5 of the journal version; Thms 2.1–2.6 in the preprint arXiv:0903.0727) shows something stronger and cleaner than a bound:

Cut and Maxwell points

The cut time is the last $t$ up to which $\gamma$ is globally length-minimising — for any later $t$ there is some other horizontal curve from $\gamma(0)$ to $\gamma(t)$ with strictly smaller SR length; $\gamma(t_{\mathrm{cut}})$ is the cut point. In general the cut time satisfies \(t_{\mathrm{cut}} \leq t_{\mathrm{conj}}\) (losing local optimality is at least as hard as losing global).

A Maxwell point is a point where two distinct geodesics from $\gamma(0)$ meet with equal SR length. These come from discrete symmetries of the problem: the pendulum carries the reflection group ${\mathrm{Id}, \varepsilon^1, \dots, \varepsilon^7} \cong (\mathbb Z_2)^3$ of Moiseev–Sachkov (2010, §4.1.1 of the journal version; §5.1.1 in the preprint), “the group of symmetries of a parallelepiped”. In the paper’s coordinates $(\gamma, c)$ on the pendulum’s phase cylinder ($\gamma \in \mathbb R/4\pi\mathbb Z$ the pendulum angle, $c = \dot\gamma$) it is generated by the three reflections $\varepsilon^1 : (\gamma, c) \mapsto (\gamma, -c)$, $\varepsilon^2 : (\gamma, c) \mapsto (-\gamma, c)$ and $\varepsilon^4 : (\gamma, c) \mapsto (\gamma + 2\pi, c)$, with $\varepsilon^3 = \varepsilon^1 \circ \varepsilon^2$ and $\varepsilon^{i+4} = \varepsilon^4 \circ \varepsilon^i$; $\varepsilon^1, \varepsilon^2, \varepsilon^5, \varepsilon^6$ reverse the direction of time along pendulum trajectories and $\varepsilon^3, \varepsilon^4, \varepsilon^7$ preserve it. The fixed-point sets of these reflections on the exponential map are the Maxwell strata.

A Maxwell point always gives the upper bound $t_{\mathrm{cut}} \le t_{\mathrm{Maxwell}}^{(1)}$. For SE(2) the bound is attained (Sachkov 2010, Thm 3.3):

\[\boxed{\;t_{\mathrm{cut}} \;=\; t_{\mathrm{Maxwell}}^{(1)},\;}\]

i.e. the cut time equals the first Maxwell time $\mathfrak t(\lambda)$ of this group. The same equality has been proved case by case in several other highly symmetric left-invariant problems, but it is not a general theorem (Part 4). Characterising the Maxwell strata is the work of Moiseev–Sachkov (2010, arXiv:0807.4731); the equality is Sachkov (2010) and the full cut locus and optimal synthesis Sachkov (2011) — both from the preprint arXiv:0903.0727.

For the oscillating-pendulum family ($C_1$) with modulus $k$ the value is strikingly simple:

\[t_{\mathrm{cut}}(k) \;=\; \mathfrak t(\lambda) \;=\; 2K(k^2),\]

half a pendulum period — while the smooth elastica sister family first ties with its own mirror image only after a full curvature period, $s = 4K(k^2)$ (the coincidence Figure A5.2 plays with). The elliptic clock $K(k^2)$ runs both problems; how the half-versus-full period split arises is the heart of Parts 3–4.

γ_A: κ = +2k·cn — γ_B: κ = −2k·cn — coincidence requires y_A(s) = 0
Figure A5.2. The σ-symmetric pair: two pinned elastica $\gamma_A, \gamma_B$ leaving the origin with curvatures $\pm 2k\,\mathrm{cn}(s\mid k^2)$ respectively. By the $y \to -y$ reflection symmetry of the pendulum equation, $\gamma_B(s) = (x_A(s),\, -y_A(s),\, -\theta_A(s))$ — they trace mirror-image curves. As SE(2) configurations, they coincide exactly when $y_A(s) = 0$ and $\theta_A(s) \in \{0, \pi\} \pmod{2\pi}$ (here only $0$ occurs, since $|\theta_A| \le 2\arcsin k < \pi$). Panel (a) is the plane $(x, y)$ ($x$ right, $y$ up; blue $\gamma_A$, red dashed $\gamma_B$, grey dashed segment joining their current endpoints); panel (b) plots the plane separation $|\gamma_A(s) - \gamma_B(s)| = 2|y_A(s)|$ (vertical axis) against arc length $s$ (horizontal axis) — all lengths dimensionless, in units of the elastica length scale $\ell$ (the unit of arc length in which the inflectional curvature is $\kappa(s) = 2k\,\mathrm{cn}(s\mid k^2)$ and the pendulum equation is $\ddot\varphi + \sin\varphi = 0$); panel (a) has no tick axes, its scale bar gives the length scale. In (b) the blue dotted guide is the current $T$ and the grey dashed one $4K(k^2)$; the first zero of the separation (red marker, if any) is the first Maxwell time of this pair. Because $y_A(s) = 2k\bigl(1 - \mathrm{cn}(s\mid k^2)\bigr) \ge 0$ returns to zero only at $s = 4K(k^2)$ (and its multiples), the pair first re-coincides in full — position and heading — at $s = 4K(k^2)$, for every $k$: the first Maxwell coincidence of the elastica sister family — the smooth curves this figure integrates. (For the free SR problem the same symmetry machinery gives a cut at $2K(k^2)$, half this value; §Cut above.) At the special "figure-eight" modulus $k_0 \approx 0.909$ (root of $2E(k^2) = K(k^2)$) that shared endpoint sits back at the origin, so the closed curve is itself a single self-crossing figure-eight; for other $k$ the two curves still meet at $s = 4K(k^2)$, just away from the origin.

How a wavefront forms from a family of geodesics

Fix $T$ and vary the initial costate over a 1-parameter slice of the unit-energy surface — concretely, signed initial curvature $k \in [-0.95, 0.95]$ in $\kappa(s) = 2k\,\mathrm{cn}(s\mid k^2)$. Each $k$ launches a distinct geodesic from the origin. The set of positions reached at exact arc length $T$ — one position per geodesic — is the wavefront at time $T$:

\[\mathcal W_T \;:=\; \bigl\{\,(x(T;k),\; y(T;k)) : k \in [-0.95, 0.95]\,\bigr\} \;\subset\; \mathbb R^2.\]

It is a continuous curve in the plane (because $k \mapsto $ trajectory is continuous), and as $T$ grows it sweeps outward. At small $T$ — since every geodesic leaves the origin heading the same way and curves only gently — the wavefront is a short, almost-straight arc near $(T, 0)$, transverse to the launch direction. As $T$ approaches the elastica mirror-tie time $T_{\mathrm M} = 4K(k^2)$, neighbouring trajectories begin to converge and the wavefront develops cusps — points where this one-parameter family folds ($\partial_k(x, y) = 0$), the planar shadow of the mechanism by which an exponential map becomes singular at conjugate points.

Visually, this looks remarkably like the SR analogue of the Riemannian caustic — the bright curves you see at the bottom of a coffee cup when light reflects. The same mathematics: failure of the exponential map to be locally surjective along a critical curve.

Faint trajectories sweep $k \in [-0.95, 0.95]$; the bold curve is $\mathcal W_T$
Figure A5.3. A wavefront forming. 39 trajectories, one per signed modulus $k$, are drawn in faint blue (forward-curving, $k > 0$) and faint red ($k < 0$) up to the current arc length $T$. The thick coloured curve passing through their endpoints is the wavefront $\mathcal W_T$ at that $T$. Three lighter "ghost" wavefronts at $T/4, T/2, 3T/4$ (toggleable) show how $\mathcal W_T$ moves outward and reshapes as time grows. Slide $T$ forward and watch:
  1. at small $T$ the wavefront is a short arc near $(T, 0)$;
  2. at $T \approx \pi$ it lengthens and starts to flatten;
  3. around $T \approx 2\pi$ — the smallest period $4K(0)$ in the swept family (the near-straight $k \to 0$ curves) — the first sharp bends become visible in the sampled endpoint slice (red rings, found by a turning-angle heuristic): sharp bends in this sampled one-parameter planar slice. These rings do not certify a cusp or a conjugate point; that requires the differential of the full endpoint map. The free SR oscillating-pendulum ($C_1$) geodesics have none (Sachkov 2010, Thm 2.1);
  4. as $T$ grows the wavefront self-intersects: at those crossings two different curves reach the same plane point at equal spatial arclength. This alone does not give a Maxwell point: the headings and the cost for the chosen variational problem must also agree. The mirror pair of Figure A5.2 has the required symmetry, but this diagram does not test arbitrary crossings.
Axes: the plane $(x, y)$ ($x$ right, $y$ up, origin at the black dot, faint lines the axes), dimensionless in units of $\ell$; no tick axes — the scale bar (bottom right) gives the length scale and rescales as $T$ grows. Press play to animate $T$ continuously. This is a slice of endpoints of pinned elastica at fixed spatial arclength, not an SR distance sphere or a computed conjugate locus. Euler's elastic problem has its own conjugate-point theory; the free SR oscillating-pendulum ($C_1$) geodesics have no conjugate points.

Connection to the elliptic project

Figure A5.1 is, modulo cosmetics, the same family of curves as “Geodesic family from a fixed base point” in the elliptic project’s Dubins-visual-cortex page. The two visualisations share the same integration routine (integrateElastica in elliptic-core.js) and the same colour palette. The difference is that this appendix interprets the curves as pinned-elastica endpoint illustrations, isolates the mirror pair, and shows a fixed-arclength endpoint slice. The slice illustrates endpoint geometry; it does not compute a conjugate locus. Parts 3 and 4 develop the Maxwell and cut-time mechanisms separately.

The Dubins-back-wheel cuspidal trajectories of the elliptic project ( parking-style curves with cusps) are also relevant here: they are projections of SE(2) geodesics in the regime where the rear-axle forward velocity changes sign. Those cusps belong to a single trajectory (the forward speed $u_1$ passing through zero) and should not be confused with the wavefront cusps of Figure A5.3, which are singularities of a family of trajectories.

Code

# Generate the mirror pair for the pinned inflectional elastica problem.
# This is the 4K elastica tie, not the 2K first Maxwell/cut event of free SR.
import numpy as np
from elliptic import ellipj, agm

ellipticK = lambda m: np.pi / (2 * agm(1.0, np.sqrt(1 - m)))   # K(m) = π / (2·AGM(1, √(1−m)))

def inflectional_elastica(k, sign, T, N=1500):
    """Compute one member (sign = ±1) of the pinned mirror pair."""
    m = k * k
    s = np.linspace(0, T, N)
    sn, cn, dn, _ = ellipj(s, m)   # vectorised; returns (sn, cn, dn, am)
    # Heading half-angle: sin(θ/2) = k·sn(s|m), so θ = 2·arcsin(k·sn).
    # Curvature κ = dθ/ds = 2k·cn·dn / sqrt(1 − k²sn²) = 2k·cn  (since dn = sqrt).
    kappa = sign * 2 * k * cn * dn / np.sqrt(1 - k * k * sn * sn)
    theta = np.zeros_like(s)
    x = np.zeros_like(s)
    y = np.zeros_like(s)
    # Cumulative trapezoidal
    dt = T / (N - 1)
    for i in range(1, N):
        thmid = theta[i-1] + 0.5 * kappa[i-1] * dt
        x[i] = x[i-1] + np.cos(thmid) * dt
        y[i] = y[i-1] + np.sin(thmid) * dt
        theta[i] = theta[i-1] + kappa[i-1] * dt
    return x, y, theta

k = 0.55
omega0 = 1.0
T_maxwell = 4 * ellipticK(k * k) / omega0   # elastica mirror-pair tie (SR cut is 2K)
print(f"elastica mirror-tie time T₁ = 4K(k²)/ω₀ = {T_maxwell:.4f}")

# Two pinned extremals with opposite curvature.
xA, yA, thA = inflectional_elastica(k, +1, T_maxwell)
xB, yB, thB = inflectional_elastica(k, -1, T_maxwell)

err = np.hypot(xA[-1] - xB[-1], yA[-1] - yB[-1])
print(f"|γA(T₁) − γB(T₁)|  =  {err:.2e}")     # ≈ 2e-2 at N = 1500 (first-order stepping); → 0 like 1/N
# Conjugate time of the ELASTICA family (schematic scale, one curvature period).
# NB: the free SR oscillating-pendulum (C1) geodesics have NO conjugate points at all
# (Sachkov 2010, Thm 2.1) — this heuristic applies to the elastica sister
# problem, where conjugate points do occur on the 4K scale.
def conjugate_scale_elastica(k):
    """Heuristic scale (one curvature period), not a closed form."""
    return 4 * ellipticK(k * k)

for k in (0.1, 0.3, 0.5, 0.7, 0.9, 0.95):
    print(f"k = {k:4.2f}:  ~T_conj(elastica) = {conjugate_scale_elastica(k):.4f}")

Derived results

The SR exponential map of $\mathrm{SE}(2)$ takes initial costates to group endpoints; its closed form involves Jacobi elliptic functions and incomplete elliptic integrals. Conjugate points mark the loss of local optimality; cut points mark the loss of global optimality. Maxwell points are the symmetric mechanism by which optimality fails — two distinct geodesics meeting with the same SR length. For the oscillating-pendulum family ($C_1$) the free SR cut fires at $2K(k^2)$ — half a pendulum period — while the smooth elastica sister pair first ties at $4K(k^2)$, one full curvature period: the same elliptic clock, two problems.

References

  1. I. Moiseev & Yu. L. Sachkov (2010). "Maxwell strata in sub-Riemannian problem on the group of motions of a plane." ESAIM: COCV 16(2): 380–399. arXiv:0807.4731. Journal numbering: §3.3, geodesics in Jacobi functions; §4.1.1, the reflections $\varepsilon^1, \dots, \varepsilon^7$ (§4.3 and §5.1.1 in the preprint, whose Introduction is numbered as Section 1).
  2. Yu. L. Sachkov (2011). "Cut locus and optimal synthesis in the sub-Riemannian problem on the group of motions of a plane." ESAIM: COCV 17(2): 293–321. arXiv:0903.0727. Global structure of the exponential map, cut locus and optimal synthesis. (The closed-form geodesic parametrisation quoted above is in §3.3 of the Moiseev–Sachkov paper — §4.3 of its preprint — not here.)
  3. Yu. L. Sachkov (2010). "Conjugate and cut time in the sub-Riemannian problem on the group of motions of a plane." ESAIM: COCV 16(4): 1018–1039. Conjugate-time theorems 2.1–2.5 and $t_{\mathrm{cut}} = \mathfrak t$ (Thm 3.3) in the journal numbering; in the preprint arXiv:0903.0727 these are Thms 2.1–2.6 and 3.3 (Thms 2.1 and 3.3 carry the same number in both; journal Thms 2.4, 2.5 are preprint Thms 2.5, 2.6).
  4. A. A. Agrachev, Yu. L. Sachkov (2004). Control Theory from the Geometric Viewpoint. Springer. Chapters 12 and 21 develop the Hamiltonian exponential map and the Jacobi equation (conjugate points) in general; the SE(2) computations are in the Sachkov papers listed here.
  5. R. Montgomery (2002). A Tour of Subriemannian Geometries, Their Geodesics and Applications. AMS Mathematical Surveys and Monographs 91. Chapter 1 works the Heisenberg-group geodesics explicitly, including where they stop minimising.
  6. Elliptic project — Dubins / Visual Cortex example: the geodesic family in Figure A5.1 is the same family rendered there.
  7. Elliptic project — Dubins car example: cuspidal SE(2) trajectories arising in the same problem under reverse-allowed parametrisation.