[CityGen] City generator
-
Are you writing a Ruby script to do this or is it just a project of yours?
-


-
Ah! I was planning to make a post about something like this. I've been talking to Chris about a community City Generator Project. Was going to polish off my concept a little and make some more illustrations to exaplain. But I might as well just show my ideas now.
Since a city generator can become pretty complex, I thought it could be made into modules which would snap together. A plugin with plugin sort of speak.
I'm currently working on a street generating plugin, that takes centre lines and generates road surfaces.


I was thinking that the areas in between the roads, could be used by another module to generate buildings. Like in Remus' OP.
I was also planning on making a script that generated street lines, which then could be made into road surfaces. My idea was that you drew large faces, defined a street style to each face. Modern streets (larger streets in stronger geographic patterns), older streest (smaller in a more organic random pattern) etc. Within the bounds of these faces the various street segments would be made. Maybe the building generator could adapt to the area style as well...
I also wanted to be able to define main streets, smaller streets and side streets.
-
WOW, this is gonna be another amzing tool for sketchup, hoards of people will kneel before you and treat you like gods
. -
@marian said:
WOW, this is gonna be another amzing tool for sketchup, hoards of people will kneel before you and treat you like gods
.i will definitely be one of those worshiper! CityEngine inside SU, how great would that be
-
have you looked at Modelur? it is trying to do a similar plugin for urban design.
-
Verrrrrry interesting!....
-
@marian said:
WOW, this is gonna be another amzing tool for sketchup, hoards of people will kneel before you and treat you like gods
.
thats the plan
On a more serious note, thom, that sounds like a great idea. id love to work on such a project. Perhaps start a separate thread instead of trying to hash it together in this one, though.
Oh, and found a pretty good resource with regards to parametric city generation: http://www.vision.ee.ethz.ch/~pmueller/wiki/CityEngine/Front
its the bloke who made cityengine, and he's got all the papers he wrote on the subject there.
edit: fixed link
-
@remus said:
On a more serious note, thom, that sounds like a great idea. id love to work on such a project. Perhaps start a separate thread instead of trying to hash it together in this one, though.
I want to make some illustrations to go with it, so once I've done them I'll make a new thread.
@remus said:
Oh, and found a pretty good resource with regards to parametric city generation: http://www.vision.ee.ethz.ch/~pmueller/ ... gine/Front
its the bloke who made cityengine, and he's got all the papers he wrote on the subject there.
Nice find. I think I was referd to it before, but I lost the bookmark.
-
Souds good. I'm very interested in this topic and I'd like to try to help shape how it develops. I have big dreams about how this should work.
Chris
-
This sounds brilliant, I'm not a ruby man but if I can help by modelling some building types let me know.
-
It's a really good idea and it is nice to see you guys helping each other out

-
Food for thought:
-
Has anyone made connections between Sketchup and the OSM file format shown in the CityEngine video?
-
No, but it would be worth looking into. I have no idea if its possible to really connect them, but who knows, maybe it would be ideal!
Chris
-
Hmm, I could use a link to the video your referring to. So far what I've found on OSM seems like a mashup of GIS and the Google Geo API. Still might be very useful, but I'd like to see the video first to see how its being used.
Thom and Remus and anyone else interested in writing this thing, how true to life are you envisioning? That's not quite the right question, but I'm not sure what is. For example, in my mind I'm thinking of something that can create a city based on input parameters. But not necessarily something that re-creates existing cities in such a way that they could be spatially analyzed (like modelur seems to be doing). I keep thinking of something that makes AWESOME cities that would be great for quick city mock-ups for film visualizations, rendering backgrounds, and stuff like that. And it should be expandable where you different architectural styles can easily be added to the base script. So you can make medieval cities, modern downtowns, castle-like cities, suburbrs, on and on.
What was in your guys' minds on that?
It would also be good to define what the allowed starting information should be. For example, perhaps nothing at all. And it can do everything from scratch. Then maybe also acceptable as a starting point should be a series of road centerlines, and they can be colored or something to define what road type (width, pavement type, curb type, etc) should be applied to it. And maybe also acceptable would be a selection of faces that would be turned into buildings. Useful if the persona has already modeled their streets and just has flat faces designated for buildings footprints.
I could probably go on and on about this. I tihnk its a very worthy project. And it will be awesome to organize in a very expandable and customizeable way.
Chris
-
Chris, in terms of aims i was thinking of the same thing: making it produce cities that look good for visualisation purposes, but not necessarily accurate in the way city engine type cities are.
With regards to the starting info, I think it would simplify things a lot initially if we could work from a user provided road map. Once we get something working with that we could perhaps work on an extra bit to automatically generate a road map and feed it in to the rest of the plugin. Being able to go from Building plots would also be cool.
Another idea to consider: level of detail control for a specific view point. I was thinking something along the lines of user says where they're going to be rendering from, then the plugin adds detailed buildings close to that point then progressively lowers the LOD the further away you get. As jean would say, just ideas.
-
What I was thinking was something that looks fine, not a simulation. Something to quickly bulk up the major features.
As I mentioned before, I was thinking it could be in modules, each doing it's own thing.
One creating a city street map (just centre lines)
One creating roads and blocks out of centre lines
One populating blocks with pavements and buildings.
etc..etc... this could be expandedYou could execute each of these modules separately, or you could put together a macro.
I was thinking that the starting point could be large faces, where you define the type and style of what's being generated there.
Not sure what's best to visualise this as a UI, But I wondered if using Applying special materials with the paintbucket would be a easy way to defines area types. Also for roads, when you have just the centre lines - one colour would mean main roads (wider), another colour sideroads, alleyways etc...
A suggestion for organizing the modules:
module SU_City_Builder # Common sub-menu in the menu bar module Street_Map_Generator # Generates the street centre lines end module Street_Generator # Generates the street geometry # And blocks in between end module Building_Generator # Generates buildings on a block end module Transport_Generator # Populates streets with transport end # etc etc etc... end # module end -
Personally i dont particularly like the idea of having the user define the road types. It seems like it would require a fair bit of work/thought on the users part which doesnt seem to fit with the 'quick bulking up' thing. Then again it would be pretty tricky getting a plugin to work out which roads are large/medium/small ponder
I like the idea of modular structure a lot
Lots of room for adaptability and adding new bits. -
@remus said:
Personally i dont particularly like the idea of having the user define the road types. It seems like it would require a fair bit of work/thought on the users part which doesnt seem to fit with the 'quick bulking up' thing. Then again it would be pretty tricky getting a plugin to work out which roads are large/medium/small ponder
The user would only have to specify the road types if desired. Default settings could be a uniform type.
If the user used the Street Map generator, it would do this for the user. I was thinking having a few lines running long that's be the main roads, which would be wider that normal, then most others would be normal roads, with a few alleyways. If you use materials to define road types then it's easy to work out what's a large/medium/small road. When the module that generates the street from the streetmap reads an edge, it'd read the material of each edge segment representing a piece of road. The benefit here is that the user can visually see the type of road and quickly make changes if desired.
The idea what that the user only adds as much information as desired. It can be very simple, but further controls is available.
Advertisement