Circle Packings

Circle Packings is a mathematical software created by Benjamin Beeker and Brice Loustau. Try it! It is free and easy to install and to use.

On this page you will find a brief overview of the program features and a quick install guide. More detailed information is included in the 'Help' menu of the program.


Brief overview

The core algorithm of the program numerically computes the circle packing associated to a planar graph given by the circle packing theorem1, as illustrated in the screen capture below:


Following Thurston's idea, the program shows the circle packing associated to a simply connected domain in the plane, in view to approximate the Riemann conformal mapping2:


Based on that idea, the program can compute the Riemann conformal mapping between any two simply connected domains. Here is an example with an image in the background:



1Refer to the Wikipedia page Circle packing theorem for more information. The numerical algorithm is due to mathematicians Charles R. Collins and Ken Stephenson. Stephenson also created a program revolving around circle packings, you will find his software (and interesting mathematical material) on his web page.

2Refer to the Wikipedia page Circle packing theorem as a starting point to learn more.


Quick install

Windows

Download and run this setup file. For Windows XP, use this file instead.

Mac OS

Download and install this dmg file. You may also compile the program from the soures, the procedure is the same as for Linux (see below).

Linux

If you have a Debian based distribution (Ubuntu, Mint...), you may download this package (32 bits, runs on all systems but is slower) or this package (64 bits systems only).

To install the package, simply double-click the dowloaded file if you have a graphical software manager (which should automatically install dependencies). Otherwise, open a terminal and enter sudo dpkg -i "filename". You will be prompted to install some dependencies, do it and run the previous command again.

Alternatively, the program may be compiled from the sources. Here is how this is done:

  1. Install the Qt framework. For Debian based distributions such as Ubuntu and Mint, sudo apt-get install qt5-default qtdeclarative5-dev should do the trick. For other distributions, you can probably figure out how to install Qt development tools upon a quick web search.
  2. Download this archive and extract it. NB: You may also clone the git repository: git clone https://github.com/seub/CirclePackings.git.
  3. Open a terminal, navigate to the directory extracted from the archive and run qmake -qt5 then make (or make -j N to speed it up, where N is the number of cores on your computer).
  4. You're done! A binary file "CirclePackings" was generated. To run it, double-click the file or run it from a terminal: ./CirclePackings. NB: To create shortcuts, set the application icon, etc: unfortunately this is beyond our scope. For instance, you may follow this guide for Ubuntu with Unity.

Note: Installation was tested on several operating systems but one is never safe from compatibility issues, so please let us know if you experience an issue. Once the software is installed, take a quick look at the Help menu to learn more about the program and how to use it.


About the program

The program was coded in C++ using the Qt framework. It is free and open source (under the GNU General Public License), all the sources and other files are available on GitHub: https://github.com/seub/CirclePackings. The choice of the programming language was motivated notably by performance considerations.

The current "stable" version (1.0) of our software was released in October 2012.