How to get tidy circles in a hexagonal circle packing pattern? (8.0 KB)

I just noticed there is a very interesting circle packing pattern in my 5-year-old Bluetooth speaker.

I replicated the pattern using the vertex and center points of equilateral hexagons as the hole’s center.
Quite simple, but when it comes to the edge area, I am baffled. Seems like it is not possible to make the outmost area of this pattern tidy like on the speaker if one likes to keep the circles within the same distance from each other.

How did they make this pattern, or is it me thinking wrong about the pattern logic(not the same distance between holes)?

I need your idea, Thanks!

This is an introduction of this speaker on the web.
Xiaomi Wireless Bluetooth Speaker reviewed (

if you want to replicate this pattern you could look here

For what you want just do that (7.0 KB)


You are trying to use a hexagonal grid for arranging circles in a circular pattern. Even though the in the middle it kind of looks like it might be hexagonal because you can see those 6 distinct directions.

So its actually not circle packing. To get equal spacing between different circles with different radius, you would use circumference = 2pi * radius. So if the radius increases by 1 each time, the number of circles needs to increase by 2 * pi. Since it is kind of close to 6, you can just use 6 and get almost equal spacing, but get those alignments in 6 directions.

It super easy to do. (6.6 KB)


This also reminds me of these threads:

1 Like

By the way, it’s very easy to eliminate those circles overlapping the perimeter curve (purple group). (13.2 KB)

But again, starting with a hex pattern instead of center points on concentric circles isn’t right for this.

1 Like

Thank you very much!

Thanks for the help!