StarCat Signal seeks to emulate a universe as we expect it to be 7.4 billion years from now, enabling you and me to discover its secrets.
This document describes the technical approaches in StarCat Signal
A procedure for generating the vast variability in the structure of space -- which gives rise to an entire universe -- is elusive.
Application of such a procedure in a technically feasible way is doubly elusive. Computers, while unbelievably efficient, are not able to simulate even the number of galaxies (~1 trillion) in our universe, much less the hundreds of billions of individual stars and planets in each of those galaxies.
Nevertheless, if we restrict the universe we keep in memory at any given time to just the visible part; a few thousand stars, the odd nebulae, rare supernovae, and extremely near celestial bodies (planets and moons, mainly), we have a much more feasible goal. So feasible, in fact, that we have plenty of memory and processing power (CPU and GPU) to spare. We just have to write our procedure in a way that enables it to generate only the visible parts of the universe, from a given vantage point. Procedural generation.
There are myriads of ways to visally represent planets, stars, systems, galaxies, and beyond.
Most space-faring games simulate one star system at a time, with all its stars, planets, moons, and other celestials.
Some use a very limited set of stars -- EVE Online (2003) has less than 10'000 stars in its galaxy -- and generate a pretty but ultimately static backdrop for each system, and then "warp" you directly from one system to another when you go somewhere else in space.
The galaxy in Elite Dangerous (2014) is based faithfully on the Milky Way; it features billions of stars, but the path from one star system to another happens through warping as well, taking you directly to your destination system with a beautiful warp cutscene which doubles as a loading screen.
Noctis (2003) manages to deterministically generate an effectively boundless galaxy on the fly, and lets you travel continuously from one system to another, but space is everywhere homogenous, and only stars within hundreds of light years are visible at a time.
StarCat Signal requires continuity of travel and heterogeny of space, ideally based on fairly accurate models of the universe.
To facilitate continuity of travel in a potentially boundless universe, I generate space to lower levels of detail and greater levels of scale, in 3D space; specifically, a sparse octree populated around the player.
Space is vast and varied, but the formation of everything follows patterns; paragalactic superstructures, galaxies, globular clusters, star systems.
Building hierarchical generators for these structures would make it possible to ensure variance in space at every level of detail.
Each generator is responsible for generating every element in the next layer, consisting of a position and an age
Concept | Age range | Diameter range | Contents |
---|---|---|---|
Universe | 21.2 Gyr | 32 Gpc | Galaxy filaments, large quasar groups |
Large quasar group | 2 Gpc | ||
Galaxy Filament | Supercluster complexes, filaments, galaxy walls and sheets | ||
Filament | 128 Mpc | ||
Galaxy wall | 4 Gpc | Galaxy Clusters | |
Galaxy sheet | Galaxy Clusters | ||
Supercluster complex | Superclusters | ||
Supercluster | Galaxy Clusters | ||
Galaxy Cluster | Galaxy groups | ||
Galaxy group | Galaxies | ||
Galaxy | 0 to group age | 64 Kpc | H I clouds, H II clouds, Molecular clouds |
Molecular cloud | 256? pc | Globular clusters | |
Globular cluster | 0 to starburst age | 128 pc | Star systems |
Star system | ~cluster age | ~$\frac{1}{32}$ pc, 8192 AU | Stars |
Star | ~cluster age | 8 AU | Planets |
Planet | ~star age |
~0.002 AU, 64 |
Moons |
Moon | ~star age |
Selected functions for generating stellar populations.
An empirical function that describes the distribution of initial masses for a population of stars.
StarCat uses the
Specifically, StarCat makes use of the derived quantile function -- by supplying random numbers
Where
The canonical values for
Quantity | Symbol | Star | System |
---|---|---|---|
High-mass exponent | |||
Low-mass exponent | |||
Scale parameter | |||
Lower mass limit | |||
Upper mass limit |
A more accurate Initial Mass Function, especially for lower-mass stars, would be the
The canonical values for
Quantity | Symbol | Star | System |
---|---|---|---|
High-mass exponent | |||
Low-mass exponent | |||
Location parameter | |||
Scale parameter | |||
Lower mass limit | |||
Upper mass limit |
On the function describing the stellar initial mass function