Roadmap

download

Technical roadmap

The roadmap is jointly defined by the Consortium Members with the developer community at the SOFA Technical Committee (STC). This committee is open and free for all, however votes for the roadmap are restricted to Consortium Members.
Read more on the governance.

Previous edition (STC#13) took place in Lille from the 30th of May to the 1st of June 2022.

During this meeting, the committee voted the following roadmap:

SOFA NG

  • Modularization of the last codes remaining in the old architecture: see #1527
  • Documentation of the new architecture and transition guidance
  • Technical support for the migration of the community

Matrix assembly

  • Compatibility layer: investigate a fallback to old API
  • Fix failing cases (preconditionners)
  • Cleaning and integration in preparation of the v22.12 release
  • Refactoring over the summer: propagate the new API in SOFA and main plugins
  • Unifying the API: addDForce and addKToMatrix
  • Feedback on: naming, minor refactoring and any technical issue
  • First steps towards modularizing the constraint resolution
    • Format constraint matrix
    • Design the possible unification of SOFA constraints (bilateral, unilateral, linear complementarity, non-linear complementarity…)

SOFA & AI

  • Upgrade the data flow with an SQL database
  • Combining DeepPhysX with SofaGym for Reinforcement Learning
  • Ensure compatibility with different training data types (Graph Neural Networks)
  • Extend the choice of AI package (explore TensorFlow & ScikitLearn)
  • Extend the choice of the visualization library

Beams & Cosserat plugin

  • Tutorial for Cosserat plugin
  • Implement unit-tests for all the modules (PCS, PLS, PNLS and plastic)
  • Generalize the API for non-linear mappings
  • Handle the real time dynamic Cosserat Model
  • Implement Piece-wise Linear Strain (PLS)
  • Implement a python controller for moving co-axial instrument
  • Verification and validation for the plastic Cosserat model
    • Adapt the work done on the comparison with analytical solutions for the elastic model, to the plastic model
    • Validation on bench test experiments (as part of the SimCardioTest project)
  • Use the Cosserat beam model with the Model Order Reduction for Cosserat

ModelOrderReduction plugin

  • Make sure most/all examples work in the ModelOrderReduction plugin
  • Prepare the upcoming deprecation of MechanicalMatrixMapper
  • Re-organise folders in a clearer way
  • Update documentation

SOFA and FeniCS: SOniCS

  • Merge to Caribou master
  • Document SOniCS
  • Adding a new material model still involves to go in the C++ code and several copy/paste have to be done
  • Give the path to the material generated C code as an arguments of the Forcefield (required to trigger C++ compilation from the Python)
  • More CI/CD tests to ensure stability and compatibility with FEniCS and SOFA master branch
  • More complex elements: shells, prisms, etc..
  • Test by first users and feedback.

New SOFA GUI – GLFW/ImGui

  • Document GLFW/ImGui: add dependencies in the doc
  • Activate it among the available GUI of SOFA (maybe set it as default on master)
  • List, detect and test (fix) UX problems
  • List of desired features
  • Clarify all dependencies to DearImGui and their licenses
  • Create a basic GLFW GUI : an empty interface + enrich it with python scripts
  • Separate the different cameras (one viewport per camera)
  • Pluginize Qt GUI with Fred and put on its own repo
  • Communicate, promote
  • Cleaning

More projects

Besides the main roadmap tasks, a lot of projects are going to evolve in the next 6 months. Never hesitate to join the force or propose your own contribution project!

  • Active recruitment of new engineers!
  • Document deprecation mechanims & the process for pull-request review
  • Replacing access to the Context in the code
  • Propagating the use of the internal component state (replacing bwdInit() with callback mechanism, reinit(), init())
  • Allowing more GPU in SOFA (e.g. LDI collision detection method)
  • Improving the documentation, centralizing it
Back to Top