RSS Feed for This PostCurrent Article

Open Source C/C++ Library for 3D Deformable Object Simulation

Vega is a computationally efficient and stable C/C++ physics library for three-dimensional deformable object simulation. It is designed to model large deformations, including geometric and material nonlinearities, and can also efficiently simulate linear systems. Vega is open-source and free. It is released under the 3-clause BSD license, which means that it can be used both in academic research and in commercial applications.

Vega implements several widely used methods for simulation of large deformations of 3D solid deformable objects:

  • co-rotational linear FEM elasticity [MG04]; it can also compute the exact tangent stiffness matrix [Bar12] (similar to [CPSS10]),
  • linear FEM elasticity [Sha90],
  • invertible isotropic nonlinear FEM models [ITF04, TSIF05],
  • Saint-Venant Kirchhoff FEM deformable models (see [Bar07]), and
  • mass-spring systems.

For any 3D tetrahedral or cubic mesh, Vega can compute both internal elastic forces and their gradients (tangent stiffness matrix), in any deformed configuration. Different parts of the mesh can be assigned arbitrary material properties. Vega can also timestep these models in time under any user-specified forces, using several provided integrators: implicit backward Euler [BW98], implicit Newmark [Wri02], explicit central differences [Wri02] and symplectic Euler. All models include support for multi-core computing. In addition to linear materials, Vega provides neo-Hookean and Mooney-Rivlin nonlinear material models; arbitrary nonlinear material models can be added to Vega. For isotropic hyperelastic materials, this is as easy as defining an energy function, and its first and second derivatives.


Vega is a middleware physics library. It is aimed at researchers and engineers with some preexisting knowledge in numerical simulation, computer graphics and/or solid mechanics, who can integrate Vega into their projects. The strength of Vega lies in its many C/C++ libraries which depend minimally on each other, and are in most cases independently reusable. Vega contains about 50,000 lines of C/C++ code.



Trackback URL

Sorry, comments for this entry are closed at this time.