The **circle packing theorem** (also known as the **Koebe–Andreev–Thurston theorem**) describes the possible tangency relations between circles in the plane whose interiors are disjoint. A circle packing is a connected collection of circles (in general, on any Riemann surface) whose interiors are disjoint. The intersection graph of a circle packing is the graph having a vertex for each circle, and an edge for every pair of circles that are tangent. If the circle packing is on the plane, or, equivalently, on the sphere, then its intersection graph is called a **coin graph**; more generally, intersection graphs of interior-disjoint geometric objects are called **tangency graphs** or **contact graphs**. Coin graphs are always connected, simple, and planar. The circle packing theorem states that these are the only requirements for a graph to be a coin graph:

**Circle packing theorem**: For every connected simple planar graph *G* there is a circle packing in the plane whose intersection graph is (isomorphic to) *G*.

A maximal planar graph *G* is a finite simple planar graph to which no more edges can be added while preserving planarity. Such a graph always has a unique planar embedding, in which every face of the embedding (including the outer face) is a triangle. In other words, every maximal planar graph *G* is the 1-skeleton of a simplicial complex which is homeomorphic to the sphere. The circle packing theorem guarantees the existence of a circle packing with finitely many circles whose intersection graph is isomorphic to *G*. As the following theorem states more formally, every maximal planar graph can have at most one packing.

**Koebe–Andreev–Thurston theorem**: If *G* is a finite maximal planar graph, then the circle packing whose tangency graph is isomorphic to *G* is unique, up to Möbius transformations and reflections in lines.

Thurston observes that this uniqueness is a consequence of the Mostow rigidity theorem. To see this, let *G* be represented by a circle packing. Then the plane in which the circles are packed may be viewed as the boundary of a halfspace model for three-dimensional hyperbolic space; with this view, each circle is the boundary of a plane within the hyperbolic space. One can define a set of disjoint planes in this way from the circles of the packing, and a second set of disjoint planes defined by the circles that circumscribe each triangular gap between three of the circles in the packing. These two sets of planes meet at right angles, and form the generators of a reflection group whose fundamental domain can be viewed as a hyperbolic manifold. By Mostow rigidity, the hyperbolic structure of this domain is uniquely determined, up to isometry of the hyperbolic space; these isometries, when viewed in terms of their actions on the Euclidean plane on the boundary of the half-plane model, translate to Möbius transformations.^{[1]}

There is also a more elementary proof of the same uniqueness property, based on existence of a maximum value in any finite set and on the observation that, in the triangle connecting the centers of three mutually tangent circles, the angle formed at the center of one of the circles is monotone decreasing in its radius and monotone increasing in the two other radii. Given two packings for the same graph , one may apply reflections and Möbius transformations to make the outer circles in these two packings correspond to each other and have the same radii. Then, let be an interior vertex of for which the circles in the two packings have sizes that are as far apart as possible: that is, choose to maximize the ratio of the radii of its circles in the two packings. For each triangular face of containing , it follows that the angle at the center of the circle for in the first packing is less than or equal to the angle in the second packing, with equality possible only when the other two circles forming the triangle have the same ratio of radii in the two packings. But the sum of the angles of all of these triangles surrounding the center of the triangle must be in both packings, so all neighboring vertices to must have the same ratio as itself. By applying the same argument to these other circles in turn, it follows that all circles in both packings have the same ratio. But the outer circles have been transformed to have ratio one, so and the two packings have identical radii for all circles.

A conformal map between two open sets in the plane or in a higher-dimensional space is a continuous function from one set to the other that preserves the angles between any two curves. The Riemann mapping theorem, formulated by Bernhard Riemann in 1851, states that, for any two open topological disks in the plane, there is a conformal map from one disk to the other. Conformal mappings have applications in mesh generation, map projection, and other areas. However, it is not always easy to construct a conformal mapping between two given domains in an explicit way.^{[2]}

At the Bieberbach conference in 1985, William Thurston conjectured that circle packings could be used to approximate conformal mappings. More precisely, Thurston used circle packings to find a conformal mapping from an arbitrary open disk *A* to the interior of a circle; the mapping from one topological disk *A* to another disk *B* could then be found by composing the map from *A* to a circle with the inverse of the map from *B* to a circle.^{[2]}

Thurston's idea was to pack circles of some small radius *r* in a hexagonal tessellation of the plane, within region *A*, leaving a narrow region near the boundary of *A*, of width *r*, where no more circles of this radius can fit. He then constructs a maximal planar graph *G* from the intersection graph of the circles, together with one additional vertex adjacent to all the circles on the boundary of the packing. By the circle packing theorem, this planar graph can be represented by a circle packing *C* in which all the edges (including the ones incident to the boundary vertex) are represented by tangencies of circles. The circles from the packing of *A* correspond one-for-one with the circles from *C*, except for the boundary circle of *C* which corresponds to the boundary of *A*. This correspondence of circles can be used to construct a continuous function from *A* to *C* in which each circle and each gap between three circles is mapped from one packing to the other by a Möbius transformation. Thurston conjectured that, in the limit as the radius *r* approaches zero, the functions from *A* to *C* constructed in this way would approach the conformal function given by the Riemann mapping theorem.^{[2]}

Thurston's conjecture was proven by Rodin & Sullivan (1987). More precisely, they showed that, as *n* goes to infinity, the function *f _{n}* determined using Thurston's method from hexagonal packings of radius-1/

Despite the success of Thurston's conjecture, practical applications of this method have been hindered by the difficulty of computing circle packings and by its relatively slow convergence rate.^{[citation needed]} However, it has some advantages when applied to non-simply-connected domains and in selecting initial approximations for numerical techniques that compute Schwarz–Christoffel mappings, a different technique for conformal mapping of polygonal domains.^{[2]}

There are many known proofs of the circle packing theorem. Paul Koebe's original proof is
based on his conformal uniformization theorem saying that a finitely connected planar domain
is conformally equivalent to a circle domain. There are several different topological proofs
that are known. Thurston's proof is based on Brouwer's fixed point theorem. As a graduate student, Oded Schramm was supervised by Thurston at Princeton University. As Rohde (2011, p. 1628) recounts, there is a "poetic description" in Schramm's dissertation of how existence for circle packing can be deduced from the fixed point theorem: "One can just see the terrible monster swinging its arms in sheer rage, the tentacles causing a frightful hiss, as they rub against each other." There is also a proof using a discrete variant of Perron's method of constructing solutions to the
Dirichlet problem.^{[3]} Yves Colin de Verdière proved
the existence of the circle packing as a minimizer of a convex function on a certain configuration
space.^{[4]}

The circle packing theorem is a useful tool to study various problems in planar
geometry, conformal mappings and planar graphs. An alternative proof of the planar separator theorem,
originally due to Lipton and Tarjan,^{[5]} has been obtained in this way.^{[6]}
Another application of the circle packing theorem is that unbiased limits of
bounded-degree planar graphs are almost surely recurrent.^{[7]}
Other applications include implications for the cover time.^{[8]}
and estimates for the largest eigenvalue of bounded-genus graphs.^{[9]}

In graph drawing, circle packing has been used to find drawings of planar graphs with bounded angular resolution^{[10]} and with bounded slope number.^{[11]}
Fáry's theorem, that every graph that can be drawn without crossings in the plane using curved edges can also be drawn without crossings using straight line segment edges, follows as a simple corollary of the circle packing theorem: by placing vertices at the centers of the circles and drawing straight edges between them, a straight-line planar embedding is obtained.

A stronger form of the circle packing theorem asserts that any polyhedral graph and its dual graph can be represented by two circle packings, such that the two tangent circles representing a primal graph edge and the two tangent circles representing the dual of the same edge always have their tangencies at right angles to each other at the same point of the plane. A packing of this type can be used to construct a convex polyhedron that represents the given graph and that has a midsphere, a sphere tangent to all of the edges of the polyhedron. Conversely, if a polyhedron has a midsphere, then the circles formed by the intersections of the sphere with the polyhedron faces and the circles formed by the horizons on the sphere as viewed from each polyhedron vertex form a dual packing of this type.

Collins & Stephenson (2003) describe a numerical relaxation algorithm for finding circle packings, based on ideas of William Thurston. The version of the circle packing problem that they solve takes as input a planar graph, in which all the internal faces are triangles and for which the external vertices have been labeled by positive numbers. It produces as output a circle packing whose tangencies represent the given graph, and for which the circles representing the external vertices have the radii specified in the input. As they suggest, the key to the problem is to first calculate the radii of the circles in the packing; once the radii are known, the geometric positions of the circles are not difficult to calculate. They begin with a set of tentative radii that do not correspond to a valid packing, and then repeatedly perform the following steps:

- Choose an internal vertex
*v*of the input graph. - Calculate the total angle θ that its
*k*neighboring circles would cover around the circle for*v*, if the neighbors were placed tangent to each other and to the central circle using their tentative radii. - Determine a representative radius
*r*for the neighboring circles, such that*k*circles of radius*r*would give the same covering angle θ as the neighbors of*v*give. - Set the new radius for
*v*to be the value for which*k*circles of radius*r*would give a covering angle of exactly 2π.

Each of these steps may be performed with simple trigonometric calculations, and as Collins and Stephenson argue, the system of radii converges rapidly to a unique fixed point for which all covering angles are exactly 2π. Once the system has converged, the circles may be placed one at a time, at each step using the positions and radii of two neighboring circles to determine the center of each successive circle.

Mohar (1993) describes a similar iterative technique for finding simultaneous packings of a polyhedral graph and its dual, in which the dual circles are at right angles to the primal circles. He proves that the method takes time polynomial in the number of circles and in log 1/ε, where ε is a bound on the distance of the centers and radii of the computed packing from those in an optimal packing.

The circle packing theorem generalizes to graphs that are not planar.
If *G* is a graph that can be embedded on a surface *S*,
then there is a constant curvature Riemannian metric *d* on *S* and a circle packing on (*S*, *d*) whose contacts graph is isomorphic to *G*. If *S* is closed (compact and without boundary)
and *G* is a triangulation of *S*, then (*S*, *d*) and the packing are unique up to conformal equivalence. If *S* is the sphere, then this equivalence is up to Möbius transformations; if it is a torus, then the equivalence is up to scaling by a constant and isometries, while if *S* has genus at least 2, then the equivalence is up to isometries.

Another generalization of the circle packing theorem involves replacing the condition of tangency with a specified intersection angle between circles corresponding to neighboring vertices. A particularly elegant version is as follows. Suppose that *G* is a finite 3-connected planar graph (that is, a polyhedral graph), then there is a pair of circle packings, one whose intersection graph is isomorphic to *G*, another whose intersection graph is isomorphic to the planar dual of *G*,
and for every vertex in *G* and face adjacent to it, the circle in the first packing corresponding to the vertex
intersects orthogonally with the circle in the second packing corresponding to the face.^{[12]} For instance, applying this result to the graph of the tetrahedron gives, for any four mutuall tangent circles, a second set of four mutually tangent circles each of which is orthogonal to three of the first four.^{[13]} A further generalization, replacing intersection angle with inversive distance, allows the specification of packings in which some circles are required to be disjoint from each other rather than crossing or being tangent.^{[14]}

Yet another variety of generalizations allow shapes that are not circles.
Suppose that *G* = (*V*, *E*) is a finite planar graph, and to each vertex *v* of *G*
corresponds a shape , which is homeomorphic
to the closed unit disk and whose boundary is smooth.
Then there is a packing in the plane
such that if and only if
and for each the set is obtained from by translating
and scaling. (Note that in the original circle packing theorem, there are three real parameters per vertex,
two of which describe the center of the corresponding circle and one of which describe the radius, and there is one equation per edge. This also holds in this generalization.)
One proof of this generalization can be obtained by applying Koebe's original proof^{[15]} and the theorem
of Brandt^{[16]} and Harrington^{[17]} stating that any finitely connected domain is conformally equivalent to
a planar domain whose boundary components have specified shapes, up to translations and scaling.

Circle packings were studied as early as 1910, in the work of Arnold Emch on Doyle spirals in phyllotaxis (the mathematics of plant growth).^{[18]} The circle packing theorem was first proved by Paul Koebe.^{[15]}
William Thurston^{[1]}
rediscovered the circle packing theorem, and
noted that it followed from the work of E. M. Andreev. Thurston also proposed a scheme for using the circle packing theorem to obtain a homeomorphism of a simply connected proper subset of the plane onto the interior of the unit disk. The *Thurston Conjecture for Circle Packings* is his conjecture that the homeomorphism will converge to the Riemann mapping as the radii of the circles tend to zero. The Thurston Conjecture was later proved
by Burton Rodin and Dennis Sullivan.^{[19]}
This led to a flurry of research on extensions of the circle packing theorem, relations to
conformal mappings, and applications.