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 inMFCG (or a village inVG or a neighbourhood inNG), 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:
More keys:
UseW,A,S,D, +, - andarrow keys to navigate around.
| Status | In development |
| Category | Tool |
| Platforms | HTML5 |
| Rating | Rated 4.8 out of 5 stars (135 total ratings) |
| Author | watabou |
| Made with | Haxe,OpenFL |
| Tags | 3D,City Builder,Generator,mfcg,Procedural Generation |
| Average session | A few minutes |
| Inputs | Keyboard,Mouse,Touchscreen |
| Accessibility | Color-blind friendly,Textless |
| Links | Blog,Patreon,Twitter/X |
Log in with itch.io to leave a comment.
Hey watabou! I just want to say first, these tools are absolutely amazing! I used this along with the village generator and alot of other tools to make cool towns in Minecraft. In the process of doing so, I found some things that would make the viewer (and specifically the export as obj function) a lot more useful if added. I'm not sure how many of these you have already heard, but it's worth a shot.
First, the paths. I noticed that a lot of the things shown in the viewer don't actually show up in the obj export, but the paths stuck out to me as something essential to the layout of the towns that just wasn't there. So, whether its just a few connected points showing where the paths are supposed to go, or fully wide like shown in the viewer, implementing that would help quite a bit.
In a similar vein to the paths, it would be useful if water features could also be exported. Though, they may look similar to paths, so that's where this next point comes in.
It would be nice if there was an option when exporting to have the roofs, house walls, town walls, and possibly path and water exported separately, whether that be as different obj files or as different objects in the file; I'm not exactly sure how obj files work. This is because, if you try to import the file into Blender or another 3d modeling program, you currently have to manually seperate all of the parts to change their color or material.
Chimneys would be another great addition, but purely for aesthetic. They could probably be populated onto the roofs somewhat similarly to trees.
Another slight quality feature would be an option to randomize the roof type and pitch for each individual house. This would make them look slightly more realistic and interesting to look at.
Similarly, changing the size of windows on each house would be a great feature to add. This has the same reasoning as the previous suggestion.
On the topic of windows, I thought it was kind of odd how there is an option for what percent of windows are lit, but not for how many windows in general there are. It would work basically the same I think, just removing a certain percent of the windows. This also has the same realism and interest reasoning.
Just one more thing about windows. This may or may not be a bug, I'm not sure, but in the obj export, windows that were lit become holes in the wall. I thought this might be a bug because the unlit windows still had geometry.
This one you've probably heard a hundred times, but it would be nice if there was an option to have something like the mansion generator implemented into this to give the houses more interesting shapes in 3d. I know you can do something similar with singular houses in the city generator, but having the option to do that in bulk would add a whole new layer of depth.
Wow this got a lot longer than I was intending, sorry about that! Thank you for reading this, have a nice day!
hi , watabou, thanks for your tools , are userfull for rpgs.
I test , not with village generator , but with city generator json and , very good.
two things for my feedback :
+ one the city viewer isn't on procarena card set. ok is seven card , but is used for rpg export city and , as me, make a adventures for ttrpgs. please add it.
+ second the city gen json on city viewer and village , import is perfect. thanks, but beyond the export obj , with blender is perfect , but why add , the my idea, export on stop animation , svg or png ? i take screenshot ok. But a menu inside the right-click is also plus fast :)
thanks ;)
This is really cool and very useful.
Couple of little suggestions...Would it be possible to add a pause/play key for the animation? For example, hitting the space bar. It would make it much easier to stop the rotation animation (instead of using the menu) when it is just right to get a nice view of the settlement. Edit: Scratch that. Just worked out how to use fly mode to get any view I want :)
Also, what about a tree option for mixed conical and ellipsoid trees?
Are you intending to take account of ground elevations at some future point? For example, to generate 3D ground from the ground contours in Village Generator. This is not a feature request, just curious.
It's easy to implement a mixed forest, but I doubt it will improve the resulting look as it won't be a realistic forest consisting of different types of trees, but just a chaos of cones and ellipsoids :)
Implementing elevation is trickier. I tried this before, but there were too many issues. Probably I'll try again when I finally decide to remake this whole thing using some more modern technology.
In case anyone is interested, I have added links creating townships in Procgen Arcana to my fictional placename generating spreadsheet in:
https://railstuff.000webhostapp.com/Ortsnamen-rib.html
Ooops ... I guess it's fine. I forgot that I had to disable auto rotation ~ first to make the navigation work. I was confused by the double assignment of "W" for toggle and navigation, but after ~ I was able to navigate as expected. Sorry for the confusion.
And thank you for sharing your creative and unique experiments with us!
I agree with Felipe. Having everything exported would be excellent and a great time saver when trying to recreate and add details to any kind of settlement in, for example, Blender. And yes, I know it is also possible to import a PNG to use as a ground map for the placement of things, but having everyting as 3D objects would be awesome. Having said that, I totally get that time is a resource and you probably have other things to do that you find more interesting!
I think all these random generators you have done are amazing and thank you for making them available to those of us that do not have the skills to create such utilities.
I doubt it. Have you tried this fix https://www.reddit.com/r/FantasyCities/comments/11jwlmw/comment/jbtr4ou/?utm_sou...?
Love the tool! Is there a way to make the exported obj more manifold? The windows seem to be fairly loose geometry, and none of the buildings have floors. Making it require a lot of extra work to make models out of the city. This is doable for smaller villages, but for a large city its not.
Also, are terrain features contained within the obj? Any things I export are only buildings.
Great tool though! Helps
I'm sorry, I don't understand what "proportion" means in this context. If you are asking how much an exported city needs to be scaled to be the same size (e.g. in metres) in Blender as it is in MFCG (according to the scale bar), then my answer is "I don't know". It depends on how Blender treats coordinate values in OBJ, which are defined in abstract units (as far as I know), not in meters, millimeters, inches or anything like that.
SO much awesome here. I exclusively use all of your different map generators to run my entire campaign, and my players are constantly blown away by the amount of detail I'm able to give them in the game. I just joined you on Patreon, and you'll see you're the ONLY person I'm on Patreon for. So yeah, LOVE your work.
Here's some wish-list items for the 3D Generator if you have time:
1.) The OBJ export: Export in separate material groups so when we pull it into something like Blender, we can add a good bit more detail (different roofs, walls, tree textures, etc.) Also export it with the ground groups so we can see the roads/farms.
2.) In animation mode, allow us to adjust (slider maybe?) rotation speed.
3.) Allow us to have the buildings cast shadows. (Should be doable on beefier machines.)
4.) Randomize building colors similarly to how the roofs are slightly randomized.
5.) If the "center" of rotation/screen could be adjusted with a single-click, we could just use this live in-game as a living 3D map of where players are currently located.
Most of this could be handled by ourselves if the first option (OBJ advancements) were an option. We could then import the more advanced objects into Tabletop Simulator to PHYSICALLY walk the players through the city, even giving them "line of site" fog of war. Some epic stuff could be done with that.
Again, love your work! Thanks for creating so many awesome tools!
Hi there. Great app. I have some feedback and suggestions.
1# When trying to open a json file to load a map made in MFCG it doesn't show any json files, you have to change the file type within open file window from custom to All. I suggest by default it will have all or json so we dont have to do that. Also a new user might not think to choose ALL.
2# When switching from map mode to ground mode, it would be great if the center of the screen is where the ground mode will start. So if you are zoomed all the way in and switch to ground mode it will start where you are on the map more or less. Making it easier to find a place you want to explore from in map mode first.
3# When in map mode, zoomed out would be handy if you could double lmb somewhere on the map and the screen will center the map there, which would work in tandem with suggestion #2
4# On the rmb menu, would be nice to have preset dawn, morning, afternoon, night to change to. I know there is hotkeys to randomly change lighting. But being able to use presets would be useful too.
5# In map mode it would be nice if we could export as PNG (perhaps this will appear where export as .obj was when in map mode) this way we could gen a city within the app and export it without having to use MFCG)
> Question: Why is it when you press 5 and press it again and again the roof tops change size etc. I notice it is changing colors of some roofs to light or darker shade, but also sometimes lowering the size of the roof or raising it. Unless it is the trick of the eye?
Pressing 6 causes the lighting to change but all the gables or roofs disappear entirely. Keep pressing 6 and its just lighting changes, but the trees can shrink or get bigger. Roofs do not reappear.
This all might be intended.
Why is it when you press 5... roof tops change size etc...?
Exported cities contain only some of the information required to build a 3d model of it (e.g. building ground plans). Other information is generated in City Viewer itself: individual roof pitches, walls colour variations etc. When you switch a preset by pressing5 (or6,7,8,9,0) all this information is generated anew resulting in slightly different values.
Pressing 6 causes the lighting to change but all the gables or roofs disappear entirely...
Lack of gable roofs is a part ofDesert preset. Choose any other preset to get gable roofs back or enter a non-zero value forRoof pitch in theStyle dialog to keep the colours and lighting and get non-flat roofs.
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".
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 theProcgen 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 thecity generator and other generators of mine. Aren't there better applications capable of exporting 3d models?
Thanks! Initially I was going to implement materials (like inProcgen 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.
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.
I thought I was doing it right- here's the file. https://drive.google.com/file/d/1-LS-mMnuAqgBuXCz6BQk8bXt8gZgItq8/view?usp=shari...
niceeeeee
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 exportwith 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