In a few previous posts I wrote about “kissing sets” of four mutually tangent circles, and the fact that their *signed bends* satisfy *Descartes’ Theorem*,

\frac{1}{2}(b_1 + b_2 + b_3 + b_4)^2.$

(Remember that the *signed bend* of a circle is like the *curvature* , except that if one circle contains the other circles inside it, we give the outer circle a *negative* bend.)

As I explained previously, if we have the bends of three mutually tangent circles, we can compute the possible bends of a fourth circle using the formula , where is the sum of the other bends and

Moreover, the two solutions for have the property that

so if we have one of them we can easily “flip” to the other one. Doing these repeated “flips” results in an infinite tree of kissing sets, and drawing all of them (until they get too tiny to draw) results in an Apollonian gasket.

But the *bend* of a circle only tells us *how big* it is—how do we decide *where* to draw the circles?

In their paper “Beyond the Descartes Circle Theorem”, Jeffrey Lagarias, Colin Mallows, and Allan Wilks prove the following remarkable theorem. Let denote the signed bend of circle as before. Now let denote the *center* of circle *expressed as a complex number*. For example, if circle has its center at the point , then . Now here is the theorem:

\frac{1}{2}(b_1z_1 + b_2z_2 + b_3z_3 + b_4z_4)^2.$

That is, the *products* of the signed bend and complex center of each circle *also* satisfy Descartes’ Theorem! So for each circle we just keep track of the signed bend as well as the product of the signed bend and the center. For each operation we compute the same formula twice, once for the bends and once for the bend-center products. To recover the center of a circle, just divide the bend-center product by the bend. And voila!

As a result of this beautiful theorem, the code to generate the above picture is very short—we just have to implement a few formulas and apply them to both bends and bend-center products, and then recursively generate the tree of kissing sets I explained in a previous post.

I really wish I could explain the proof of this theorem, but alas, I do not understand it. Lagarias *et al.* go on to generalize the theorem four or five more times—the final theorem involves a matrix version of the equation for kissing sets of arbitrary -dimensional hyperspheres in spherical space, or something like that—and then prove the most general version using some sophisticated, abstract machinery. The generalized theorem implies the others, so it is technically a proof of the version of Descartes’ Theorem for bend-center products, but it doesn’t give much intuition into why it is true!

Great, thanks for you post which is easy to understand( English is not my first language).

I am so sad that there is not a proof which is easy to understand.