Here we have my major research topic. The content is mainly taken from my Eurographics short paper.

Procedural modeling of buildings


Architectural settings occur in many virtual environments. Modeling such highly detailed structures manually is a time-consuming and tedious task. Therefore we propose a system for the rapid modeling of building façades. The designer just has to provide some coarse information, the building outline, its type and style and the computer takes care of creating the exact geometry. Adjacent architectural structures are adapted automatically, e. g. walls are adapted to exactly fit quoins made of different stone blocks. Also highly detailed façade elements like window frames made of single bricks, cornices, etc. are generated. Even at this point the designer can still interfere and change the building outline, the style, as well as window or door frame styles. Such a tool will relieve the designer of the burden of tedious, recurring and over all time-consuming modeling tasks.


With advances in computer hardware the size and complexity of virtual worlds increases dramatically, like in massive multi player online role-playing games (MMORPG) as for example in World of Warcraft [1]. Therefore, the modeling of detailed scenes becomes a more important topic and will consume much time and human resources. To tackle this problem we focus on the modeling of highly detailed façades. One problem is that the manual modeling of detailed façades with tools like Maya [2] or 3ds Max [3] is a very time-consuming and tedious task. Another problem is that models once created cannot be easily changed.

The main task the user or designer has to accomplish is to model a façade with computer support. I propose a system which allows the user to create highly detailed façades with ease. The system also supports the possibility to change the style of the whole façade or parts of it very quickly. This relieves the designer of the burden of difficult modeling tasks and gives him a high level control.

My approach is based on a clear separation of the modeling task in which both, designer and computer have their distinguished duties. The designer provides the coarse building outline, its type and style. Based on this information the computer generates detailed façade structures for door and window holes, their frames, cornices, etc. Adjacent architectural structures are adapted automatically so that geometry does not overlap. At the moment two of my students work on a texture generator that produces textures which exactly fit the geometry to avoid unwanted effects, like structures not adapted to others. The designer can change façade parameters on a high level and the machine does all the necessary recomputation. As a consequence the designer produces more complex structures in less time. He can try different styles on the same building outline and produce higher quality façades and therefore save human resources and money.

system overview

Figure 1 gives an overview of the bilateral modeling process and the system methods. Detailed information on the modeling process and the methods is given in the two sections "modeling process" and "methods". There is also a demo video showing the creation of a façade.

Figure 1: system overview



These four buildings were generated using my façade prototype software. The third and the fourth picture are just different light and camera settings of the first building. For more more examples take a look at the end of the page. Stay tuned for more buildings coming up. All examples were rendered in Maya with mental images' mental ray [8].

-   -
-   -
Figure 2: example façades.



The prototype is completely implemented in Python [6] and as output formats RIB [7] and MEL are supported. For the façade hierarchy a typed graph is used. Therefore an integration in Maya is most advisable because of Maya's Python binding and hypergraph structure.

Other possible systems for integration are Goggle's Sketchup [4] and SESAME [5]. They support the basic form of the desired modeling technique need for the fast design of coarse building outlines. At the moment they are missing the construction history so knowledge about the building structure during the design process is lost.

modeling process

The modeling task is split in a user task and a computer task.

With drawing tool the user creates first a coarse outline for the building's first floor. The outline is built upon several convex polygons which are floor plan modules (fpms). The users starts with a main polygon (e.g. the main part of a building) and extends it with additional polygons. Each fpms represents a architectural element, e.g. a balcony, a projection, an oriel etc. Then the polygons are extruded to the next floor. On the next level the fpms can be subdivided or extended with new fpms to create arbitrary floor plan outlines for every level. Then the user chooses from a given set of styles the design of the building.

According to a rule database the system creates a hierarchical symbolic representation of the building. Therefore the building is subdivided into smaller architectural elements. The entire façade is then given in a hierarchical graph structure directly reflecting the spatial relations of the façade elements.

The modeling process is shown in Figure 1. The left part depicts the user process and the right the system process.


For the floor plan generation the main idea is to have arbitrary floor plan outlines on every level and most important spatial information about adjacent structures must be easy to generate. This is achieved as follows. The floor plan generation for an entire building starts at the first level. It is consists of several connected fpms as shown in Figure 1 on the left side of the user modeling process. The floor plan for the next level is based on the fpms of the previous level. There are three techniques which can be applied for each fpm. The first is simply to omit this fpm on the next level. The next on is to extrude the entire fpm to the next level. And the last one is to only extrude a part of the fpm. Therefore the fpm can be subdivided. Every not overlapping combination of the arisen subdivisions can be extruded to the next level. Then it is also possible to connect new fpms to the newly created fpms, e.g. to create an oriel. This establishes to possibility to have arbitrary floor plans on each level. But the most important issue is that spatial information is conserved and can easily be queried.

With an easy description language arbitrary cornice profiles can be created as depicted in the two examples in Figure 2. They can also have brackets (rectangular blocks, some of them have a statue). Fine structures are applied with texture and bump maps. Therefore a student has generated a texture generator which creates plant like textures on arbitrary polygons.

Each fpm has its own roof information. When the roof is created adjacent fpms which contribute to the roof are combined and a pleasant roof arises.

At the moment two texture engines, one for undressed and one for regular brickwork, are developed. As we have exact fitting geometry we can create exact fitting procedural textures with the advantage that seams at adjacent geometry are not seen in the texture. Remember this would be a tedious work manual work.

After the building outline is create and the style is chosen, the symbolic building description is generated (as depicted in Figure 1 on the bottom, system architecture). It is stored in a graph structure with only necessary geometric information. Then a geometry engine parses the graph a creates the geometry step by step. This process can be interrupted at any depth to create a more or less detailed geometry. Next the texture engine produces exact fitting textures. The user can change the appearance of the building at any time by manipulation the information stored in the graph structure. This allows him to play with the building parameters and to produce a vast amount of detailed buildings, saving time and money.


With the presented approach arbitrary buildings can be created in some minutes (styles reused) or up to two hours (completely new created styles). The main advantage is the spatial information which is given by the method of constructing the coarse building based on the proposed floor plan modules (fpms) . This supports the possibility to adapt adjacent structures easily for the geometry and also for the textures. With the idea of geometry dependent procedural textures (at the moment only for the walls) architectural elements receive exact fitting textures which do not overlap their geometry borders or intersect with adjacent geometry.

Building descriptions reside in a kind of symbolic representation in a graph structure which allows the user to modify parameters and therefore change the appearance of the building as often as he wants.


[1] Blizzard-Entertainment: World of Warcraft, 2007.

[2] Autodesk: Maya, 2007.

[3] Autodesk: 3ds Max, 2007.

[4] Goggle: SketchUp, 2007.

[5] J.-Y. Oh, W. Stuerzlinger, J. Danahy, SESAME: Towards Better 3D Conceptual Design Systems, ACM Designing Interactive Systems, ISBN 159593367-0, 80-89, June 2006.

[6] Python, 2007.

[7] RenderMan, 2007.

[8] mental images: mental ray, 2007.



Here are some more example façades. All were rendered with mental images' mental ray [8]. Using a HDR map or mental ray's physical sun and sky for lighting the scene.

-   -
Façade with ornaments and with nice trees from greenworks organic-software
(different views: a b c d).
-   -
Same building but with different ornaments (Jan: and roof ;-) ).
-   -
The university's computer science building (different views: a b c).
-   -
The university's computer science building in a classic style like it had been built 200 years ago (different views: a b c). The coarse outline and the walls' subdivisions were kept, only the style was changed. So you can play with different styles very easy and choose, modify or even create a new one that you like.
-   -
A row of simple buildings with different brickwork textures. This is just a preview of the texture engine coming up.
A slight modification of the upper buildings with a simple base moulding.
This castle is the "Karlsruher Schloss". The founding of the city Karlsruhe started with the construction of this palace. Here you find a detailed description of Karlsruhe's history.
This is the north side of the palace (additional views: a b c).