Greetings all, I have been working on a structure that requires circle packing on a shaped dome with some sharp corners. I have been getting some very helpful reference from this community but after some time without noticeable progress I have decided to come ask for help.
These are our criteria:

control over the range of size of circles (8” to 30” diameter)

maintaining the border of the existing shape

a compact packing of circles (with 3sided spaces between circle and between circles and the perimeter)
Feel free to let me know is any of these criterias are unreasonable within the framework of this problem and grasshopper.
The following are methods I have tried:
 collision based compact packing using kangaroo
PRO: control over size of circles
CON: not compact packing
 compact packing by remeshing the domed surface into a delaunay mesh, then create tangent incircle using kangaroo
PRO: compact packing
CON: the size of circles are not controlled, and the relaxed tangent incircle mesh have a tendency to “shrink” away from the thin “finger” region of the domed surface.
The
 compact packing by taking the connectivity of physics packing result, turn it into a Delaunay mesh, then remesh for tangent incircle compact packing.
PRO: it is less likely to “shrink” away from the “finger ” park of the surface,
CON: circles like to go over or not fill the surface after the relaxation of the compact packing has begun.
Some general questions:
 What controls the size of circles in the tangent incircle compact packing? Is it possible to control it?
 Mr. Daniel Piker’s work was extremely helpful in the process of this project, he mentioned compact packing isn’t achievable on every kind of surface, what are some features that go against compact circle packing on a surface?
 what does the “iteration” seen in many remeshing component represent? is it a process similar to Lloyd relaxation?
I was using Ngon‘s remeshing feature because the “simple remesh” in kangaroo downright refuses to function on this particular shape. Attached is a screenshot and a current version of the script. I believe Ngon is the only plugin in use. The left portion is the construction of the geometry and the physics packing but they are not used anymore for the most part. The right portion of the script is the tangent incircle compact packing.
Any suggestion and assistance will be much appreciated
this is a video of the “shrinking” problem
this is a example of the circle disrespecting the border
this is a example very close to the end goal, using method 3 with some manual drawn circle to fill the gap(blue), it still suffer from circle not adhere to border
bubble pavilion clean version.3dm (19.6 MB)
bubble pavilion MK4.gh (117.7 KB)
rhino 6 file and grasshopper, Ngon is only used for the remeshing.
My sincere thank to this community for the resources and examples it has provided.