Here follows a combined report/plan for the initial five-year phase of
the Maya project, to develop the Maya open lab, with the Kali
code for simulating dense stellar systems as its center piece.
After a two-week design study for the Kali code, we started
to explore how the Ruby language could be used for realistic large-scale
simulation projects. After extensive tests, we decided to go ahead with
Ruby, and we wrote the basic software for the production of html and
ps/pdf files directly from a shared source, in what we called the `ok'
(open knowledge) format. During this time, we also completed the C++
based pilot project, that resulted in the volume
Moving Stars Around.
We wrote the first few volumes of dialogues in the Maya series
(then called Kali series)
and released our first product, ACS 1.0.
In volume 0, we
presented the astrophysical motivation for the project, followed
by an introduction to working with Ruby in
In addition we produced volumes describing simulations of the
problem and the
problem, and a step-by-step explanation of how
to set up initial conditions, based on a
Instead of writing more volumes, we concentrated on developing N-body
codes using individual time steps, as prototypes for the Kali code.
This gave us detailed practice in designing and developing highly
modular codes, in which is was easy to swap integration schemes.
We succeeded, as far as we know for the first time, to write a code
in which individual particles can be given individual integration
schemes, while still moving together under the influence of their
mutual gravitational forces in the same simulation.
We spent one week reviewing our progress so far, during which we
returned to the ideas we originally developed in the summer of 2003.
After considering various possibilities for a long-term strategy of
code development, we decided to continue to follow our original plan,
with some possible modifications to allow efficient inclusion of
massive central black holes in simulations of galactic nuclei.
We continued to develop our various prototypes, and we also started
some simple lab experiments, to explore how we could use Ruby to run
programs that in turn run slews of simulations. We then went back to
writing some volumes, about
time-step codes and
Looking back on the progress we had made, we also realized that our
volume writing had grown rather uneven, and we drew up a plan of action
to guarantee a more sustainable development of documentation, in the
form of dialogues. This led to the
first five-year plan.
Since we became increasingly dissatisfied with the loss of coherence
of our codes and documentation, despite our best intentions, we decided
to rethink our whole approach. Our main conclusion was to introduce
two parallel series of web volumes, a development series and a
school series. At the same time, we introduced the name
Maya to indicate our whole project of providing modular tools
for modeling dense stellar systems, in contrast to our main tool, the
Kali code, which will form the center piece of the Maya open
lab, which invites users to pick and choose what they find of
their liking, and to combine what they like with their own software
modules, in their own setting or in Maya, as they prefer. From now
on, the development series, the main Maya
series will continue to be the repository of the documentation of
the history of the development of Maya. Currently at already more
than 1,000 pages, the Maya series is expected to reach some 10,000
pages. In contrast, the school series will be more compact,
and will provide students with self-study material, as a relatively
quick introduction to the Maya project. We have now started to
rewrite our first product,
Moving Stars Around,
into the first volume of the Maya school series. Specifically, we
will use a much more flexible plotting package, we will introduce a
visualization tool, and all codes will be written in Ruby.
Plan: write a first draft of the first volume of the Maya school series.
Plan: provide an ACS toolbox, containing the main products of the six
foundation steps of the Maya project (documentation, command line
interface, code management, data formats, plotting, and visualization),
with a user-friendly set of introductions to each tool. In addition,
complete the first volume of the Maya school series.
Plan: write the volumes that are needed for a treatment of the
1000-body problem. This will include some form of regularization of
internal binary motions as well as the perturbations on and by those
binary motions from and to the surrounding neighbors.
Plan: write volumes about astrophysical applications of the software
developed in the first half of that year.
Plan: write extra volumes, to describe the treatment of primordial
binaries and massive black holes, to allow the simulation of realistic
star clusters and galactic nuclei, at least on the point-particle level.
In addition, start writing volumes about running the Kali code on the
predicted to be the first computer running at a speed of more than 1 Petaflops.