MComp dissertation topic involved implementing soft body physics into the previous 'Advanced Gaming Technologies' coursework codebase, after removing any unneeded content.
I researched how to simulate soft bodies using particles and springs, as well as how to then use those particles and springs to render soft bodies to the screen using OpenGL.
Researched and implemented three different methods used to support soft bodies after creation, to prevent them from collapsing:
1- Support Springs
2- Shape matching
3- Pressure model








Support Spring systems
This method of supporting soft bodies involved creating support springs across the inside of the soft bodies to help prevent them from collapsing. I created three different methods for doing so:
1-Brute force: For every particle in the soft body, create a spring between it and every other particle in the soft body, given that there isn't already an existing one
2-Semi Brute force: For every particle in the soft body, create a spring between it and the particle furthest from it, given that a spring doesn't already exist
3-Selective springs: Find the corners of the soft body as well as the highest and lowest points, on each axis, and create springs between these points, will always create the same number of springs, but offers less support
















Shape Matching
This method of supporting soft bodies involves having each particle store its base position, relative to the soft body and using that data to calculate where the particle should be relative to the soft bodies current position.
We can then push the particles with a force to their desired position. This method is a computationally cheap method, however, it does not take orientation into account, the soft body will always return to its base orientation.




Pressure Usage
This method of supporting soft bodies involves creating pressure within the soft body and using that to try and maintain the soft bodies basic shape. There are three methods used here:
1-Creates a constant outwards force on every particle depending on the created pressure variable. The force never changes direction of strength as the pressure is constant (RED)
2-The soft body is given a desired volume, by default it is the volume when instantiated. Creates a cube around the soft body and uses its volume as the soft bodies volume. Makes the pressure force go outwards or inwards depending on if the volume is too small or large, respectively (YELLOW)
3-Same as the previous method, excpet the axis are calculated seperately. This means if x axis is too long and y axis is to short the pressure will compress on the x axis, while expanding on y axis (BLUE)
This method is quite effective, however, due to the nature of the model, it only tends to work on spherical shapes







