What is SOFA ?

SOFA is a real-time 3D physics simulation engine, written mostly in C++ and distributed under an open-source licence (LGPL). It was created by Inria beginning in the year 2000 with the objective of allowing the labs to develop new algorithms, principally in the field of medical simulation. It is now used more and more for industrial purposes, as a tool for rapid prototyping, or inside a product.
More information on SOFA can be found on the project website.

What can I do with SOFA ?

With SOFA it is possible to:

  • build complex models based on simpler components using a graph description of the scene,
  • efficiently simulate the dynamics of the interactions between the objects,
  • create simulations using algorithms from various sources,
  • complete the list of available algorithms with your own models,
  • interact dynamically with these simulations, thanks to SOFA capacity to work in real time.

How to start working with SOFA ?

You will find in the SOFA project website downlodable archives as wel as useful information and tutorials.

Want to go further ?

If you’d like to integrate SOFA into one of your projects, onn option is to use Sofa Front-End, an interface made by Digital-Trainers that enable the integration of the SOFA simulation engine into an existing project.


For more complex tasks, Digital-Trainers can help:

  • by bringing you its expertise
  • by doing the necessary adaptations to SOFA or to your framework.

A few concrete examples

Below are some examples of tasks we have already undertaken:

  • Replacement of one or more parts of the SOFA engine with components developed by the client (e.g. visualisation);
  • Moving all the rendering tasks in a separate running thread, thus freeing up the simulation thread;
  • Optimising parts of the code to make them faster or to increase stability;
  • Adding new functionalities to the core engine or to a plugin;
  • Generating binaries for a given compiler or with a special set of compiling options.