All posts by

Procedural reconstruction of Venice – Final Report


Having an accurate representation of a city in a specific time period can help understanding how people lived, indeed, architecture is inextricably intertwined to the evolutions in the society and culture of a place.

In Venice’s case, we can divide the buildings in two groups: the “major” buildings, such as palazzi and churches and the “minor” buildings, where the majority of the venetians lived. The first category is already well documented and many of those are even still standing today thus we can easily get precise models. The “minor” buildings on the other hand, are almost non existent in old documents and there are very few representations of them. But those minor buildings have a key role in understanding of the society at some point in time, because a vast majority of the people lived in them, hence they consist the majority of a city.

How can we represent accurately this majority of the buildings in Venice which are the minor buildings, without modeling them one by one and by taking into account that we have only a little documentation about them ?

The solution we choose to tackle this issue is to use a procedural approach. Indeed, whilst major buildings are all different, with unique features and thus are more prone to manual or semi-automatic modeling, minor buildings have a lot of common elements and structure which makes them suitable for an semi-automated process. This would also be a much faster process than modeling each building by hand, from the few (partial) representations we would find.

The procedural reconstruction of building is a trending topic, therefore some professional softwares were already on the market. We needed to find the good trade-off between simply using one of those – implying only the creation of the grammar and more accurate results – and creating a new software from scratch – implying more diversified work and less visually appealing results. Even if both options added value to the Venice Time Machine Project, we took the decision to implement a new software, the main reason being to modularity of our final software. Indeed the idea was to create a basic implementation in order to let professionals use and enhance it.


We present a basic framework that, given a few parameters and a cadastral map, generate a possible representation of what the buildings of this part of the city might have look like. While texturing is a really important step, we’ve chosen to focus our work on the geometry creation and not on the accuracy of the textures. This step could be added to our framework with the help of historians and/or graphic designers.

The first step of our project was to read documentation on procedural building modeling and look for minor building architectural references which we could base our work on. From [1] we got the technique and nomenclature used by the state of the art in procedural building modeling from which we based our framework on. We used mainly the drawings presented in [2] to obtain some rough facades from thirteenth and fourteenth century, from which we extracted architectural elements. We then vectorized these architectural elements to obtain drawing-like textures and basic rules based on the few examples we had.

We then built a small program that generates a facade as a 3D object given the number of floors and subdivisions for each floors. To keep it simple, we assumed that each floor is subdivided in the same number of elements. We start from one big square for a building that we scale in horizontal and vertical dimensions depending on the inputs (number of floors, subdivisions). We then subdivide each face both horizontally (floors) and vertically. To every subdivision is assigned a label (window, door, wall, etc.) according to simple architectural rules (e.g. no doors on upper floors, at least three windows per floor, etc.). For each of those labels we have several textures available for different styles of the element (e.g rectangular window with or without an arch at the top). Finally, we assign a pseudo-random texture to each subdivision, based on the textures that meet the label, floor, and time period restrictions. The output of this part is an wavefront .obj file containing the facade and its corresponding .mtl material file containing the various textures.


Simple cube with textures

Finally, we thought that we could use a cadastre as input, hence we adapted the solution to take this into account. As a result, from a cadastre defining the “footprint” of the buildings on the ground, we generate buildings of variable height and number of elements based on simple rules extracted from the examples we had in [2] (e.g. at most three floors, street side or canal side). Then for each of the facades of each individual building, we generate the corresponding facade by using the first part of our project. We had to modify it to take into account that the whole building should have a constant “style” and avoid having a different facade generated for each side of the building.

To make the rendering more appealing, we quickly added some colored facade textures extracted from photographs of venetian buildings (which aren’t historically accurate to the time frame we have chosen to work on but can be easily modified in future works) and added a small snippet to also add a roof texture. The final output of our program is an wavefront .obj file containing the geometry of the generated buildings from the input cadaster and its associated .mtl file containing the textures.

cadaster_to_3DGeometry_4k copy

Final rendering from the cadaster


In conclusion, we produced an easily adaptable software that, given a time period and a cadastral map, generates simple 3D buildings according to the architectural rules and elements defined for this period. Even though its output is quite basic models, it could easily be upgraded by adding textures and rules designed and derived by architectural experts. We hope that our work can be used as a starting point to more complex venetian minor buildings reconstructions either as basic framework that can be extended or as inspiration for another implementation. We provided basic framework which historian and scientists working on the Venice Time Machine project can extend to generate more complicated minor buildings in order to visualize more easily Venice at different points in time.


[1] Müller, Pascal, et al. “Procedural modeling of buildings.” Acm Transactions On Graphics (Tog) 25.3 (2006): 614-623.
[2] Trincanato, Elge Renata. Venezia minore. Verona: CIERRE EDIZIONI, 2008. Print.

Group members

Gaspard Zoss, Frédéric Moret, Pierre Sarton