Heah Hung Xun

What a Lollipop Taught Me About Geometry

A friend asked whether you could lick a round lollipop into the shape of the Earth. The optimal strategy turns out to be one line long, and getting there cost me a week of minimising the wrong thing.

English 中文

updated 13 Sept 2026 18 min read #differential geometry #holonomy #geometric control

Can you lick a perfectly spherical lollipop into the shape of the Earth?

A friend asked me this, and my first answer was wrong in a way I did not notice for a while. Total the volume you need gone, divide by the volume one lick takes, done.

Ignore mountains and oceans. At planetary scale the Earth is an oblate spheroid: a little wider around the equator than from pole to pole. Shrink that same proportion onto a round sweet and three questions fall out.

  1. How much candy has to go?
  2. Where does it come off?
  3. If a lick leaves a long thin mark rather than a dot, which way should the mark point?

The first is arithmetic and I will do it in a paragraph. The second is harder. The third one is the reason this page exists, and I did not see it coming.

The model here is a fixed sphere, additive removal, and no saliva. Real candy dissolves, the tongue is warm and wet, and the shape changes while you work on it. Everything after this sentence is about a sphere that does not care.1

How much, and then where

The flattening of a spheroid is the fractional gap between its equatorial and polar radii,

f=aEbEaE.f=\frac{a_E-b_E}{a_E}.

WGS84, the model your phone’s GPS uses, puts the inverse flattening at 298.257223563. So f=0.0033528f = 0.0033528. On a lollipop of radius R0=20R_0 = 20 mm that makes the polar dimple 67 µm deep — about the thickness of a sheet of paper. Keep the equator where it is, pull the poles in by that much, and the volume you owe is

ΔV=4π3R03f112 mm3,\Delta V=\frac{4\pi}{3}R_0^3f \approx 112\ \text{mm}^3,

which is 0.34% of a 33.5 cm³ sweet. That was my first answer, and it is a correct answer to a question nobody asked. A tin of paint knows its own volume and has no opinion about the painting.

Remove that much evenly and you get a smaller sphere. Remove more near the equator and you have made an American football. What the problem actually wants is a field: a rule saying how deep to go at every point.

Let θ\theta be colatitude, measured down from the north pole. Expanding the target spheroid to first order in ff,

δ(θ)=R0fcos2θ.\delta_\star(\theta)=R_0f\cos^2\theta.

Check the ends. At a pole cos2θ=1\cos^2\theta = 1 and you take the full 67 µm. At the equator it is zero and you take nothing. Geometry has answered the question the volume calculation could not even hear.2

Two notes

Spherical harmonics are the notes of a sphere. A pattern painted on a ball decomposes into a fundamental and its overtones the way a struck string does, and the low harmonics are the broad patterns while the high ones are the fine detail.

Our target is a two-note chord. P2P_2 is the polynomial you want:

P2(t)=3t212,cos2θ=13+23P2(cosθ).P_2(t)=\frac{3t^2-1}{2}, \qquad \cos^2\theta=\frac13+\frac23P_2(\cos\theta).

A constant, which is degree zero, plus one broad pole-versus-equator pattern, which is degree two. Nothing else survives the linearisation.

Two notes. That should be the easy case, and for a while I thought it was going to be, because the instrument is the problem: a single lick is a small patch, and a small patch is a chord of dozens of harmonics at once. You cannot play degree two on its own. You can only play thick clusters and hope the unwanted partials cancel.

Except they can’t cancel, because a lick removes candy and cannot put it back. Every amplitude is non-negative. That is where the music analogy dies, and it dies at the point that makes this problem interesting: I get to choose where to strike, every strike is positive, and there is no such thing as playing a note at negative volume to silence the one before it.

The week I spent minimising the wrong thing

So I set up the obvious objective. Pick a menu of possible licks, give each one a non-negative strength αj\alpha_j, and minimise the squared distance from the target field:

J(α)=δjαjKj22,αj0.J(\alpha)=\Big\|\delta_\star-\sum_j\alpha_jK_j\Big\|_2^2, \qquad \alpha_j\ge0.

Twelve contact points spread over the sphere, four orientations each, 48 candidates, non-negative least squares. Relative error 0.4365. I tried more orientations. I tried moving the centres. Nothing got below about 0.4, and I spent a week convinced the obstruction was deep.

The obstruction was that I was minimising the wrong thing.

Go back and look at what a constant does. A uniform layer of removal takes the same depth off everywhere. It shaves the lollipop down to a smaller lollipop, and a smaller lollipop is the same shape. The degree-zero harmonic is not part of the design problem at all. It is a free parameter that costs candy and buys nothing, and I had been faithfully fitting it, at full weight, for a week.

Only degree two matters. Of my 0.4365, a large chunk was the essay-grade error of insisting that δ\delta equal R0fcos2θR_0f\cos^2\theta on the nose, when what was wanted was δ\delta equal to R0fcos2θR_0f\cos^2\theta plus anything constant.

The whole answer, in one line

Drop the constant from the objective and the problem stops being an optimisation. It becomes a division.

Here is the move. The target depends only on θ\theta, so look for a removal recipe that also depends only on θ\theta: a density ww over the sphere, uniform in longitude, licking in rings. Smearing a footprint evenly around a circle of latitude and then adding up the rings is a spherical convolution, and convolution on a sphere is multiplication note by note. If the footprint KK has degree-\ell transfer

k=2π0rcK(r)P(cosr)sinrdr,k_\ell=2\pi\int_0^{r_c}K(r)\,P_\ell(\cos r)\sin r\,dr,

then a density with note ww_\ell produces a field with note wkw_\ell k_\ell. Every note is independent. To get degree two right, divide by k2k_2.

Write w=w0+w2P2(cosθ)w = w_0 + w_2 P_2(\cos\theta). Matching degree two needs w2k2=23R0fw_2 k_2 = \tfrac23 R_0 f. Degree zero is free, so make it as small as non-negativity allows: P2P_2 bottoms out at 12-\tfrac12, so w0=w2/2w_0 = w_2/2, and

  w(θ)=R0fk2cos2θ  \boxed{\;w(\theta)=\frac{R_0f}{k_2}\cos^2\theta\;}

The optimal lick density has the same shape as the thing you are carving. Lick hardest at the poles, taper as cos2\cos^2, stop entirely at the equator, and spread each ring evenly around its circle. The resulting removal field is

δ(θ)=R0fcos2θ+R0f3(1k21),\delta(\theta)=R_0f\cos^2\theta+\frac{R_0f}{3}\left(\frac1{k_2}-1\right),

which is the target plus a constant. Shape error zero. I checked it numerically and got 4×10134\times10^{-13}, which is what “zero” looks like when you compute it in double precision.

For the footprint I have been using, k2=0.847721k_2 = 0.847721.3 So the recipe removes 1/k2=1.17961/k_2 = 1.1796 times the bare volume difference: 133 mm³ instead of 112. The extra 18% is not waste in any interesting sense. It goes entirely into that uniform term, and on a 20 mm lollipop the uniform term is 4.0 µm.

Four microns. You are carving a 67 µm feature and the price of doing it exactly right is a lollipop four microns smaller than the theoretical minimum. Nobody is going to notice four microns. That is the whole answer to my friend’s question, and it took a week of not looking at it.

Three hundred licks

A density is not a strategy. You cannot lick continuously; you lick a finite number of times. So put MM rings at the Gauss–Legendre colatitudes, give ring kk the mass its share of cos2θ\cos^2\theta demands, and split that mass evenly among nkn_k licks spaced around the circle, with nkn_k scaled to the ring’s circumference so the licks overlap by about the same amount everywhere.

RingsLicksShape error
51261.8×1011.8\times10^{-1}
71921.5×1021.5\times10^{-2}
92584.5×1044.5\times10^{-4}
113165.0×1065.0\times10^{-6}
133843.3×1073.3\times10^{-7}

Eleven rings and 316 licks gets the shape to five parts in a million. Solve the ring masses again by non-negative least squares, throwing away the formula, and you recover the same numbers to eight digits. That is the check I actually trust.

Three hundred licks is also, and I did not plan this, roughly how many licks it takes to finish a lollipop.

The recipe

What the optimal strategy actually tells you to do

5.0e-6

Lick in rings. Each ring of latitude gets a total amount of removal proportional to cos² of its colatitude, split evenly around the circle. Drag the slider to add rings; watch the solid curve settle onto the dashed one.

removal along a meridian04590135180colatitudewhere the licks gocolatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 168.0° · strength 0.0395colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 152.5° · strength 0.0318colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 136.9° · strength 0.0217colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 121.3° · strength 0.0108colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 105.6° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 74.4° · strength 0.0029colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 58.7° · strength 0.0108colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 43.1° · strength 0.0217colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 27.5° · strength 0.0318colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395colatitude 12.0° · strength 0.0395north polesouth polelongitude
this recipethe target, cos²θ
licks in total316
shape error4.96e-6
candy removed vs. the minimum1.180×
uniform extra removal0.0599

11 rings, 316 licks, shape error 5.0e-6. The solid curve sits above the dashed one by a constant, and a constant is the one thing that does not matter: it shaves the lollipop down evenly without touching its shape. That offset is why the recipe removes 1.180× the bare volume difference. The equatorial ring gets nothing, so it is not drawn.

Drag it up to eleven rings and watch the solid curve settle onto the dashed one, displaced upward by a constant. The constant is the whole lesson.

The state of a lick

Everything so far assumed the footprint is round. Time to spend the rest of the essay on the assumption I quietly made and my friend’s question did not grant me.

Begin with a circular contact patch. To place it you need a centre and a size; rotating it about its own centre does nothing at all. Now stretch it into an ellipse. Two patches with the same centre and the same two widths, one lying north–south and the other east–west, remove different candy. A point on the sphere has stopped being enough to say where you licked.

At the contact point, lay down two little perpendicular arrows, one along the long axis and one along the short. Both lie flat on the candy; nothing pokes through. They are tangent vectors. Together with the outward normal they make a full three-dimensional orientation, which is to say a rotation matrix:

R=[e1 e2 x]SO(3).R=[e_1\ e_2\ x]\in\operatorname{SO}(3).

The last column is where you are and the first two are which way the lick points. The oriented orthonormal frame bundle means nothing more alarming than “every point of the sphere, together with every pair of perpendicular unit arrows you could attach there,” and if you erase the arrows and keep only the position, many frames collapse onto one point:

S2SO(3)/SO(2).S^2\cong\operatorname{SO}(3)/\operatorname{SO}(2).

I am carrying more information than the ellipse has. An ellipse turned through 180° is the same ellipse, so the frame distinguishes states the footprint cannot. That is sloppy, and it is also the only reason transport is easy to write down, so I keep it.

For the footprint itself: strongest at the centre, fading outward, stretched into an ellipse. Unroll a small neighbourhood onto the tangent plane with the logarithm map, work in polar tangent coordinates (r,ϕ)(r,\phi), and write

K(r,ϕ)=χ(r)Za,bexp[r22(a+bcos2ϕ)],a>b.K(r,\phi)=\frac{\chi(r)}{Z_{a,b}} \exp\left[-\frac{r^2}{2}\big(a+b\cos 2\phi\big)\right], \qquad a>|b|.

You can read the parameters off without doing the integral. aa sets the average narrowness; bb says how unequal the two widths are. At b=0b=0 the mark is round and orientation is irrelevant. As b|b| grows it gets longer and thinner and cares more about which way it is turned. Throughout, a=16a=16 and rc=1.2r_c=1.2, so the footprint’s width is 1/a=0.251/\sqrt{a} = 0.25 rad, which is 5 mm of arc on a 20 mm lollipop. That is about a tongue.

The factor χ\chi is a smooth cutoff that keeps the kernel inside a cap:

χ(r)=exp[r2rc2r2](r<rc),\chi(r)=\exp\left[-\frac{r^2}{r_c^2-r^2}\right]\quad (r<r_c),

zero outside. It is there because the logarithm map has no opinion about direction at the antipode, and rather than argue with the antipode, mathematics just went ahead and truncated. It is a fudge. I have never liked it. The normalisation Za,bZ_{a,b} makes each footprint integrate to one over the sphere, using the spherical area element dA=sinrdrdϕdA=\sin r\,dr\,d\phi and not the flat one.

That is everything needed to write down what happens when a lick gets turned.

Parallel transport

Slide an arrow along the lollipop. Keep it flat against the surface and never deliberately twist it left or right. On a unit sphere sitting in ordinary space the rule is one line:

v˙=(vx˙)x.\dot v=-(v\cdot\dot x)x.

All the change is along the normal and none of it is in the tangent plane, which is the formal content of “no twisting.” Differentiate vxv\cdot x and you find tangency is preserved; differentiate vvv\cdot v and you find length is too.

Now walk a full circle of latitude. You come back to the same point with the arrow pointing somewhere else. At colatitude 45° it is off by 105.4416°, or 1.840302369021 radians if you want it that way, and the twelve digits are not showing off. They are the cheapest known way to catch an integrator bug, which is the only reason anyone ever prints twelve digits. Gauss–Bonnet says the angle is the enclosed cap area,

ψ=2π(1cosθ0)(mod2π),\psi=2\pi(1-\cos\theta_0)\pmod{2\pi},

and the honest way to say what went wrong is that “without twisting” is a condition on each tiny step and not on the trip. Every step was locally straight. Curvature is the fact that locally straight choices do not fit together globally.

Nothing slipped. The sphere is curved, and that is the whole of it.

How much damage a turn does

An angle is not yet a consequence. Rotate a round lick by any amount you like and it removes exactly the same candy, which means the holonomy angle I worked so hard for can be, for the wrong footprint, completely invisible. So: how different are two licks?

Compare the footprint you left with the footprint you would leave now, same centre, and integrate the squared difference:

Dψ2=S2(KKψ)2dA.D_\psi^2=\int_{S^2}(K-K_\psi)^2\,dA.

The overlap C(ψ)=S2KKψdAC(\psi)=\int_{S^2}KK_\psi\,dA is easier, and since rotation preserves the norm, Dψ2=2(C(0)C(ψ))D_\psi^2 = 2(C(0)-C(\psi)). Multiplying the two bell curves puts two cosines in one exponent, which collapse:

cos(2ϕ)+cos(2ϕ2ψ)=2cosψcos(2ϕψ).\cos(2\phi)+\cos(2\phi-2\psi)=2\cos\psi\cos(2\phi-\psi).

The angular average of eucosαe^{-u\cos\alpha} is the modified Bessel function I0(u)I_0(u), so a two-dimensional surface integral turns into one integral over distance from the contact centre:

Dψ2=4πZa,b20rcχ(r)2ear2[I0(br2)I0(br2cosψ)]sinrdr.D_\psi^2=\frac{4\pi}{Z_{a,b}^2} \int_0^{r_c}\chi(r)^2e^{-ar^2} \left[I_0(br^2)-I_0(br^2\cos\psi)\right]\sin r\,dr.

That is the formula. Read it for a moment before I tell you what is in it.

I0I_0 is even and increases with the size of its argument. So DψD_\psi vanishes at ψ=0\psi=0 and ψ=π\psi=\pi, peaks at ψ=π/2\psi=\pi/2, and grows with b|b|. Which means the worst route is the one with the most holonomy: walk a big loop, come back badly turned, leave a badly wrong mark.

Except at 60°.

At colatitude 60° the enclosed cap has area exactly π\pi, so the frame comes back rotated by a full half-turn. Maximum possible insult. And the footprint is identical, because turning an ellipse through 180° maps both of its axes onto themselves reversed and an ellipse cannot tell. I spent an afternoon convinced the quadrature was broken. It was not broken. The geometry moved as far as it can move and nothing measurable happened at all.

I do not know whether that coincidence generalises, and I could not find it stated anywhere.

One lap around a circle of latitude

Carry a lick around the sphere and it comes back turned

105.4°

Walk the contact once around a parallel without ever twisting your hand. It returns to the same spot pointing somewhere else. The curve on the right is the exact mismatch between the footprint you left and the footprint you would now leave.

start · route colatitude 45°04590135180this routeframe rotation ψ (degrees)
frame rotation105.44°
visible turn (mod 180°)105.44°
relative mismatch0.3968
twist needed to hold it254.6°

A round footprint (elongation 0) is indifferent to all of this. Everything on this panel is the price of having a long axis.

The mismatch in that panel is the exact formula above, evaluated in your browser as you drag. Put the route at 60° and watch it go to zero while the frame rotation reads 180.00°.

One more thing the formula gives away. Expand the Bessels in small bb; the constants cancel when you subtract, and the leading term is quadratic:

Dψ2=πb2sin2ψZa,020rcχ(r)2ear2r4sinrdr+O(b4).D_\psi^2= \frac{\pi b^2\sin^2\psi}{Z_{a,0}^2} \int_0^{r_c}\chi(r)^2e^{-ar^2}r^4\sin r\,dr +O(b^4).

So the mismatch is linear in the elongation, while its square is quadratic, and keeping those two straight is a small piece of bookkeeping that will otherwise cost you an afternoon. Writing ε=b/a\varepsilon = b/a and taking the 45° loop, the expansion predicts 1.040885ε1.040885\,\varepsilon at leading order:

ε=b/a\varepsilon = b/aRelative mismatch
0.010.008618
0.020.017236
0.100.086272
0.400.350946
0.600.539096

Doubling the smallest contrast doubles the mismatch. The measured log slope is 0.999973. I wanted 1. The gap is quadrature error and it is boring, which is exactly what you want from that gap.

What a long axis is actually worth

Here is where I expected orientation control to pay for itself, and it does the opposite.

Put the elliptical footprint back into the ring recipe. The closed form assumed a round kernel, because a round kernel makes the ring construction a genuine convolution. A tilted ellipse does not: the effective degree-two transfer now depends on the colatitude of the ring and on the tilt β\beta of the long axis, as kˉ2(θ)+Δ(θ)cos2β\bar k_2(\theta) + \Delta(\theta)\cos2\beta. At 45° colatitude, a long axis lying along the meridian delivers 0.2234 of degree-two response per lick against 0.1871 for one lying along the parallel. Meridian wins by 19%.

Then you fit it and the meridian rule loses badly.

Footprint at each siteLicksShape error
one tilt, along the meridian2002.8×1022.8\times10^{-2}
four tilts, 0/45/90/135°12641.1×1031.1\times10^{-3}
eight tilts25284.1×1054.1\times10^{-5}
round3165.0×1065.0\times10^{-6}

A fixed tilt leaves azimuthal order m=2m=2 in every footprint. The target has no m=2m=2 in it, eleven ring strengths cannot cancel it, and going to 21 rings only gets you to 1.8×1021.8\times10^{-2}. It is a floor, not a convergence rate.

Four tilts in equal measure kill orders 2, 4 and 6 exactly (the four phases sum to zero unless the order is a multiple of eight), and the first survivor is m=8m=8, sitting at 5.6×1045.6\times10^{-4} of the footprint. Which is, to within a factor of two, the error in the table. Eight tilts push the survivor out to m=16m=16 and the error falls by another factor of twenty-five, at which point ring spacing is the limit again and anisotropy has stopped mattering.

What to do with a long axis

The best thing anisotropy can do here is cancel itself

1.1e-3

Same eleven rings, same target, same non-negative fit. The only difference is how many tilts the tongue is allowed to use at each site. More tilts is worse value per lick and better value per answer.

one tilt, along the meridian2.8e-2four tilts1.1e-3eight tilts4.1e-5a round tongue5.0e-6the footprints being averaged at one site
shape error1.07e-3
licks1264
lowest surviving azimuthal orderm = 8
error vs. the round tongue215×

Tilts at 0°, 45°, 90° and 135° in equal measure annihilate azimuthal orders 2, 4 and 6 exactly. The first survivor is m = 8, and that residue is precisely what sets the error here.

Averaging over four tilts leaves a footprint that is rotationally symmetric but radially fatter, with an I0I_0 factor smeared into its profile, so k2k_2 drops from 0.847721 to 0.820925 and you pay 1.2181 times the volume instead of 1.1796. That is the real cost of having a long axis: not a worse shape, just more candy.

So for a target this smooth and this symmetric, directionality is a liability, and the best thing an orientable tongue can do is arrange to cancel its own orientation. That is not what I expected to find, and I want to be careful about how far it generalises: a zonal degree-two target is about the friendliest thing you could ask for. Ask for something with genuine directional structure and the accounting inverts.

Where the bill arrives

Which brings back the arrow.

Suppose you do commit to the meridian rule, because you have one tongue and it has one shape. You now have to hold the long axis on the meridian all the way around a ring, and that is not free. The parallel at colatitude θ\theta has geodesic curvature cotθ\cot\theta and arc length sinθ\sin\theta per radian of longitude, so holding a fixed bearing costs you

dβdφ=cosθ\frac{d\beta}{d\varphi}=\cos\theta

of deliberate twist. Over a full lap that is 2πcosθ2\pi\cos\theta, which at 45° is 254.56°. And what you decline to supply, curvature supplies for you: the remaining 2π(1cosθ)2\pi(1-\cos\theta) is exactly the holonomy, 105.44°, the same number from three sections ago.

Foucault measured that number in 1851, in a church, with a 67-metre wire and a 28-kilogram bob. A Foucault pendulum at latitude φ\varphi precesses relative to the ground by 360sinφ360^\circ\sin\varphi per day, and sinφ=cosθ\sin\varphi=\cos\theta, so the precession he watched is exactly the twist you have to supply. The Earth turns a full circle; parallel transport keeps 2π(1cosθ)2\pi(1-\cos\theta) of it; Foucault’s pendulum shows you the change.

The holonomy formula is not a curiosity that happens to live near this problem. It is the correction term in the control law. Lick around a ring with a directional tongue and you are either paying cosθ\cos\theta per radian or you are accepting 2π(1cosθ)2\pi(1-\cos\theta) of drift, and there is no third option, because the sphere is curved.

Anyway, it’s a lollipop.

What is actually proved

Three checks. The second one is the only one I would defend in a seminar.

The first is routine: integrate the transport equation with fourth-order Runge–Kutta, halve the step, watch the error fall like the fourth power. A 20,000-step run lands within 8×10138\times10^{-13} rad of the analytic angle. The second computes the mismatch twice, once through the one-dimensional Bessel formula and once by brute-force integration of the squared difference of the actual kernels over a radial and angular grid, with two independent normalisations. Worst disagreement in the table: 1.3×10141.3\times10^{-14}. That is double precision complaining, not a disagreement. The third checks the non-negative least-squares optimality conditions and re-evaluates the fitted strengths on a finer sphere grid, so the reported errors are not a pixel-resolution illusion.

What none of that establishes is a route. The recipe is a spatial prescription: lick here, this hard, this many times. It says nothing about what order to do it in, and with a directional tongue the order matters, because transport changes the arrows you carry and therefore changes every footprint after the first. A tool that resets its own orientation at each contact makes the history dependence go away. A tongue does not.

Prior work

Almost none of the geometry here is new, and it is worth being specific about which parts. Directional wavelets on the sphere go back decades, and Antoine and collaborators give an early implementation and analysis of orientation-sensitive functions on S2S^2. Cohen and collaborators make local frames explicit in gauge-equivariant convolution and are clear that transported filters are path dependent, which is the machine-learning version of the thing this essay is about. Schonsheck, Dong, and Lai build parallel-transport convolution on manifolds directly. The fact that makes the whole answer collapse into a division is older than any of it: the Funk–Hecke theorem, 1916, which says a zonal kernel acts on each spherical harmonic by multiplication, with the multiplier given by exactly the kk_\ell integral above. Meanwhile, in a literature that has never heard of any of this, Tam and Cheng show experimentally that polishing paths and elliptic contacts change material removal, which suggests the practitioners got to the important part first, as they usually do. Do Carmo’s chapter on the intrinsic geometry of surfaces does parallel transport in general if you want it without the sphere’s special structure. What I have not found anywhere is the particular bridge: the cos2θ/k2\cos^2\theta/k_2 density as the exact non-negative optimum once you stop fitting the constant, the explicit one-integral orientation response for this kernel, the 180° exception, and the fact that four tilts are rotationally symmetric through order seven and that this is why they work.

There is a technical paper, and the code reproduces every number above; code/optimal_strategy.py is the one that does the strategy.

So, can you?

Yes. Lick in rings, hardest at the poles, tapering as cos2θ\cos^2\theta, nothing at the equator, about three hundred times, and keep your tongue round or keep it turning. You will overshoot the minimum removal by 18% and finish four microns small, and the shape will be right to five parts in a million.

What I got wrong at the start was not the arithmetic. It was thinking the answer lived in the amount. The amount is one number and it is the least interesting number in the problem. Everything that mattered was in the second question, and the whole third question turned out to be about a bill that curvature sends you for having a preferred direction, which is a thing I did not know a lollipop could be about.

Footnotes

  1. There is one caveat I cannot fold into that sentence, because it is load-bearing: removal is assumed additive, so two overlapping licks remove the sum of what each would remove alone. Real dissolution saturates. Everything in this essay is a linear-response calculation about the first instant.

  2. At second order in ff a cos4θ\cos^4\theta term appears, with coefficient 32f2R0-\tfrac32 f^2R_0, which brings degree four into the target. The method in the next section handles it without modification: add a P4P_4 note to the density and divide by k4=0.575122k_4=0.575122 instead of k2k_2. The correction is 0.34 µm on a 20 mm lollipop. I mention it only so you know the linearisation is a choice and not a limitation.

  3. k2k_2 depends on how wide the footprint is, and only on that. A narrower tongue is closer to a delta function, so it smooths less and k2k_2 rises towards 1: at a=64a=64 it is 0.955354 and the overshoot drops to 4.7%. The cost of a wide tongue is entirely a cost in candy, which is a pleasant thing for a cost to be.