Map the level before you build it.
Rooms, corridors, doors, zones and markers on an infinite snapping grid. No account, no upload, no install — every level stays on your machine as plain, readable JSON.
WHAT'S IN IT
Seven tools, one canvas. Everything is on a grid, everything snaps, everything is undoable.
ROOMS
Drag a rectangle, or click out a free-form polygon corner by corner. Resize from any handle and Alt+click an edge to insert a new vertex.
CORRIDORS
Drag a run at a fixed width — axis-locked by default, Alt for a free angle. They read as corridors on the map, not as rooms.
DOORS THAT SNAP
Click near a wall and the door finds it, aligns to it and draws its swing. Six types: normal, locked, hack-gated, hatch, stairs and one-way.
FOURTEEN MARKERS
Terminals, keycards, locks, loot, bodies, save points, blocked routes, hazards, cameras, breakers, objectives, spawns, offline zones and design notes.
ZONES & LEGEND
Group rooms into colour-coded sectors. The legend builds itself from what's on the canvas, and every entry can be renamed inline.
EXPORT
Save readable JSON you can diff and commit next to the rest of the project, or export a PNG of the whole map straight into the design doc.
HOW IT GOES
From blank grid to a map you can hand to someone else in about ten minutes.
BLOCK IT OUT
Drag rooms, run corridors between them, drop doors on the walls. Hold Shift after a shape to keep drawing the same kind.
ANNOTATE
Name the rooms, sort them into zones, drop markers for terminals, keycards, hazards and objectives. Add free labels anywhere.
SHIP IT
Ctrl+S writes the JSON to disk. EXPORT PNG gives you the picture. Reopen either one later and carry on.
KEYS
Built for a mouse and a keyboard — best on a desktop.
YOUR DATA, YOUR DISK
There is no server. The editor autosaves to your browser's local storage as you work, and Ctrl+S writes a real file wherever you point it.
The save format is flat, versioned JSON — no binary blob, no proprietary container. Commit it next to your project, diff it in a pull request, or read it from your own toolchain in about twenty lines.
{
"version": 1,
"name": "REACTOR SUBLEVEL",
"gridSize": 20,
"corridorWidth": 40,
"zones": [
{ "id": "z1", "name": "SECTOR A", "color": "#35ff9e" }
],
"rooms": [
{
"id": "r1", "zone": "z1", "kind": "room",
"name": "ATRIUM",
"points": [[0,0],[240,0],[240,160],[0,160]]
}
],
"doors": [
{ "id": "d1", "x": 240, "y": 80,
"rot": 90, "type": "locked", "width": 36 }
],
"markers": [
{ "id": "m1", "x": 40, "y": 40,
"icon": "terminal", "label": "MAINFRAME" }
],
"labels": []
}
The grid is waiting.
It opens with a starter layout on the canvas, so there is nothing to set up. Draw over it or hit NEW.
LAUNCH EDITOR →