gizmobench

Fantasy Map Generator

Make a fictional map from a seed: a coastline with rivers, settlements and roads, a walled town, a hex map split into regions, or a dungeon whose every room is joined to the entrance through doors. The same seed and settings always rebuild the same map, so a seed number and its settings are enough to share one. Rename any label, drag or type it into place, draw your own roads, rivers, trails and walls, and undo up to 50 steps. Download the map as SVG or PNG, or as a JSON file that reopens here with every edit at its exact coordinates. Each map also comes as text: a description of its regions, features, labels and paths, and a map drawn in characters. Everything is made in your browser.

Seed
Making a map
Drag a label to move it. With a label focused, the arrow keys move it 4 px, 16 px with Shift; Enter edits its text; Delete removes it.

seed, size and generator version appear here

Map size
none yet
Your edits
none yet
Land
Export
SVG, PNG, JSON

  • Same seed, same optionsmade twice, or reloaded from its JSON
    The first map appears in a moment.
  • Dungeon modeany seed, any room density
    No dungeon yet.
  • Your labels and pathsexported as JSON, then reloaded
    The first map appears in a moment.

The map in words

The description appears with the first map.

Generate, a map type or a density makes a new map from the seed and replaces its labels and paths; Undo brings back the map before, up to 50 steps. The palette only recolours: the geometry, labels and paths stay. Ctrl or Command with Z undoes and with Shift and Z redoes when you are not typing in a field.

How a map is made. Every map starts from the seed, and nothing else is random. Terrain and hex maps rank the cells of a smooth random height field and make the highest share of the inside land: 35%, 50% or 65% for Less, Medium and More, and the border is always water. On terrain maps, rivers rise in hills or mountains and follow the lowest ground to the sea or into another river, and roads take the cheapest way over land between settlements. Hex maps grow each region outward from its capital over land. A city is a walled town with gates, main streets to a market square, a ring street and buildings placed cell by cell. A dungeon places rooms whose walls never touch, joins them with corridors found by a shortest-path search, puts a door wherever a corridor meets a room, and checks that every room can be reached from the entrance.
Accuracy. Every map is fictional geometry made in your browser from the seed and options you set: the same seed, options and generator version always give the same map, and the JSON file records that version with your labels and paths at their exact coordinates. In a dungeon, every room is joined to the entrance through generated doors. It draws no real places and measures no real distances or routes, and place names are put together from original syllable lists, not taken from published fantasy worlds.

Common questions

How do I make a fantasy map?
A terrain map from a random seed appears when the page opens. Pick City, Hex regions or Dungeon to make that kind from the same seed, press New seed for another random one, or type a seed and press Generate. The size fields set the width and height in cells, from 16 by 10 to 80 by 60, and the density buttons set how much land, how many buildings or how many rooms there are. Then rename or move the labels, draw your own paths, choose a palette and download it.
What is a map seed, and can I get the same map again?
The seed is a whole number from 0 to 4,294,967,295 that drives every random choice. The same seed, map type, size and density give the same geometry every time on generator version 1, so the seed and settings are enough to rebuild a map. Generating with any of them changed makes a new map and replaces its labels and paths; Undo brings back the one before.
Can I name places and add my own labels?
Yes. Every generated name is a label you can rename. Move a label by dragging it, with the arrow keys (4 px a press, 16 px with Shift) or by typing its x and y in pixels, and set it large, medium or small. Add labels of your own, up to 300 on a map and 60 characters each.
Can I draw roads and rivers on the map?
Yes. Choose road, river, trail or wall and press Draw a path, then click the map to add points or type them, and press Finish path. A path has 2 to 400 points, and a map holds up to 100 paths. The generated rivers, roads, city streets and town wall are paths too, so you can change their kind, edit their points as x,y pairs or delete them.
Can it make dungeon maps for tabletop games?
Dungeon mode lays out rooms on a grid of 16 px tiles, joins them with corridors, and puts a door wherever a corridor meets a room, so every room can be reached from the entrance. Rooms are numbered in the order you reach them from the entrance: room 1 is marked with stairs, and the last room with stairs down. The Rooms setting asks for fewer or more rooms for the map's size, and the words under the map list each room with its size, doors and neighbours.
Can I save my map and keep working on it later?
The map you are working on stays in this browser and comes back when you reload the page, unless the browser blocks storage. For a file, download JSON: it records the generator version, seed, settings, palette, labels and paths, and Open JSON reopens it with every label and path at the same coordinates. A file from another generator version is refused rather than opened on a different map, and files over 2 MB are not opened.
What sizes and formats can I download?
SVG at the map's own size, which for terrain, city and dungeon maps runs from 256 by 160 px to 1,280 by 960 px, and PNG at twice that size, for example 2,048 by 1,280 px for a 64 by 40 map. JSON holds the map itself. There are four palettes, Parchment, Atlas, black and white Ink, and Night, and changing the palette changes only the colours.
Is it a map of a real place, or of a world from a book or game?
No. The geometry is fictional and made from the seed, and place names are put together from original syllable lists, so a name can match a real town by chance, but the map is not of it. The map has no scale, and it does not measure distances or routes.

Every map is fictional geometry made in your browser from the seed and options you set: the same seed, options and generator version always give the same map, and the JSON file records that version with your labels and paths at their exact coordinates. In a dungeon, every room is joined to the entrance through generated doors. It draws no real places and measures no real distances or routes, and place names are put together from original syllable lists, not taken from published fantasy worlds.