It’s hard to send a message from Mars.

When the Curiosity rover, currently active on the surface of the red planet, has something to tell NASA back on Earth, it formulates its communication in binary code and beams it our way. Noise inevitably creeps in during the long transmission, so that the message received by NASA is different from the one the rover sent. At that point it’s a game of telephone, as NASA engineers make their best guess about what Curiosity was trying to tell them.

The situation from Mars is an exaggerated version of what happens whenever a message is communicated through any noisy channel — be it from a flash drive to your computer or an air traffic control tower to an airplane. In each case, the receiver has to estimate what the sender meant to say. One way to ensure that the message gets through is to use a geometric way of packaging information called a “spherical code.”

A spherical code is a way of translating a message written in one form, like binary code, into a point on a high-dimensional sphere. (We think of spheres as three-dimensional objects, but in math, a sphere can exist in any number of dimensions.) Imagine, for example, that you’d like to transmit the word “Mars.” To do this, you’d need to find some way of relating each letter to a coordinate on the sphere. While the mathematics behind spherical codes is more complicated than this, you could imagine, for example, that the word “Mars” maps to the point (13, 1, 18, 19) on a sphere in four-dimensional space. Here, the coordinates are like values of latitude and longitude that direct you to a single point on a globe. The first letter in the word is represented by the coordinate value in the first dimension, the second letter is represented by the coordinate value in the second dimension, and so on, with the specific value of the coordinate determined by the letter’s position in the alphabet (so “a” has coordinate value 1 since it’s the first letter in the alphabet).

Of course, the same problem that applied to the original message still applies to the translated one: Curiosity sends one point on the sphere, but NASA receives another.

The key, however, is to use only a limited number of points for encoding messages. As long as those points are spaced far enough apart, it’s unlikely that one point will end up being mistaken for another. Over the course of a spherical code’s long Earthward journey, it will meander randomly around the intended point on the sphere. Upon arrival at NASA, the received point should be closer to the intended point than any other point that corresponds to a message. NASA engineers can then make a good guess about which point the rover was trying to communicate.

So how do you choose which points to use? One way is an approach from pure mathematics that is the subject of my new story, “A New Path to Equal-Angle Lines.” There I describe a recent breakthrough in the study of what are called “equiangular lines.”

A set of lines is considered equiangular when all the lines intersect at a point and any two lines form the same angle. In two dimensions (like on a flat sheet) the maximum number of equiangular lines is three. In three dimensions, it’s six. Mathematicians are interested in proving just how big those sets can get as you move into higher dimensions.

For the purposes of communication, though, equiangular lines have another interest. Here’s how: Draw a circle around three equiangular lines. All the points where the lines pierce the circle are going to be separated by some minimum distance, which is a useful starting place from which to construct a spherical code. As a result, over the last 70 years the study of equiangular lines and spherical codes has developed together. “It has been realized all along that these two are very much related,” said Alexander Barg, a mathematician at the University of Maryland who studies coding theory.

Constructions of equiangular lines are one way to arrive at a spherical code, but they’re not the best for the purpose of communication. Any spherical code necessarily involves tradeoffs between reliability and the amount of information you’re able to transmit. The farther apart the points are, the less likely it is that one message will get mistaken for another, but the closer together the points are, the more messages you’re able to send. Finding the sweet spot is a major preoccupation in coding theory, and in that realm spherical codes derived from equiangular lines may be playing it a little too safe.

“This requirement of having an equal angle may be too strong for the needs of error correction,” said Barg. “We may allow the worst-case separation to be smaller; that way we can transmit more messages through the same channel.”

Am I the only one who got to the end of the article and thought I had merely reached the end of the introduction to an article of proper length, only to be disappointed by the realization that a two-minute read was considered long enough to have done the job?

Hi @Dave T: This brief blog post is meant to draw readers' attention to an interesting aspect of the related topic of equiangular lines, which is discussed at length in our main story, "A New Path to Equal-Angle Lines."

https://www.quantamagazine.org/20170411-equiangular-lines-proof/

And, I agree, spherical codes are neat and there's of course a lot more to say about them. For additional reading, you might enjoy this overview of different methods for selecting points on the sphere.

https://www.maths.unsw.edu.au/about/distributing-points-sphere

Kevin

I have a patent on this method as I use it for messaging and encryption. The patent treats plain text messages in an identical manner, and the method is agnostic to the actual n-dimensional shape and number of dimensions.

It acts as a one time pad for encryption and the cipher text contains no information about the plain text encrypted. Google owns this patent now, but I remain the sole inventor.

https://www.google.com/patents/US8683218

Since I learned about Reed-Solomon encoding I have envisioned it as defining a set of "valid" points within a high-dimensional lattice, where each point has a minimum distance from every other (for a defined metric of distance). At the level described, this seems to be the same thing, just expressed using one more dimension to be on a hyper-surface rather than a volume. Thus, is there a one-to-one mapping between these codes and equivalent Reed-Solomon codes or are there more subtle differences between the two?