Skip to content

SOFA dev reports (2024)

Hugo edited this page Sep 25, 2025 · 1 revision

Join us every Thursday 9:30 am CET online: www.sofa-framework.org/sofa-dev-meeting


18/12/2024

News

Technical discussions

  • SOFA scene Python
    • Without controllers: runSofa and Python are the same with all OS
    • Linux and windows : no difference performance between runSofa and python3
    • On MacOS : controller induces a signficant lag when using runSofa instead of Python3 directly. Having a controller with an handleEvent in python kills the perf: this might be linked to the Trampoline bindings
    • Loading of libraries in MacOS might also slow down the process
  • Remove CGAL from Ubuntu CI?
    • PR on the CGALPlugin enforcing the job pull equals to one (JOB_POOL_COMPILE)
    • Injecting this CMake property only for the CI would be cleaner, using CMAKE_PROJECT_PROJECT-NAME_INCLUDE (later PR)

PR review

SOFA PR review

SOFAPYTHON3 PR review

SOFAGLFW PR review

  • #137 Selectableitem Actions restarted now that the SOFA PR has been merged → keep to review

PR merged within the week

SOFA PR merged

REGRESSION PR merged


11/12/2024

News

  • The open source SOFA project has been awarded by the Jury's Prize of the French OpenSource Software Committee (COSO): https://www.sofa-framework.org/about/news/coso-award-2024/
  • As 2024 is coming to its end, christmas bells are ringing to remind us that it is the moment to publish the second minor release of the year: the v24.12. In this process the branch v24.12 will soon be created. → If you've got some changes you need in this release it is now time to make a PR and milestone it for v24.12
    • Dec 11th: next dev meeting, all PR are milestoned and only v24.12 PR will be reviews and merged (by 13th)
    • Dec 20th: release objective date

Technical discussions

  • SOFA-dev mailing list: create a short survey to evaluate its interest
  • #5155 [Core, Simulation.Core] Registration: (re)enable deprecation warnings
    • Messages could be addressed to developer only (using dmsg based on the CMake flag SOFA_WITH_DEVTOOLS)
  • #5152 [All] Fix visualisation
    • Test to remove the inheritance of VisualStyle from VisualModel
    • VisualParams are a kind of singleton
    • This topic is very similar to the gravity
    • Need to create an issue detailing the steps for a future refactoring project
  • We should make sure that the CMake flag SOFA_WITH_DEVTOOLS should be set to FALSE in the Release

PR review

SOFA PR review

SOFAPYTHON3 PR review

PR merged within the week

SOFA PR merged

SOFAGLFW PR merged


04/12/2024

News

  • Last week our annual event, the SOFA Week 2024, gathered more than 70 participants on site in Lille! It was a pleasure to meet the community, listen to the high quality presentations and test the demos during the symposium day. → The quality of this event is down to you, your involvement in the project makes it possible. A big thank you to you all!
  • The 18th SOFA Technical Committee took place during the three last days of the week. Stay tuned for the roadmap to the v25.06 release!
  • As 2024 is coming to its end, christmas bells are ringing to remind us that it is the moment to publish the second minor release of the year: the v24.12. In this process the branch v24.12 will soon be created. → If you've got some changes you need in this release it is now time to make a PR and milestone it for v24.12
    • Dec 11th: next dev meeting, all PR are milestoned and only v24.12 PR will be reviews and merged (by 13th)
    • Dec 20th: release objective date

Technical discussions

  • Slicer-SOFA: Boost seems to be an issue. boost is header only in SOFA. It is still used in:
    • Topology : dependency to boot for graph structure
    • Shared pointers: intrusive_ptr some programming work to be done to replace it
    • Maybe put boost as a find_or_fetch
  • #5148 [Config] Introduce SOFA modules data structure
    • Interesting feature to bring autocompletion and explicit dependency
    • Autocompletion for SofaPython3 is similar
    • CMake could automatically generate this Modules.h (used both for the SOFA and SofaPython3 uses)
    • A test could be added from CMake checking all Sofa.Component.* modules and comparing with the Modules.h
  • #5133 [Helper] PluginManager: support loading from Non-MSVC Multi-Configuration Build
    • XCode does like MSVC and create folders in multi-configuration build
    • When loading libraries at compilation time, we need to know whether we are in debug or release
    • PluginManager encapsulate the knowledge of the config
    • Milestoned v25.06 and then could be merged as is
    • For later, symbols could even be made PUBLIC, we would just need to check other plugins (SofaCUDA, SofaPython3)
  • Reactivate warnings for deprecated registration mechanism
  • Further to the v24.12 release, SofaGLFW will be made the default GUI
    • Activate and auto-fetch it by default
    • Remove the Qt dependency and make the old GUI as a plugin
    • Merge the SofaGLFW plugin in the SOFA source code

PR review

SOFA PR review

SOFAGLFW PR review

REGRESSION PR review

PR merged within the week

SOFA PR merged


20/11/2024

News

Technical discussions

  • #5126 [Core] Modern visitor creation While working on the visitor definition, Alex proposes two alternative methods: the creation of classical SOFA visitors or a new implementation of the original visitor design pattern. It is a known pattern, slightly more verbous but the implementation follows modern C++ format (accept combined with lambda). A second version of these modern visitors is presented (see MechanicalOperations.cpp) with a function e.g. makeMechanicalVisitor. This might lead to code duplication. Objective is to improve the visitor readability at first sight. This work is done with the objective to apply visitors on a "mapping-based graph". → draft

PR review

SOFA PR review

SOFAPYTHON3 PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

DOC PR merged


13/11/2024

News

Technical discussions

  • #5081 [Core] Fix isSet flag when setting a link to a not-yet created data Suggestion to add a test with a wrong link. Creation of the object with a wrong link does not send an error/warning. Link can therefore be set bu invalid if the parent is invalid. Ideas:
    • add an additional checker when data isLinked and getParent is null
    • Remove lazy link (might be braking for XML) and use strong link
  • New PR #57 including the Cosserat plugin in the CI. Let's make a PR including it in SOFA, thus allowing to fix errors and problems in the PR before updating the CI config.
  • Find solution for RAM shortage on Ubuntu compilation (due to CGAL plugin compilation)
    • Use more swap
    • Use zram
    • Skip the file
    • Use more efficient linker

PR review

SOFA PR review

SOFAPYTHON3 PR review

PR merged within the week

SOFA PR merged


06/11/2024

News

Technical discussions

  • Update from STC with consortium members
    • Cosserat plugin will be added in the CI
    • InvertibleFVM, SensableEmulation, SofaSimpleGui plugins will be archived
  • Information further to the development of the RigidBodyDynamics plugin
    • URDF models can be loaded in SOFA
    • Built-in Pinocchio feature: geometry, Jacobian (and transpose)
    • Example being developed with an haptic hand grasping a sponge
    • To be done: autocollision, parse SRDF format, CI integration
  • Nix integration #5059
  • Migration of the Conda recipe using rattler-build
    • Tool to generate conda packages from conda recipe
    • Faster to generate, less verbosity (avoid overlinking/overdepending)
    • Improved feature (experimental): multi-output. Looking forward to it!
  • #5087 [LinearAlgebra] CompressedRowSparseMatrixConstraint: make consistent the serialization/deserialization process
    • Infinite loop due to inconsistent format
    • Serialization can be used to save and to visualize in GUI
    • We could implement a new "pretty" print function, used in Widget or in Python

PR review

SOFAPYTHON3 PR review

PR merged within the week


02/10/2024

News

Technical discussions

  • Review of the progress regarding each roadmap topic
  • Review of the maintained plugins (e.g. DiffusionSolver)

PR review

SOFA PR review

SOFAGLFW PR review

SOFAPYTHON3 PR review

DOC PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

SOFAGLFW PR merged

DOC PR merged

REGRESSION PR merged


25/09/2024

News

Technical discussions

PR review

SOFA PR review

SOFAPYTHON3 PR review

SOFAGLFW PR review

REGRESSION PR review

  • #69 New regression in python Export done in json which is not that satisfactory for Erik, why not using csv. Change format, regenerate all references and test the CI with these new references. Hopefully before STC#18 → wip

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged


18/09/2024

News

  • Registrations for the SOFA Week 2024 are open: make sure to save the date and join us next November in Lille!

Technical discussions

PR review

SOFA PR review

No PR review has been done due to external presentation.

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

REGRESSION PR merged


11/09/2024

News

  • The IRE project will save 36 months of engineering dedicated on SOFA: differentiability of SOFA will be investigated (collision)
  • Jury for the SOFA Awards 2024 is being defined!
  • Registrations for the SOFA Week 2024 are open: make sure to save the date and join us next November in Lille!

Technical discussions

  • Implementation of A Surface-to-Surface Finite Element Algorithm for Large Deformation Frictional Contact --> interesting results but might be more useful in a Newton Raphson algorithm. Interesting to integrate it to SOFA : Open a PR to include this and try to implement the variable epsilon per element.
  • Reimplementation of regression tests in python in PR #69 : need feedback and ideas on metrics
    • comparison of each dofs at the specified end time
      • infinity norm
      • mean value
    • over several time steps
      • compute the 75% of the infinity norm to allow some tolerance
  • Deprecation of HexahedralFEMForceFieldAndMass

SOFA PR review

SOFAPYTHON3 PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

SOFAGLFW PR merged within the week

DOC PR merged within the week

REGRESSION PR merged within the week


04/09/2024

News

Technical discussions

  • Merge the GitHub security advisory PR on all repositories: "Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows dependencies"
  • #4943 [Core] Clean public API of components: proposal to define base class functions as final and override these functions, templated in child classes, as a protected function -> this is breaking. Tests compilation would fail because of change of accessor. We should then change the tests to use the public virtual class (access protected functions). What does this PR is:
    1. set the function of the abstract class to final
    2. fix the components which were overriding this function
    3. set the functions overriding the templated one as protected
    4. TODO: fix/update the associated tests
    5. add the check on the component state:
      • first check non-invalidity
      • then, check the validity

Conclusion : keep two first points on the PR then open new PR to test the point 5. Open draft PR with points 3&4 to get feedback from @sofa-reviewers

  • #4939 [Mass] Fix rigid uniform mass: issue with rigid mass matrices when the inertia matrix is not an homothety. This PR fixes this with tests but it seems that centrifugal forces are not properly computed.
  • Issue 4954 : Mass for hexahedra and quads is wrong. Distribution of the mass is wrongly computed on the element. Take a look at Caribou and what other soft does and try to compute mass matrix chape regarding the hexa shape funciton.
  • Make sure that each PR belongs to a roadmap objective (Project)

SOFA PR review

SOFAPYTHON3 PR review

DOC PR review

Regression PR review

SphFluid PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week


28/08/2024

News

Technical discussions

  • Issue with rigids dynamic : PR #4935 and Issue 4936. A try into fixing it --> PR #4939 → Unit test not testing centrifugal forces that are still wrongly computed. Need to add this unit test and make it pass. Take a look at other rigid simulation framework for meaningfull unit tests.
  • PR #4878, moves cuda implementation of SofaDistanceGrid inside the SofaDistanceGrid plugin. → Two problem arised : a cmake configuration on the CI and NVCC compilation error locally. Alex will fix the cmake error and we will need to investigate the compilaiton error.

SOFA PR review

SOFAPYTHON3 PR review

REGRESSION PR review

SOFA PR merged within the week

BEAMADAPTER PR merged within the week

REGRESSION PR merged within the week


21/08/2024

News

Technical discussions

  • SofaPython3 cleanup (#4828, #432, #425), what are the next steps ? No better solution arised for RAII mechanism. So the one proposed will be the one merged. Fuse the two SofaPython3's PRs, merge SOFA's PR then merge SofaPython ones.
  • A refactoring of the Regression plugin passing everything in python scripts was proposed in PR #69. Feedbacks are needed !
  • Status to review might have two meanings : 1) we want a point of view but we don't think it is ready and 2) we think it is ready and we want to merge it. Might be useful to add a status : merge candidate that is the only one that can be transformed to ready. So for a PR to be merged it will need to first have to review and merge candidate in the same time and to then be accepted and transformed to ready.

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

REGRESSION PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

DOC PR merged within the week


14/08/2024

News

Technical discussions

  • Test failing in #4901 before merge: we often have doubts on the reports from the CI. The migration from Jenkins to GitHub Actions will be very beneficial on this aspect.
  • Qt Wayland on the doc, Aimen's PR should provide information in Linux cases: X11 being the old display protocol, it happens that recent Linux distributions rely on a new protocol/server named Wayland.
    • Share the command to check which protocol is used on your distribution echo $XDG_SESSION_TYPE
    • Share the command to install it if Wayland is used
  • An issue has been created about the SimpleAPI which does not define data isSet. This may affect also SofaPython3. This isSet feature is important and the issue should therefore be fixed soon

SOFA PR review

SOFAPYTHON3 PR review

REGRESSION PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

BEAMADAPTER PR merged within the week

DOC PR merged within the week

SOFAGLFW PR merged within the week


07/08/2024

News

  • Registrations for the SOFA Week 2024 are open: make sure to save the date and join us next November in Lille!
  • 🆕 SOFA Unity asset has been published on the Unity Asset store ! This amazing work has been released by InfinyTech3D, go [check it out here
  • ℹ️ email redirection @sofa-framework.org are broken due to Inria's subcontractor. Our apologies

Technical discussions

  • V&V40 for SOFA
  • Shell plugin should be
    • Fetchable by default
    • Activate by default
    • Tested on CI
    • Build-in in the release

SOFA PR review

SOFAPYTHON3 PR review

DOC PR review

SOFAGLFW PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

DOC PR merged within the week

SOFAGLFW PR merged within the week


31/07/2024

News

  • The SOFA Physics engine for Unity asset has been published on the Unity Asset store ! Congrat to InfinyTech3D for this amaysing work ! Go check it out here 🎉
  • Registrations for the SOFA Week 2024 in Lille next November are OPEN!

Technical discussions

  • Live demo from Aimen: work on mouse interactions within the GLFW-ImGUI plugin
    • Mouse interaction is available with SofaGLFW GUI 👏
    • Bugs moving viewport are fixed
    • Remaining TODOs
      • Data should become editable
      • Settings should allow for changing interactions (constraint-based)
      • OGLSceneFrame to be corrected
      • Scaling window should not change the scale of the scene view
      • Responsive font
  • Discussion with partners like Anatoscope
    • Their technical feedback is always interesting to hear
    • Bringing our technical topics in order to benefit from their experience would be great: created dedicated flag "expert discussion required" to identify topics
  • Incompatibility of the MeshVTKLoader with the VTK5+ file format
    • Find a way to benefit from an easy-to-use library making the coupling with VTK (including the VTK binary format)
  • [Core,Helper] Prevent to create objects from unloaded plugins
    • Explicit registering might solve this issue in a better way
    • PR can be merged but it adds complexity on the PluginManager
    • Fix failing tests due to the factorization
  • [ODESOlver] Fix RHS computation of the backward Euler implicit solver
    • This new computation formula should be expanded on visco-elastic cases to asses the proper assembly
    • Investigate further Rayleigh damping
    • Fix regression DistanceMultiMapping scene: examples/Component/Mapping/NonLinear/DistanceMultiMapping.scn

SOFA PR review

SOFAPYTHON3 PR review

SOFAGLFW PR review

  • #118 Implement centerWindow() This function of BaseGUI is now available in SofaGLFW. Binding for SofaPython3 has been added. → keep to review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

BEAMADAPTER PR merged within the week

DOC PR merged within the week


24/07/2024

News

  • Registrations for the SOFA Week 2024 in Lille next November are OPEN!
  • The SOFA Physics engine for Unity asset has been published on the Unity Asset store ! Congrat to InfinyTech3D for this amaysing work ! Go check it out here !!

Technical discussions

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

DOC PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

DOC PR merged within the week


17/07/2024

News

  • The Soft Robotic Summer School took place in Lille, it was a real success, congratulations to the Defrost Team and every one who helped making this possible!
  • Registrations for the SOFA Week 2024 in Lille next November are OPEN!

Technical discussions

  • SofaGym : RL with BeamAdapter (warm restart)
    • member variables moved as Data
    • instead of exposing all variables as Data, a cleaner approach would be to make components serializable
    • test/regression should be done to confirm the warm restart state
  • #4813 [All] Remove SOFA_ENABLE_LEGACY_HEADERS usage
    • Karscher cleaning
    • Still some component to state on :
      • Gravity : required if we want an API that separate the gravity and the root node, to move in MechanicalLoad
      • SleepControler : to check, might be interesting to bring it back
      • SofaValidation : to archive in external plugins
      • SofaExporter : to import components which have examples
      • SofaMiscCollision : should be fully removed
    • Check for SimpleAPI compatibility layer
  • #4801 [GUI.Component] ConstraintAttachBodyPerformer: Add RigidType support
    • Many unused parameters in the method addContact(), the API should be updated (simplified) accordingly
    • Create an issue to rethink the API

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

SOFA PR merged within the week

BEAMADAPTER PR merged within the week


10/07/2024

❌ No meeting due to the Soft Robotic Summer School in Lille!


03/07/2024

News

Technical discussions

  • Caribou plugin status
    • updates from JNB to fix the compilation with the more recent versions of SOFA
    • several branches on Fenics (Ask Sidaty)
    • updating the plugin and possible merges with SOFA need to be rediscussed

SOFA PR review

SOFA PR merged within the week

DOC PR merged within the week


26/06/2024

News

Technical discussions

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

SOFAGLFW PR review

SOFA PR merged within the week

DOC PR merged within the week

SOFAGLFW PR merged within the week


19/06/2024

News

Technical discussions

  • #4766 [All] Intoduce cmake unified configurations
    • Make converge all plugin configurations (build, release, conda, website)
    • Presets would be preferred
    • Name of configurations could be made more clear: e.g. does FULL include all possible plugins or only the consortium-supported ones?
    • Plan various levels of plugins: tested, supported, maintained

SOFA PR review

BEAMADAPTER PR review

SOFAPYTHON3 PR merged within the week


12/06/2024

❌ No meeting due to the SOFA Technical Committee #17!


05/06/2024

News

  • Check out and register to our upcoming events!
  • The SOFA America Workshop (SAW) was a success !! Thank you to all the presenters for their amazing work, and all the attendees for their presence !

Technical discussions

  • Don't forget to freeze a v24.06 branch on your plugin as the next release is on its way.
  • Discussion on the new SOFA Doc
    • Existing doc is merged with generated one : might need to clean the existing one by removing info that are generated
    • xml/python example are displayed when they exist. The python translation might need some improvement
    • The merged doc is pushed on a branch and can directly be used on the website
    • Need to correct example names for some components that have been renamed (constraints)
  • SofaPython3 auto completion
    • Also need introspection in factory to generate documentation. Those needs are the same as the one of the doc generator: common ground required to export those data from the factory (into json ?)
    • Difference in type of completion : static (without execution) and dynamic (with the component existing).
    • Need .pyi file describing the methods and signature of each binfdings : generated automatically using python tools.
    • Problem with SOFA bindings: to simplify sometimes we state that the returning type is object but this gives no real informaiton. Might need to review cpp binding signaturee to be more specific.
    • Last part would be to be able to find all the attribute of the object by changing the addObject signature and passing the type instead of the string. But this requires the automatic generation of the description.
    • Following STC dicsussion on what features we want.

SOFA PR review

SOFAPYTHON3 PR review

DOC PR review

SOFAGLFW PR review

SOFA PR merged within the week

SOFAGLFW PR merged within the week

BEAMADAPTER PR merged within the week


22/05/2024

News

Technical discussions

SOFA PR review

DOC PR review

BEAMADAPTER PR review

SOFA PR merged within the week

SOFAGLFW PR merged within the week


14/05/2024

News

Technical discussions

  • Freeze of v24.06 branch next week
    • Finish refactoring on modules (related to the doc generation)
    • Use milestone
  • Share your interest among the discussion topics
    • Maybe not all subject need to be assessed during the STC (e.g. Newton Raphson)
    • Scene header : global solvers might need some rethinking to ease the integration of a NewtonRaphson

SOFA PR review

BEAMADAPTER PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

BEAMADAPTER PR merged within the week

DOC PR merged within the week


07/05/2024

News

Technical discussions

  • Post-install scripts : why modifying the plugin_list.conf? Paul will refactor this removed plugin list and think of removing it completely.
  • Python bindings : Slicer community identified problems of IDE/interpreter auto-completion. The Slicer team proposed to show their fox for this same problem on their bindings. Before organizing a meeting, ask Damien about current auto-completion ability of vanilla interpreter on the current python3 bindings.
  • Add Qt Wayland plugin installation instructions #109 Proposes new instruction for qt installation when using wayland. Instead of adding a troubleshoot section, add an item in the installation doc with "if using wayland, then..."
  • [Sofa.Http] Introduction of a latest release checker #4702 OpenSSL is too much of a dependency for such not important. It might be better to make a request on a http adress instead to avoid this dependency. Talk with Fred.
  • Small discussion on paper Chen, Anka He, et al. Vertex Block Descent. ACM Transactions on Graphics (2024) Results are interesting on either performance or stability. Use an energy formulation with an Euler integration scheme at the dof level which increases parallelism and stability. It would be worth at looking more in details. Lib used for collision detection : Embree which could also be interesting to dig in. Based on SYCL to have a cross-platform
  • Using the WriterSide tool, Alex presented a way to generate markdown pages for all SOFA components (see https://alxbilger.github.io/SofaDocGenerator). This could be used in the SOFA GUI to guide users regarding Data etc. We could also envisage to merge such a code-based doc with the user documentation.

SOFA PR review

SOFA PR merged within the week


30/04/2024

News

  • Check out and register to our upcoming events!
  • Pre-STC#17 discussions took place with roadmap leaders and consortium members
  • Next SOFA-Dev meeting on next Tuesday the 7th of may at 10 a.m. !

Technical discussions

SOFA PR review

PR merged within the week


17/04/2024

News

Technical discussions

  • What to do with SofaOpenCL ? → Externalize and make it an achive
  • #4648 [Gui.Qt] Notice user a new version is available → Use external lib instead of QT to do the http request. To be commonly defined.
  • SOFA release as conda packages: https://github.com/sofa-framework/conda-ci → Try it out to provide feedback. Conda PR is pushed again with help of core-dev of Conda (through TIRREX)
  • Problem with QWebEngineView pointed in #4656 → Again, might be great not to use a Qt based library for the DocBrowser and instead use the web browser -> will require to have a server on SOFA's side. And maybe think about UX (where and when to put it)

SOFA PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week


10/04/2024

News

Technical discussions

SOFA PR review

  • #4625 [LinearSystem] Cache mapped mass matrix The feature caching a mapped mass matrix is interesting and it can be added directly in SOFA. Adding a similar mechanism for the stiffness matrix could be implemented (not yet in the PR). Use of DDG to update the data value when input data is modified (dt, and mstate.size). However, we do not detect changes in mapping for now (update), tracking the componentState of mapping could be a solution (if callbacks are well implemented in mappings). About the stiffness, it usually depends on the current dofs. Therefore, it is often non-constant (apart from stiff springs, constantFF, small deformation elasticity). Question on dynamic changes in the DDG : what append when the object owning a data in the graph is deleted ? Investigate a new solution for cache invalidation that would work with the Stiffness. → wip
  • #4603 [HyperElastic] Introduce stable Neo Hookean hyperelastic material → ready
  • #4194 [Geometry] Update method intersectionWithEdge signature and redirect all methods to it in EdgeSetGeometryAlgorithms Add issue on LCPForceFeedback test because it result is random. Update the depreciation versions. → update then ready
  • #3927 [Mass] Replace doUpdateInternal by callback: UniformMass Question on the usage of 'default value' if some are meant to be set (required). Here the component is invalid if none of the data (total mass or vertexMass) is set although a default value exists. This mechanism is not great but it is the best we can get with the current API. It would require to modify the global initialization mechanism and data framework (input, output, inout, required...) to have something better. Create issue to discuss this API update at the STC. Replace componentState.getValue() with isComponentStateValid() in the init() function → update then ready
  • #3368 [Topology] Add function in BaseMeshTopology to compute all topology containers Test failing → wip

SOFAPYTHON3 PR review

SOFA PR merged within the week


03/04/2024

News

Technical discussions

  • #4625 [LinearSystem] Cache mapped mass matrix Discussion on J^T M J pre-computation: with a mapped node, we build a node-local matrix which is then projected in the global system. ForceFields and Masses can be concerned. It requires changes in Sofa/Core and in MatrixLinearSystem involving the Observer design pattern. This could be extended to stiffness as well but we lack of application cases. A data could also be added to activate or de-activate this feature. → ask other dev teams
  • SOFA release versions
    • v23.12 for Ubuntu 20.04 → generate unsupported binaries on forum
    • Soon MacOS release

SOFA PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week


27/03/2024

News

Technical discussions

  • Release 23.12 remaining tasks: last issues are fixed, one remaining in SoftRobots.Inverse. We're on it!
  • Technical skills in CI/CMake: share the associated knowledge among the core-devs

SOFA PR review

SOFAPYTHON3 PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week


20/03/2024

News

Technical discussions

  • #4583 [Collision.Detection] Give current intersection methods as parameter to intersection functions This PR is part of a bigger task which aims at enabling multithreaded simulations (launching multiple simulations in parallel). The intersection mechanism allows to add methods for intersection through a factory. At runtime, an intersection object is created for the proximity in use in the simulation. The problem is that this pointer is created at runtime, is global and saved as pointer, creating race conditions. Here instead of refering to this singleton, it is passed through parameter to make it thread safe. Question is raised about shall we keep the compatibility layer or not regarding the method lacking the output parameter.

SOFA PR review

SOFA PR merged within the week


13/03/2024

News

Technical discussions

  • cmake_minimum_required should be updated regarding CMake FetchContent (find or fetch mechanism → skip, see #4586
  • Question on the fusion of SoftRobot and SoftRobot.Inverse and of SofaPython and STLIB plugins
    • SoftRobot and SoftRobot.Inverse: complex for license reasons (two distinct repositories and conda packages)
    • SofaPython3 and STLIB for now stay separated for Conda.
  • Discuss supported plugins → https://github.com/sofa-framework/sofa/wiki/Supported-SOFA-plugins
  • Update in ci.yml to be done in order to publish GitHub releases for plugins
  • Plugin naming : our policy should now be: adding Sofa. prefix to all plugins and the suffix should be light e.g. Sofa.Metis, Sofa.CGAL, Sofa.image. This allows for extern users to understand that it is a SOFA-related code, which follows the SOFA NG format (no need to keep the Plugin keyword). Will require to also update c++ namespace.

SOFA PR review

SofaPython3 PR review

SOFA PR merged within the week

SofaPython3 PR merged within the week


06/03/2024

News

Technical discussions

SOFA PR review

SOFA Python 3 PR review

PR merged within the week


28/02/2024

News

Technical discussions

  • Temporary workaround for MacOS users to use non-signed binary
  • GUI list through conda: at install of various packages through conda, the gui list file could be edited at each new GUI installed. But it needs to be tested since the path to the plugin_list.conf is edited using CMake variables (CMakeLists of runSofa)
  • If it is using the sofa-setup-actions script, the CI of plugins should be updated using the @v5
  • Invertible FE Model → to archive
  • #4459 [Sofa.Testing] Do not build Sofa.Testing if SOFA_BUILD_TESTS is OFF: Sofa.Testing should externalized in order to bring real modularization → close again

SOFA PR review

PR merged within the week


21/02/2024

News

  • SOFA America Workshop : 30-31 May in Montreal. See all events online! Save the dates, call for presentation is coming soon!
  • Reminder, we migrated our chat to Discord
  • We are thinking about implementing additional mechanical constitutive laws in SOFA :arrow_right: Let us know what you would expect in discussion #4499!

Technical discussions

  • [Prefabs] PoC will be done to better think their design
  • Update about CI builders: seems all fine now (first release binaries being generated). You should update your CI by using ubuntu22.04 and windows-2022 builder and use sofa-setup-action@v5. This is not yet rock solid but will be fixed in the following days. MacOS CI is in a transitive state, will be updated soon.
  • [Plugins] Gather external plugins configs in a same folder (proposal) #4505

SOFA PR review

PR merged within the week


14/02/2024 💕

News

  • We are thinking about implementing additional mechanical constitutive laws in SOFA :arrow_right: Let us know what you would expect in discussion #4499!
  • SOFA America Workshop : 30-31 May in Montreal. Save the dates, call for presentation is coming soon!
  • Reminder, we migrated our chat to Discord 💌

Technical discussions

  • [SofaGym] Use several SOFA simulations in python: 2 SOFA is parallel can run but not more using os.fork. Alex experienced C++ parallelism but less of python. tools/sofa-launcher could be useful to launch several well-separated SOFA. A meeting with Samuel will be schedueled.
  • [Prefabs] Discussion incoming this week
  • The process of actually updating the builders started. The new builders should be up and running by the end of the week.
  • The PR#4496 [Config] POC: enable assertions even in release mode shows errors in scene tests coming from asserts that are not usually tested in release mode. Those error should be fixed in the following weeks.

SOFA PR review

PR merged within the week


07/02/2024

News

Technical discussions

  • New plugin tree instanciations, pr to review : BeamAdapter and SoftRobots → Need to add these requirements to the doc itself to officialize this.
  • Regression tests not working on Windows because the exe cannot open libPython38.dll although the test scenes work → Investigate the path at the execution of Regression_test.exe and runSofa.exe to see if there are any differences.
  • Issue #393 on SofaPython3 linking on libPython → Try to use an intermediate lib that link to SofaPython3 and libPython that load libPython first bootstraping the loading. This is heavy and should be transparent for users and may affecty every distribution.

SOFA PR review

PR merged within the week


31/01/2024

News

  • Project on integrating SOFA into Slicer has been accepted at the Slicer Project Week. SOFA will be represented there!
  • Migration from Gitter to Discord : share your feedback
  • New paper comparing SOFA for sim-2-real gap in robotics: https://arxiv.org/abs/2310.09543

Technical discussions

  • Prefab discussion ongoing
  • Issue #393 on SofaPython3 linking on libpython
    • #394 proposes:
    • however, the change could be applied at plugin initialization, to early manage the libpython loading

SOFA PR review

PR merged within the week


24/01/2024

News

  • Project on integrating SOFA into Slicer has been accepted at the Slicer Project Week. SOFA will be represented there !
  • Ubuntu builder are finished. Windows still pending
  • SOFA America Workshop may occur early June: what about STC#17 dates?

Technical discussions

  • Migration from Gitter to Discord
  • Issue #393 on SofaPython3 : Conda binaries are linked statically with libpython, which causes segfault on MacOS when loading another lib that is dynamivally linked to libpython. This is the case of libSofaPython3 linking with pybind11::embed (the python interpreter) which it self links to libpython.
    • Good first idea seems to be decouple the library and extract the 'interpreter' part in order to remove the dynamic link
    • A quick fix would be to compile on mac with the option -undefined dynamic_linking and force the libpython loading with DYLD_INSERT_LIBRARIES=$CONDA_PREFIX/lib/libpython3.10.dylib ./runSofa libpython with runSofa. The PR #394 can be a temporary fix/hack using pybind
    • Too many RPath defined in Bindings, this should be fixed in a later PR
  • METIS version distributed by conda and the reason it is not fit for our package (GKRand, segfault): more recent versions of 5.1.0 have been tested to be compatible with conda but not GKRand and 5.1.1 fails. More recent versions are not available on conda-forge :arrow_right: we use a find_package and remove the embeded METIS version and rely on the 5.1.0 without GKRand and wait for the 24.06 to pluginize METIS-based code

SOFA PR review

PR merged within the week


17/01/2024

News

Technical discussions

  • [All] POC: ObjectFactory: Explicit components registration #4429
    • In an effort to include SOFA into a browser, a compilation of SOFA as a static library was needed. Several issues were faced : one of them being the RegisterObject functions (ObjectFactory). There was therefore the need to remove singleton like ObjectFactory and to explicit component registration
    • Static compilation would be good anyway
    • Choice is made to go further with Alex's first suggestion and refactoring of registerObject could be done later: factory triggers the commit → another pass will be done by Fred
  • [plugins] Update license to LGPL of remaining files #4425

SOFA PR review

PR merged within the week


10/01/2024

News

  • Agenda 2024 is released! Save the dates!!
    • Next STC#17 will be held in Strasbourg on June 10-12
    • SOFA Week 2024 will be held in Lille on Nov 25-29
  • Preparation of the upcoming release v23.12 started
    • Builder Windows: template being set up

Technical discussions

  • Questions on the python find_package in SofaPython3
    • CMakeLists.txt : the variable PYBIND11_PYTHON_VERSION is declared and only used here in place of the Python version --> why not use PYTHON_VERSION.
    • It might also be usefull to add the parameter EXACT that'll help force the python version to one (this is cumbersome on MAC OS where it is current to have multiple python version installed)
  • Licenses: some remaining GPL codes remain mostly SceneCreator and in SofaTest. What should we do? Pass it to LGPL or externalize (see #4416)
  • NanoBind an interesting alternative to pybind
  • When using constant parsity pattern, a check can be added when inserting to make sure that the pattern is respected. This test has a cost
    • It could be conditioned though a data (checkIndices already existing)
    • Ideas on the use of flags set by downstream components if their pattern has changed can be more efficient
    • Doubt about the interest of the block3x3 optimization case

SOFA PR review

PR merged within the week


03/01/2024

News

  • Agenda 2024 is released! Save the dates!!
    • Next STC#17 will be held in Strasbourg on June 10-12
    • SOFA Week 2024 will be held in Lille on Nov 25-29
  • Preparation of the upcoming release v23.12 started

Technical discussions

  • Issue raised in discussions #4281 about update of anisotropic inertia matrix for rigids

SOFA PR review

PR merged within the week


Clone this wiki locally