# Hairy balls, cyclones and computer graphics

What can a 100-year-old result in topology say about weather and computers? Suppose we have a ball that’s continuously covered with very fine hair. The challenge is to smoothly comb it down, without creating any tufts. There is an oddly sounding result in algebraic topology called ‘the hairy ball theorem’ (yes, that is the actual name so google for images with caution) that states that this, is in fact, impossible.

More formally, the hairy ball theorem states that if there is a (everywhere) continuous function $f$ that to every point $p$ on the two-dimensional sphere assigns a three-dimensional vector, such that the vector is tangent to the sphere at $p$, then there is at least one point $\tilde{p}$ such that $f(\tilde{p}) = 0$.

It is important to note that the theorem applies to all shapes that are topologically equivalent to two-dimensional spheres. Hence coconuts, tennis balls, hairy bananas all of these are humble subjects to the hairy ball theorem, provided they are all continuously covered in hair. If on the other hand, we look at human body we find parts of it that are very hairy, such as the top of the head (hopefully) and other parts that are quite hairless, like the palms of the hands (hopefully).

Because of this, it is possible to comb smoothly the hair on your head and the hairy ball theorem is no excuse for disorderly hair conduct. One possibility is to comb all the hair to one side like a comb-over or to comb all the hair to the back. The hairless parts on the body then prevent the formation of any tufts. Unfortunately, it seems that not many people are aware of this fact and unnecessarily enslave themselves to the clutches of the theorem.

## Euler characteristic and different hairy shapes

So far our discussion has been purely focused on two-dimensional spheres and anything topologically equivalent to them. But what can we say about different shapes? Well, the answer lies in the Euler characteristic ($\chi$) of the shape. Euler characteristic for a graph is computed by the formula

$\chi$ = V – E + F.

Where V is the number of vertices, E the number of edges and F the number of faces. It’s easy to see that for every Platonic solid the Euler characteristic is equal to 2. Euler characteristic is something we call a topological invariant. It means that if we know it for some particular shape, then anything that’s topologically equivalent to it has the same Euler characteristic. A sphere is essentially a platonic solid that has been reshaped (vertices moved and edges curved) and so we know that the Euler characteristic of a sphere must be also equal to 2. Using topological transformation and bit of generalisation of the above formula one can compute the Euler characteristics for a range of different shapes (summarised in the table below).

 Surface Euler characteristic interval 1 circle 0 sphere 2 torus 0

Let’s recall the function $f(p)$ that we have defined in the second paragraph but this time, let us not restrict to two-dimensional sphere but let’s consider any two-dimensional surfaces. Suppose that to each zero of the vector field (every $p$ such that $f(p) = 0$) we assign a number, or ‘index’. To any sources or sinks we assign the value of +1 and to any saddle points value of -1. Then if the function $f$ is not identically zero (i.e. zero everywhere), then the sum of the indices assigned to the zeros of the function $f$ must be equal to the Euler characteristic of that particular surface. Since the Euler characteristic for a sphere is 2, from this result we know that the vector field $f$ (if it’s nonzero) must have either two sources/sinks or a saddle point and three sources/sinks or any other combination that would sum up to two.

## Cyclone consequence

One of the most widely used applications of the hairy ball theorem is connected to the Earth’s atmosphere. One can look the wind as a vector that is defined continuously everywhere on the surface of the Earth. Then if there is a place on the surface of the Earth where the wind blows, the hairy ball theorem states that there is another point on the Earth’s surface where there is no wind. In the physical sense, such point can be considered to be an eye of a cyclone or an anticyclone. Mind-blowing, right? Some readers might object the wind blows in three dimensions and not necessarily just two and hence the theorem is not valid in this case. Well, that is most certainly true, however, in comparison to the diameter of the Earth the height of the atmosphere is negligible and so two-dimensional approximation can be valid. Or one might think of the atmosphere as a set of layers of different heights, in which case the theorem can then be applied to the layers individually. Source: earth.nullschool.net

Beautiful visualisation of the wind currents are available on the earth.nullschool.net project website. They use real data that is updated every three hours. On top of that, you can check the Earth’s temperature distribution, ocean waves plus a lot of other very impressive resources.

Interested readers with a lot of time on their hands can look for the current status of the wind currents and look for any saddles, sources or sinks to check if the sum of their corresponding indices adds up to 2.

## Application to computer graphics

In computer graphics, a common problem is to generate a vector in $R^3$ that is orthogonal to a given one. Suppose that the given vector is considered as a radius of a sphere. Then the problem can be thought of as finding a vector that is tangent to the surface of the sphere at the point defined by the given vector.  As a consequence of the hairy ball theorem, there is no such continuous function that can do it for every point on the sphere and hence for any given general vector.

[ Pictures: Banner: by permission from earth.nullschool.net project. Hairy Ball: Public Domain. Cyclone: Public Domain. GIF: earth.nullschool.net project. Boris Johnson: Flickr user Think London, CC-BY 2.0] Rudolf Kohulák is a PhD student at UCL working on the modelling of freeze-drying processes.
+ More articles by Rudolf