The 13 spiral spheres are created from sphere_sweep objects (which, although greatly improved since v3.5, do still seem to have some buggy artifacts at certain angles). The meat and potatoes of this composition is the creation of the spiral spheres themselves, and for that I came up with this simple and efficient macro that allows any number of windings and sizes:
//------------------------------------------------------------------------------
// #macro: Spherical_Spiral()
//
// Note: Sometimes you've got to play around with the incr value to get pt_cnt
// to work out right for the sphere_sweep.
//
// Usually adjusting incr +/- a few hundredths will solve a parsing problem...
//------------------------------------------------------------------------------
#macro Spherical_Spiral(turns, outer_rad, tube_rad, incr)
#local pt_cnt = int(pi/incr+0.5);
#local tt = 0;
sphere_sweep {
cubic_spline
pt_cnt
#while (tt < pi)
#local xt = outer_rad * cos(turns*2*tt) * sin(tt);
#local yt = outer_rad * sin(turns*2*tt) * sin(tt);
#local zt = outer_rad * cos(tt);
tube_rad
#local tt = tt + incr;
#end
tolerance 0.1
rotate x*90
}
#end