Procedural Modeling Control

Using Inference Algorithms


In a world with such a demand for high quality graphical content, the use of procedural modeling (PM) techniques come in handy. From the design of textures to the creation of a complex city, procedural modeling encompasses a huge variety of generative techniques that can make these types of jobs a lot easier.

However, despite all the promising power in productivity and creation, most of these techniques are also highly complex and notoriously difficult to control. We're interested in study and improve control strategies for procedural models, focusing mostly on dynamic iterations between restrictions.

While this is an ongoing research project, in this page we restrict ourselves to control strategies for grammar-based procedures. The results presented in this page were generated as a final project for the 3D Graphics Systems course at IMPA.


Grammar-based models are the most common type of procedural methods. In this project, we work with parametric, stochastic, conditional, context-free grammars. The principle behind grammar-based PM is to sucessively refine a model guided by a set of rules. The model gain more structure and complexity in each iteration.

The models we are interested to control are stochastic. Thus, we focus mostly on probabilistic inference techniques, where we try to find samples from the process that better fits a given specification.

Control Strategies

The collection of results presented in this page were created using different control strategies. Our tests were all made using image-based constraints.

We've tested a simple but very intuitive algorithm, where we guided each step of the process, allowing only the best procedures to happen. We called such strategie a guided L-system. The guided strategie showed to be weak over initial conditions, and not suited for complex constraints.

Based on the work of Talton et. al. we've implemented the Reversible Jump MCMC for procedural models. The method use a variation of the well known Metropolis-Hasting method to build a trans-dimmensional markov chain on the set of possible derivations of the grammar. We walk inside the set of all possible derivations, using a system of derivation trees, to find a sample that maximize the posterior distribution of the process given a user-provided constraint.


In the results page you can find videos and images from our results. We worked with 2D and 3D grammar rules, mostly of plants and trees. All images were generated using POV-Ray.

Our control results were made using image-base constraints. At the moments we fave results from 2D rules, and some initial results for 3D rules.

We also show a preview of what can be done interpolating parameters of trees, which has nice aplications on animation and stylization.


Talton, Jerry O., et al. "Metropolis procedural modeling." ACM Transactions on Graphics (TOG) 30.2 (2011): 11.

Ritchie, Daniel, et al. "Controlling procedural modeling programs with stochastically-ordered sequential monte carlo." ACM Transactions on Graphics (TOG) 34.4 (2015): 105.

Prusinkiewicz, Przemyslaw, and Aristid Lindenmayer. The algorithmic beauty of plants. Springer Science & Business Media, 2012.