Procedural Buildings PART III: R0.3 Cont.

An L-System for a procedural building floor

Having designed and built an L-System implementation was a good start, but it did not contribute to evolving the design of the procedural creation of buildings. After having delved into procedural generation of volumes in releases R01 and R02, it is time to see how these volumes can be textured, and how materials can be applied to them. This is actually a transition from (almost) chaotic and random volume generation (out of primitive shapes) to building a structure, a more lawful construction that obeys to rules. I would like to encode this structure into a language (a vocabulary and a grammar) in such a way so that existing buildings could be described by this language, and of course new buildings can be synthesized by it.


Having built these volumes as one mesh containing several sub-meshes, it is feasible in Unity to apply a different material to each sub-mesh. But I have to lay out what are the different building elements that need to be textured first. This analysis will adopt the break down analysis presented in the first part, containing the main structural and ornamental architectural elements that comprise a building's facade.
Only this time, I have to interpret the architectural information this into a nice procedural algorithm, and focus on how this will be implemented. Further to the sources that are given in the first part of this series, a very useful source has been by the 'Guidelines for Rehabilitation and new Construction' of the Town of Smithfield, Count of Virginia, here.

So I have segmented a generic-enough building facade into discrete parts, most of which are segmented as well in finer elements. I have provided useful descriptive links on some of the categories in the list below. This is a levelled classification scheme with the aim to comprise a (future) xml building representation or definition (xtd), as follows:
  • Storefront
    • Cornice
    • Transom
    • Display window
    • Bulkhead
    • Column
  • Floor
    • Cornice
    • Wall profile
    • Window profile
      • Lintel
      • Sash
      • Sill
    • Bulkhead
    • Balcony door
    • Balcony
      • Left-end
      • Floor
      • Railing/ Baluster
      • Right-end
  • Roof
    • Dome
    • Barrel
    • Tented
    • Pitched
    • Mansard
    • Flat
    • Skillion
    • Gabled
    • Mansard
The first level classes are what comprise any building: the special zero-level floor zone, with commercial (or even residential) use, the floors, a vertical repetition more or less of a certain pattern, and the roof.
Under these, several elements are possible, though I need to implement some constraints regarding limiting all possible combinations.

I am not probably going to implement all these types, at least not in R03. Nearly all these types need some parameters in order to be implemented into a valid geometry (a mesh). I will try to define these parameters for each one.

To be continued...

Comments