designcoding
About Table of Contents Keywords Monthly Archive
Support designcoding!

Conformal Circle Packing

September 19, 2012 | Algorithms
#circle #grasshopper #hyperbolic #non-euclidean #packing

After a couple of days of studying the mysterious Doyle spiral, I’ve decided to test an approach of circle packing from conformal mapping. First, I tried to understand the Poincare disk (earlier at here, here, and here and here). I used it as the hyperbolic representation of space on a two-dimensional plane. Then, I linked a regular hexagonal grid and rebuilt it after the hyperbolic distortion. This led me to find the below hexagonal grid. Therefore, it looks like a suitable foundation for a conformal circle packing:

Conformal Circle Packing circle, grasshopper

Looks like a Voronoi subdivision, but a very different thing in fact. My second attempt was to create a conformal circle packing out of this algorithm. However, I couldn’t manage to develop the Grasshopper algorithm perfectly. But in the end, the definition managed to create some circle compositions close to (but not exactly) a perfect packing:

Conformal Circle Packing hyperbolic, non-euclidean
Conformal Circle Packing animation

I developed the above Grasshopper definition in 2012. In 2021, it was still working as expected. Here is a small phrase, briefly explaining the idea of circle packing algorithms,

Circle packing as a discipline quickly attracted the interest of researchers in analysis, combinatorics, geometry, and topology, and initially developed along two not disparate branches. The one branch may be characterized broadly as analytic and combinatorial in style with particular attention focused on the relationship of circle packing to the approximation of conformal mappings. The other branch may be characterized broadly as geometric and topological in style with particular interest in the pure geometry of circle packing.

P.L. Bowers and K. Stephenson, Circle packings in surfaces of finite type: An in situ approach with applications to moduli, Topology 32 (1993), pp. 157
Grasshopper definition (GHX)Download

Cite this post

Yazar, T. (2012, September 19). Conformal Circle Packing. designcoding. Retrieved August 24, 2026, from https://www.designcoding.net/conformal-circle-packing/

Related Posts

Hyperbolic Tessellations Continued

July 26, 2012

We can create tessellations of outer points in a Poincare Disk, using the manual method explained in the last post (here). But repeating that compass and straightedge process is becoming a little useless after a couple of repeats. If you say “ok. I understood the concept, let’s get faster!” then we can model just the same process in Grasshopper3D to examine varying results in seconds; If we connect any grid of points into this definition, we can clearly see the similar…

Hyperbolic Projection of a Semi-regular Tessellation

July 7, 2012

Truncated hexagonal tessellation (or named 3-12-12) is represented in hyperbolic space (as far as I understood it). The idea is simple if you don’t mix it with complex equations. Below is the 2-dimensional representation of hyperbolic projection. Paper space is defined by the thick line there. Projection is based on a two-sheet hyperboloid surface. Euclidean version of this tessellation is described here.

Poincarés Hyperbolic Disk

June 26, 2012

This is my first attempt at representing a non-euclidean space. There are several representations of a non-euclidean space in euclidean means such as Beltrami-Klein or Klein, Poincare, Poincare half-plane, and Weierstrass. Here, I tried to understand Poincare’s approach. Random straight lines are drawn on a hypothetical hyperbolic space using a simulation of Poincare’s famous disk representation. Although there is a precise description of the disk and its construction, I used a ready-made arc component of Grasshopper3d, showing start and end points along…

Circle Packing Experiments

October 3, 2012

Since last week, I’m very curious about circle packing. There are a couple of complete solutions on the internet. I’m still in the early steps of such a solution yet. A full circle packing means that it does not include any gaps and each circle is tangent to all possible neighbors. Sounds easy in Grasshopper but I couldn’t see any solution yet. There are some circle-packing attempts but they have gaps. Also, I don’t want to use an evolutionary solver…

Hyperbolic Space: Invert a Point

July 26, 2012

The poincare disk is still an interesting representation of hyperbolic space for me, full of mysteries. I’ve had several attempts to understand it previously (here and here). Finally, I found a resource* explaining basic concepts about it. I tried to repeat some of the constructions in Rhinoceros, (without any logical purpose). The most important part is the conversion of a Euclidean point into a hyperbolic space. There is no clear formula, for directly projecting a point into Hyperbolic space, but…

  • Chapters

    • Algorithms
    • Discourses
    • Fabrications
    • Studios
  • Explore

    • All Keywords
    • Table of Contents
    • Monthly Archive
    • #rhino-python
    • #polyhedra
    • #parametric-surface
    • #robot
    • #tessellation
    • #boolean
    • #kuka-prc
    • #dome
    • #design-object
    • #image-sampler
    • #tutorial
    • #terrain
    • #sandblasting
    • #stone
    • #parametric-curve
    • #animation
    • #cycloid
    • #art
    • #aperiodic
    • #tiling
  • Search

  • Support designcoding!

  • Enjoying designcoding? Support me on Patreon to keep it growing. Thank you!

  • copyright 2026 designcoding.net | about | privacy policy | end user license agreement