Open Source

© 2003- Piet Hut and Jun Makino

Our book series explores a new approach to both research and education in computational science, bringing out simultaneously the science, arts and crafts aspects of research in the form of an the educational offering. The whole series, together with the corresponding software, will be presented on the web as an open source project. Others who share our enthusiasm are welcome to develop their own contributions. We sincerely hope that some of those will extend our approach both locally and globally: contributing modules to our problem at hand, in stellar dynamics, in stellar hydrodynamics and in stellar evolution; and starting new projects in other areas of astrophysics, indeed in other areas of science as a whole.

It would be our greatest reward to see others complement our approach. Given our emphasis on modularity and clear specification of interface protocols, each contributor will be pretty free in her or his choice of approach, from the type of computer language used to the style of programming (while hopefully adhering to the principle of least action, a principle that certainly allows many different ways to implement it). With a modest amount of care, it should not be hard to let a community of programmers and programs sprout up, servicing many different areas of science in a way that follows a similar spirit. In addition, an open source approach has proven to provide the best quality control.

As an added benefit, this may make it easier to explore new scientific questions, by combining existing modules from different disciplines, something that is currently all but impossible, given the different ideosyncracies in the various legacy codes in each discipline. We are in the process of setting up an open source framework for our book series and for the codes that go with it. Further developments will be announced regularly on our web site

In the current concise version of the first three volumes, we have skipped a detailed explanation of many of the basic steps, such as introductions and precise definitions of the concepts of physical force and differential equations. By forging ahead quickly in that way, we ourselves can get more of an idea of where we may be heading, and we can get feedback from our readers and especially from students who will actually attempt to learn computational science from our series, and who are willing to start with a not-yet-complete product. We therefore very much appreciate hearing from our readers what they like in this volume and where they encounter difficulties of which kind. We can be reached through email at the address We may not be able to answer each reaction personally; that will depend on how much time we have and on how many reactions we get. But rest assured that we will read each email comment, and implement what we learn from that email in the actual volumes that will appear in this series.

This book aims at three groups of readers. For scientists, it gives a concrete example for setting up a full scientific simulation software environment. Whether you are a biologist, physicist, psychologist, or working in another area of science, many of the issues discussed here will come up for you too, when you want to build a new software system, or what is often more challenging, when you want to fully overhaul and modernize an archaic existing system. Because our scientific example has such a simple base, nothing more than Newton's laws of gravity, it is easy to grasp the underlying physics, after which you can focus on the complexity of managing a software laboratory.

The second target group of readers are computer scientists, and in general everyone building complex software systems. While we apply modern concepts such as the use of object-oriented languages and design patterns, and notions such as extreme programming, our main forte is that we fill a gap in the market, by providing a complete discussion of the process of constructing a large-scale software system. Our gamble here is that the music of the spheres may attract an audience audacious enough to follow our cosmic exploration through the various volumes in this series.

Readers in our third group neither work in natural science nor in computer science. They are simply curious how a modern software system is set up. For example, they may have read about the billions of dollars that are lost because of late delivery of software, or worse, delivery of faulty software. Perfectly functioning rockets have been blown up because of glitches in complex software systems. Newly built airports have experienced very costly delays, simply because software for baggage transport was delivered a year late. Perhaps you are an average user of the internet, and just curious about what makes writing large software environments so hard. Perhaps you are working in business or finance, and you are wondering whether to invest in a software company. How are you going to judge the soundness of the company's approach? Having a good look in the kitchen will help. Even better, helping a hand as an apprentice in the kitchen would be even better. This is exactly what this book offers.

We hope that our choice of topic, the do-it-yourself modeling of the full ten-billion-year history of a dense star cluster, will be rewarding. We offer you the controls of a state-of-the-art flight simulator that will allow you to travel through the four-dimensional space-time history of a star cluster. After zooming forwards or backwards in time by a few billions of years, you will be able to visit an interacting triple or quadruple system somewhere in the history of the star cluster. Slowing down simulated time by a factor of a trillion, you can watch the intricate and chaotic gravitational dance of the three or four stars, moving around each other in a matter of days. If you are lucky you may find a couple of neutron stars or black holes among the interacting star group, but you will have to slow down simulated time by yet another five to eight orders of magnitude, since two neutron stars can pass by each other in matters of milliseconds.

All of this and much more will be at your finger tips already through half-way the series of books we are currently writing. You will be able to use cutting-edge astrophysics research tools, together with full access to every line of code. And if you have worked your way through the books in this series, you will not only understand how the whole system works, but you will also understand and appreciate the motivation for every design and implementation decision. From that point on, you will be in a position to extend the current system and to engage in original scientific software design yourself. More importantly, you will have a complete software environment to inspire you if you want to set up your own virtual laboratory in your own scientific discipline, or your preferred business environment.

Go back to Home page