Here's a circle packing tool, made to recursively finding circle on a surface, from the largest to the smallest one.

Can be use to partition city parcels, or build abstract graphics.

The testing surface is remeshed by the tool for the distance testing/sampling. As a result the process can take a bit on time on models. The approach is not perfectly accurate, but it might be a starting point to a more mathematical version.

Image Not Found