úÎêSportablestable+Joachim Breitner <mail@joachim-breitner.de> Safe-Inferred8 takes a list of circles and a function that yields the  radius of the circle. GIt returns a list of all circles, in unspecified order, together with K coordinates such that they do not overlap but sit as tight as possible,  filling a large circle. 9Finding the optimal solution to this is NP hard, so only , heuristics are feasible. This particular 6 implementation is neither very good nor very fast, > compared to the state of the art in research. Nevertheless > it is simple to use and gives visually acceptable results. CThe heuristics begins by placing the largest circle first, and the O next-to-largest next to it. From then on it adds circles by considering all P points where the circle to be added would touch two circles but overlap with P none, and picks the one that is closest to the center of mass of the current  placements.        circle-packing-0.1.0.2Optimisation.CirclePacking packCirclesTouchingCircles PlacedCircle CoordinateCircleRadiusradiusgoplacecenterUpeps