A 35-year journey through programming languages and planetary simulation

🚀 Try Starform Now! Starform
After a fulfilling period at LinkedIn/Microsoft, I officially retired last week. I’m now eager to dive into passion projects that have been on my mind for a long time.
Back in 1988, I shared “Starform” (sometimes also called “Accrete”) on the Universe Simulation Mailing List (USML), a Usenet forum. The program simulated the process of planetary system formation through accretion—the gradual clumping together of dust and gas particles to form planets around a star.
Starform’s creation was fueled by my fascination with Stephen H. Dole’s 1969 publication, “Formation of Planetary Systems by Aggregation: A Computer Simulation.” The diagrams of simulated star systems resembling our own were particularly compelling. With only university library astronomy papers as my guide, I implemented my interpretation of those algorithms using Borland’s Turbo Pascal.
Since then, Starform has been my go-to project for learning new programming languages. It serves as an excellent benchmark for assessing a language’s capabilities and testing my comprehension of its features. Originally intended to simulate planetary formation, Starform has evolved into a means of visualizing and understanding the complex dynamics of our solar system and others. Its early text-based outputs were informative but lacked the visual richness we are accustomed to today.
- 1987: The original Starform, written in Turbo Pascal. starform-pascal
- 1991: A complete rewrite in K&R C as a learning experience. starform-c
- 2025: The latest iteration, currently being rebuilt in Rust. starform-rust
Each version reflects the evolution of both my own programming skills and the broader landscape of programming itself. We’ve progressed from structured programming in Pascal, to manual memory management in C, and now to the memory safety and concurrency features of Rust.
The latest iteration of Starform harnesses the power of Rust for exceptional performance and memory safety, while the Bevy game engine delivers a modern rendering solution. Moving beyond the simple text-based outputs of its predecessors, this version creates interactive solar systems. While this initial release is still in its early stages, it represents a big leap in visualization compared to the previous console-based displays.
It’s fascinating to reflect on how computing power has revolutionized Starform’s execution time. In my 1994 publication, I included the following benchmarks for generating a single planetary system:
- 7 minutes - Original IBM-PC
- 4 minutes - 8 MHz IBM-PC
- 5-8 seconds - 8087-equipped 10MHz IBM-XT
- 5-30 seconds - Sun-3/60
- 2-5 seconds - HP9000/350
- 1.4 seconds - Sun-4/390
The Rust/Bevy version generates a system in under a second and even allows for real-time regeneration and re-rendering as you adjust parameters like the gas/dust ratio or dust density.
Never did I imagine that my little personal project would take on such a life. As Starform made its way across the nascent internet, it spurred numerous spin-offs and interpretations. I’ve been delighted to hear from astronomers, science fiction aficionados, and game designers who incorporated Starform into their own creations.
To see how this simulation has changed from a simple text-based output to a vibrant visual exploration has been quite a journey. The core science, stemming from Dole’s foundational work, may be dated, but our ability to visualize and engage with these concepts has changed beyond recognition.
Keep an eye out for further developments!