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#18) took place in Strasbourg from November 27 to 29th 2024. During this meeting, the committee voted the following roadmap:
Matrix assembly API in SOFA
- Geometric stiffness is not implemented for some non-linear mappings (mostly in plugins like DiscreteCosseratMapping or RigidDistanceMapping)
- Investigate the assembly of the right-hand side (linked to the removal of mechanical visitors)
|
Constraint modernization
- Express constraints as mapping + constraint (e.g. incompressibility.)
- Complete the RHS term assembly to go towards a direct approach for the constraint resolution
|
Newton Raphson implementation
- New data in the EulerImplicit integration scheme allowing for defining Newton’s steps (using new VecIds to store intermediate DoFs)
- Investigate other integration schemes : Newmark with contacts, BDF2
- Implement a constraint formulated as a mapping
- Ensure that Mappings take into account mapped masses
|
Validation & verification
- Create an online report based on existing publications and comparisons
- Reference mechanical tests
- Write such tests in collaboration (indiedev, intern, subcontracting)
- Define regular tests in mechanics
- Create a first test case format
- Markdown file (see for template doc SimCardioTest) describing the test case, the reference used as comparison and the result
- Associated scene (python)
- Associated test based on the regression python infrastructure (python)
|
Performance regression tests
- Complete all scripts
- Automation of the test at each commit
- Definition of the input/output of the testing process
- Build the dedicated dashboard
- Presentation to core-developers
|
runSofa GUI (GLFW)
- Pluginize (externalize) Qt-based GUI from SOFA sources
- Compile ImGUI-based GUI by default in SOFA CMake
- Add data modification widget
- Fix last problem regarding contact mapper and random names making ImGUI crash.
- BONUS: Change default scene
|
Dashboard for plugin maintenance
- Define the needs and setup a spec file
- Define expected workflow
- Define information to be shown (commit information, link)
- Front end (one glance view)
- Hire intern to work on this
|
Test on hyperelastic materials / FEM API
- Extract the current materials implementation as SOFA component
- Translate most of the HOBAK tests in SOFA and compare
- Add eigenvalue analysis to Stable-NeoHookean
- Take a look at the implementation of the material laws that are failing the tests
- Ogden (all)
- Costa (Elasticity-Tensor, applyElasticity-Tensor)
- Mooney-Rivlin (all)
|
Design of a robotic-dedicated application
- Semi-structured interviews and on-site observations with 4-5 user-types corresponding to the different profiles of target roboticists
- Drafting of a document summarizing the information gathered
- Drafting of a document describing typical scenarios, a selection of ideas generated during the workshops, and the broad lines of the tool to be designed.
- Development of an interactive prototype of the tool, including the main functionalities and supporting the typical scenarios.
- Semi-directed user testing: observation of typical scenarios and free exploration, feedback and questionnaire/interview based on validation criteria.
- Drafting of a document summarizing the developments and tests carried out, as well as the adjustments to be made for the next iteration (several iterations are planned)
|
Cosserat rod plugin
- Incorporate beam extensibility
- Enhance co-axial beam modeling
- Address existing issues and bugs in the current version of the coaxial beam modeling
- Anticipate the upcoming intern who will commence in March (subject to FSD approval)
- Implement non-linear mapping
- Calculate the expression $\dot{J}v + J\dot{v}$
- Enhance mapping for dynamic scenarios
- Advancing needle insertion simulation
- Integrating normal forces on the needle tip
- Introducing dynamic discretization for the needle
- Build a new 6 dof Cosserat state
|