There is no quick or certain algorithm to find the best arrangement of N nodes on a sphere, but here are three that may be good enough.

The first column shows Dave Rusin's "disco ball": place the nodes along rows equally spaced by latitude, with as many in each row as will fit at that same distance from each other. (I also show what happens if the spacing is tightened to admit at least one more node without changing the number of rows.)

The other two rules each divide the sphere into bands of equal area, and place one node at some longitude in the middle of the band.

In the middle column, the longitude steps by a constant interval, a golden section of the circle. Because the golden section (sqrt(5)-1)/2 is the most irrational number, this avoids a near-repeat of the same longitude in any nearby band. (This method has been independently found by many amateurs including me.)

In the right column, the method of Saff and Kuijlaars places the nodes in a more obvious single spiral, making the distance between adjacent nodes approximately equal to that between successive turns of the spiral. (Note: The page cited confuses phi with theta.)

In these images the nodes are centers of white discs of equal size, chosen so that none overlap but somewhere on the sphere there is at least one point where two discs meet. The number below each image is the ratio of the diameter of the overall sphere to that of the discs.

The red rings around the white discs show the half-distance to that node's nearest neighbor. A perfectly even packing would show no red at all.

As you can see, Rusin's rule gives the densest packings, but because its anisotropy is more obvious I find it less pretty than the others; for the same reason I would not be surprised if it is less useful for some purposes.

Rusin's disco ball golden sector Saff & Kuijlaars 1.414214 (optimal) 1.587431 1.762795 1.701302 1.709011 1.912087 2.000000 2.244487 2.529424 2.309401 2.424840 2.737578 2.613126 2.898101 3.283709 2.923804 3.107512 3.525160 3.236068 3.548099 4.032681 3.402603 3.776758 4.295845 3.863703 4.295342 4.892192 4.178581 4.532396 5.164602 4.493959 4.930419 5.621770 4.609530 5.178784 5.906922 5.125831 5.716461 6.523982 5.464102 5.967150 6.811580 5.758770 6.406732 7.315756 6.010855 6.662840 7.609432 6.392453 7.205870 8.231983 6.726918 7.462578 8.526229 7.026674 7.818511 8.934159 7.201051 8.081644 9.235698 7.661298 8.583742 9.811012 7.931559 8.824082 10.086371 8.296230 9.331065 10.667169 8.684322 9.639817 11.020843 8.931404 10.105957 11.554764 9.249067 10.331142 11.812679 9.566772 10.786804 12.334540 9.882249 11.017061 12.598236 10.202297 11.536470 13.193047 10.520110 11.769834 13.460278 10.837951 12.240306 13.999004 11.567274 12.709821 14.536611 11.473713 13.002702 14.871956 12.217355 13.476700 15.414662 12.109566 13.692285 15.661490 12.869074 14.172741 16.211562

home | blog | links | Anton Sherwood