Walkability maps from real game art
Your room render knows where the floor is — your engine doesn't. Instead of eyeballing rectangles in code and nudging them until characters stop standing on tables, draw the walkable floor on the actual render, mark what blocks movement, drop spawn points, and export it all as data.
Open the editor — freeThe workflow
- Drop a room render, tile map, or level screenshot into the editor.
- Polygon the walkable floor (remember the bottom band of a 3/4-view render is usually the front wall). Box or circle the furniture that blocks movement. Pin spawn points and door triggers. Notes like "blocks movement" travel with each region.
- Export JSON: polygons as point lists, boxes as x/y/w/h, pins as points — in exact pixels and normalized 0–1, so the same file survives a resize. Feed it to your loader.
What your engine ingests
{
"label": "floor",
"regions": [{
"type": "polygon",
"note": "walkable area",
"pixels": { "points": [[64,214],[836,214],[836,556],[64,556]] }
}]
},
{
"label": "bed",
"regions": [{
"type": "rect",
"note": "blocks movement",
"pixels": { "x": 90, "y": 90, "width": 170, "height": 230 }
}]
}
Same-label regions group automatically (mark every tree once, get one "tree" entry with all geometries). Save the whole session as a project file and re-mark in minutes when the art changes. Format is versioned and documented — write your converter once.
FAQ
- Does it output engine-specific formats?
- No — one clean, documented JSON schema. A tiny converter on your side turns it into whatever your engine wants; the schema is versioned so the converter keeps working.
- Can I mark multiple rooms?
- One image at a time today (each saved as its own project file). Multi-image projects are the first Pro feature.
- Freeform or polygon for floors?
- Both work — polygon (click corners) is usually cleaner for architecture; freeform with magnetic close is faster for organic shapes. Either way you can drag vertices afterward.