The technical roadmap of SOFA is voted by Consortium members during the bi-annual Scientific and Technical Committee (STC). Information regarding the governance of the SOFA Consortium is available on our presentation page.

Do not hesitate to contact the Consortium staff to join the next STC (every May and November).


You can also subscribe to sofa-dev mailing-list to get weekly meeting reports about ongoing developments.

Latest STC (STC#6) took place the 07-09th November 2018 in Strasbourg.
During this meeting, the committee voted the following roadmap:


  • Sofa.Config
  • Sofa.Core
  • Sofa.DefaultType
  • Sofa.Helper
  • Sofa.Messaging
  • Sofa.Simulation


  • CMake: cannot have sofapython- legacy and sofapython3
  • CMake: make it an external package
  • Scene creation API + loader + external python3 (easy)

    • memory leak on PythonScriptController (current sofapython)
    • add, create, getdata, setdata
    • add tests and docs
    • integrate gtest
  • Data access API (1 remaining hard question)
  • Overridable component (1 remaining hard question)
  • potentials problems
  • override getattr/setattr
  • object not yet in scene graphs
  • explore metaclass idea

Data updates

  • Create documentation from slides (from two previous presentation)
  • Use widely the API of SimpleDataEngine

    • Set it as DataEngine (default)
    • List all components inheriting DataEngine
    • Compare with BelCurves ??
    • Remove confusion between data.isDirty() != m_datatracker.isDirty(data)
    • Change in all Engine components: update() → doUpdate()
    • Update doc
  • State in SOFA (for v19.06)

    • Rename DataTrackerDDGNode::isDirty() to hasChanged()
    • Data<int> “d_state” to all objects (probably a bad idea tu use Data to track state)
    • Document the state mechanism
    • Display of data graph
    • Discussion : all components should be DataEngine !?
    • mass, forcefield, solver, constraints


  • Generic Constraint Solver
  • LCP Constraint Solver
  • Tasks pool allocator:

    • Implement both a global allocator or worker thread local allocator
    • Implement unit tests
    • Compare both allocators performance
  • Run the collision detection and deformable object solver concurrently
  • Think how to fit and support a fast haptic thread in the TaskScheduler

Read the full STC#6 report – not ready yet

Read reports of previous STC

Back to Top