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
006
1.414214 (optimal)

1.587431

1.762795
007
1.701302

1.709011

1.912087
012
2.000000

2.244487

2.529424
014
2.309401

2.424840

2.737578
020
2.613126

2.898101

3.283709
023
2.923804

3.107512

3.525160
030
3.236068

3.548099

4.032681
034
3.402603

3.776758

4.295845
044
3.863703

4.295342

4.892192
049
4.178581

4.532396

5.164602
058
4.493959

4.930419

5.621770
064
4.609530

5.178784

5.906922
078
5.125831

5.716461

6.523982
085
5.464102

5.967150

6.811580
098
5.758770

6.406732

7.315756
106
6.010855

6.662840

7.609432
124
6.392453

7.205870

8.231983
133
6.726918

7.462578

8.526229
146
7.026674

7.818511

8.934159
156
7.201051

8.081644

9.235698
176
7.661298

8.583742

9.811012
186
7.931559

8.824082

10.086371
208
8.296230

9.331065

10.667169
222
8.684322

9.639817

11.020843
244
8.931404

10.105957

11.554764
255
9.249067

10.331142

11.812679
278
9.566772

10.786804

12.334540
290
9.882249

11.017061

12.598236
318
10.202297

11.536470

13.193047
331
10.520110

11.769834

13.460278
358
10.837951

12.240306

13.999004
386
11.567274

12.709821

14.536611
404
11.473713

13.002702

14.871956
434
12.217355

13.476700

15.414662
448
12.109566

13.692285

15.661490
480
12.869074

14.172741

16.211562

home | blog | links | Anton Sherwood
this page created 2004 Aug 08, modified Aug 21; links corrected 2013 Apr 08