Circle Packing is the branch of mathematics which concern with the arrangements of equal or randomly varied sized circles on a surface, all circles touch another, and there is no single overlapping between the circles. In some cases, the packing can be generalized to larger dimensions, where circles mapped into Curved surface or even use a 3-Dimensional Volume(such like a cube) to pack a group of spheres.
Mathematicians describe packing methods in different ways, some according to the mapping pattern, some according to the packing space. There are many uniform packing methods for equally sized circles, to mention some; the Triangular and the square methods. To classified packing according to the shape packing surface, there are the circles, the rectangles and the triangles.
any packing system has a specific packing ratio, this ratio defines the amount of wasted/used space in packing. Circles are known for their low maximum packing density ratio, compared to squares as an example, and this ratio is the measure we used to calculate the efficiency of packing, most of the ratios known for equally sized circles, and in some times and settings, known for the bilaterally sized (binary systems, where two circles size applied), but the importance of computation and algorithms come when we start to have more variety in sizes.
There are two main Design techniques to implement the circle packing, the first one is the optimization (genetic) method, where the recursiveness (iterative nature)of algorithm is the way to create a packing without gaps, in which the computer generate a circle, check collision against all previously generated circles from the list of other circles, and if collided, regenerate similar one, but with smaller radius. the second method depends on the concept of physical modelling, in our case ( Rhino/Kangaroo), in which the engine automatically assign pulling forces, and at the same time the surface collision and so prevent the overlapping.