View Full Version : Procedural cities

04-24-2009, 06:22 PM
One of my favourite sites of old....I've been slacking visiting it lately is 'Twenty Sided' by Shamus Young who has been doing a number on procedural cities which might be of interest.

Link here (http://www.shamusyoung.com/twentysidedtale/?p=3080)

08-26-2009, 02:03 PM
Hmm: http://www.cs.unc.edu/~pmerrell/model_synthesis.pdf

08-26-2009, 03:34 PM
http://www.citygen.net/ and http://www.vision.ee.ethz.ch/~pmueller/wiki/CityEngine/Documents are also good.

08-26-2009, 08:24 PM
http://www.citygen.net/ ..."Downloads have been suspended. This project was carried out as part of a research masters and as a result the code I developed belongs to ITB (http://www.itb.ie/). "

08-26-2009, 08:25 PM
[/URL][URL="http://www.vision.ee.ethz.ch/%7Epmueller/wiki/CityEngine/Documents"]http://www.vision.ee.ethz.ch/~pmueller/wiki/CityEngine/Documents (http://www.citygen.net/) ....$3450.00 SE, $4950.00 Pro

08-26-2009, 09:02 PM
All links are still appreciated tho even if they end up being research or have price tags on the final software.

For those new to our continued search for the holy grail of auto generated city mapping there's been a few threads posted in the past.

IMO whats needed first is for someone to break the deadlock of fitting a 2D set of building footprints (like just black silhouettes) into an arbitrary shape boundary (like a white polygon). If I had the time id work on it and it has been worked on in similar fields like where people have to cut odd shaped panels out of sheet material. Once we know where a house needs to be planted then the rest all follows. The placement of the house needs to allow for access and light and yet also use lowest build cost so sharing walls etc.

There's been a few new scripters out there recently joining. I have seen python and ruby mentioned a bit... if anyone would care to have a pop at it then it would allow some amazing city mapping.

08-26-2009, 09:57 PM
needed first is for someone to break the deadlock of fitting a 2D set of building footprints (like just black silhouettes) into an arbitrary shape boundary (like a white polygon)Doesn't that procedural forest script do that? Just change the trees for boxes.

08-26-2009, 09:59 PM
All links are still appreciated tho even if they end up being research or have price tagsSorry, didn't mean to imply otherwise.

08-27-2009, 12:40 AM
Sorry, didn't mean to imply otherwise.

S'ok, toff. I'll make allowances because you're on the moist side of the mountains. :D

My goal for those posts was to add some research papers to the mix. The second link is a collection of papers that works well enough that they're able to sell the resulting tool to game and movie studios, while the first spawned a good series of SIGGRAPH posters.

I have a very old and slow implementation that involved the user dropping a basic layout for water and roads, then the software would drop rectangular boxes along the road and water, aligning them to the roads and rivers. The original specs for that software called for automatic road and building placement given a few parameters such as an underlying height field, blocking items (walls and rivers), and goals (try to make roads reach places such as gates, fords, and keep preferentially close to water, buildings, and other good things). The results weren't great. It's been 5 years or so and I should be able to do better if I can crack free a few dozen hours.

08-27-2009, 01:03 AM
http://blenderartists.org/forum/showthread.php?t=140415 Suicidator city engine looks also pretty promising procedural city generator. I think it's written in python and you can specify your own styles for the city buildings, if you have the skill and understanding of how it works. It would be very nice if someone had enough insight to test it out with medieval styled buildings and post some results. :) I know some basic python, but my understanding about procedural model creation isn't that great.
Note: The image is from the page above.

08-27-2009, 04:54 AM
Wow, that looks amazing!

08-27-2009, 03:13 PM
You don't have to solve the model creation bit or the texturing bit because we think that bits in the bag. This is an example of what we need. You specify the res and white and some app places in the black. Preferably you specify a greyscale map of regions, the white polygon and it spits out the black buildings on a full white background so that if you took the input and masked it with output then you would get bounded buildings.

The point about the buildings are that they cannot just be randomly placed like trees because you have to ensure that they share edges as much as possible and yet leave several sides of the building free for light and access. If possible no building should end up being enclosed by other buildings and it should produce natural paths between them. Also the buildings need to make an attempt to align with the polygon edges. You need some kind of 'goodness factor' for all these things and when the app thinks it has a shape, rotation and position which is good enough then it pops it in.

I don't know whether it needs to look at what its got so far and make an educated guess or whether you just pump zillions of random numbers at the place checking the quality goodness factor until you accept one and let the rubbish results just die out. You could store all the quality factors for each house and start by accepting almost anything then as you progress you remove the worst ones and put in better ones and keep going until you reach a threshold quality. I don't know what way is best there.

I think we could generate a vector set of regions from a raster and vice-versa so I don't think working in vector or raster is better either way. Just whatever is easiest to script up.

On the image below the gaps between the houses could be closed or not. If that's something we could adjust then that would be ideal but I think I could live with either really.

We could use a fixed set of house shapes or get the app to generate them. Again I think we could live with either though I expect it would be easier in some respects to make the houses on the fly and in other cases might be easier to pick from a predetermined set.

08-27-2009, 04:40 PM
That suicidator looks great. Anybody know if it does 2D top-downs with top-light drop shadows? Something like that could save me a bunch of time for city generation.

Steel General
08-27-2009, 04:49 PM
Does anybody know i Google Sketch-up has any scripting language built into it? Was wondering if something could be done with that?

08-27-2009, 04:50 PM
SU works with Ruby scripts is all that I know.

11-08-2009, 08:00 PM
I ran across a procedural building generation script for 3ds Max today:

It won't generate an entire town, but it will build randomized modern buildings along a path. Of course, it does require a pricey piece of software, but I seem to recall at least a couple of people around here use Max.

04-29-2010, 12:07 PM
I stumbled over another resource for procedural 3d city generation. cmiVFX has published a DVD that demonstrates how to extract data from openstreetmaps.org and parse it into Houdini geometry. The technique should work for any other 3d software, also. It's a $60 DVD, though.

http://www.cmivfx.com/productpages/product.aspx?name=Houdini_XML_Based_Procedural_Cit ies