(Original author: Keenan Crane)

There are many ways to think about the geometry of a surface (using *charts*, for instance) but here’s a picture that is well-suited to the way we work with surfaces in the discrete setting. Imagine that our surface is a topological disk. Its geometry can be described via a map \(f: M \rightarrow \mathbb{R}^3\) from a region \(M\) in the Euclidean plane \(\mathbb{R}^2\) to a subset \(f(M)\) of \(\mathbb{R}^3\):

The *differential* of such a map, denoted by \(df\), tells us how to map a vector \(X\) in the plane to the corresponding vector \(df(X)\) on the surface. Loosely speaking, imagine that \(M\) is a rubber sheet and \(X\) is a little black line segment drawn on \(M\). As we stretch and deform \(M\) into \(f(M)\), the segment \(X\) also gets stretched and deformed into a different segment, which we call \(df(X)\). Later on we can talk about how to explicitly express \(df(X)\) in coordinates and so on, but it’s important to realize that fundamentally there’s *nothing deeper to know about the differential than the picture you see here* — the differential simply tells you how to stretch out or *“push forward”* vectors as you go from one space to another. For example, the length of a tangent vector \(X\) pushed forward by \(f\) can be expressed as

\[ \sqrt{ df(X) \cdot df(X) }, \]

where \(\cdot\) is the standard inner product (a.k.a. *dot product* or *scalar product*) on \(\mathbb{R}^3\). Note that this length is typically *different* than the length of the vector we started with! To keep things clear, we’ll use angle brackets to denote the inner product in the plane, e.g., the length of the original vector would be \(\sqrt{\langle X, X \rangle}\). More generally, we can measure the inner product between any *two* tangent vectors \(df(X)\) and \(df(Y)\):

\[ g(X,Y) = df(X) \cdot df(Y). \]

The map \(g\) is called the *metric* of the surface, or to be more pedantic, the *metric induced by \(f\)*.

So far we’ve been talking about *tangent* vectors, i.e., vectors that travel “along” the surface. We’re also interested in vectors that are orthogonal to the surface. In particular, we say that a vector \(u \in \mathbb{R}^3\) is *normal* to the surface at a point \(p\) if

\[ df(X) \cdot u = 0 \]

for all tangent vectors \(X\) at \(p\). For convenience, we often single out a particular normal vector \(\hat{N}\) called the *unit normal*, which has length one. Of course, at any given point there are two distinct unit normal vectors: \(+\hat{N}\) and \(-\hat{N}\). Which one should we use? If we can pick a consistent direction for \(\hat{N}\) then we say that \(M\) is *orientable*. For instance, the torus is orientable, but the Möbius band is not:

For orientable surfaces, we can actually think of \(\hat{N}\) as a continuous map \(\hat{N}: M \rightarrow S^2\) (called the *Gauss map*) which associates each point with its unit normal, viewed as a point on the unit sphere \(S^2 \subset \mathbb{R}^3\). In fact, why not think of \(\hat{N}\) as simply a different geometry for \(M\)? Now the map \(d\hat{N}\) (called the *Weingarten map*) tells us about the change in *normal direction* as we move from one point to the other. For instance, we could look at the change in normal along a particular tangent direction \(X\) by evaluating

\[ \kappa_n(X) = \frac{df(X) \cdot d\hat{N}(X)}{|df(X)|^2}. \]

(The factor \(|df(X)|^2\) in the denominator simply accounts for any “stretching out” of \(X\) that occurs as we go from the plane to the surface.) The quantity \(\kappa_n\) is called the *normal curvature* — we’ll have a lot more to say about curvature in the future.

Overall we end up with this picture, which captures the most fundamental ideas about the geometry of surfaces:

**Conformal Parameterization**

When working with curves, one often introduces the idea of an *isometric* (a.k.a. *arc-length* or *unit speed*) parameterization. The idea there is to make certain expressions simpler by assuming that no `stretching” occurs as we go from the domain into \(\mathbb{R}^3\). One way to state this requirement is`

\[ |df(X)| = |X|, \]

i.e., we ask that the norm of any vector \(X\) is preserved.

For surfaces, an isometric parameterization does not always exist (not even locally!). Most of the time you simply have to stretch things out. For instance, you may know that it’s impossible to flatten the surface of the Earth onto the plane without distortion — that’s why we end up with all sorts of different funky projections of the globe.

However, there is a setup that (like arc-length parameterization for curves) makes life a lot easier when dealing with certain expressions, namely *conformal parameterization*. Put quite simply, a map \(f\) is conformal if it preserves the *angle* between any two vectors. More specifically, a conformal map \(f: \mathbb{R}^2 \supset M \rightarrow \mathbb{R}^3\) satisfies

\[ df(X) \cdot df(Y) = a \langle X, Y \rangle \]

for all tangent vectors \(X, Y\), where \(a\) is a **positive** function and \(\langle \cdot, \cdot \rangle\) is the usual inner product on \(\mathbb{R}^2\). In practice, the function \(a\) is often replaced with \(e^u\) for some real-valued function \(u\) — this way, one never has to worry about whether the scaling is positive. Notice that vectors can still get *stretched out*, but the surface never gets *sheared* — for instance, orthogonal vectors always stay orthogonal:

A key fact about conformal maps is that they always exist, as guaranteed by the uniformization theorem. In a nutshell, the uniformization theorem says that any disk can be conformally mapped to the plane. So if we consider any point \(p\) on our surface \(f(M)\), we know that we can always find a conformal parameterization in some small, disk-like neighborhood around \(p\). As with unit-speed curves, it is often enough to simply know that a conformal parameterization *exists* — we do not have to construct the map explicitly. And, as with arc-length parameterization, we have to keep track of the least possible amount of information about how the domain gets stretched out: just a single number at each point (as opposed to, say, an entire Jacobian matrix).

From time to time in this class we may adopt the convention that \(f\) is conformal in order to simplify our derivations, so *pay attention!*