Masters Project

Implementing Flame using a Mass Spring System


Demo Image

Demo Image

Key Details

Made using C++, Qt, GLM and the NCCA graphics library (NGL).

My Master's Degree Masters Project.

Uses Qt for the user interface.

Created for use on Linux but should also work on Windows.

Click here to read the Masters Project

Source code on GitHub

Online version of the documentation


This is an implementation of Flame using a Mass-Spring system. It was created as my Masters Project for my Master’s degree. It is created using C++, Qt, GLM and the NCCA Graphics Library (NGL). The user interface was built using Qt and this code is written to work on Linux, however it should also work on Windows. The point of this project was to test a concept that I found in a paper from 2006 that uses Mass Spring as a method of fire simulation. I implemented a basic cloth simulation and then applied a random flame texture from a set of 8 textures. I then apply a buoyancy to the cloth (essentially acting a reverse gravity force) along with a wind force that is applied based an impulse time. This gives an impression of the movement of the flame. The user interface allows the modification of the forces acting on the mass spring object and the internal forces for the mass spring object. It also allows setting the number of flames to be in the scene. The application displays the frame rate in the corner and using this I took measurements of how much the number of flames effected the frame rate and used different machines with different specifications to get four sets of results to compare. This is currently ungraded.

© 2024 Jamie Slowgrove