Most planet generators hand you a name and one line of flavour text. This one draws a star first, then sizes a world against it and derives the rest from actual formulas, so gravity follows from mass and radius, and temperature follows from the star and the orbit. Every result carries a seed, so a world you liked comes back exactly as you left it.
A planet name on its own gives a writer nothing to work with. What a scene needs is weight underfoot, how long the day runs, whether the air is breathable, and how far the sun sits from the window. Those numbers have to agree with each other or a reader who knows any astronomy will spot the seam.
Only four quantities here come from a random draw: the star mass, the planet radius, the bulk density, and the target surface temperature for the chosen world type. Everything else falls out of those through standard relations, in this order.
The chain runs backwards from climate. A world type carries a surface temperature band, a greenhouse offset for its atmosphere, and an albedo range. Subtract the greenhouse contribution from the surface temperature to get the equilibrium temperature, then solve the blackbody relation for the orbital distance that produces exactly that figure around the star you drew. Kepler's third law turns the distance into a year length.
The practical result is that the sheet holds together under scrutiny. A dense super-Earth reads 2.4 g and an escape velocity near 20 km/s, which tells you chemical rockets are a bad plan for that colony. A world orbiting a red dwarf at 0.09 AU comes back tidally locked with a year of 21 days, because at that distance around that star it has to be. Nothing is decorative.
Random generators lose worlds. You hit generate one time too many, the good one is gone, and no amount of clicking brings it back. Every result here is produced by a deterministic pseudo-random stream keyed to a short seed string, so the seed is the world.
| Type | Typical output | Fits |
|---|---|---|
| Terrestrial | 0.7 to 1.4 Earth radii, 0.6 to 1.5 g, breathable range | Colony sites, homeworlds, anywhere characters walk outside |
| Super-Earth | Up to 2.2 radii and 3 g, thick air, low mountains | Stories about strain, heavy worlders, hard launches |
| Ocean world | Near total water cover, mild temperatures, storm systems | Floating settlements, submarine plots, isolation |
| Desert world | Thin air, wide temperature swings, dry basins | Frontier settings and water as a plot currency |
| Ice world | High albedo, subsurface ocean, cryovolcanism | Research outposts, buried discoveries, long night |
| Volcanic world | 500 K and up, sulphur atmosphere, resurfacing crust | Mining hells, penal sites, short survivable windows |
| Barren rock | Near vacuum, cratered, extreme day and night swings | Waypoints, relay stations, salvage sites |
| Tidally locked | Red dwarf orbit, terminator ring, frozen nightside | Cities in a strip, permanent noon, permanent midnight |
| Carbon world | Graphite plains, diamond bedrock, hydrocarbon haze | Odd geology and industrial interest |
| Gas giant | 7 to 13 radii, banded clouds, many moons, rings | Systems where the real story is on the moons |
| Ice giant | Methane haze, retrograde winds, tilted magnetic field | Outer system framing and slow travel arcs |
| Hot Jupiter | 900 K and up, escaping atmosphere, silicate clouds | Set dressing for a system with a wrecked inner zone |
The score runs 0 to 100 and answers one question: what would a person need to survive on the surface. It starts at 100 and takes deductions for distance from 288 K mean temperature, distance from 1 g, pressure outside the 0.35 to 4 bar band, surface water below 3 percent, oxygen below 5 percent of the atmosphere, and a combined carbon dioxide, carbon monoxide, and sulphur dioxide fraction above 5 percent. Gas giants score zero because there is no surface to stand on.
The biosphere line follows the score rather than sitting alongside it, so a world at 82 gets complex ecosystems and a world at 40 gets extremophiles near vents. Life never appears on a planet whose chemistry could not support it.
Three naming modes cover most fiction. Invented syllables assembles two or three syllables from onset, vowel, and coda banks, giving results like Kaethryn or Zhiovask that read as alien without turning into keyboard mash. Mythic roots pulls from classical and Norse naming, matching the convention real astronomers follow, so Tiamat Prime sits comfortably next to Sedna. Catalog codes produces survey designations for settings where planets are numbered rather than named, and Mixed weights the three at five to three to two.
Catalog prefixes here are invented rather than real ones like Kepler or TOI. Attaching fictional physics to a genuine catalog number is a fast way to confuse a reader who looks it up, so the codes stay clearly fictional.
Where this falls short
The star draw is weighted toward K and G stars for story usefulness, which does not match the real census where red dwarfs are roughly three quarters of all stars. The blackbody temperature model treats greenhouse warming as a flat offset per world type rather than solving radiative transfer, so a figure is plausible to a general reader and would not satisfy a planetary scientist. Orbital stability is never checked, so a generated moon count for a hot Jupiter is decoration rather than a claim those orbits survive. And the whole thing runs in your browser with no atlas behind it, so there is no map, no continent shapes, and no way to place cities.
Each card copies two ways. Copy sheet gives a plain text block with every stat labelled, sized for a campaign document or a scene note. Copy JSON gives a structured object grouped into star, orbit, body, climate, atmosphere, habitability, and narrative, with numbers as numbers rather than formatted strings.
The JSON path is the one to take if you are feeding a game. Field names are stable, tidally locked worlds report rotation_hours: null alongside tidally_locked: true, and gas giants report surface_pressure_bar: null rather than a fake number, so your parser can branch on the null instead of guessing. Download writes the whole batch to one file named after the seed.
For the rest of a setting, the random setting generator and the random environment generator cover ground-level locations, and the random monster generator populates them.
Generation runs entirely in JavaScript on your device. No request goes to a server when you press generate, nothing is logged, and no planet is stored anywhere after you close the tab. The only thing worth keeping is the seed, which is why it prints on every card.
Output is free for commercial use. Names are assembled from syllable banks and the descriptions come from written phrase pools, so there is no source work behind them and no attribution to give. Use them in published fiction, games you sell, and campaign material.
Seeds, physics accuracy, and using generated worlds in published work.
For fiction and games, yes. Gravity, escape velocity, orbital distance, and year length come from the standard relations rather than from a lookup table, so a reader who checks the mass against the gravity finds them consistent. The temperature model is the weak point, since greenhouse warming is applied as a flat offset per world type instead of a real atmospheric calculation. A planetary scientist would call that a rough approximation.
Copy the seed printed on the card, or use the seed link button, which puts the seed in the URL. Paste the seed into the seed field and press generate with the same world type, star, and name style selected. The output is identical, since the generator is deterministic and nothing is stored between visits.
Red dwarfs are dim, so a planet needs a very close orbit to reach a temperature people survive. At those distances tidal forces lock the rotation to the orbit within a few million years. The generator applies the lock whenever the orbit falls inside 0.4 times the cube root of the stellar mass in AU, which puts the whole red dwarf habitable zone inside the locking radius and leaves an Earth analogue at 1 AU spinning freely.
Yes, with no attribution required. Names are built from syllable banks, and the terrain lines, hooks, and resource lists come from phrase pools written for this tool. Nothing is copied from an existing setting, so there is no licence attached to the output.
What a human needs to stay alive on the surface, nothing more. It weighs mean temperature against 288 K, gravity against 1 g, surface pressure against a 0.35 to 4 bar band, plus surface water and atmospheric oxygen. It says nothing about whether native life could survive there, which is why an ice world with a subsurface ocean scores low while still listing a biosphere.
Not as a linked system. Set the count up to eight and every world is drawn independently, so they will not share a star or sit in stable orbits relative to each other. Locking the star dropdown to one type gives you a set that at least reads as one system, though the orbital spacing is still unchecked.
Neither figure means anything without a surface. Gas giants and ice giants show a ring system field and a cloud-top gravity instead, and the JSON reports null for those fields rather than inventing a value your code might treat as real.