StarPlot: A 3-Dimensional Star Chart Viewer
Personal note: I have lost my wedding ring at the beach in Pineto, Italy, on 7/7/2007; please see this for more information. Posting it here in the hopes that if anyone finds it, Google can direct them to this page. Sorry for the inconvenience.
StarPlot is a program for UNIX-like operating systems (such as GNU/Linux, the BSDs, and Mac OS X) that allows you to view charts of the relative 3-dimensional positions of stars in space. It is free software; the source code and documentation are available under the GNU General Public License, version 2 or later, at your option. Here is a screenshot (click for a larger image).
- Stars can be right-clicked to display a data popup window.
- Stars can be displayed or hidden by spectral class and absolute magnitude (also shown above).
- Stellar absolute magnitude limits can be set automatically based on the radius of the chart.
- Non-stellar objects such as nebulae are also supported.
- The stars being viewed may be plotted on a Hertzsprung-Russell diagram.
- Charts may be viewed in either celestial or galactic coordinate systems.
- Charts may be recentered, rotated, or zoomed in or out with a mouse click (this can also, of course, be done via dialog boxes for more precision).
- Current chart parameters may be saved to a file and reloaded later.
- The data file format is easy to read, well-documented, and text based.
- StarPlot is packaged with a program (starconvert) that converts line-oriented stellar data records to StarPlot format. Several well-known star catalogues are available from this website, complete with all the data needed for conversions.
- User interface currently available in English and Spanish (the documentation is English-only as yet). The Spanish translation is thanks to Francisco García and Javier Fernández-Sanguino Peña.
The documentation is not yet complete, but most program features should be fairly self-explanatory to people familiar with stellar astronomy. (For those who aren't, the existing documentation does include a stellar astronomy crash course.) Hints: to navigate, left-click on a star; for information, right-click on a star or press <Control>D. The existing documentation is now online.
Requirements and Porting
The latest version of StarPlot is 0.95.5; it is based on the GTK+ graphics library, version 2.x. You will need that and a recent C++ compiler, preferably g++ 2.95.x or higher, to compile the program. (If you only have GTK+ 1.2, you can still compile StarPlot version 0.93.1.) In theory StarPlot should compile on any Unix platform with GTK+ 2 and g++ installed. As of version 0.94 StarPlot has an autoconf-generated configure script; this should make compilation straightforward via the usual procedure:
./configure && make && sudo make install
If you are porting StarPlot to other graphics libraries like Qt or Windows: You should not have to change the files in the classes or convert directories much, unless you are adding new features, but you will need to port all the code in the gui directory. I suggest writing a class derived from classes/viewer.h, analogous to gui/gtkviewer.h.
- The program does not redraw its display while scanning data files. Patches to make it (reliably) multi-threaded are welcome.
- When more than one data file is opened at a time, StarPlot does not check for duplicated stars.
- Some time ago I had reports of a bus error on Mac OS X, possibly as a result of using certain versions of freetype2. On Mac OS X 10.4 using the system freetype library, this does not seem to be a problem.
- Versions of StarPlot prior to 0.95.4 may not compile on BSD (or other systems using BSD make and/or a static libintl library) due to issues in the doc and src Makefiles.
To Do Items
Planned for next minor release 0.96
- Rewrite menu code to make l10n safer
- Finish writing documentation
- New graphical interface allowing download and installation of star data files from within the program
- Improve Rules interface and read/writing of parameter files
- Allow click-and-drag on the chart grid to rotate/tilt it to different orientations. Thanks to Keith Athey for the idea.
- Command-line flag to run StarPlot in "batch mode," supplying chart parameters as flags on the command line and outputting a PNG file
- Compile-time option to build StarPlot without the GTK+ interface, allowing only batch mode to be supported; could be useful in a Web interface to the program. (I think Pango and GDK libs will still be required.)
Some ideas for the far future
... but could be sooner if you submit a patch for one of them!
- User interface
- Make the HR diagram window smarter, so it too can allow star info pop-ups on right-click and can be saved to an image file
- Allow user selection of colors for star classes, background, and various widgets
- Make the UI multi-threaded so one can still open dialog boxes while waiting for the chart to be redrawn
- Make a web-interface version of StarPlot available from here
- Native versions for Windows / Mac OS X? (I am not likely to do this myself.) Note that you can already get GTK+/X11 versions if you install the needed libraries with Fink or Cygwin...
- Make graphics prettier, maybe with OpenGL or some such, in particular with images of nebulae / star clusters
- Do clipping right when large images overlap the chart grid or each other
- Data file format
- Implement an XML-based (or other hierarchical text-based) file format for both data and spec files
- Implement orbits for planets and multiple star systems
- Implement time dependence
- Speed improvements
- Do profiling on starconvert to improve its speed
- Implement a binary file format (and allow "compiling" the text format to it) for increased loading speed