Celestia: A real-time visual space simulation Copyright (C) 2001, Chris Laurel -- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- Getting started: Important: Celestia must be started from the directory in which the EXE resides or else it will not find its data files. A real installer is forthcoming. Celestia will start up in a window, and if everything is working correctly, you'll see the asteroid Eros moving past a field of stars. In the left corner is a welcome message and some information about your target (Eros), your speed, and the current time (Universal Time, so it'll probably be a few hours off from your computer's clock.) Right drag the mouse to orbit Eros and you should see the Earth and some familiar constellations. Left dragging the mouse changes your orientation too, but the camera rotates about its center instead of rotating around Eros. Rolling the mouse wheel will change your distance to the space station--you can move light years away, then roll the wheel in the opposite direction to get back to your starting location. If your mouse lacks a wheel, you can use the Home and End keys instead. In Celestia, you'll generally have an object selected; currently, it's Eros, but it could also be a star, planet, spacecraft, or galaxy. The simplest way to select an object is to click on it. Try clicking on a star to select it. The information about Eros is replaced with some details about the star. Press G (or use the navigation menu), and you'll zoom through space toward the selected star. If you press G again, you'll approach the star even closer. Press H to select our Sun, and then G to go back to our solar system. You'll find yourself half a light year away from the sun, which looks merely like a bright star at this range. Press G three more times to get within about 30 AU of the sun and you will be to see a few become visible near the sun. Right click on the sun to bring up a menu of planets and other objects in the solar system. After selecting a planet from the menu, hit G again to travel toward it. Once there, hold down the right mouse button and drag to orbit the planet. That covers the very basics . . . MOUSE FUNCTIONS: Left drag to orient camera Right drag to orbit the selected object Use the mouse wheel to adjust distance to selection (for wheelless mice, dragging while holding left and right buttons or left dragfing while holding control to dolly camera will adjust distance) Left drag while holding shift to zoom Click the wheel to reset the field of view to 45 degrees Left-click to select; double click to center selection Right-click to bring up planets menu KEYBOARD COMMANDS Navigation: H : Select the sun (Home) C : Center on selected object G : Goto selected object F : Follow selected object ESC: Cancel motion Free movement: HOME : Move closer to object END : Move farther from object F1 : Stop F2 : Set velocity to 1 km/s F3 : Set velocity to 1,000 km/s F4 : Set velocity to 1,000,000 km/s F5 : Set velocity to 1 AU/s F6 : Set velocity to 1 ly/s A : Increase velocity by 10x Z : Decrease velocity by 10x Q : Reverse direction X : Set movement direction toward center of screen Time: Space : stop time L : Time 10x faster K : Time 10x slower J : Reverse time Options: U : Toggle galaxy rendering N : Toggle planet and moon labels O : Toggle planet orbits V : Toggle HUD Text I : Toggle planet atmospheres (cloud textures) W : Toggle wireframe mode / : Toggle constellation diagrams = : Toggle constellation labels B : Toggle star labels P : Toggle per-pixel lighting (if supported) [ : Decrease limiting magnitude (fewer stars visible) ] : Increase limiting magnitude (more stars visible) Other: D : Run demo ` : Show frames rendered per second It's possible to choose a star or planet by name. There are two ways to enter a star name: choose 'Select Object' from the Navigation menu to bring up a dialog box, or by hitting Enter, typing in the name, and pressing Enter again. You can use common names, or Bayer designations and HD catalog numbers for stars. Bayer and Flamsteed designations need to be entered like this: Upsilon And 51 Peg The constellation must be given as a three letter abbreviation and the full Greek letter name spelled out. Irritating, but it'll be fixed. HD catalog numbers must be entered with a space between HD and the number. Celestia handles star catalog numbers in a slightly kludgy way. To keep the star database size to minimum, only one catalog number is stored. Normally, this will a number from the HD catalog, but if a star isn't in the HD catalog the number from another catalog will be used instead. Currently, the secondary catalog is always the HIPPARCOS data set, for which the prefix "HIP" should be used. Basic Hacking Tips: It's possible to modify the solarsys.ssc, stars.dat, and hdnames.dat files to create an entirely fictional universe. The easiest file to modify is the solar system catalog, as it's a text file and the format is very text-editor friendly since that's how I had to enter all the data. It's also quite verbose, but that's not a problem yet. The units used for the solar system data may not be obvious. All angle fields in the catalog are in degrees. For planets, the period is specified in earth years, and the semi-major axis in AU; for satellites, days and kilometers are used instead. All solar system textures should be placed in the textures subdirectory. Currently, JPEG and BMP are the only formats supported. Models belong in the models directory. Celestia can read 3DS models, as well as a custom format (.cms files, used right now just for rough fractal displacement map likenesses of asteroids and small moons.) 3DS meshes are normalized to fit within a unit cube--the Radius field determines how big they appear within Celestia. The stars.dat file is a binary database of stars, processed from the 50+ meg HIPPARCOS data set. The first four bytes are an int containing the number of stars in the database. Following that are a bunch of records of this form: 4 byte int : catalog number 4 byte float : right ascension 4 byte float : declination 4 byte float : parallax 2 byte int : apparent magnitude 2 byte int : stellar class 1 byte : parallax error RA, declination, and parallax are converted to x, y, z coordinates and apparent magnitude is converted to absolute magnitude when the database is read. Credits and Copyrights: Most of the planet maps are from David Seal's site: http://maps.jpl.nasa.gov/. A few of these maps were modified by me, with fictional terrain added to fill in gaps. The model of the Galileo spacecraft is also from David Seal's site (though it was converter from Inventor to 3DS format.) The Mars, Moon, and Pluto textures and bump maps are all from James Hastings-Trew's collection. Some of the prettiest planet maps around are at http://apollo.spaceports.com/~jhasting/ The Venus, Saturn, and Saturn's rings textures are from Bjorn Jonsson. His site is http://www.mmedia.is/~bjj/ and is an excellent resource for solar system rendering. 3D asteroid models of Toutatis, Kleopatra, and Geographos are courtesy of Scott Hudson, Washington State University. His site is: http://www.eecs.wsu.edu/~hudson/Research/Asteroids/4179/index.html 3D models of Phobos, Deimos, Amalthea, Proteus, Vesta, Ida, Mathilde, and Gaspra are derived from Phil Stooke's Cartography of Non-Spherical Worlds: http://publish.uwo.ca/~pjstooke/plancart.htm The texture font library I use for displaying text in OpenGL is copyright Mark Kilgard. The Intel JPEG library (ijl10.dll) is copyright Intel Corp. The star database (stars.dat) was derived from the HIPPARCOS data set. Chris Laurel claurel@shatters.net http://www.shatters.net/~claurel and http://www.shatters.net/celestia/