Jump to content

Simulation Open Framework Architecture

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Everton.hermann (talk | contribs) at 21:37, 29 November 2008 (First version of SOFA on wikipedia). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
SOFA - Simulation Open Framework Architecture
Developer(s)MGH, INRIA, USTL, UJF, |CNRS
Stable release
Beta 3 / August 2008
Operating systemLinux, Mac, Windows
TypeFramework
LicenseGPL/LGPL
Websitewww.sofa-framework.org

SOFA is an Open Source framework primarily targeted at real-time 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. Based on an advanced software architecture, it allows 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-rotationnal FEM
  • Rigid models: articulated bodies based on penalities 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) penalities, LCP-based constraints
  • Mechanical integration schemes: Euler explicit, RK2, RK4, static, implicit euler using PCG (Projected Conjugate Gradient)