Simulation Open Framework Architecture

From Wikipedia, the free encyclopedia
Jump to: navigation, search
SOFA - Simulation Open Framework Architecture
Sofa Framework logo.png
SOFA snapshot.png
Developer(s) MGH, INRIA, USTL, UJF, CNRS
Stable release Version 1.0 Release Candidate 2[1] / September 2013
Development status Active
Written in C++
Operating system Linux, Mac, Windows
Type Framework
License GPL/LGPL

Simulation Open Framework Architecture (SOFA) [2] is an Open Source framework primarily targeted at real-time physical simulation, with an emphasis on medical simulation. It is mostly intended for the research community to help develop newer algorithms, but can also be used as an efficient prototyping tool or as a physics engine. Based on an advanced software architecture, it allows one to:

  • Create complex and evolving simulations by combining new algorithms with existing algorithms
  • Modify most parameters of the simulation (deformable behavior, surface representation, solver, constraints, collision algorithm, ...) by simply editing a XML file
  • Build complex models from simpler ones using a scene graph description
  • Efficiently simulate the dynamics of interacting objects using abstract equation solvers
  • Reuse and easily compare a variety of available methods
  • Transparently parallelize complex computations using semantics based on data dependencies
  • Use new generations of GPUs through the CUDA API to greatly improve computation times

Currently, SOFA contains:

  • Deformable models: mass-springs, linear and co-rotational FEM
  • Rigid models: articulated bodies based on penalties or reduced coordinates
  • Fluid models: SPH, Eulerian (preliminary)
  • Collision models: spheres, triangular meshes, distance fields (preliminary); with AABB-tree or octree bounding volume hierarchies
  • Collision detection methods: proximity, continuous (preliminary)
  • Collision response methods: (implicit) penalties, LCP-based constraints
  • Mechanical integration schemes: Euler explicit, RK2, RK4, static, implicit euler using PCG (Projected Conjugate Gradient)

See also[edit]


  1. ^
  2. ^ Allard, Jérémie; Cotin, Stéphane; Faure, François; Bensoussan, Pierre-Jean; Poyer, François; Duriez, Christian; Delingette, Hervé; Grisoni, Laurent (2007). "Medicine Meets Virtual Reality (MMVR'15)".  |chapter= ignored (help)

External links[edit]