NGC3603 Welcome to StarCluster! M80

What is StarCluster?

StarCluster is a collection of tools and libraries for the analysis of data produced by N-body simulations of star clusters and related dense stellar systems, such as galactic nuclei. Internally, it is based on the libraries contained in the Starlab simulation environment, and these libraries are used for most nontrivial operations. However, its external data format is designed to allow easy interface with other N-body simulation programs.

StarCluster includes a restricted C++ Gnuplot API and an extensible set of tools that utilize Starlab's powerful N-body facilities for the analysis and visualization of N-body simulations. Gnuplot is used as a graphics engine to produce plots of various physical quantities, which may be extracted from the input datastream or calculated in real time using the Starlab back-end.

Data Format

StarCluster expects input to be in one of two formats, the native Starlab "dyn" format, or a much simpler columnar ASCII format. The former is likely to be produced only by Starlab (kira) simulations; the latter is designed to extend StarCluster's usefulness as well as improve its I/O performance. In its simplest form, this format consists of eight ASCII columns of numbers:

        id    m    x    y    z    v_x   v_y   v_z
giving the id, mass, position and velocity of a particle on a single line. The format is still evolving to allow inclusion of more complex substructure. It also contains mechanisms for specifying global system data and user comments. The StarCluster distribution includes utilities for conversion between the two standard formats. It is our expectation that users will have little difficulty generating (or converting to) this mass-position-velocity format from a wide variety of N-body simulations. Most Starlab utilities are capable of reading or writing either format.

Tools and Templates

The number of potential "interesting questions" one might want to ask about N-body systems is virtually inexhaustible (well, we think so...). Currently, StarCluster contains only a few full-featured tools to explore some of the most obvious aspects of a dataset -- particle plots, Lagrangian radii, density and velocity profiles, and so on. Users are, therefore, encouraged to utilize the libraries provided and the Gnuplot API to write new modules that are more pertinent to their research. To this end, the package contains a number of short, simple examples that we hope, along with the more sophisticated tools, will serve as templates for future program development.


Note that, while portability to other UNIX environments has been an important consideration, StarCluster has so far been developed and tested primarily on Red Hat Linux systems. Furthermore, certain GNU utilities are required to build StarCluster even on a non-GNU/Linux platform. They are

  1. GCC (g++) version 3 or higher
  2. GNU C library (glibc) version 2.3 or higher
  3. GNU Make
  4. the Bash shell (bash) version 2
The package also requires Starlab version 4.1 or higher in order to run.


Here is the latest release of the StarCluster package (in the form of a gzipped tar file). To install, download and unpack it, read the README and INSTALL files, configure as needed and say "make". Also look at the full PDF manual share/doc/latex/refman.pdf, which describes the current state of the package and the tools and libraries it contains.

Online documentation for programmers may be found here.

Web Demos

Some very simple demos of the package are listed below. They are front-ends onto some of the StarCluster tools, and are intended to give a partial view of the capabilities and applications of the programs. This list (and the options and datasets available in each demo) will expand as the project proceeds. Ultimately we hope to include contributed programs and data in these pages.


StarCluster is developed and maintained by Ernest Mamikonyan and Steve McMillan (Drexel University), and is distributed under the GNU General Public License.