Procedural Animation - Cauldron

Path of the scene: [01_procedural/]
This code display a scene in loading some external .obj meshes: A cauldron and a spoon
A set of particles (one displayed as sphere, and the other using a semi-transparent textured mapped onto a quad) are emited regularily.
The goal of this exercise is to modify the code to model a scene similar to the following one.

[Interactive view]

Bubbles

The particles structures, creation and position update are in the files particles/particles.hpp/cpp. The constructor already creates the bubbles at their expected position.

Smoke billboards

The smoke behavior is obtained using billboards with the semi-transparent smoke texture. To get the expected behavior, you should

Liquid surface

The liquid surface is modeled by a grid trimmed to fit a circle. The liquid surface is associated to a dedicated shader in shaders/water. The animation of the liquid can be made in modifying the associated vertex shader shaders/water/water.vert.glsl.