Circle packing has always seemed like one of those problems best left to real life. Put some marbles in a bag and behold. Computationally things get a bit more complicated as we're forced to approximate the solution over discrete time steps. To avoid overlap in large populations of circles this usually involves extremely high short range separative forces, extremely low long range cohesive forces, and a small time step to avoid explosions.
packmen from Davideo Reeves on Vimeo.
Here I'm experimenting with an agent based packing system where forces become more local, between circles and immediate neighbours. Real time control of the range and influence of cohesive and separative forces make for some stable tightly packed results while keeping the time step reasonably high. An agent based approach also presents some opportunities for embedding other properties that update over time. In this case, the radii vary based on some external attractor relationships but I'm looking to have it also informed by a "pressure" value received at each time step. Alternatively I could go find some spongy marbles.
Platforms: VB.net, Grasshopper, Rhino