   Making procedural indoor environments
  Hi,I'm planning to do my masters project on creating procedural indoor environments but am struggling to find any good existing algorithms atm - there really doesn't seem to be much research on it at all which surprised me a bit. So far I've found:Procedural House Generation:A method for dynamically generating floor plans - Jess Martin Rule-based layout solving andits application to procedural interior generation - Tim Tutenel and Rafael Bidarra Persistent Realtime Building Interior Generation - Evan Hahn which seem to be directly relevant but none of them seem to be that advanced. If anyone knows of any other papers it would be very helpful. I've dabbled a bit myself and wrote a rather simple algorithm to fill a 3d volume with rooms -  (http://img266.imageshack.us/img266/2463/brushwireframe.jpg and) - but I can't find much similar work although I'm sure it must have been done much better than me! Note I'm not interested in dungeon algorithms which don't cover a floorspace completely - I'm looking for ways to completely fill the inside of a building e.g. house.It's a bit of a long shot I know but any help would be much appreciated!    
  Did you have a look at the generation of mazes?   ;Quote:Original post by ernowDid you have a look at the generation of mazes?Maze algorithms are interesting, and definitely things like Prim's algorithm seem interesting for placing doors but I'm not sure how effective maze algorithms can be for room generation. They don't store any kind of semantic relationships so can't handle different types of rooms and corridors, and they only generate rooms out of discrete cells so it's all a bit samey and linear in look. It's a start though!   ;  I was considering doing a project like this for a long time, but extending it to generate an entire town, complete with office/apartment buildings, houses, etc.. Full scale world generation.. I haven't thought about it for a while but the best idea that I came up with would be to script everything as a hierarchy, like a program calling sub-functions with parameters for them.. So, for example, you have a house script/program, and it's designed around taking a number of parameters, like color, trim color, style, size, number of floors, etc.. The program would have a hardcoded style, like say all houses have a kitchen, a bathroom, and a bedroom or two, and you designate some of these to be variable based on size (more rooms in a bigger house, more bathrooms, etc).. And there would be designated positioning factors like a dining room must be adjacent to a kitchen, etc.. Then you have individual scripts for each of these that the house script would call.. A kitchen script, a bedroom script, bathroom, hallway, etc.. The house program designates the positions of all the rooms, like a tree where the trunk is the hallway, and does so according to the parameters for the house's size/style Each of the sub-programs for the rooms would call even further sub-scripts for things like doors/doorframes, windows, which would have sub-scripts for the trim, texturing, etc.. The room programs would place various objects specific to those types of rooms. An office would have a desk, maybe a bookcase, office chair, etc.. A bedroom would naturally have a bed, a dresser etc. Each of these being sub-programs in themselves. The whole point is the hierarchy, and that each piece has parameters to allow for variation, so that from the root you can control the overall theme of the entire procedural result. The downside to this would be hand-coding all of these scripts, which is highly inconvenient though nearly unavoidable.   ;  I also had an idea of this like radioteeth's a long time ago, and I got some friends excited enough about it to create this.We got the project far along enough to generate the buildings, but we never got around to creating interiors. The basic idea that created the rest of the content should work just fine, but you need to sit down and think how interior spaces are distributed.If I had to retake this project and do that part, I think I would start by reading Christopher Alexander's ideas on patterns that could apply here (I seem to remember a couple that would work, from reading a couple of his books years ago).;Quote:Original post by alvaroI also had an idea of this like radioteeth's a long time ago, and I got some friends excited enough about it to create this.We got the project far along enough to generate the buildings, but we never got around to creating interiors. The basic idea that created the rest of the content should work just fine, but you need to sit down and think how interior spaces are distributed.If I had to retake this project and do that part, I think I would start by reading Christopher Alexander's ideas on patterns that could apply here (I seem to remember a couple that would work, from reading a couple of his books years ago).Wow, binary worlds is very impressive! Unfortunately for me it's typical in the fact that everything is generated except the building interiors! Architectural design patterns seem interesting so I'll definitely have a look into them.   