Simulation Open Framework Architecture
Appearance
Developer(s) | MGH, INRIA, USTL, UJF, |CNRS |
---|---|
Stable release | Beta 3
/ August 2008 |
Operating system | Linux, Mac, Windows |
Type | Framework |
License | GPL/LGPL |
Website | www.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)