Balloon Simulation

We developed a real-time balloon simulation application using a mass-spring simulation model and explicit Euler integrator. Our application reads in a user-specified quad mesh .obj file and generates a balloon with structural, shear, and flexion springs between the vertices of the balloon. Our application also allows the user to inflate and deflate the balloon in real time. Optionally, the user can apply a vertex position correction algorithm to the vertices to constrain the balloon's shape. Additionally, we implemented sphere-balloon collision detection so that the user can throw spheres at the balloon.

Our simulation is similar to cloth simulation. In order to simulate the balloon floating, we add a helium force so the balloon floats up. We also apply inflation forces along the surface normals of each particle.

I worked with a partner on this project and I implemented the .obj loader, spring generation, and collision detection.

Examples

Regular balloon - inflating a squirrel. As the simulation progresses, the pressure in the balloon is increased, which is why the balloon keeps floating up. You can see the squirrel's tail blows up as pressure increases.

Turtle - it's a turtle this time.

Upside-down squirrel - The string is attached to the squirrel's tail, and the squirrel turns upside-down, like expected.

Collision - throwing spheres against a balloon. The spheres hit the balloon and bounce off like a real balloon.

Launching spheres - a 'bowl' balloon inflates and launches spheres in to the air. The mass of the spheres is changed, which impacts the simulation. The spheres in the gif have 1, 100, 1000, and 10000 units of mass.