Skip to content

Plausibility Rules

m4bwav edited this page Oct 4, 2026 · 1 revision

UniverseGenerator serves games and fiction first. Its astronomy is a set of cheap formulas that keep a description consistent: a red dwarf is small, dim and red, its habitable zone sits close in, and a world there is not described as frozen. The numbers are defaults chosen for that, not measurements of a real sky. This page lists the rules, checks the ones 1.0.0's output can show, and gives the source of each. The full research notes are the repository's plausibility rules.

Stars

using UniverseGeneration;

foreach (var system in Galaxy.Generate("my-seed").Systems.Take(4))
{
    var star = system.Star;
    Console.WriteLine(FormattableString.Invariant($"{system.Name}: {star.SpectralType}, {star.Mass} Suns, luminosity {star.Luminosity}, radius {star.Radius}, {star.Temperature} K, {star.Colour}"));
    Console.WriteLine(FormattableString.Invariant($"  habitable zone {system.HabitableZoneInner} to {system.HabitableZoneOuter} au, frost line {system.FrostLine} au"));
}

prints:

HD 147927: K5V, 0.631 Suns, luminosity 0.15823, radius 0.691601, 4382 K, #ffd2a1
  habitable zone 0.2985 to 0.7032 au, frost line 1.074 au
HD 165595: M8V, 0.083 Suns, luminosity 0.00075, radius 0.136319, 2588 K, #ffad51
  habitable zone 0.0205 to 0.0484 au, frost line 0.0739 au
HD 28101: K0V, 0.819 Suns, luminosity 0.4504, radius 0.85255, 5126 K, #ffd2a1
  habitable zone 0.5036 to 1.1864 au, frost line 1.812 au
HD 157953: M5V, 0.19 Suns, luminosity 0.00503, radius 0.264638, 2992 K, #ffad51
  habitable zone 0.0532 to 0.1254 au, frost line 0.1915 au
Rule What the output above shows Source
Main-sequence luminosity from mass: L = 0.23 M^2.3 below 0.43 Suns, M^4 from 0.43 to 2, 1.4 M^3.5 from 2 to 55 within 0.2% of the formula for all four stars (0.631 Suns: 0.15853 by the formula, 0.15823 printed) University of Oregon mass-luminosity lecture
Radius about M^0.8 on the main sequence within 0.2% (0.631 Suns: 0.691868 by the formula, 0.691601 printed) Artifexian
Temperature = 5778 K × (L / R²)^0.25 matches to the kelvin for the two K stars and within 2 K for the two M stars Stefan-Boltzmann law
Habitable zone from luminosity inner edge √(L / 1.776) au, outer edge √(L / 0.32) au for all four stars: the optimistic "recent Venus" and "early Mars" limits Kopparapu et al. 2013 and 2014
Frost line about 2.7 au × √L exact for all four stars frost line (astrophysics)
Colour from temperature a hex colour per band (#ffd2a1 for K stars, #ffad51 for M stars here) Mitchell Charity's blackbody table
Star shares the star mix below Mamajek's star counts
Multiplicity: about 27% of M dwarfs, 46% of G stars, 70% or more of A, B and O stars have companions; close pairs lose their inner orbits not checked on this page (the first system above is "an orange dwarf and red dwarf pair") Duchêne and Kraus 2013; Moe and Kratter 2021

The repository's research note lists the conservative habitable zone (√(L / 1.1) to √(L / 0.53)); the 1.0.0 output uses the wider optimistic limits above.

Planets

using UniverseGeneration;

var system = Galaxy.Generate("my-seed").System(0);
foreach (var p in system.Planets)
    Console.WriteLine(FormattableString.Invariant($"{p.Name}: {p.Kind}, {p.Zone}, {p.Orbit} au, {p.Radius} Earth radii, {Math.Round(p.Temperature)} K, eccentricity {p.Eccentricity}"));

prints:

HD 147927 e: Desert, Warm, 0.1653 au, 1.266 Earth radii, 402 K, eccentricity 0.05
HD 147927 c: Rocky, Warm, 0.2022 au, 1.333 Earth radii, 488 K, eccentricity 0.05
HD 147927 d: SubNeptune, Warm, 0.2604 au, 2.816 Earth radii, 304 K, eccentricity 0.026
HD 147927 f: IceGiant, Outer, 1.3447 au, 8.06 Earth radii, 140 K, eccentricity 0.079
HD 147927 g: GasGiant, Outer, 2.9526 au, 10.331 Earth radii, 93 K, eccentricity 0.029
HD 147927 b: IceGiant, Outer, 4.4515 au, 5.946 Earth radii, 75 K, eccentricity 0.101

The three warm planets sit inside this star's habitable zone's inner edge (0.2985 au), the giants beyond its frost line (1.074 au). Rocky planets are below 1.5 Earth radii and the mini-Neptune above 2, as the radius valley below expects.

What 1.0.0 applies, from the CHANGELOG and README:

  • Orbits from exoplanet statistics in two chains, with the radius valley (few planets of 1.5 to 2 Earth radii; Fulton et al. 2017) and the hot Neptune desert (few 2 to 9 Earth-radius planets on periods of 3 to 10 days).
  • Neighbour spacing: period ratios rarely under 1.2 (Weiss et al. 2018).
  • Eccentricity and inclination drawn as Kepler's multi-planet systems show (about 0.05 and 1.5 degrees), larger for a planet alone, damped for hot planets, capped so no orbit crosses a neighbour's.
  • Air kept by the Jeans rule: a gas stays when the escape velocity is at least about six times its thermal speed.
  • Gravity, escape velocity, density, insolation, albedo, day and night temperatures, rotation, tilt and tidal lock, climate bands and biomes; an Earth similarity score (Schulze-Makuch et al. 2011).
  • Moons inside the Hill sphere with their own physics and tidal heat; rings; belts in the gaps between planets.

The star mix

The Default preset uses a mix tuned for games, with more bright and unusual stars than a real sky; StarMix.Plausible (the Plausible preset) uses real shares, where most stars are red dwarfs. Counted over 2,000 systems:

using UniverseGeneration;

foreach (var (name, options) in new[] { ("Default", Preset.Default), ("Plausible", Preset.Plausible) })
{
    var galaxy = Galaxy.Generate("my-seed", options with { Systems = 2000 });
    var counts = galaxy.Map.GroupBy(m => m.StarClass).OrderByDescending(g => g.Count()).ThenBy(g => g.Key)
        .Select(g => $"{g.Key} {g.Count()}");
    Console.WriteLine($"{name}: {string.Join(", ", counts)}");
}

prints:

Default: M 608, K 408, G 324, F 193, A 138, Giant 113, WhiteDwarf 110, B 56, Supergiant 23, BlackHole 12, NeutronStar 8, O 7
Plausible: M 1431, K 254, WhiteDwarf 118, G 116, F 60, A 10, Giant 8, NeutronStar 2, Supergiant 1

That is 30% red dwarfs in the default mix against 72% with real shares (the research note's real figure is 72.5%). The weights behind these choices are editable: see Recipes.

Galaxies and beyond

At the galaxy, cluster and universe levels the rules are for story, not simulation. Galaxies get Hubble type codes such as Sb, SBc, E3 and Irr (de Vaucouleurs). A group has two big spirals with satellites and dwarfs; a rich cluster has a giant elliptical at the centre. Region ages stand in for a metallicity gradient.

Design rules beside the astronomy

From the repository's design rules:

  • Differences people notice. Every system has at least one landmark, every region a monument, every galaxy two to four beacons.
  • Outliers on purpose. Weirdness is the share of systems (0 to 100%) that break the usual rules; Plausible sets 1, SpaceOpera 10.
  • Maps for play. Lanes always connect every system; chokepoints and bridges are marked; danger grows with hops from the core and covers 1 to 10.
  • Small by default. 60 systems, a map that reads on one screen; up to 2,000 on request.

Clone this wiki locally