Content

2,294 words · 1 diagram

What exists in the galaxy, in what quantity, and generated how — because with one person and coding agents, generated how is the only question that determines whether it exists at all.


The rule

If it cannot be generated, it is not content. If it must be authored, it is a part, and parts are assembled by generation.

Everything in this game is one of three things:

What it is How many can exist Example
Generated A pure function of seed and address Unbounded Planets, terrain, asteroids, ship variants
Observed Ingested from a real catalog As many as astronomy has found Stars, confirmed exoplanets
Parts Hand-authored, assembled by generation Tens, not thousands Room modules, hull sections, weapon models, biome materials

The third row is the entire art budget. Twelve room modules and a layout grammar produce every ship interior in the game; forty hull sections produce every ship. The moment a design requires a hundred hand-made unique things, it is not a design this project can build, and it should be cut or restated as a parts problem.


Status against the roadmap

Mirrors docs/roadmap.md, which is the engineering-facing view of this same table.

Thing Status Launch target Notes
Galaxy, systems, stars ✅ Catalog + procedural fill 7,123 real systems within 150 ly and the 7,514 naked-eye stars beyond, from the ingest pipeline
Planets, moons ✅ Full Deterministic from address
Planetary terrain 🟡 Quadtree LOD, biomes, materials The visible ceiling on everything — see production
Ships 🟡 6 hulls, ~60 modules One debug ship today
Rings ✅ All bodies that warrant them Saturn's, Jupiter's, Uranus's, Neptune's, and Haumea's, Quaoar's, Chariklo's and Chiron's — the seven without a published map are looked up rather than drawn; a procedural giant gets a 1-in-6 chance and a strip from its own character
Asteroids / belts 🟡 2–4 belts per system where warranted 50 real asteroids and comets in Sol and 6–18 generated per system, as addressable b: bodies. A belt you can see still wants a population generator: many small bodies from one cell seed, addressed as o: objects
Body figures ✅ Everything below the rounding radius 92 of Sol's 129 bodies are not spheres; 25 carry measured shape models — ADR-0013
Star clusters, nebulae ⬜ Post-MVP Density modulation in the galaxy generator + volumetric rendering
Exotic remnants ⬜ Post-MVP White dwarfs, neutron stars, black holes — a body kind; the hard part is rendering
Vegetation, flora ⬜ Post-MVP Region-seeded scatter; the o: address segment exists for it
Rocks, surface scatter 🟡 MVP Region-seeded boulders addressed as o: objects, four generated shapes instanced in the terrain's own material — ADR-0021. No outcrops, no debris, no collision
Structures, outposts 🟡 3 kinds, parts-assembled Durable body-fixed placements and a Mars landing pad with a flat support disk exist; outposts and interiors remain unbuilt. ADR-0040
Humanoids 🟡 Surface traversal Canonical character movement, optional pointer lock, first-person and third-person views, and permitted flight; suit survival, inventory, and interaction remain unbuilt. On foot
Small physical objects 🟡 Samples, tools, debris Debug cubes render at correct scale today; no interaction

Bodies

Distribution

Where the catalog is silent, generation fills in — and it should fill in plausibly, which means the generator's statistics should look like the real ones rather than like a designer's preferences.

Property Target distribution Real basis
Spectral class M ≫ K > G > F > A > B > O The stellar initial mass function [Source: Chabrier, Galactic Stellar and Substellar IMF, 2003]
Planets per system 0–12, median ~3 Kepler occurrence rates [Assumption: approximate; validate against current occurrence-rate literature at ingest]
Rocky : giant ratio ~2 : 1 within 10 AU
Moons per giant 4–60, log-distributed Sol's giants as the reference
Landable fraction ~55% of solid bodies Airless and thin-atmosphere worlds; thick-atmosphere worlds are not landable in the MVP
Systems with belts 100% Every system that formed planets has leftovers. 6–18 bodies each, which is a sample of a population that runs to millions
Small-body sizes dN/dD ∝ D^-3.5 Dohnanyi's collisional cascade [Source: Dohnanyi, Collisional model of asteroids, JGR 74, 1969]
Small-body rotation ≥ sqrt(3π/Gρ), log-normal above it The rotation barrier a strengthless rubble pile flies apart at — 2.13 h for rock, 4.26 h for a comet nucleus. Measured populations pile up against it and do not cross it
Elongation, b/a 0.43–0.99, median 0.74 The 25 measured shape models in data/shapes/
Roughness about the fitted ellipsoid 0.023–0.61, median 0.090 The same 25

The generator already does the astrophysics honestly — main-sequence mass–luminosity, a frost line that scales with luminosity, densities that separate rocky worlds from giants — and its own comment says the point is that swapping in something better later is a change to one file. That is the right posture.

Body kinds

Kind Landable Notes
Rocky ✅ The default. Terrain, no or thin atmosphere.
Ice ✅ Terrain with an ice material set; often outer-system
Gas giant ❌ Approachable, ring systems, moons. A destination without a surface.
Ice giant ❌
Moon ✅ Anything orbiting a body rather than a star
Asteroid 🟡 Character contact uses canonical terrain on the body datum; the measured rendered figure is not a collision mesh. Microgravity movement is kinematic, not orbital EVA.
Comet 🟡 The solid nucleus admits canonical terrain contact; its rendered figure is not a collision mesh. Coma and tail rendering remain unbuilt.
Dwarf planet ✅ Round, and a world. Pluto has its heart; Haumea is a genuine tri-axial ellipsoid because it turns in 3.9 hours
Exotic remnant ⬜ ❌ White dwarf, neutron star, black hole. Hazard and spectacle.

Below about 200 km a body stops being a spheroid and starts being a shape — see ADR-0013. That is a rendering and data distinction. Character contact reads the canonical datum and terrain field, not that shape mesh. Gravity remains a radial point-mass model, so traversing a measured irregular figure is not yet a physically matched surface walk.


Terrain

The single most visible shallowness today and the natural next milestone. The engineering sequence is in docs/roadmap.md; this is what it has to produce.

flowchart LR
    Q["quadtree LOD<br/>fine underfoot,<br/>coarse to the horizon"] --> S["edge stitching<br/>across faces<br/>and levels"]
    Q --> G["geology<br/>craters, plates, volcanism,<br/>from a per-body grammar"]
    G --> M["materials + biomes<br/>from latitude,<br/>altitude, slope"]
    M --> SC["scatter<br/>rocks now,<br/>flora post-MVP"]

    style SC fill:#0369a1,stroke:#0c4a6e,color:#fff

Geology

Derived, never authored, from the same facts the record already carries. ADR-0019 is the decision record: a SurfaceGrammar turns mass, radius, air, temperature and the tide a primary raises into which bands a body has and how loud each is, a per-body sketch places plate nuclei and hotspots and sets the crater field's lattice ladder, and six bands evaluate against them. What that produces is a body that looks like itself — Mercury saturated with craters under one unmoving lid, Earth with plates and orogens along their margins, Venus the same size and stagnant because it has no ocean to weaken its lithosphere, Enceladus with four parallel fractures across a shell nothing has had time to hit.

Biomes

Derived, never authored. A biome is a lookup from three values the generator already computes per vertex — latitude, altitude, slope — plus body-level properties (temperature, atmosphere, water presence).

Biome Conditions Material set
Regolith Airless, any latitude Fine gray-brown dust, high-frequency crater noise
Basalt plain Airless or thin, low slope, low altitude Dark, low roughness variance
Highland High altitude, high slope Exposed rock, scree at the base of slopes
Polar ice High latitude, temperature below freezing Bright, low roughness, wind-scour patterning
Sand sea Thin+ atmosphere, low slope, warm Dune-scale noise, wind-aligned
Salt flat Thin+ atmosphere, low altitude, evaporite conditions Bright, cracked, very low slope
Seabed Under a sea the ground temperature admits Silt, seen through a sheet that refracts it
Riverbed The floored channel of a valley, with liquid to run The liquid painted on its bed
Biosphere Liquid water, air, a temperate band; thins at height The body's own pigment as a deposit, no geometry
Tundra ⬜ Atmosphere, cold, water First biome with flora
Temperate ⬜ Atmosphere, moderate, water Post-MVP

Eight biomes, six of them airless or near-airless, is the right MVP set: it covers the great majority of landable real bodies, and it avoids the flora problem entirely until after launch. The three rows between them are what ADR-0026 added without geometry — a seabed, a riverbed and a pigment are colors the cover carries, and a temperate world reads as one from orbit before a single plant is modeled.

Materials are the art budget. Each biome needs a PBR material set — albedo, roughness, normal, and a detail layer — and those are the few dozen authored assets the whole game rests on. See art.

Until they exist, ADR-0020 draws the six from a parameterized palette: a reflectance ratio, a roughness, a grain and a bump per deposit, expressed against the body's own published color so that Mars stays ochre and Callisto stays gray while both get the same internal contrast. The lookup is split by who can answer — latitude, altitude and slope per pixel from the mesh, and an eight-byte cover per vertex for what only the generator knows: where the flood basalt is, where a young crater has thrown fresh material, which way the crust's composition varies, where the volatiles have condensed. A body with a published map wears it, and the invented channels switch off, because the maria are in the photograph already.

Scatter

Rocks before plants, and the rocks are built — ADR-0021 is the record. A boulder is an address rather than an entry in a list: regionScatter answers "does r:…/o:837 hold a rock" with a hash over 1,024 candidate slots in a 256 m region, gated by the surface cover the vertex already carries, and slot 837 is slot 837 whichever call resolves it. Four generated shapes are instanced with the terrain's own material, so a rock comes out bedrock on its steep faces and regolith on its top, in the palette of the ground it is lying on.

The cheapness is the point and it holds: a handful of instanced meshes with a rotation and a scale apiece do more for the feeling of standing on a world than any amount of additional terrain frequency, and the whole population inside 212 m is a few hundred kilobytes against the quadtree's hundreds of megabytes.

Not yet here: outcrops and debris beside the boulders, the fade that scales a rock in from zero rather than popping it in at two pixels (art), and collision — a rock is presentational, and the contact test does not know it exists. On foot is the layer that changes the last of those.


Systems and stations

Kind Count at launch Placed how
Survey outposts ~1 per 8 inhabited systems Generated placement in real nearby systems; parts-assembled
Independent stations ~1 per 20
Automated installations 0–3 per system, sparse beyond 200 ly Fully generated
Wrecks ⬜ Rare, log-distributed with distance The setting's only narrative surface — see world

Inhabited space is deliberately small — a bubble of a few hundred light-years around Sol, thinning outward, with nothing beyond it. That is both the honest consequence of a setting that has had the Reference Drive for a short time and the reason the frontier means something.


Content volume at launch

For the MVP, the numbers that have to be true:

Target How it is met
Star systems reachable Effectively unbounded Generated; ~119k cataloged via HYG
Systems with real catalog data ~119,000 HYG ingest
Confirmed exoplanets ~6,000 [Assumption: read at ingest] NASA Exoplanet Archive
Landable bodies Millions Generated
Biomes 8 Authored material sets
Ship hulls 6 Parts-assembled
Ship modules ~60 across 12 lines × 5 grades Parametric
Suit modules ~18 Parametric
Room modules 12 Authored parts
Rock / scatter meshes 4 today, ~20 eventually Generated — displaced icospheres
Weapons 12 across 4 classes Post-MVP
Structures 3 kinds, parts-assembled Post-MVP

The authored column totals roughly 20 meshes and 8 material sets. The rock shapes are generated rather than modeled, which is twenty meshes the art budget does not have to spend. That is the number that has to be affordable, and it is. Everything else in the table is a function.


  • galaxy — where the real data comes from
  • art — what the material sets have to look like
  • production — when each row lands
  • docs/roadmap.md — the engineering view of this table