Skip to content

Feature Matrix

m4bwav edited this page Oct 4, 2026 · 1 revision

Every feature found in 176 other generators (games, libraries, engine assets, web tools, tabletop and writing tools), whether UniverseGenerator has it, and how many of the surveyed generators do. It is the short form of the knowledge base's feature matrix, which also names every generator per row, the package each feature lives in and its size cost; that file is generated from the survey by kb/features/build_matrix.py and never edited by hand.

Status: in 1.0.0 is in the package today; later (1.x) is planned for a 1.x release and is additive, so no seed changes when it arrives; rejected says why. "Others" is how many surveyed generators have the feature; 0 means only UniverseGenerator has or plans it.

Totals: 74 in 1.0.0, 58 later (1.x), 7 rejected.

Seeds and API

Feature What it means Others Status Notes
seed-input type a seed, get the same result again 25 in 1.0.0
seed-url seed and options in a shareable URL or code 6 in 1.0.0
seed-versioned seeds carry a generator version so old ones keep working 2 in 1.0.0
hierarchical-address any object regenerates alone from its address 13 in 1.0.0
lazy-generation objects generated on demand 14 in 1.0.0
presets named one-click presets 5 in 1.0.0
options-sliders tunable parameters with ranges 24 in 1.0.0
data-tables-editable users replace or extend the tables 15 in 1.0.0
hooks-plugins code hooks and post-processors 6 in 1.0.0
constraints "at least one X" guarantees 8 in 1.0.0
explain-trace show why a value is what it is 2 later (1.x) Explain reads the rules after the fact, so it can come later
engine-neutral-data plain data usable outside one engine 14 in 1.0.0
deterministic-cross-platform documented identical output on every OS and runtime 3 in 1.0.0
seed-search search seeds for an output that matches a test 1 later (1.x) FindSeeds(predicate); cheap thanks to lazy generation; players already brute-force seeds
fill-around-fixed pin known facts, generate the rest to match 1 later (1.x) writers start from one imagined world; a separate entry point leaves unpinned output alone
detail-levels more detail never changes the major bodies 1 in 1.0.0
overlay-diffs player changes stored as a diff over the generated base 1 later (1.x) a game's job, but an Overlay type saves every user writing it
time-coordinate orbital positions and seasons as functions of time 1 later (1.x) PositionAt(t) from orbital elements; additive
outlier-quota a share of outputs may break the rules on purpose 1 in 1.0.0
sub-seeds every object exposes its own seed or stable id 3 in 1.0.0
visited-cache places are saved when first visited so later changes never alter them 1 rejected versioned seeds solve it without storage; a game can still save what it wants
multiplayer-determinism server and clients derive the same world from the seed 2 in 1.0.0
determinism-tests golden or hash tests in CI 2 in 1.0.0
typed-units values carry physical units 2 in 1.0.0
diagnostics soft problems returned as typed warnings 1 in 1.0.0
cited-assumptions each assumption shown with its source 1 later (1.x) the wiki's rules pages cite every formula; Explain can link them
custom-fields users add, rename or hide fields 6 in 1.0.0
rpg-system-profiles generation biased by a tabletop rule set 1 later (1.x) add-on package UniverseGenerator.Exports; Traveller UWP and SWN tags as presets and exports; rules text not copied
pinned-systems place hand-made or real systems into a generated map 0 later (1.x) the hook every real-data feature needs; a pinned star and known planets, the rest generated around them

Universe, cluster and galaxy

Feature What it means Others Status Notes
universe-level several galaxies 6 in 1.0.0
cluster-level galaxy groups, clusters, filaments, voids 3 in 1.0.0
galaxy-shapes more than one galaxy shape 24 in 1.0.0
custom-shape-map an image or density map as the shape 5 later (1.x) a density-function hook; image decoding stays outside the library
spiral-arm-count configurable arms 9 in 1.0.0
min-spacing systems never overlap 5 in 1.0.0
regions-sectors named regions or sectors 21 in 1.0.0
region-traits regions share age, theme, danger 4 in 1.0.0
constellations constellations and Bayer letters seen from home 2 later (1.x) add-on package UniverseGenerator.Names; a separate naming pass from a chosen home (Star Control: Origins)
lanes-graph hyperlanes between systems 21 in 1.0.0
lane-density tunable lane density 5 in 1.0.0
chokepoints chokepoints and bridges as data 3 in 1.0.0
wormholes-gates long links, gates, relays, with requirements 3 in 1.0.0
travel-terrain free travel changed by terrain instead of lanes 2 later (1.x) nebula fields on their own stream; a LaneMode option (lanes, terrain, both)
danger-levels danger per system or sector 5 in 1.0.0
radial-progression difficulty or tier by distance from a centre, barrier rings 1 later (1.x) a pure function of position (Avorion)
factions-territory factions placed on the map 7 in 1.0.0
start-fairness balanced start positions 4 later (1.x) Starts(n) as a pass that reads the galaxy; 4X users need it
contested-richness richer resources between starts 1 later (1.x) Star Ruler 2's score, applied by the start pass
nebulae-hazards nebulae, storms, black holes on the map 6 in 1.0.0
galaxy-age-metallicity age and metallicity change the content 6 in 1.0.0
handmade-systems hand-made systems mixed into the map 10 later (1.x) pinned systems by address
run-map a roguelike branching run map 3 later (1.x) extracted from the lane graph
landmark-guarantee a memorable feature at every scale 3 in 1.0.0
real-star-catalogue maps from real catalogue stars 1 later (1.x) add-on package UniverseGenerator.RealStars; reverses the 2026-10-02 rejection in a bounded form: larger catalogues (10 pc census, Gaia nearby stars) go to an add-on, a small nearest-stars table to core; licences first; was rejected: game and fiction scale ; catalogue data is large; a hand-made-systems hook covers a few real stars
connected-graph every system reachable 1 in 1.0.0
spatial-index query what is in a cell 1 later (1.x) a grid index over positions; additive
pathfinding-routes shortest routes over lanes 2 later (1.x) Route(a, b) by breadth-first search or A*; additive
visibility-helpers fog of war helpers 1 rejected game logic, not generation; the lane graph and positions give a game what it needs
galaxy-blend several galaxy types blended 1 later (1.x) density functions compose (Gaia Sky channels); colliding pair ships in 1.0
real-neighbourhood a map of the real stars around Sol 0 later (1.x) the nearest real systems with real positions, classes, companions and names, unknowns generated from the seed; research first
real-exoplanets known exoplanets placed as known 0 later (1.x) Proxima b, epsilon Eridani b and the rest keep their known orbits; generated planets fill the gaps
real-and-generated real stars near home, generated ones far away 0 later (1.x) Elite Dangerous's model; a generated or Milky Way galaxy with Sol's neighbourhood at home
milky-way-preset an approximation of the Milky Way 0 later (1.x) a barred spiral with its real arms and the Sun's place; tens of numbers, not a star field
real-local-group the real Local Group as a cluster 0 later (1.x) the Milky Way, Andromeda, Triangulum, the Magellanic Clouds and the dwarfs (about 80 rows)

Stars

Feature What it means Others Status Notes
spectral-classes real spectral classes 17 in 1.0.0
star-physics mass, luminosity, radius, temperature consistent 20 in 1.0.0
star-remnants white dwarfs, neutron stars, black holes, giants 10 in 1.0.0
multiple-stars binaries and multiples with configuration 17 in 1.0.0
habitable-zone habitable zone computed 8 in 1.0.0
frost-line frost line computed 4 in 1.0.0
star-age age and lifetime affect output 4 in 1.0.0
star-colour colour for rendering 5 in 1.0.0

Planets and moons

Feature What it means Others Status Notes
planet-types varied planet kinds 33 in 1.0.0
orbit-spacing believable spacing 10 in 1.0.0
exo-demographics system architecture from exoplanet statistics 1 in 1.0.0
orbital-elements eccentricity, inclination, period 13 in 1.0.0
planet-physics radius, mass, density, gravity 20 in 1.0.0
temperature-climate temperature and climate bands 12 in 1.0.0
atmosphere composition and pressure 20 in 1.0.0
hydrosphere oceans and ice 8 in 1.0.0
rotation-tilt day length, tilt, tidal lock 5 in 1.0.0
biomes biomes or surface types 13 in 1.0.0
life-ladder none to sentient, flora and fauna 13 in 1.0.0
life-conditions-table life placed by condition rows 2 later (1.x) condition rows for creature archetypes (Elite exobiology) on their own stream
habitability-score habitability or Earth similarity 5 in 1.0.0
resources resources per planet 13 in 1.0.0
moons moons generated 25 in 1.0.0
rings planetary rings 13 in 1.0.0
asteroid-belts asteroid belts 10 in 1.0.0
surface-map surface map parameters 18 later (1.x) a parameter pack for engines, no meshes; own stream
planet-traits special traits or anomalies 8 in 1.0.0
terraforming terraforming potential 1 later (1.x) derived T0 to T3
comets comets as bodies 1 later (1.x) minor bodies on their own detail stream
sky-view what the sky looks like from the surface 0 later (1.x) apparent size and colour of suns and moons, derived; the gap writers noticed
local-calendar day, year and seasons as a calendar 0 later (1.x) add-on package UniverseGenerator.Text; derived from rotation and orbit

Content and story

Feature What it means Others Status Notes
stations stations and starports 5 in 1.0.0
population-society population, government, law, tech 14 later (1.x) optional society layer on its own stream
trade-codes trade or economy class 4 later (1.x) derived from the society layer
profile-code compact UWP-style code 8 later (1.x) derived
story-tags tags with enemies, friends, complications, things, places 11 in 1.0.0
points-of-interest ruins, derelicts, anomalies 13 in 1.0.0
history-events history timeline or events 5 later (1.x) add-on package UniverseGenerator.Text; generate then explain (Caves of Qud), own stream
description-text generated paragraphs 13 later (1.x) add-on package UniverseGenerator.Text; tag-filtered grammar; a one-line descriptor ships in core at 1.0
tag-filtered-text text cannot contradict the data 1 later (1.x) add-on package UniverseGenerator.Text; Improv's approach
gm-secrets GM-only section and player-safe view 10 later (1.x) add-on package UniverseGenerator.Exports; a secret per object in the text layer; a player-safe export
names-catalogue catalogue-style astronomical names 8 in 1.0.0
names-fantasy invented or themed names 17 in 1.0.0
names-hierarchical names derived from the parent 1 in 1.0.0
name-encodes-address a name decodes to its address 2 later (1.x) an optional naming style (Elite boxel names)
culture-phonology names from per-culture sound rules 1 later (1.x) add-on package UniverseGenerator.Names; Syllabore (MIT, .NET Standard 2.0) as dependency or model
cultures-species species and cultures 8 later (1.x) add-on package UniverseGenerator.Text; hooks for writers, own stream
creatures creature archetypes 3 later (1.x) add-on package UniverseGenerator.Text; signature creature archetypes
npcs named characters tied to places 3 rejected characters belong to RandomNameGeneratorLibrary or the game; the library gives culture and name hooks
entity-links typed links between objects 1 in 1.0.0
llm-text prose written by a language model 2 rejected non-deterministic, needs a service; tag-filtered grammar instead. A caller can still feed our data to a model

Output and tools

Feature What it means Others Status Notes
map-render draws a 2D map 18 later (1.x) add-on package UniverseGenerator.Exports; an SVG string export
map-3d 3D view 28 rejected visual, not data; the library gives 3D coordinates and engines render
export-json JSON export 27 in 1.0.0
export-markdown Markdown or Obsidian export 8 later (1.x) add-on package UniverseGenerator.Exports; YAML properties, relative links, GM section
export-image PNG or SVG 13 later (1.x) add-on package UniverseGenerator.Exports; SVG only; PNG is the caller's job
export-vtt Foundry or other VTT 4 later (1.x) add-on package UniverseGenerator.Exports; journal-entry JSON after the writers' survey confirms the format
export-text-html text, HTML or PDF 10 later (1.x) add-on package UniverseGenerator.Exports; plain text sheet; HTML is for the planned web page
export-csv CSV 3 later (1.x) add-on package UniverseGenerator.Exports; for spreadsheets and writer-tool imports
edit-after-generate edit or lock, then regenerate the rest 14 later (1.x) pins plus overlay
open-source-licence source available 35 in 1.0.0
unity-integration Unity package 25 in 1.0.0
godot-integration Godot addon 6 later (1.x) NuGet (Godot C#); Godot 4 C# takes the NuGet package; a GDScript addon is out of scope
web-tool runs in a browser 27 in 1.0.0
price free or paid 36 in 1.0.0
history-log a log of earlier results 1 later (1.x) the planned web page; the planned web page keeps recent seeds in the browser
share-gallery public gallery of shared results 1 later (1.x) the planned web page; seed URLs are shareable; a gallery is a site feature for later
player-view-live live redacted view for players 2 rejected a VTT's or site's job; the player-safe export feeds it
player-safe-export export that strips GM content 0 later (1.x) add-on package UniverseGenerator.Exports; with the GM secrets
export-traveller-map Traveller SEC sector files 1 later (1.x) add-on package UniverseGenerator.Exports; needs the profile code; a reach into an active community
export-wiki-site a static wiki or site 2 later (1.x) add-on package UniverseGenerator.Exports; a folder of Markdown files is the route (LegendKeeper, Foundry MD to Journal)
export-wiki-tool export shaped for a wiki app 0 later (1.x) add-on package UniverseGenerator.Exports; World Anvil and Kanka imports are closed or paid; Markdown first
import-foreign imports other tools' formats 1 rejected a generator, not a converter; hand-made systems take our own JSON
editor-preview preview in the engine editor 4 later (1.x) Unity package; a Gizmos sample in Samples~ at 1.0; an editor window later
dice-tables-printable also printable as dice tables 0 later (1.x) the wiki can print the tables for table play

See also: Recipes for the 1.0.0 features in use, and Versions and upgrading for what arrived in which release.

Clone this wiki locally