Procedural reconstruction of Venice – second progress report

In this second report we analyse the issues we faced with our precedent approach, how the work plan changed, our current progress, and what our goals have become.

We finally decided that, although using CityEngine would allow us to construct a strong and diversified grammar spanning over several centuries, we won’t use it as it might then be hard to extract our work from the software and reuse it as a base for improvements. As such, we explored the different solutions already available online as well as the possibility of building our own parser for the grammar we extract. However, the very few open source parsers for this kind of grammar we found were very complicated and partially complete (some elements were missing from the parser), thus using or trying to simplify them does not seem to be a viable option and might lead to a non negligible waste of time.

Finally we decided to implement our own parser, but as this is very sophisticated and since none of us actually worked on such program before, we quickly realised that a complete CGA (CityEngine grammar) grammar parser would require a significant amount of work and that could be a semester project of its own. Hence we are going to make a simplified version to begin with, that could then be easily upgradable and adapted by us and for future work.

Our current version of this parser starts with one element, representing the whole facade, that consists of four vertices. We then have functions that subdivide this facade into smaller elements (floors horizontally, then individual features vertically), also represented by vertices. Finally each of those small pieces are labeled according to simple rules (e.g. no door on second or third floors, specific window arrangement, …) respecting the time period specific Venetian architectural rules.

Meanwhile, for the grammar, we scanned and extracted basic elements (see examples below) from [1], focusing on the fourteenth century. The next step is to uniformize those such that all related elements have the same size and background, for example we could create vectorial representation of each element, which we link to a specific label. We can apply them as a texture on our facade.

merged_imagesDifferent typical Venetian windows and doors from the fourteenth century.

In the near future, we expect to have an operational python software that generates complete simple facades, and from which we obtain a 2D object (Wavefront obj file) that can be rendered using a dedicated software such as Maya or Meshlab. We then expect to develop our grammar alongside this parser to include more complicated elements, such as chimneys or balconies, and more complicated architectural structures and rules, like adjacent houses where there is no clear separation of the facades.

Further work could include additional time periods, for which we would need to extract the specific elements and architectural rules, and finding general rules that might span over several centuries. Obviously this affected our plan and milestones, thus we updated them as you can see in the section below.

In conclusion, our work is in progress and we are confident in having an output that meets our updated goals by the end of the semester.


  • Weeks 7, 8 : process grammar and include it as textures – improvements on software
  • Weeks 9, 10, 11 : include more complicated grammar (hence more complicated software)
  • Week 12 : final additions to the project
  • Week 13 : Poster preparation
  • Week 14 : Wrap up and final presentation


[1] Trincanato, Elge Renata. Venezia minore. Verona: CIERRE EDIZIONI, 2008. Print.

Group members

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