Prokitektura is a procedural and iterative approach to generate architectural 3D models. A set of small Python functions called rules is used to generate 3D models of buildings. Each subsequent rule refines the model and adds additional details. The concept of prokitektura was inspired by CGA shape grammar developed in ETH Zurich.
Prokitektura can be used to code existing buildings from a number of photos as well as to generate imaginary cities with desired styles of buildings.
Follow the links at https://github.com/vvoovv/prokitektura-blender (the bottom of the page) to see an example set of prokitektura rules, a video with resulting 3D model of a building and a detailed tutorial.