Personal Inquiry – Metaballs

  • C++
  • Qt
  • OpenGL
  • Doxygen
  • Mercurial

In the Personal Inquiry we were asked to select a topic related to our course in which we were interested. Having been inspired by the effect of moving metaballs I had created for the group project with Houdini I decided to explore these geometric objects, to understand their mathematical background and to implement an interactive application.

Metaballs can create interesting shapes; especially the effect when multiple metaballs move towards or away from each other seems to be unique.
Examples for two/three metaballs:

metaballs_1_smallmetaballs_2_small

The application is implemented in C++ using Qt for the user interface, NGL (OpenGL) for the visualization and Doxygen for documentation. Mercurial is used as version control system. The implementation offers different methods to create metaballs (Metaballs, Soft Objects and Blobs) which are defined by field functions. The surface of metaballs is rendered using the Marching Cubes Algorithm.

In this video, in the application metaballs are created and their properties are changed:

Here is a link to my references for this project.