Circle packing pattern generator

Fill a tile with circles of many sizes, each one touching its neighbours. Choose discs, rings, targets or beads, set the biggest and smallest radius and the gap, and export a seamless pattern as SVG, PNG or CSS.

Open in the generator How it works

Densely packed discs of many sizes in pink, orange, blue and green

What is circle packing?

Circle packing is the problem of fitting circles into a space so that they do not overlap and leave as little empty room as possible. Circles of one size can never fill a plane completely, but circles of many sizes can come very close: small ones settle in the gaps between the big ones, and even smaller ones in the gaps that remain.

The result looks like bubbles, pebbles, coins or cells, and gives a pattern that is orderly and organic at the same time.

How the generator builds them

Ornamatic places circles one at a time. In the “largest first” order each new circle is the biggest one that still fits without overlapping any other, so large circles are laid down first and small ones fill the gaps; in the random order the sizes are mixed. It stops when no circle of at least the smallest size fits, or when the limit on the number of circles is reached.

Circles touch each other across the tile’s edges too, so the repeat is seamless.

What you can adjust

Export and use

Download the seamless tile as PNG or SVG, or copy a ready CSS background. The patterns you create are free to use, personally or commercially.