function world(name, a_axis_radius, c_axis_radius, size_rank, rotation_period, orbital_semimajor_axis, primary_name) {
    this.name = name;
    this.a_axis_radius = a_axis_radius;
    this.c_axis_radius = c_axis_radius;
    this.rotation_period = rotation_period;
    this.orbital_semimajor_axis = orbital_semimajor_axis;
    if (primary_name) this.primary = worlds[primary_name];
 }


// These planet declarations were generated by Lisp code.
// (So were the worlds themselves, according to "The Eternal Flame", http://www.songworm.com/db/songworm-parody/EternalFlame.html)

// Note:  As of the data I have (probably outdated by new observations from Galilleo and Hubble; should revise),
// there are only three moons in the solar system that are known not to be tidally locked -- that is, whose
// rotation_period is known and is different from their sidereal_revolution_period.
// Those are:  Elara, Himalia, and Phoebe, all of which have rotations of .4 to .5 Earth-days.

var worlds = new Array ();
  worlds["Mercury"] = new world ("Mercury", 2439.00, 2439.00, 10, 58.6462, 5.791E+7, null);
  worlds["Venus"] = new world ("Venus", 6051.00, 6051.00, 6, 243.0100, 1.082E+8, null);
  worlds["Earth"] = new world ("Earth", 6378.14, 6356.76, 5, 0.9973, 1.49598E+8, null);
    worlds["Moon"] = new world ("Moon", 1738.00, 1738.00, 13, 27.3217, 384400.0, "Earth");
  worlds["Mars"] = new world ("Mars", 3393.40, 3375.80, 7, 1.0260, 2.28E+8, null);
    worlds["Deimos"] = new world ("Deimos", 7.50, 5.50, 63, 1.2624, 23459.0, "Mars");
    worlds["Phobos"] = new world ("Phobos", 13.50, 9.60, 60, 0.3189, 9378.0, "Mars");
  worlds["Jupiter"] = new world ("Jupiter", 71398.00, 66770.80, 1, 0.4135, 7.784E+8, null);
    worlds["Amalthea"] = new world ("Amalthea", 140.00, 80.00, 31, 0.4982, 181000.0, "Jupiter");
    worlds["Callisto"] = new world ("Callisto", 2400.00, 2400.00, 11, 16.6890, 1883000.0, "Jupiter");
    worlds["Elara"] = new world ("Elara", 38.00, 38.00, 43, 0.5000, 1.1737E+7, "Jupiter");
    worlds["Europa"] = new world ("Europa", 1569.00, 1569.00, 15, 3.5512, 671000.0, "Jupiter");
    worlds["Ganymede"] = new world ("Ganymede", 2631.00, 2631.00, 8, 7.1546, 1070000.0, "Jupiter");
    worlds["Himalia"] = new world ("Himalia", 93.00, 93.00, 34, 0.4000, 1.148E+7, "Jupiter");
    worlds["Io"] = new world ("Io", 1815.00, 1815.00, 12, 1.7691, 422000.0, "Jupiter");
  worlds["Saturn"] = new world ("Saturn", 135000.00, 53542.70, 2, 0.4375, 1.42E+9, null);
    worlds["Dione"] = new world ("Dione", 560.00, 560.00, 24, 2.7369, 377400.0, "Saturn");
    worlds["Enceladus"] = new world ("Enceladus", 253.00, 247.90, 26, 1.3702, 238020.0, "Saturn");
    worlds["Epimetheus"] = new world ("Epimetheus", 70.00, 50.00, 37, 0.6942, 151420.0, "Saturn");
    worlds["Iapetus"] = new world ("Iapetus", 725.00, 725.00, 20, 79.3302, 3561300.0, "Saturn");
    worlds["Janus"] = new world ("Janus", 110.00, 80.00, 33, 0.6945, 151470.0, "Saturn");
    worlds["Mimas"] = new world ("Mimas", 198.00, 194.20, 29, 0.9424, 185520.0, "Saturn");
    worlds["Phoebe"] = new world ("Phoebe", 110.00, 110.00, 32, 0.4000, 1.2952E+7, "Saturn");
    worlds["Rhea"] = new world ("Rhea", 765.00, 765.00, 19, 4.5175, 527040.0, "Saturn");
    worlds["Tethys"] = new world ("Tethys", 525.00, 525.00, 25, 1.8878, 294660.0, "Saturn");
    worlds["Titan"] = new world ("Titan", 2575.00, 2575.00, 9, 15.9454, 1221800.0, "Saturn");
  worlds["Uranus"] = new world ("Uranus", 25400.00, 24638.00, 3, 0.6500, 2.87E+9, null);
    worlds["Ariel"] = new world ("Ariel", 580.00, 580.00, 23, 2.5200, 191200.0, "Uranus");
    worlds["Miranda"] = new world ("Miranda", 242.00, 242.00, 27, 1.4130, 129800.0, "Uranus");
    worlds["Oberon"] = new world ("Oberon", 775.00, 775.00, 18, 13.4630, 582600.0, "Uranus");
    worlds["Titania"] = new world ("Titania", 805.00, 805.00, 17, 8.7060, 435800.0, "Uranus");
    worlds["Umbriel"] = new world ("Umbriel", 595.00, 595.00, 22, 4.1440, 266000.0, "Uranus");
  worlds["Neptune"] = new world ("Neptune", 24300.00, 23671.00, 4, 0.7680, 4.49E+9, null);
    worlds["Triton"] = new world ("Triton", 1600.00, 1600.00, 14, 5.8768, 354290.0, "Neptune");
  worlds["Pluto"] = new world ("Pluto", 1500.00, 1500.00, 16, 6.3867, 5.89E+9, null);
