This is not a city generator, this is a city viewer! It comes with 6 built-in settlements, but to see something new you'll need to generate a city in MFCG (or a village in VG or a neighbourhood in NG), export it as JSON and import it here.

Right-click anywhere on the generator to access the context menu with all the actions and options.

Hot keys:

  • Enter: load another built-in city.
  • 1, 2, 3, 4: switch to one of 4 viewing modes
  • 5, 6, 7, 8, 9, 0: switch to one of 6 colour and lighting modes (styles)
  • G: toggle gable roofs
  • W: toggle windows
  • T: toggle trees
  • X: export the model to .obj

More keys:

  • ~: toggle auto-rotation
  • Shift+1: switch to the fly-through mode
  • Shift+0: switch to a random colour and lighting mode (style)

Use W, A, S, D, +, - and arrow keys to navigate around.

Made with Haxe + OpenFL + Away3D.

StatusIn development
Rated 5.0 out of 5 stars
Made withHaxe, OpenFL
Tags3D, City Builder, Generator, mfcg, Procedural Generation
Average sessionA few minutes
InputsKeyboard, Mouse, Touchscreen
AccessibilityColor-blind friendly, Textless
LinksBlog, Patreon, Twitter

Development log


Log in with to leave a comment.

Viewing most recent comments 1 to 40 of 47 · Next page · Last page
(1 edit) (+1)

Couple things: how do you export JSON file from MFCG?

Also for the City Viewer I would love the ability to get the whole scene when exporting not just the buildings.

PS. I'm loving all your tools! I'm using them as blockout tool for Unreal maps. Also I'm thinking the Village generator map image would make beautiful in-game map and/or image for a in-game "you-are-here info-stand".

Settlement > Export > JSON

(1 edit) (+1)

Doesnt work when i try to import just says there are no buildings

Could you post your json content here if it's not too big (it should not be if there are really no buildings) or send it to me via email?


This looks amazing! I have a question/feature request though: Do you have plans to support OSM files? Alternatively, if I convert an OSM file to a JSON file using ogr2ogr, will the City Viewer support it?

There's a mod for Cities Skyline that exports an OSM file of a city, and I wanted to see if I can't convert the OSM file to a JSON file and then have your City Viewer generate me a 3D model that I can then take into Tabletop Simulator or FoundryVTT via the 3D Canvas.

I am sorry but the answer to all these questions is no. Currently I am not planning to support any osm formats because I have zero knowledge about osm and converting osm xml to json won't help because json the City Viewer requires is generated only by the applications of the Procgen Arcana family. Maybe one day someone will make a converter from osm to this custom json format...

By why do you even need the City Viewer? This is just a minor tool to support the city generator and other generators of mine. Aren't there better applications capable of exporting 3d models?


Fantastic tool! Can we export with materials?


Thanks! Initially I was going to implement materials (like in Procgen Mansion) in 1.2.0 but then chose to postpone it for later not to spend too much time on a single update. Hopefully this will be added in the next one.


That’s great news! I’m hooked :)


This doesn't seem to be working today - all black screen

(1 edit)

For me it works normally and last time it was updated more than a year ago, so it's not like I uploaded something broken recently. All these WebGL applications (City Viewer, Procgen Mansion, Castle in The Mist) are pretty unstable and sometimes they stop working without obvious reason and there is no way (or I don't know how) to fix it. Usually restarting the browser helps.


awesome tool! one problem, though - it says you can use .json files from the village generator, but i've tried two different files and neither have loaded any buildings. Help?

It still works for me so chances are you loading wrong jsons (palettes?). You can send me one so I could check it if you want (


I've been having the same problem -- it's just blank for JSONSs created with the Village generator.

Also everything you make is breathtaking! Thank you for all your work!

(1 edit) (+2)

really nice tool but can you update the export to include floor,trees, water and farm land.


This is one of the planned features for the next update.


thank you for the hard work


It's extemely nice.

I have a little suggestion. Could you add a feature so that I can move quickly when 1 viewing.

For example, press "Shift" to move at five times the speed

Will do on my next iteration with this app 👍


This program is amazing, but I seem to be having trouble importing my json of the city I made on the city generator. Whenever I try, it says "No buildings!" and returns to the sample city. Any ideas on how I can fix this?

Are you sure you are importing the right json? I mean not some palette json or something like that? Could you send me the file so I could check it? Or maybe just paste it here if it's small enough?


I thought I was doing it right- here's the file.

Nope,  it's not a city json. It's an ImageMagick's json ("version": "ImageMagick 7.0.10-58..."), something like a description of an image (a city map I guess) with its dimensions and other stats.

(1 edit) (+1)


I'm currently on this WIP: (render result) & more recent version (2+ days) [HERE] (For some reason i the second ver tha grass got some horrible coastline bugs) and wdytai?, it's pretty hard to put those lights in the houses, soon i'm planning to put some light source windows there and textures, even if i still haven't managed to get them right ever xDDD

It's a great program, it's very pleasing in my opinion to make towns and this makes it a lot easier, thanks xD

Very cool! That's how I hope to make it look right in the City Viewer in some very distant future. I'm talking about the first render, because there is no chance I'll be able to implement as many details as on the second one :)

Recently there were a couple of requests for OBJ export with materials. I'm planning to implement it in the next update and hopefully it will make working with exported models easier.


yeah, i know what you mean there, also it would be impossible to put grass on obj, as it makes many pc’s (mine included) to go to it’s very limit xD

also i know that making the materials for this is hard, let alone puting materials in surfaces on blender is enough”ly” hard, i can’t come to imagine how hard will it be to implement material adding on haxe.

still you are the best, you actually make it easy, not like probableTrain, that made a good algorithm, but ruined it needing to add bools on stl files, wich is extremely conflictive


Is there anyway to export the colours along with the OBJ?

Thanks. Fortunately its quite easy to select all the rooftops with a top-down view so that's a quick way of separating roofs from walls.


I love export option! In fact i even did this render of city i exported, althought i have found some small issues model.
1) City wall exits have faces that are clip through each other
2) Walls also can be cliped inside themselves sometimes, it is pretty annoying
3) There are long random triangles where the roads shoud be, but it is very rare, i had this glitch only once
Anyway, here is my render of cardboard city generated with your wonderful tool

First of all, this render of yours is VERY cool! Can I share it on my Twitter (with credits of course)?

About those issues - that's how the viewer works. I don't have many tools for procedural mesh generation (in Away3D), so, for example, a gatehouse is just three boxes combined without trying to clip anything. I probably can (and should) fixes gatehouses, but walls are harder. If you take a look at exported mansions you'll know it can be much worse :)


Thanks! Yes you can share my render. If gatehouses made out of three cuboids I think it can be fixed by moving top of the cuboids down.


Everybody likes it: :)

On my next iteration I'll remake gatehouses properly. This 3-boxes thing is copied from Toy Town. It was more or less my first 3D app ever, I can do a bit better now.


So for all People Going crazy and having a Problem with the Normals, Export the Obj. to Blender, Go into Edit Mode, Press 1 for Vert, then Press F3 Type "Merge by Distance" then do a Merge by Distance and Shift N to recalculate the Normals should be Fine then.


So I made an fbx out of one of my cities I created and passed it to unreal and unity and when they come out they appear concave and completely broken? I am kinda new to all this rotin tottin exportin and wanted to know what am I doing wrong how could I fix it?

  1. I know nothing about Unreal.
  2. I know roughly the same amount of nothing about Unity, but at least I have it installed. Indeed, it looks like all the normals are wrong (flipped). Probably Unity expects a different vertex order or axes are supposed to be oriented differently? Anyway, you'll need to flip the normals of your model, but I have no idea how to do it in Unity.

I'd love to have the option to load predefined textures. Grass, sand, water, fields, rock/brick walls...


Apologies if I am being stupid but when I import my city into the viewer it only displays the castle/temple - every other building is missing. Is there a setting I need to tweak or is this done by design?

Cheers and gratz on the great work.


That's weird. This is the second report on this issue, but I can't reproduce it. Could you send me your json file?


Happy to but where shall I send it? :-)

(1 edit)

watabou at gmail com

I thought it's displayed somewhere here :)


Same here, Just press enter to reload it.

I've found what causes this problem and it will be fixed in the next update. Until then, you can make the export work by choosing any value in Style > Buildings > Shape (Block/Off/Simple/Complex).


Thank you that was quick work :-)


Hey, I'm also having issues loading my Really Big Map, but there's no such thing as a "shape" menu in the Buildings section. It doesn't exist?

It does, it just is not labeled. The last item on the Buildings tab, a "combo box" with values "Block", "Off", "Simple" and "Complex".

In the city viewer? The only options are "roof pitch" and "towers".

Ok, here is a clarification: that option is in the city generator :) 

The problem is with the export, not with the import. City Viewer is all right.

(1 edit) (+1)

Hi there watabou, great generators and viewers.

however I am having the same issue as jsunandmax - I took the Json from MFCG and imported it here, exported the obj and opened it in blender so I could scale it, I then took it to table top simulator. 

once in TTS I noticed the normals were crazy - most of them appearing inside out, but some flipped outside. 

I hopped back into blender and there was no fast or easy fix I could work out to sort the normals.

I think this is happening because the meshes are @open@ the buildings have a roof, and walls, but no "floor" or base. would it be possible for you to have an option to make the meshes "solid" as then even if the normals are from some reason inverted, blender can recalculate them to be "outside". at the moment since the mesh is "open" it cannot figure out inside from outside and just flips some one way or another.


great work!  I noticed when exporting .obj and bring into Blender that normals are all crazy (random), and since the bottoms of buildings are "open", its impossible to get all the normals facing right.  Is this something there is a solution for?  


Are you sure the normals are incorrect? In City Viewer models are exported without normals so they should be derived from vertices coordinates in the obvious way by an importing application and I don't see what can go wrong there.


i figured out the issue, .json from the Fantasy Village to here then .obj out creates geo where vertices are not welded.  Once I did a weld, i could fix all the normals, even without a proper "floor" on the buildings.



Hey! I really love this - especially with the ability to load jsons, but there's a feature in toy town to set it to a "45° orthogonal view (RTS view)". I used this generate 3d maps for my players - is there a way to implement that here? Thanks!


Yeah, sure, it's on my list 👍


You're the GOAT! Me and my friends all use your suite of tools for our D&D campaigns, keep up the amazing work!

(2 edits) (+1)

Any chance of making a variant of default view that allows for no animation? I'd really like to be able to use this tool to figure out city shots for ex. a comic (or other sequential graphic arts) but locking camera to ground and making the motion quite slow in that mode doesn't allow for the range of poses needed.

WASD/arrows for XY camera motion and mouse to rotate camera work well enough, perhaps the zoom wheel for Z-axis or FOV (and if using it for FOV, R/F keys for Z axis?) (I am not a patron so take this all with a grain of salt, ofc.)

EDIT: I am an idiot, space-bar unlocks Z axis control...... gosh, what a cool tool

Yes, the SPACE key unlocks Z axis (it is locked initially to simulate walking). You can also use numpad + and - keys to adjust height directly.

Slow walking is a problem. Usually when I need to take a screenshot I use the "Default view" first to get to the right part of a map and then press ~ to switch to the free mode.


When I hit export all it does is regenerate the city and I don't get the file?

I'm running a windows machine and I exported a JSON from your other thing to make a non-prefab city.

Is there a way to see what's going wrong?


Sounds like a keyboard issue (layout, caps lock or smth like that). Do the other hot keys work normally for you?


Yes, the other keys work just fine.

Honestly, the only thing that's not working fantastically is the export.


I have discovered the cause of my dumb. I was reading the O as a 0.


OK, now it makes sense :) I will replace the key, it does look confusing.

Ditto with these two.. any way to make it work locally, when internet is not available?
This is even more stunning. Needs trees, tho. ;)


OK this is well cool. I'm not particularly technical but is there a way to turn an existing city into something that works, i.e. how to convert a graphics file into JSON?

There is no way to convert graphics into this JSON format. You can try to recreate a city you need in MFCG i.e. reroll a map until it's close enough to your idea and then tweak it using the Warp tool.


this is super nice but could you add a option to export the ground plane?


Will do

Ey, any chance of a downloadable version? The in browser one takes a long time to load ;-;

nice tool


Can the cities made with the generator be applied to a unity terrain, or Gaia

Only if you (or someone else) will write code parsing json produced by the generator. It shouldn't be hard, but it's just my guess, I personally have zero experience with Unity.

(1 edit) (+1)


This is great tool. Maybe I use this tool for Unity. Thank you.


Awesome tool for visualizing the generated cities and villages! 

The OBJ conversion is a real kicker too, and it helps me visualize what the village actually looks like! 

I just noticed that the generated OBJ file is upside-down compared to the map and the view generated in City Viewer. As a consequence the OBJ matches the map only when viewed from below :-) 

Thank you for sharing great tools!


i would love it if there was a scale so i could see how big everything is. amazing tool other wise


I can't seem to drag and drop the .json into the viewer. I'm using Linux (Debian derivative), would that be a problem?

I have no idea (virtually zero experience with Linux), sorry. Since a standard browser API is used,  in theory it should as good on Linux as on Windows or macOS . How does it look? You drop a file into the viewer and nothing happens?


Sorry about the late reply. Yeah, the mouse over with the dragged item does not even change to show it is droppable there. It does however, drop outside the viewer in the same webpage, but then that only makes it so that the viewer's webpage goes to the code contained in the file (a la, using a browser to open that file's code/script). Very weird.


Hi. I wrote a json converter to obj.
It's not super great, but It's at least more convenient for blender use.

It's pretty easy to customize as well.


Cool! Does it work with the latest version of MFCG? I tweaked JSON  there a little. Unfortunately, I don't know Python and I don't have it installed to check it myself.


I downloaded a new example and it looks like it works, see the README on github, I put an image. There is no city walls or water body yet (because I didn't need it) but if anyone is interested in it, I can implement it. I think being able to re-color every building is pretty neat too.

If you send me a file with all the new features I can also implement/update it.

Keep up the good work :)


Would you be able to add city walls and water bodies?


Your work is so amazing I want to french kiss you.


I've used your stuff for a BattleTech RPG campaign for a few months now, and love the work you have done! If we could get windows added back, that would be awesome. The idea of toggleable building height is a great idea, too. Thank you so much for your work, it is all just incredible!


(1 edit) (+1)

This thing is amazing, thank you!


Amazing! Ground plane and separate texture export would be amazing!


I feel like the houses are a bit too tall, so whenever I explore, I feel like I'm roaming 4-5 storey houses packed in a small space. Other than that, I love it


Научите, как импортировать? Я не понимаю как запустить 3D генератор и тем более , как импортировать туда свою карту.

Заранее спасибо

Расскажите в чем проблема. Это приложение (City Viewer) у вас вообще работает? Модель города крутится или там просто пустой темный прямоугольник?


Is it possible to add gables to a city imported from MFCG?  I'm having trouble with this file...


It appears to be working now.  The only thing I did differently is to have gables enabled before copying the file from MFCG into City Viewer.  Thanks!

It should work the other way around as well: first import a file and then enable gable roofs by pressing G.

Viewing most recent comments 1 to 40 of 47 · Next page · Last page