Inspiration

We have been inspired by this awesome paper: Müller, Pascal & Wonka, Peter & Haegler, Simon & Ulmer, Andreas & Van Gool, Luc. (2006). Procedural Modeling of Buildings. ACM Trans. Graph.. 25. 614-623. 10.1145/1141911.1141931.

What it does

Procedural Building Generator takes as input a grammar that describes how we want the buildings to look like. After applying the substitution rules of that grammar, it is left with a sequence of instructions that it then interprets as if it were the commands of program. This commands generate the 3D geometry of the buildings.

How we built it

From scratch, just using C++ and a 3D vector math library, nothing else.

Challenges we ran into

Parsing is not that easy (we should have attended more in compilers course).

Accomplishments that we're proud of

Well... It worked in just 36 hours and 2 team members. The tool is quite extensible and already generates nice scenes if the provided input grammar is somewhat complex.

What we learned

We have learned to implement a powerful interpreter for grammars.

What's next for Procedural Building Generator

The framework we developed makes it easy to extend it with new commands or even the possibility of instantiating any kind of primitive object, not just boxes and cylinders. And some polishing details, of course.

Built With

Share this project:

Updates