the L2 circle is the equidistant locus from a point on a flat plane. what surface makes the L1 diamond, the L∞ square, and the intermediate Lp shapes equidistant?
the intuition that i was thinking about before i had the llms write this for me in threejs was: imagine i had a fixed length string, pinned on one side; what surface do i have to run that other point on in order to have it project down into funky shapes like a diamond, or a square, or a squircle?
that gave rise to the thought that: "oh, all that has to happen is the exact inverse operation which transforms the L2 circle's curve, into the straight line from the L1 diamond, but instead applied to the underlying surface."
algorithmically, for a given p:
1. take the Lp unit-ball radius in each direction.
2. choose the radius that can actually reach every floor point.
see also: orthogonal projection is 1-lipschitz, so a projected curve cannot be longer. a radius-1 curve can only cast points inside the euclidean unit disk; the L∞ square has corners at √2.
3. lift, or sink, the floor point by the missing euclidean length.
4. sweep a small angular wedge to get a local patch of the surface.
each boundary ray on the surface has straight 3D length R for the current p, while its xy-projection lands on the Lp unit ball. the red loop on the surface is the geodesic circle of radius R; its shadow on the floor is the yellow Lp ball.