Qu’est-ce que SOFA ?

SOFA est un moteur de simulation physique temps-réel, écrit majoritairement en C++ et distribué sous licence open-source. Créé par l’Inria au début des année 2000, l’ambition première de SOFA était d’aider les laboratoires de recherche à développer de nouveaux algorithmes, en particulier dans le cadre de la simulation médicale. Le projet est maintenant de plus en plus utilisé dans l’indutrie, que ce soit en tant qu’outil de prototypage rapide, ou intégré dans des produits.
Plus d’information sur ce moteur peuvent être trouvées sur le site du projet.

Que peut-on faire avec SOFA ?

SOFA permet de:

  • concevoir des modèles complexes à partir de composants plus simples via une description sous forme de graphe
  • simuler efficacement la dynamique des interactions entre objets,
  • créer des simulations combinant des algorithmes provenant de diverses sources,
  • enrichir la bibliothèque d’algorithmes disponibles en y ajoutant ses propres modèles,
  • interagir dynamiquement avec ces simulations, grâce à la priorité donnée au temps-réel.

Comment débuter avec SOFA ?

Vous trouverez sur le site du projet SOFA des archives à télécharger ainsi que des informations supplémentaires et des tutoriaux.

Et pour aller plus loin ?

Si vous souhaitez intégrer SOFA dans l’un de vos projets, une possibilité et d’utiliser Sofa Front-End, une façade de simplification développée par Digital-Trainers.

 

Pour des projets plus complexes, Digital-Trainers se propose de vous accompagner :

  • en vous apportant des conseils,
  • en effectuant pour vous les adaptations nécessaires à SOFA ou à votre logiciel.

Quelques exemples concrets

Ci-dessous, quelques tâches que nous avons déjà prises en charge :

  • Remplacement d’une ou de plusieurs parties de SOFA par des composants développés par le client (e.g. visualisation),
  • Déplacement des tâches de rendu sur un fil d’exécution séparé, déchargeant ainsi le processus de simulation,
  • Optimisation de certaines parties du code (performances, stabilité, …),
  • Ajout de nouvelles fonctionnalités dans le cœur de SOFA ou dans un nouveau plugin,
  • Génération de binaires avec un compilateur particulier, des directives de compilation spécifiques, …