-
Notifications
You must be signed in to change notification settings - Fork 350
SOFA dev reports (2026)
Hugo edited this page Apr 24, 2026
·
27 revisions
Join us every Thursday 9:30 am CET online: www.sofa-framework.org/sofa-dev-meeting
- Registration for the STC#21 is open: technical-committees > registration
- #6093 [Sofa.GL] DrawToolGL: improve indices text rendering quality Make the indices readable with white background. Need real review. → keep to review
- #6092 [Sofa.GL] DrawtoolGL: Auto-scale indices display based on camera distance Make the show indices automatically scaled. Need real review. → keep to review
- #6090 [Visual] draw more lines for LineAxis and VisualGrid Because those two objects are components, we would prefer this number to be added as a data. Maybe a video or puicture of the artifact to better understand the issue would be good. → keep to review
- #6089 [Example] Convert Torusfall XML scene to SofaPython3 scene Might be useful to add it in the PerformanceRegressionTests. Wait for scene and regression tests → then ready
- #6086 [Core] Clarify how the visitor knows if a state is mapped or not Unify the check on the mapped state → ready
- #6084 [Core, Simulation.Core] MSVC: fix inconsistent linkages Wait for the Macos to be green, it crashed → then ready
-
#6083 [Framework] Fix more warnings (clang, macos)
Need to take a look at the change on
FSEventStreamSetDispatchQueue(m_eventStream, dispatch_get_main_queue());→ keep to review - #6081 [LinearSystem] Check if state is mapped to contribute to the global vector This pull request fix one bugs which make the scene broken, so what do we do with this PR ? Maybe put the scene as a regression test in the PR at the end. Wait for Alex comment on this PR. → keep to review
- #6079 [SofaCUDA] CMake: Remove old options → ready
- #6075 [Visual] Fix crash when texturename is not leading to a valid texture file 'findFile' is already used in 'getFullPAth'. So the real check should be to only check if the file exists. → keep to review
- #6074 [all] Apply template method pattern to SOFA Core Maybe the rotation finder could be suppressed from the API. → keep to review
- #6073 [Diffusion] Explicit MechanicalObject link Waiting for the answer of Gaetan. → keep to review
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation We need to compare it against the CPU version using Regression tests. In the future such test might be done using V&V pipeline. → keep to review
- #6069 [FEM.Elastic] Cache stiffness matrices before computations Wait for Alex investigation → keep to review
- #6067 [LinearSystem] ConstantSparsityPatternSystem: change key type to support bigger meshes → ready
- #6061 [Mass] Introduce element-agnostic FEM mass Resolve remaining discussions → then ready
- #609 Acquire gil for the full scope of the lifetime returned matrix Fix a crash on addKToMatrix → ready
- #606 Component is the new controller Change the date on the license and wait for Damien's review. → keep to review
- #6085 [test] Unit test describing visitor behavior
- #6080 [Mapping] SkinningMapping: compute weights from position
- #6068 [LinearSolver.Direct] Add some unit tests
- Registration for the STC#21 is open: technical-committees > registration
- Alex talked about a new plugin he made using symbolic calculus to express new forcefield by only giving the energy function. He will make a full demonstration next week.
- #6084 [Core, Simulation.Core] MSVC: fix inconsistent linkages This fixes warning because the fwd.h header is forwarding an external implementation, thus breaking the import/export mechanism. The solution is good, but we might think of other ones. Let's discuss it at the next dev-meeting → keep to review
- #6083 [Framework] Fix more warnings (clang, macos) Need real review because it was made with AI. → keep to review
- #6080 [Mapping] SkinningMapping: compute weights from position This is mandatory for pre-stressed model. → ready
- #6079 [SofaCUDA] CMake: Remove old options It would be preferred to leave the possibility to deactivate the DOUBLE compilation. So, let's keep the option but put it to on by default. → keep to review
- #6078 [FEM.Elastic] FEMForcefield: implement computeBBox → ready
- #6075 [Visual] Fix crash when texturename is not leading to a valid texture file → keep to review
- #6074 [all] Apply template method pattern to SOFA Core → keep to review
- #6073 [Diffusion] Explicit MechanicalObject link All ForceFields are SingleStateAccessor, which are member called mstate and already are a link to the mechanical state. Let's wait for Gaetan's feedback. → keep to review
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation This PR is a first CUDA version that has the merit to exists. We expected that this implementation could be closer to the CPU version. But it is not the case. This makes the code difficult to understand and thus to keep up to date. Maybe doing cross validation (comparing CPU results to the GPU ones) to validate it. This PR will need more review, especially on the kernels. → keep to review
- #6069 [FEM.Elastic] Cache stiffness matrices before computations "Tetra don't use the assembled matrix on purpose. It's supposed to be faster to use the factorization. If not, there is something wrong". This PR needs to be investigated by Alex. → keep to review
- #6068 [LinearSolver.Direct] Add some unit tests → ready
- #6067 [LinearSystem] ConstantSparsityPatternSystem: change key type to support bigger meshes Try to use unsigned 64 integer → keep to review
- #6061 [Mass] Introduce element-agnostic FEM mass Hugo made some review, Themis will do it too. → keep to review
- #6057 [visual] VisualModelImpl: add resetMaterial variable → ready
- #606 Component is the new controller Implements binding fo the BaseComponent Class. The issue was that BaseController and BaseComponent are basically the same class with just simple inheritance in between. In order not to duplicate the trampoline code, a CRTP implementation has been proposed. An runtime error on windows is to be fixed. → wip
- #6062 [FEM] Add support for elasticity of prisms
- #6072 [CMake] Remove Qt from all configurations
- #5987 [Geometry] Bugfixes and add unit tests
- #10 Fix solve_impl() mixups args and cusolverSpScsrcholBufferInfoHost() call with wrong values
- #9 Fix compilation with gcc
- Registration for the STC#21 is open: technical-committees > registration
- SOFAGym project
- Research initiative on which no one masters it currently
- Let's contact the researchers that used Gym with SOFA to decide on a direction for this project
- Template Method Pattern : PR sorting has restarted #6074
- Mateo's work aims at animating via Gaussian Splatting (Interval Shading)
- use a mesh shader (too recent for our supported OpenGL version)
- geometry shader, a workaround
- a work remains to be done to update our rendering API, using BGFX possibly
- #6075 [Visual] Fix crash when texturename is not leading to a valid texture file → keep to review
- #6074 [all] Apply template method pattern to SOFA Core → see technical discussions
- #6055 [CMake] Activate the errors in scene checking in the dev configurations About 480 scene check warnings that we would need to fix at one point. → close
- #5987 [Geometry] Bugfixes and add unit tests Discussion about whether or not the function computing barycentric coordinates for a triangle should return a value (negative) when the point is out from the triangle. This PR should not affect performances → ready
- #605 Add binding for modifying and adding entries to sparse matrices Flag auto-compress at compilation exists for sparse matrices. To be checked whether it is used for both mechanical / constraint matrices. Aiming at doing a Mapping written in Python (apply, applyJ, applyJT). The issue is that applyJT works with matrices and the binding does not allow for this → ready
- #218 Update doc with Pixi installation → keep to review
- #80 Remove draft check → ready
- #280 Make both CTRL keys active → ready
- #279 Minor cleaning on camera → ready
- #6070 [FEM.Elastic] Fix includes
- #6066 [FEM.Elastic] FEMForcefield: getExecutionPolicy did not use the provided data
- #6039 [all] In RequiredPlugin, use pluginName instead of name
- #6059 [SceneChecking] Update message for missing RequiredPlugin
- #6063 [CI] Update pixi lockfile
- #6060 [Framework] Fix warnings from modern gcc/clang
- #604 [All] Deprecation: replace BaseObject with BaseComponent
- #603 [RequiredPlugin] Use pluginName instead of name
- Registration for the STC#21 is open: technical-committees > registration
- Pixi infrastructure is officially supported since the merge of #5252
-
#6063 [CI] Update pixi lockfile
- PR is not triggering the Pixi CI, except when a pixi file is modified
- PR is green on CI 👍
- Remark: hard to trust updates of so many packages
-
#6044 Eigen 3.4.1 and 5.01 available and more third party updates
- SOFA supports the last Ubuntu LTS which means that the version of the dependencies is frozen for two years each time, while allowing ourselves to update some sparsely. All dependencies will be updated at once for the next LTS
- Question : how to generate a mesh with quadratic elements?
- MechanicalObject needs to be extended, the elements too
- Discussions with Mimesis could be of interest
- VTK seems to support quadratic elements (cell type name, vtkQuadraticTetra)
- Missing : mappings for quadratic, even if we could use our existing linear mapping
- Cuda code : we might try to implement new version of linear solvers on GPU starting from the example of the CudaSparseLDLSolver of Alex, and maybe a CG using AI agents. Might also rework the CPU version of the LDL using a new lib doing sparse work SuiteSparse.
- #6063 [CI] Update pixi lockfile → ready
- #6062 [FEM] Add support for elasticity of prisms Add a specilization of FEM for prisms. Add a regression test in the validation folder. Need review from the team. → keep to review
- #6061 [Mass] Introduce element-agnostic FEM mass It's similar to the elasticity forcefields. Based on the same design, so working similarly. It relies on a nodal expression of the mass density to better support heterogeneity. Need profound reviews. Even when updating a regression test he didn't have to update the regression reference, meaning that we have the same behavior. An other example using tetraerdra should be updated using this new mass, even using Eulalie's engine that compute the mass density from the total mass. → keep to review
- #6060 [Framework] Fix warnings from modern gcc/clang → merged
- #6059 [SceneChecking] Update message for missing RequiredPlugin → ready
- #6057 [visual] VisualModelImpl: add resetMaterial variable Variable should be renamed, set as protected, a getter should be added, a documentation also. And the pointer towards when it is used would be nice → keep to review
- #6055 [CMake] Activate the errors in scene checking in the dev configurations Good demonstration, that could be the start of a dev sprint. Keep it open and then restart the CI once the #6039 would be merged. Drafted. → keep to review + draft
- #6039 [all] In RequiredPlugin, use pluginName instead of name One scene missing (Validation/Cantilever) → keep to review
- #5987 [Geometry] Bugfixes and add unit tests Wait one last week for a last review → then ready
- #604 [All] Deprecation: replace BaseObject with BaseComponent Rebased, wait for CI then ready → keep to review
- #603 [RequiredPlugin] Use pluginName instead of name → ready
- #222 [All] Deprecations: fix type::Vec casting and BaseObject with BaseComponent Simple API should also be renamed, BaseObjectDescription, ObjectFactory, the addObject() Python interface → ready
- #221 [RequiredPlugin] Use pluginName instead of name Strange regression on MacOS, check then ready → keep to review
- #219 [InterventionalRadiologyController] fix when giving 0 as index for fixFirstNodesWithUntil → ready
- #218 Update doc with Pixi installation Remove info about Qt, remove the not-supported plugins. Move the manual installation among the alternative solutions. Other OS to be done. → wip
- #32 Update imageregistration.scn WARNING scenes using old plugin names are not launched by the CI. This might be the reason why the scene wasn't launched by the CI. → ready
- #2 Enable loading cell/point data arrays in the BaseVTKLoader Need review → keep to review
- #6033 [Mapping.Linear] Add applyJT for matrices for IdentityMultiMapping
- #6056 [CI] Fix conda ci curl call
- #6058 [Type] FullySymmetric4Tensor: fix compilation error on macos/xcode 26
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes
- #6038 [Simulation.Core] Add warning if RequiredPlugin uses its name to load a plugin
- #6048 [SofaCUDA] init: print info about driver and runtime version
- #6046 [Framework] Remove warnings by adding compilation time checks
- #6045 [Sofa.Config] Remove already define macro warning
- #6025 [SceneChecking] Introduce SceneCheckSpecialCharacters
- #6050 [LinearAlgebra] Fixed element for lower triangular part of BTDMatrix
- #6042 [SceneChecking] CMake option to treat warnings as errors in SceneChecking
- Registration for the STC#21 is open: technical-committees > registration
- Pixi infrastructure is officially supported since the merge of #5252
- Pixi installation could be added on each OS documentation to advise using it for install
- Full replacement for Windows
- "Manual installation (for developers)" could be kept on Ubuntu
- For MacOS, it has to be investigated
- Sofa.VTK
- Check the Conda packages of VTK, they might be modular
- The plugin
- Make a PR adding the plugin to the supported plugins
- Make a Python example scene to load VTK mesh
- #6050 Fixed element for lower triangular part of BTDMatrix → ready
- #6048 [SofaCUDA] init: print info about driver and runtime version → ready
- #6046 [Framework] Remove warnings by adding compilation time checks → ready
- #6045 [Sofa.Config] Remove already define macro warning → ready
- #6043 [SofaMatrix] Try loading extensions based on the GUI PR was to ease simply the use of the plugin. It brings a additional way to handle extensions. This PR should be closed and replaced by PR on the extensions to explicitly register objects of the super plugin into the factory → close
- #6042 [SceneChecking] CMake option to treat warnings as errors in SceneChecking Enable the option on the CI → ready
- #6039 [all] In RequiredPlugin, use pluginName instead of name Wait for Ci then ready. Might be good to also apply this to the SofaPython3 scenes. → keep to review
- #6038 [Simulation.Core] Add warning if RequiredPlugin uses its name to load a plugin Replace ##6026 → keep to review
-
#6033 [Mapping.Linear] Add applyJT for matrices for IdentityMultiMapping
Think about simplification of such
applyJT()functions. → to review - #5995 Robustify links reading Draft PR to have a workaround on Links for Lucas' & Leo's work. → wip
- #5987 [Geometry] Bugfixes and add unit tests Review needed here → keep to review
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes PR is green, let's get it merged → ready
- #220 [InterventionalRadiologyController] fix potential div by 0 in computeInstrumentsCurvAbs → ready
- #219 [InterventionalRadiologyController] fix when giving 0 as index for fixFirstNodesWithUntil Wait for erik to accept the PR → then ready
- #345 [CI] Add sofa-test-action Add time out in PR → keep to review
- #81 Add sofa-test-action Investigate Windows error → keep to review
- #174 [CI] Add sofa-test-action Typos fixed and some tests were failing → keep to review
- #6030 [Type] Quat: factorize matrix code
- #6032 [Core] Introduce WriteAccessor move constructor
- #6037 [Sofa.Helper] Fix a few warnings
- #6036 [Helper] ScopedAdvancedTimer: add a compile-time check on string argument in macros
- #6022 [Type] Vec: Short-circuit toVecN for same-type conversions
- #5974 [SofaCUDA] FixedProjectiveConstraint: Fix for double templates
- #6053 [Conda-CI] Fix launch action
- #6052 [Conda-ci] Add hash info for glfw in the payload
- #6040 [Simulation] Update advice to use RequiredPlugin using the Data pluginName
- #6020 [all] Another round of renaming of BaseObject to BaseComponent
- #6000 [ODESolver.Forward] Support mapped masses in EulerExplicitSolver
- #5981 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to improve readability and add unit tests
- #5979 [Helper] Add
getNamemethod to allMessageHandlerimplementations and update related tests - #5920 [Mass] Add unit test framework and tests for Mass components
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field
- #5989 [LinearAlgebra] Various bugfixes and add unit tests
- #6035 [Type] vector: Fix warning(error) about implicit cast of long into int
- #6029 [Core] Fix MeshLoader parse method when calling super method
- #590 Add
getNamemethod to MessageHandler classes and bindings - #585 Fix rightBeforeLoadingScene method overloading
- #217 AdaptiveBeamForceFieldAndMass:move step-constant things out of the loop in addForce
- #218 AdaptiveBeamMapping: remove unused buffer mechanism
- Registration for the STC#21 is open: technical-committees > registration
- Pixi infrastructure is now officially supported ! Since the merge of #5252, you can download and build sofa in only three steps without any environment installation :
- Clone SOFA : https://github.com/sofa-framework/sofa
- Install pixi : https://pixi.prefix.dev/latest/installation/
- Launch the build : run
pixi run -e supported-plugins buildin the sofa source folder
- #6025 [SceneChecking] Introduce SceneCheckSpecialCharacters Special characters in object names break links paths. This scene checker ensure that those characters are tracked and warning displayed. PR [#6026 [Simulation.Core] Refactor logic of loading a plugin from a RequiredPlugin name] tries to automatise the required plugins case where the name is used intead of another data. But we really should disable this feature. A compatibility layer will be added by Alex.
-
#6031 [Tracy] Fix compilation when enabling Tracy
A PR broke the compilation of SOFA with Tracy because it uses a dynamic name when Tracy expects
constexpr. To fix this a new PR introduced a new set of macro enabling this. It works with Tracy now, but the issue is that still, the CI will not see when it is not used for future dev. #6036 introduced a compile time check so that in the future we will track those errors. - Question about dropping explicit solvers. They are a good entry point for ODE solvers in term of learning and also for testing dev. It might even be relevant for multiphysics simulations.
- #6036 [Helper] ScopedAdvancedTimer: add a compile-time check on string argument in macros → ready
- #6035 [Type] vector: Fix warning(error) about implicit cast of long into int → ready
- #6033 [Mapping.Linear] Add applyJT for matrices for IdentityMultiMapping Wanted to check for mapped mass under multimapping that those masses are correctly transferred to the main DOFS. It was actually not working because of a lack of API implementation in the IdentityMultiMapping. Need reviews. → keep to review
- #6032 [Core] Introduce WriteAccessor move constructor Add tests to clarify what appends when the write accessor is moved → then ready
- #6030 [Type] Quat: factorize matrix code It might be good at one point to simplify this API and give correct names. To deprecate it we could add a warning when using this matrix. → ready
- #6029 [Core] Fix MeshLoader parse method when calling super method → ready
- #6026 [Simulation.Core] Refactor logic of loading a plugin from a RequiredPlugin name see technical discussions → keep to riview
- #6025 [SceneChecking] Introduce SceneCheckSpecialCharacters → ready
- #6022 [Type] Vec: Short-circuit toVecN for same-type conversions Avoid overhead when the input and the output type are equivalent. The compiler does it properly most of the time when the compilation is optimized. → ready
-
#6020 [all] Another round of renaming of BaseObject to BaseComponent
Let's wait for the windows CI
→ then ready -
#6000 [ODESolver.Forward] Support mapped masses in EulerExplicitSolver
If a mass is mapped, by default the mass is considered as non diagonal. Loosing the fast property of implicit solvers, but it is not very used. At least this offers a working mechanism.
→ ready - #5989 [LinearAlgebra] Various bugfixes and add unit tests → ready
- #5987 [Geometry] Bugfixes and add unit tests Need real review → keep to review
- #5981 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to improve readability and add unit tests → ready
-
#5979 [Helper] Add
getNamemethod to allMessageHandlerimplementations and update related tests Wait for windows CI → then ready - #5920 [Mass] Add unit test framework and tests for Mass components → ready
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field It is ready, Alex added a lot of new scene test. He intend to add them to the regression tests. We can put them also on the performance regression tests, Alex will select a set of heavy load scenes to add them. If the added regression pass then it is ready. → keep to review
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes Wait for ubuntu to report status → then ready
-
#590 Add
getNamemethod to MessageHandler classes and bindings Wait for the SOFA PR → keep to review - #585 Fix rightBeforeLoadingScene method overloading → ready
- #219 [InterventionalRadiologyController] fix when giving 0 as index for fixFirstNodesWithUntil Maybe adding a warning would be great. → then ready
- #218 AdaptiveBeamMapping: remove unused buffer mechanism → ready
- #217 AdaptiveBeamForceFieldAndMass:move step-constant things out of the loop in addForce → ready
-
#103 add the hash of the path to the test name
Name of scenes where used to give the name of the test to GTest. So if you have two scenes with same name in two separated folders, gtest would break. Need to be tested on a opened SOFA PR with a ci-depends-on.
→ keep to review
- #345 [CI] Add sofa-test-action Need to fix timeout → keep to review
- #344 [behavior] Rename epsilon by energyWeight → keep to review
- #81 Add sofa-test-action Need to fix action → keep to reveiew
- #174 [CI] Add sofa-test-action Need to fix action → keep to review
- #2 Enable loading cell/point data arrays in the BaseVTKLoader Question on some uncommon types (int8) present in VTK. They should be converted in the usual SOFA types. If they are indices we need to cast them to sofa::Index. The team need also to make a review on this PR. → keep to review
- #5978 [Helper] Replace console message handler instantiation with singleton usage
- #6031 [Tracy] Fix compilation when enabling Tracy
- #6034 [Sofa.Topology] Treat warnings as errors
- #6024 [CMake] Add path to the windeppack to help cmake find it
- #6019 [Collision.Detection] SubCollisionPipeline: fix timings
- #5973 [SofaCUDA] SofaCUDA is now a meta-plugin of two plugins: SofaCUDA.Core and SofaCUDA.Component
- #6028 [Sofa.Geometry] Treat warnings as errors
- #6027 [Sofa.Type] Treat warnings as errors
- #5971 [SofaCUDA] GUI: create extension to use Sofa.GUI with SofaCUDA
- #5968 [SofaCUDA] move Qt-related code
- #5967 [SofaCUDA] Reorganize files and components
- #6023 [CMake] Add missing install compat headers for Sofa.Component.LinearSystem
- #6021 [Geometry] Prism: remove warning about multiline comment
- #6004 [Core] Use
toBaseComponent()instead oftoBaseObject() - #5998 [LinearSystem] Remove stale cached components
- #6015 [CMake] Fix TinyXML2 cmake module for windeppack
- #6014 [CI] Fix scene tests by ignoring Cuda scenes from benchmarks
- #6011 [CI] Update pixi lockfile
- #6013 [CI] Fix title and label in update pixi lockfile action
- #6012 [CI] Change name of pr and tags for update pixi lockfile PR
- #6010 [CI] Add action to update pixi lockfile
- #5252 [Pixi][CI] Add pixi support
- #5991 [Simulation] Move MappingGraph class from Sofa.Component.LinearSystem to Sofa.Simulation.Core
- #5988 [Defaulttype] RigidTypes: Fix various bugs in RigidCoord/RigidMass and add unit tests
- #5984 [Topology.Mapping] Introduce component
Hexa2PrismTopologicalMapping - #5980 [Type] Quat : Add more unit tests and two bugfixes
- #5983 [examples] Mitigate mesh-induced anisotropy in cantilever beam simulations
- #5961 [SofaCUDA] Call register functions in the plugin initialization function
- #5965 [SofaCUDA] Cleanup cmake file and remove obsolete options
- #593 Support all types of mappings
- #588 Introduce bindings for MessageDispatcher
- #399 Update on Transform and Quat bindings
- #599 Use sofa-test-action in github action
- Registration for the STC#21 is open: technical-committees > registration
- Master M1 in Lille make some offering for master student to work on desired topics (what started the work on Jupyter Notebook)
- #6009 [Core] BaseNode: Remove usage of BaseObject alias → ready
-
#6004 Use
toBaseComponent()instead oftoBaseObject()CI fails on all OS (find and replace to be further applied) → keep to review - #6000 [ODESolver.Forward] Support mapped masses in EulerExplicitSolver Need more reviews → keep to review
- #5998 [LinearSystem] Remove stale cached components When using penalities, ForceField appears and disappears. But the LinearSystem was keeping references towards them, leading to a crash. → ready
-
#5995 Robustify links reading
This work was needed because of the work on serialization. In order to make this work we will need to drop the
@object[int]→ wip - #5991 [Simulation] move MappingGraph class from Sofa.Component.LinearSystem to Sofa.Simulation.Core → ready
- #5989 [LinearAlgebra] Various bugfixes and add unit tests One additional review is expected here → keep to review
- #5988 [Defaulttype] RigidTypes: Fix various bugs in RigidCoord/RigidMass and add unit tests → ready
- #5987 [Geometry] Bugfixes and add unit tests Need more review → keep to review
-
#5984 [Topology.Mapping] Introduce component
Hexa2PrismTopologicalMapping→ ready - #5983 [examples] Mitigate mesh-induced anisotropy in cantilever beam simulations → ready
- #5981 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to improve readability and add unit tests Test triggered on Windows, then ready → keep to review
- #5980 [Type] Quat : Add more unit tests and two bugfixes → ready
-
#5979 [Helper] Add
getNamemethod to allMessageHandlerimplementations and update related tests Failing on Windows, restart CI → keep to review - #5978 [Helper] Replace console message handler instantiation with singleton usage → keep to review
- #5973 [SofaCUDA] SofaCUDA is now a meta-plugin of two plugins: SofaCUDA.Core and SofaCUDA.Component → ready
- #5971 [SofaCUDA] GUI: create extension to use Sofa.GUI with SofaCUDA → ready
- #5968 [SofaCUDA] move Qt-related code → ready
- #5967 [SofaCUDA] Reorganize files and components → ready
- #5965 [SofaCUDA] Cleanup cmake file and remove obsolete options → ready
- #5964 [SofaCUDA] Clean dead code due to required CUDA version → ready
- #5962 [SofaCUDA] examples: replace PHP scenes with python3 → ready
- #5952 [Mapping] Introduce SubsetTopologicalMultiMapping with multiple topology inputs and one output → wip
- #5936 [SpringForceField] Add stiffness matrix computation to JointSpringForceField → wip
- #5920 [Mass] Add unit test framework and tests for Mass components Hugo will review it → keep to review
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field → keep to review
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes Need a file to test → keep to review
- #599 Use sofa-test-action in github action → ready
- #593 Support all types of mappings Fred suggested to instantiate bindings using SReal. Compiling in float or double would change the name of the class to be used in Python. Either we should remove the option of float compilation or find a solution to name Python objects to avoid influence of the TypeInfo. In XML we had alias for this. Issue created here #600 Non-templated Python class names → ready
-
#590 Add
getNamemethod to MessageHandler classes and bindings Related to a SOFA PR → keep to review - #588 Introduce bindings for MessageDispatcher → ready
- #585 Fix rightBeforeLoadingScene method overloading Ready wait for the #599 to test the scenes → ready
- #399 Transform bindings Ready wait for the #599 to test the scenes → ready
- #275 Fix some crash Wait for CI after merging review → keep to review
- #31 [CI] Add sofa-test-action → ready
- #22 [CI] Add sofa-test-action → ready
- #345 [CI] Add sofa-test-action Fix timeout issue → keep to review
- #344 [behavior] Rename epsilon by energyWeight Depends on #77 → keep to review
- #81 Add sofa-test-action Works for most OS apart from Windows. Scene and regression tests are now triggered. To be fixed, then ready. → keep to review
- #77 [solver-constraint] Rename epsilon by energyWeight Wait for #81 to be merged, then launch the sofa-test-action on this one → keep to review
- #174 [CI] Add sofa-test-action → keep to review
- #6005 [all] Replace
BaseObject::canCreatebyBaseComponent::canCreate - #6007 [Core] BaseContext: Remove usage of BaseObject alias
- #6006 [Core] Fix warning unreachable code in BaseClassNameHelper.h
- #6003 [all] Replace BaseObject.h by BaseComponent.h
- #5985 [Visual] Compute bounding box in VisualMesh
- #6002 [Visual] Consider sphere boundaries when computing bbox in VisualPointCloud
- #6001 [Visual] add support of 2d and 1d for TrailRenderer
- #5996 [Example] BUFIX: Adjust relative paths in fallingSOFA.scn file
- #5992 [Constraint.Projective] Fix warning in DirectionProjectiveConstraint
- #5982 [example] Add a demo scene showcasing mesh-induced anisotropy effects
- #5917 [Type] Fix type conversion in RGBAColor
- #5976 [Visual] Scene center and radius are not longer cached
- #5994 [CMake] Add missing install compat headers for Sofa.Core
- #5963 [LinearSystem] Update the "M, B, K factors" of the linear system when necessary
- #5947 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to support MeshTopology output
- #5934 [Core] Rename BaseObject to BaseComponent
- #5958 [Constraint] Add PCR direct constraint solver
- #598 Revert #581
- #572 Update cachix/install-nix-action to version 31
- #573 [Controller] POC: overall speedup
- #581 [CMake] Multi-Config: Avoid creating configuration-related folders for the python packages when building
- #594 Fix typo in method name
- A sprint on Prefabs took place earlier this week. Results will be presented at the upcoming STC#21
- #5891 [Core] BaseObject: remove components from the slave list Makes the mouse performer crash, see issue #111 on Compliance SofaGLFW. Will be tested. Click using the mouse performer creates a temporary mapper, a mechanical object and a spring. When removing it, someone may refer to it while it's deleted.
- #5989 [LinearAlgebra] Various bugfixes and add unit tests Some bug fixes from Claude. Need better review → keep to review
- #5988 [Defaulttype] RigidTypes: Fix various bugs in RigidCoord/RigidMass and add unit tests Some bug fixes from Claude. Need better review → keep to review
- #5987 [Geometry] Bugfixes and add unit tests Some bug fixes from Claude. Need better review → keep to review
-
#5985 [Visual] Compute bounding box in VisualMesh
Question on when to compute the BBox for this model. Do we compute it even when the object is not drawn ? If this is not the case, we might gain from implementing the template mthod pattern here for every objects.
The conclusion here is that if
computeOnlyVisibleis false, compute it, if it is true, then compute it only when display flags shows visual models. → wip -
#5984 [Topology.Mapping] Introduce component
Hexa2PrismTopologicalMappingMight want to add the swapping in a future PR. Ready next week. → keep to review - #5983 [examples] Mitigate mesh-induced anisotropy in cantilever beam simulations Fix SOFA examples where there is mesh_induced anisotropy. Need to update the regression files then ready → keep to review
- #5982 [example] Add a demo scene showcasing mesh-induced anisotropy effects → ready
- #5981 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to improve readability and add unit tests Let's wait for scene and regression tests, and better reviews → keep to review
- #5980 [Type] Quat : Add more unit tests and two bugfixes → ready
-
#5979 [Helper] Add
getNamemethod to allMessageHandlerimplementations and update related tests → keep to review - #5978 [Helper] Replace console message handler instantiation with singleton usage This pr uses a singleton to avoid memory leak. Let's launch the scene tests to see if debug info are well output. → keep to review
- #5976 [Visual] Scene center and radius are not longer cached → ready
- #5974 [SofaCUDA] FixedProjectiveConstraint: Fix for double templates Wait for other PR to be merged → ready
- #5973 [SofaCUDA] SofaCUDA is now a meta-plugin of two plugins: SofaCUDA.Core and SofaCUDA.Component Big boy, aggegating all the previous SofaCuda PRs. Test from Paul, then ready → then ready
- #5971 [SofaCUDA] GUI: create extension to use Sofa.GUI with SofaCUDA Split the GUI related code to deactivate it easily. Test from Paul, then ready → then ready
- #5970 [Haptics] Double iterations to fix LCPForceFeedback_test Test failing more then even now. Erik want to try reducing the complexity of the contact problem to be solved → close
- #5968 [SofaCUDA] move Qt-related code Test from Paul, then ready → then ready
- #5967 [SofaCUDA] Reorganize files and components Move files around. Test from Paul, then ready → then ready
- #5965 [SofaCUDA] Cleanup cmake file and remove obsolete options Remove a lot of deprecated codes using cudapp and never used code. Test from Paul, then ready → then ready
- #5964 [SofaCUDA] Clean dead code due to required CUDA version Remove all guarded codes by deprecated macros. Some classes do not have any namespace (cuda files). Test from Paul, then ready → ready
- #5963 [LinearSystem] Update the "M, B, K factors" of the linear system when necessary → ready
- #5962 [SofaCUDA] examples: replace PHP scenes with python3 Changed the PHP scenes into python scenes. Test from Paul, then ready → keep to review
- #5961 [SofaCUDA] Call register functions in the plugin initialization function Test from Paul, then ready → then ready
- #5958 [Constraint] Add PCR direct constraint solver Designed for a system in a NewtonRaphson, further PR will be opened about it. Suggestion will be implemented in another PR. → ready
- #5952 [Mapping] Introduce SubsetTopologicalMultiMapping with multiple topology inputs and one output Suggestion and reviews to be taken into account → keep to review
- #5947 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to support MeshTopology output → ready
- #5936 [SpringForceField] Add stiffness matrix computation to JointSpringForceField Create a scene to test the component and fix the inconsistency pointed in the review → wip
- #5934 [Core] Rename BaseObject to BaseComponent CI now passes (without all tests for now) → ready
- #5921 [Type] Mat: better cache locality for operator*(Mat) → ready
- #5920 [Mass] Add unit test framework and tests for Mass components Unit test failing. Review to be done and wait for updated CI → keep to review
- #5917 [Type] Fix type conversion in RGBAColor Still failing on the CI. An exception somewhere from a static point of view → keep to review
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field Reviews are being taken into account → keep to review
- #594 Fix typo in method name We could rename it removing the "constraint" from the name in the future → ready
- #593 Support all types of mappings Reviews to be taken into account → keep to review
-
#590 Add
getNamemethod to MessageHandler classes and bindings Related to a SOFA PR → keep to review -
#589 Message handlers are no longer cleared
This PR comes from testing the nodebook in a python context (using
with). In the notebook,SofaRuntime.init()clears all message handlers while one is being used when opening the context. SOFA and Python are both singleton and SofaRuntime behavior interferes with the messages. Work around is using the logs from the Python environment. → close - #588 Introduce bindings for MessageDispatcher One conflict. The naming should be updated accordingly to current convention. → wip
- #585 Fix rightBeforeLoadingScene method overloading SofaTestAction will be firstly configured and then this PR will be merged → keep to review
- #581 [CMake] Multi-Config: Avoid creating configuration-related folders for the python packages when building → ready
- #573 [Controller] POC: overall speedup → ready
- #572 Update cachix/install-nix-action to version 31 → ready
- #275 Fix some crash → keep to review
- #344 [behavior] Rename epsilon by energyWeight → keep to review
- #80 Update Conda CI to devel conda packages CI was done since the CI is now using the conda devel packages (SOFA + SofaPython3). SoftRobots plugin still needs to be compiled. → ready
- #77 [solver-constraint] Rename epsilon by energyWeight → keep to review
- #5914 [Config] Introduce CMake function to treat compilation warnings as errors
- #5935 [Constraint] Improve initialization and state validation in StopperLagrangianConstraint
- #5948 [Topology.Mapping] Support MeshTopology as output in Tetra2TriangleTopologicalMapping
- #5975 [Project] Update rules for pull-requests regarding AI
- #5946 [Topology] Add support for adding prism and pyramid elements in MeshTopology
- #5957 [All] Clean task scheduler usage
- #5966 [SofaDistanceGrid] Use the correct flag for miniflowvr activation
- #5972 [Type] Mat: Add unit tests for operators and related free functions
- #583 Add binding for
GetVersionand associated unit tests - #586 [doc] Use sphinx-design in order to fix doc generation
- #591 Remove unappropriate comment
- #587 Ignore the meshing scenes
- #570 [RPyC] Add new exposed methods to SOFA server
- #580 nix: update sources & lock
- #567 Add python modules that uses the CGAL binding
- #204 [examples] Add a thermo-elastic example
- #274 Add gizmos from compliance
- #278 update continuous_key_pressing in SofaGLFWBaseGUI
- #272 [Dependency] NFD: use the alias for nfd only if it exists
- #277 Add spaces for visualization in the documentation
- #276 Update shortcuts section with key events
- #269 Fix crashes when changing Mouse operation
- The sofa-test-action is now ready to be used/tested on your plugin CI
- Discussion about Jupyter Notebooks
- Working proof of concept (on a server from mybinder)
- A local installation with conda could be easily done
- Info : API changes in Eigen5 (PR merged by Traversaro)
- External contributions through AI
- A human has to be in the loop
- Our contributing rules will be updated too
- CUDA-less preset
- Let's amke the PR and see if it is interesting
-
#5973 [SofaCUDA] SofaCUDA is now a meta-plugin of two plugins: SofaCUDA.Core and SofaCUDA.Component
- Important work re-architecturing the SofaCUDA plugin
- Tests should be added and run using CUDA
-
#5958 [Constraint] Add PCR direct constraint solver
Wait for review + try implementing a generic LinearConstraintSolver unsing SOFA + Alex will try this solver with the incompressibility.
→ keep to review - #5957 [All] Clean task scheduler usage Some broadly used components where not using the task scheduler properly (by inheriting from TaskSchedulerUser) and thus forcing the nb of thread at maximum. This PR fixes it. → ready
- #5952 [Mapping] Introduce SubsetTopologicalMultiMapping with multiple topology inputs and one output Wait for Alex's review and the regression tests → keep to review
- #5948 [Topology.Mapping] Support MeshTopology as output in Tetra2TriangleTopologicalMapping Wait for review from IT3D → keep to review
- #5947 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to support MeshTopology output Wait for review from IT3D → keep to review
- #5946 [Topology] Add support for adding prism and pyramid elements in MeshTopology → ready
- #5936 [SpringForceField] Add stiffness matrix computation to JointSpringForceField Create a scene to actually test the component → keep to review
- #5935 [Constraint] Improve initialization and state validation in StopperLagrangianConstraint Take comment into account → wip
- #5934 [Core] Rename BaseObject to BaseComponent sofa-reviewers got notified. All OS CI are failing. Removing the CI depends on should fix it. → keep to review
- #5921 [Type] Mat: better cache locality for operator*(Mat) New unit tests have been added as asked. This PR is now based on #5972. Let's wait for the merge of 5972 → then ready
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field → changes to be taken into account
- #586 [doc] Use sphinx-design in order to fix doc generation → ready
- #585 Fix rightBeforeLoadingScene method overloading Waiting for Damien's feedback → keep to review
-
#583 Add binding for
GetVersionand associated unit tests Could be added in the__init__of the SOFA python package so that we can callsofa.getVersion()→ keep to review - #581 [CMake] Multi-Config: Avoid creating configuration-related folders for the python packages when building Check nothing has been broken on MSVC → keep to review
- #573 [Controller] POC: overall speedup → Feedback to be taken into account
- #572 Update cachix/install-nix-action to version 31 Waiting for Nix CI → keep to review
- #570 [RPyC] Add new exposed methods to SOFA server Pedagogical reasons are enough to keep the duplication → ready
- #204 [examples] Add a thermo-elastic example → ready
- #215 [All] Lifecycle for v26.06 → ready
- #276 Update shortcuts section with key events Need more communication on this → ready
- #275 Fix some crash → changes to be taken into account
- #274 Add gizmos from compliance Agreement with Alex. Let's create a fork and see if we can fetch it and add the header. Let's wait for Olivier's feedback. Make sure that the header does not include Compliance one. → keep to review
- #269 Fix crashes when changing Mouse operation → ready
- #5959 [Collision] CompositeCollisionPipeline: propagate reset calls on the sub collision pipelines
- #5953 [HyperElastic] Enable the SelfAdjointEigenSolver in Ogden
- #5943 [Mapping] Fix rigid mapping init
- #5960 [Mass] Add missing Vec2 template to DiagonalMass in the ObjectFactory
- #5956 [CI] Fix workflow that trigger conda-ci for devel conda packages
- #5942 [Collision] CompositeCollisionPipeline: add bwdInit for subcollision pipelines
- #5938 [Type] Default constructor zero-initialized
- #5918 [Testing] Modularize functions in ForceFieldTestCreation and add test of buildStiffnessMatrix
- #5907 [Type] Array/Vec: small refresh for modern C++
- #5904 [All] Security : memory management, destructors and al
- #5902 [All] Security: unsafe string operations
- #5885 [GitHub] Update install-nix-action to version 31
- #557 Example of a ForceField implemented with JAX
- #582 Fix code block indentation for createScene function
- #216 Use sofa-test-action
- #212 [mapping] BeamProjectionDifferenceMultiMapping: new feature and refactoring
- #100 [scripts] Adding RegressionHelper file with methods to write Error/Warning/Logs highlighted with colors
- #93 [scripts] Add option to load and compare old regression files
- #92 [scripts] Update SofaRegressionProgram to support both JSON and CSV format
- The sofa-test-action is now ready to be used/tested on your plugin CI. It is a reusable action that launches unit tests, scene tests and regression tests directly on your plugin for master commits and every PRs. It works on Ubuntu, MacOS and Windows. Here is an example PR adding the test to BeamAdapter : https://github.com/sofa-framework/BeamAdapter/pull/216 → Don't hesitate to try it out and give feedback !
- #5953 [HyperElastic] Enable the SelfAdjointEigenSolver in Ogden Let's update the regression tests → keep to review
- #5952 [Mapping] Introduce SubsetTopologicalMultiMapping with multiple topology inputs and one output Adding regression test is required + need a review from Alex → keep to review
- #5948 [Topology.Mapping] Support MeshTopology as output in Tetra2TriangleTopologicalMapping Let's wait from IT3D's reviews → keep to review
- #5947 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to support MeshTopology output Let's wait from IT3D's reviews → keep to review
- #5946 [Topology] Add support for adding prism and pyramid elements in MeshTopology Let's wait from IT3D's reviews → keep t o review
- #5944 [Nix] Update cachix/install-nix-action version to v31 Nix is failing. Maybe a rebase after the merge of #5885 might fix → wip
- #5943 [Mapping] Fix rigid mapping init Let's wait for the CI → then ready
- #5942 [Collision] CompositeCollisionPipeline: add bwdInit for subcollision pipelines Let's waut for the CI → then ready
- #5939 [Type] Initialize Mat and Vec with random values → closed
- #5938 [Type] Default constructor zero-initialized Let's wait for the regression tests. → then ready
- #5937 [LinearSolver] Add unit test for SparseLDLLinearSolver Take comment into acocunt → wip
- #5936 [SpringForceField] Add stiffness matrix computation to JointSpringForceField Need more review for next meeting → keep to review
- #5935 [Constraint] Improve initialization and state validation in StopperLagrangianConstraint Finish discussion → keep to review
- #5934 [Core] Rename BaseObject to BaseComponent → ready
- #5928 [Project] Start dev phase v26.06 → ready
- #5921 [Type] Mat: better cache locality for operator*(Mat) → ready
- #5920 [Mass] Add unit test framework and tests for Mass components Need to fix crash on Ubuntu → wip
- #5918 [Testing] Modularize functions in ForceFieldTestCreation and add test of buildStiffnessMatrix Wait for more reviews → keep to review
- #5917 [Type] Fix type conversion in RGBAColor Fixes compilaiton on Windows but crashes on unix. → wip
- #5915 [Config] Runs clang-tidy on specific targets during the build Take comment into account → keep to review
- #5914 [Config] Introduce CMake function to treat compilation warnings as errors This has been broken by anopther PR. → wip
- #5907 [Type] Array/Vec: small refresh for modern C++ → ready
- #5905 [Lifecycle] v26.06 : SOFA_HEADER_DEPRECATED Need to fix Qt compilation → wip
- #5899 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DEPRECATED A PR on at least SoftRobots.Inverse is needed (some other plugins might fail) → wip
- #5885 [GitHub] Update install-nix-action to version 31 It fixes NIX so let's merge this → ready
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field Take review into account → keep to review
- #581 [CMake] Multi-Config: Avoid creating configuration-related folders for the python packages when building Let's wait for Alex to test this PR on Windows and see if it still fits him. → keep to review
- #573 [Controller] POC: overall speedup Wait for Damien's review → keep to review
- #572 Update cachix/install-nix-action to version 31 Nix still failing. We might need to relaunch it after the PR on SOFA has been merged. → keep to review
- #570 [RPyC] Add new exposed methods to SOFA server Wait for Damien's review → keep to review
- #567 Add python modules that uses the CGAL binding → ready
- #557 Example of a ForceField implemented with JAX Hugo need to double ckeck with Léo → keep to review
- #216 Use sofa-test-action → ready
- #215 [All] Lifecycle for v26.06 → ready
- #214 [ci] Fix Regression url zip for other releases, not on master → close
- #212 [mapping] BeamProjectionDifferenceMultiMapping: new feature and refactoring We should add either a description of the object in C++ or an example scene. → ready
- #273 [SofaGLFW] Add FPS in the title bar 30% Overhead using imgui instead of GLFW for the default scene (more for some other), wait for the screenshot → then ready
- #272 [Dependency] NFD: use the alias for nfd only if it exists → ready
- #269 Fix crashes when changing Mouse operation Let's try it. → keep to review
- #100 [scripts] Just add some color in the logs to highlight errors wait for comment to be taken into account → keep to review
- #93 [scripts] Add option to load and compare old regression files → ready
- #92 [scripts] Update SofaRegressionProgram to support both JSON and CSV format → ready
- #5925 [Mass] Fix kinetic energy in MeshMatrixMass when lumped
- #5913 [Config] Enable W4 option for MSVC
- #5911 [Ordering] Remove deprecated 'ordering' datafield
- #5910 [CI] Add action to trigger conda packages "nightly" builds
- #5929 [Helper] FileSystem::createDirectory: fix missing return warning
- #5931 [Framework] BaseMatrix:: Remove warnings about overloaded-virtual about add()
- #5888 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DISABLED
- #579 fix wrong parameter order in addDForce and addKToMatrix
- #578 Add bindings for prism and pyramid topology functions
- #577 ordering field is deprecated, use NaturalOrderingMethod instead
- #576 Redirect SOFA logs to Python's sys.stdout using a custom PythonMessageHandler
- #561 Clean getRecords in Timer module
- Update about TIRREX
- sofa-core library is now officially on the conda forge
- Another PR is pending on conda forge since 🎄
- RigidBodyDynamics plugin with a robotic hand
- Pixi CI
- Starting discussion about mapped mapped
- Presentation of Jupyter Notebook
- powerful tool to lean/teach SOFA
- work of an intern extended by Alex
- tests are added to check the notebook
- it would be nice to get an online version (using notebook.link from QwantStack or mybinder.org) avoiding installing SOFA. The solution using notebook.link requires a web-assembly compilation for this.
- #579 fix wrong parameter order in addDForce and addKToMatrix → ready
- #578 Add bindings for prism and pyramid topology functions → ready
- #577 ordering field is deprecated, use NaturalOrderingMethod instead Modify scene to follow depreciation → ready
-
#576 Redirect SOFA logs to Python's sys.stdout using a custom PythonMessageHandler
This could have be implemented in the
__init__of the module SofaRuntime for instance. Could be done in another PR. → ready - #573 [Controller] POC: overall speedup New changes made by Fred. Pending Damien's review, then ready → keep to review
- #572 Update cachix/install-nix-action to version 31 Changing version made the nix ci crash. → wip
- #567 Add python modules that uses the CGAL binding → ready
- #561 Clean getRecords in Timer module → ready
- #557 Example of a ForceField implemented with JAX If working as expected, let's get this merged. Examples of ForceFields are not extensive enough, we should work on this. Alex is working on a → keep to review
- #214 [ci] Fix Regression url zip for other releases, not on master CI is broken because of last commit → wip
- #212 [mapping] BeamProjectionDifferenceMultiMapping: new feature and refactoring Need real review during next week → keep to review
- #269 Fix crashes when changing Mouse operation Need to test if value entered are kept even without the static value → keep to review
- #100 [scripts] Just add some color in the logs to highlight errors Need real review during next week → keep to review
- #93 [scripts] Add option to load and compare old regression files Need real review during next week → keep to review
- #92 [scripts] Update SofaRegressionProgram to support both JSON and CSV format Need real review during next week → keep to review
- #344 [behavior] Rename epsilon by energyWeight Wait for #77 → keep to review
- #77 [solver-constraint] Rename epsilon by energyWeight Should rather use an homogeneous way to manage the lifecycle in all codes. Avoid the boiler plate code in the init. Paul will test this PR soon with his new sofa-test-action. Olivier will also take a look at the failing conda CI and update it with Pixi → keep to review
- #5945 [Simulation.Core] use
getNodeObjectsfor cleaner iteration over objects - #5877 [Type] Introduce function to compute the determinant of any square matrix
- #5940 [Type] Add unit tests for matrix default constructors
- #5932 [Framework] remove virtual keyword for final classes
- #5909 [Type] Mat: add unit tests and fix isDiagonal()
- #5903 [All] Security : nullptr checks
- #5901 [all] Security: fix overflows
- #5891 [Core] BaseObject: remove components from the slave list
- #5889 [Config] CMake: Shallow clone when using the git-fetch mechanism
- #5898 [all] Clean uncovered lifecycle codes
- #5892 [Lifecycle] v26.06 : SOFA_HEADER_DISABLED
- #5883 [script] replace bash script by Python
- #5841 [Collision] Introduce multi-staged collision pipeline
- #5916 CMake & Nix: add tight_inclusion
- #99 [scripts] Fix recursive node parsing was forgetting root and add option to test if MechanicalObject is mapped
- #98 [refs] rename all references files with new default name
- #96 [References] Add CompositeCollisionPipeline scenes
- Update of the release:
- binary created
- official publication will be done within the next 48h
- Presentation of Jupyter Notebook (postponed next week)
-
#5916 CMake & Nix: add tight_inclusion
- process to add a rockies dependency (Tight Inclusion)
- should be validated by STC
- researchers coding, not finished
- present in conda but cannot install properly : patch not in upstream (divergence between packages)
- symptomatic error : know what you miss
- define our relationship with the authors
- An evolution of the process of adding a dependency in the core is needed. To make sure every time a dependency is added we need to make sure every consequences are though of.
- target
SofaGTestMain- target to be linked against all targets for unit tests
- allow to init() and cleanup() before and after all tests
- install is not done usually since we do not distribute it
- libraries targets sorted in a folder
librariesdespite the commandset_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Sofa.Framework)- command
Sofa.Frameworkis useless : two contradictory intentions sofa_add_* (module/library/plugin) will do the sort, Sofa.Component will overwrite to sort into aSofa.Componentfolder - clarify this later
- command
-
#5891 [Core] BaseObject: remove components from the slave list
- if a component is overriding this function and not calling
super::cleanup() - the template method pattern would solve this
- if a component is overriding this function and not calling
-
#573 [Controller] POC: overall speedup
- We could have a review from Damien
- Need to take a dynamic change of the method into account (see pr comment)
-
#5938 [Type] Default constructor zero-initialized
- we had a component if not initialized (with no_init). This has been changed since #4396
- this went un-noticed due to the compilers we use
- we should initialize to zero by default, explicitly
- #5916 CMake & Nix: add tight_inclusion → ready
- #5911 [Ordering] Remove deprecated 'ordering' datafield Scene tests are falling → wip
- #5909 [Type] Mat: add unit tests and fix isDiagonal() → ready
- #5908 [Collision.Geometry] Use StateAccessor and Topology accessor Need time to fix it → keep to review
- #5907 [Type] Array/Vec: small refresh for modern C++ Remove stl version of inner product and accumulate because of a slow down in debug debug + add a comment → keep to review
- #5905 [Lifecycle] v26.06 : SOFA_HEADER_DEPRECATED Need to fix compilation → wip
- #5904 [All] Security : memory management, destructors and al → ready
- #5903 [All] Security : nullptr checks → ready
- #5902 [All] Security: unsafe string operations → ready
- #5901 [All] Security: fix overflows Remove wouldOverflowCompliance and use the hardening method → ready
- #5899 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DEPRECATED SoftRobots.Inverse needs an update → keep to review
- #5898 [all] Clean uncovered lifecycle codes → ready
- #5895 [Spring] Add empty buildStiffnessMatrix in JointSpringForceField Superseed by #5936 → close
- #5891 [Core] BaseObject: remove components from the slave list see technical discussions → ready
- #5889 [Config] CMake: Shallow clone when using the git-fetch mechanism → ready
- #5888 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DISABLED Take remarks into account then ready → keep to review
- #5885 [GitHub] Update install-nix-action to version 31 Merge 5916 then this one if nix green → keep to review
- #5883 [script] replace bash script by Python → ready
- #5877 [Type] Introduce function to compute the determinant of any square matrix → keep to review
- #5873 Quick test on current regression on the CI Would be a real plus to detect / warn when a test reference is not found → closed
- #5841 [Collision] Introduce multi-staged collision pipeline → ready
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes Waiting for a mesh to test → wip
- #557 Example of a ForceField implemented with JAX Another try should be done → keep to review
- #269 Fix crashes when changing Mouse operation Paul will test, then ready → keep to review
- #266 Show more information about SOFA → ready
- #99 [scripts] Fix recursive node parsing was forgetting root and add option to test if mechanicalObject is mapped Difference between current regression and new one with a error of 10^-7 with a threshold if 10^-8. Using json has been finally selected, versatile → keep to review
- #98 [refs] rename all references files with new default name → ready
- #79 [extlibs] fixes qpOASES libs conflict Integration of changes from the original repository of qpOASES. The use of the same BLAS version could also be an option. The use of ProxSuite could be the next way to go. Could be discussed at the next STC. → ready
- #5924 [Helper] Match ubuntu implementation of create dir for Windows
- #5926 [Type] Deprecated determinant for non-square matrices
- #5919 [Elastic] Load required plugin in test
- #5906 [all] Fix some compilation warnings
- #5900 [All] Security: malloc checks
- #5880 [CMake] Fix cmake error on already defined metis target
- #5879 [Tools] Fix windows postinstall
- #5871 [Lagrangian.Solver] UnbuiltConstraintSolver: Fix resetForUnbuiltResolution (constraint re-ordering)
- #5857 [helper/system] FileRepository: adds findAllFilesInRepository method
- #5923 [SofaMatrix] Rollback to metis 5.1.0
- #5927 [v25.12] Add changelog
- #575 include
sofa/core/fwd.hinstead of the forward declaration - #574 [Example] MessageHandler: fix mixed-up quote/doublequote
- #566 Generalize use of initRoot
- #556 Remove the implementation of getPathName as it is now in Sofa.Core.BaseData
- #569 Introduce an example of a custom message handler
- #571 Follow lifecycle v26.06 deprecated header : task
- #271 Remove some compilation warnings
- #270 Introduce widget for bounding box
- #267 Resize the plugins window the first use
- #265 Open documentation in context menu
- #264 move bool implementation in a dedicated file
- #97 [scripts] Fix support of REGRESSION_DIR env variable
- #88 [scripts] Add option to display reference state along the simulation to visually compare them
- #91 [scripts] Add filter to select scenes for regression detection
- Exceptionally the SOFA dev meeting took place on Friday afternoon
- v25.12 release should come before the end of January !
- Issue with Metis (see ##5878), the binaries are crashing in the Eigen support code for Metis when version is 5.2.1. Full debut mode is not helping analyzing the bug. The error stops when simulation speed decreases, thus possibly linked to multithreading. For the release, we suggest to roll-back to 5.1.0. Either the problem is in SOFA else we should signal the issue to mark the Conda package as broken. EigenSimplicialLDLT using Metis is crashing too. This would advocate that since SOFA + Eigen experience the issue, the problem origins in Metis.
- Blinking LCPForceFeedback_test #4671: rather than deactivating the test, we could investigate the number of iterations computed by the Gauss-Seidel in the LCPForceFeedback and decrease this number (+ update the reference values)
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field: this comes from the Elasticity plugin. Linear elasticity is introduced in two different classes : pure linear elasticity and co-rotational elasticity. PR is not finished yet. The component agnostic from the type of element is not yet added. Other features like test codes, benchmarks (in C++, in Python), the mass (not necessarily restricting to a tensor mass implementation, approximating non-simplex cases), plasticity are still present in the plugin.
- #5889 [Config] CMake: Shallow clone when using the git-fetch mechanism A ci-depends-on has been added in the PR description to test → keep to review
- #5888 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DISABLED Lifecycle has started, four PRs are open to remove and disable codes → keep to review
- #5885 [GitHub] Update install-nix-action to version 31 New dependencies appeared in SOFA (nholmann_json, tight_inclusion) however tight_inclusion is not yet distributed with Nix. → keep to review
- #5883 [script] replace bash script by Python Compilation issue, due to "unexpected character" → wip
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field Need a thorough review from as many people as possible → keep to review
- #5880 [CMake] Fix CMake error on already defined Metis target Problem faced when compiling with various versions of Metis → ready
- #5879 [Tools] Fix windows postinstall Under Windows, few people were using the install process outside from the release → ready
- #5878 [tools] Remove autoload of Sofa.Metis for windows A new PR will be done to change the Metis version → closed
- #5877 [Type] Introduce function to compute the determinant of any square matrix Pending Paul's implementation → keep to review
- #5876 [Type] Remove non-square determinant PR is not to merge because since the deprecation layer is not implemented. Later a generic implement would be proposed. → wip
- #5875 [Lagrangian.Solver] UnbuiltConstraintSolver: implement hotstart Pending reply to reviews → keep to review
- #5873 Quick test on current regression on the CI This PR is a draft, adding two changes to check if the regressions are well caught. Before this was not caught, PR#98 has to be checked, reviewed and merged to fix regressions. → draft
- #5857 [helper/system] FileRepository: adds findAllFilesInRepository method → ready
- #5841 [Collision] Introduce multi-staged collision pipeline Pending Paul's review → keep to review
- #5822 [Spring] SpringForceField now handles configuration singularity Create test case reproducing the singular configuration. Investigate the role of regParams. Remove magic numbers and make it as data → wip
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes PR updated but a mesh would needed to actually test the PR → keep to review
- #5383 [MechanicalLoad] Factorize damping forcefields Scene tests failing → wip
- #5906 [all] Fix some compilation warnings
- #5827 [SofaCUDA] Apply new factory registration mechanism
- #5897 [StateContainer] Fix warning in MechanicalObjectVOp_test
- #5896 [ODESolver] Minor fix warning in NewtonRaphsonSolver_test
- #5894 [Core] Fix warning in CollisionModel
- #5886 [Mass] Remove wrong URL from doxygen
- #5884 [Core] Show closest matches only if any
- #5874 [CMake] Bump SOFA version v25.12.00
- #5869 [CMake] Remove CGALPlugin from supported plugins
- #556 Remove the implementation of getPathName as it is now in Sofa.Core.BaseData
- #569 Introduce an example of a custom message handler
- #571 Follow lifecycle v26.06 deprecated header : task
- #270 Introduce widget for bounding box
- #267 Resize the plugins window the first use
- #265 Open documentation in context menu
- #264 move bool implementation in a dedicated file
- #261 Fix ImGui DPI scaling by using DPI-scaled fonts and removing inverse global scaling
- #91 [scripts] Add filter to select scenes for regression detection
- #90 [scripts] Add description for the input argument
- #89 [scripts] error message if directory not exist
- v25.12 release should come before the end of January !
- The consortium will take part to a workshop on simulation @ICRA2026, thanks to Ziqiu Zeng at NUS!
-
#5878 [tools] Remove autoload of Sofa.Metis for windows
- Couple of scenes are crashing due to metis, only occurring on Windows. It might take time to fix it, that's the reason why the suggestion is to remove it from autoload
- The bug does not occur with Pixi
- Ideas to investigate
- Test binaries from Pixi and investigate the Pixi patch
- Try the release without CGAL to see if it solves the issue
- OrderingMethod for a direct solver is a property hidden to user, which is based on a plugin (Metis) by default if one is found. We could find an alternative Scotch
-
#5869 [CMake] Remove CGALPlugin from supported plugins
- Half of Ubuntu compilations fails due to CGAL plugin memory issues
- Only MeshGenerationFromImage is a valuable code from the plugin, the rest has equivalent in Python
-
#5875 [Lagrangian.Solver] UnbuiltConstraintSolver: implement hotstart
- Hotstart for unbuilt constraint solver
- Performance drop when using UnbuildConstraintSolver instead of LCPConstraintSolver
- Let's make a deeper review on this pr now we know that it has been generated by AI
- Part of this work was partially generated from an AI, how to manage such AI-generated codes: define a flag "pr: ai-generated" to notify reviewers
- Jacobi could also undergo the same changes (see with Paul)
-
#94 Running SofaRegressionProgram on SOFA /examples directory
- 20 out of 67 regressions are actually tested (30 are not tested, and warning silently)
- Name of the MechanicalObject is used to generate the state export. However. The default name was "MObject" and it has been updated to "MechanicalObject", the CompareState did not find the reference (without throwing a warning/error as stated in #45)
- We also need tom implement other metrics in the next python script for regression because the current way of doing it accumulated errors during the simulation. So very clone behavior might break the regression.
- #261 Fix ImGui DPI scaling by using DPI-scaled fonts and removing inverse global scaling Review needed but conflicts to solve first → keep to review
- #93 [scripts] Add option to load and compare old regression files Wip because a difference with old references (check on mapped MechanicalObject) → wip
- #92 [scripts] Update SofaRegressionProgram to export in CSV format The version of the RegressionProgram could be added, regarding backward compatibility. Why not keeping both (csv and json) but then we might face issues of coherency, compatibility. Lucas is working on comparing serialized exports from SOFA. This could be extended to the regression. → keep to review
- #91 [scripts] Add filter to select scenes for regression detection Add an example, then ready → keep to review
- #90 [scripts] Add description for the input argument → ready
- #88 [scripts] Add option to display reference state along the simulation to visually compare them Using Python, a check could be added to export and compare framebuffers in order to test visual models. Some reviews → keep to review
- #5872 [tools] Remove Sofa.Qt from autoload
- #5851 [Helper::Utils] Add method to be able to manually set SOFAPathPrefix to override getExecutablePath if SOFA_ROOT is not set
- #5865 [Helper] Add a quiet option for testing methods
- #5862 [GL] Modify the FFMPeg recorder to be able to use it in SofaGLFW
- #5870 [GL] Deal with non existing path for ffmprg in VideoRecorderFFMPEG
- #5868 [CMake] Remove SofaViscoElastic from supported plugins
- #5867 [Helper] FileSystem: (really) fix compilation on macOS
- #5866 [Helper] Fix compilation
- #5852 [Core] Support generic drawing of edges and quads
- #5850 [Geomagic] Fix crash when drawDevice is set to true and add option to log haptic thread speed
- #5861 [FEM] Less calls to getValue
- #5798 [FileSystem] Add openFileWithDefaultApplication method
- #263 Patch install path for ini
- #262 Use Sofa/GL VideoRecorderFFMPEG
- #260 Fix saving of settings.ini
- #256 Hide non-public interface
- #255 Allow user to close the Selection window
- #259 First context menu in the scene graph
- #257 Improve UX of tables of Vec
- #258 Introduce SOFA clang-format file
- Awards : discuss format
- either two prizes for the two-best contributions
- or one prize for the best contribution and one for the best SW26 presentation
Discussion concluded on the fact that we would need clear criteria also for the presentation but it is a good idea if it helps us to save time and if it helps people into making a presentation
- #5862 [GL] Modify the FFMPeg recorder to be able to use it in SofaGLFW → The current binaries are not compatible with the latest LTS. We need to take the link to FFMPEG libs out of the linking. This PR uses the 'old way' used with Qt based using the executable.
- Claude coding agent for SOFA is really powerful
- #5862 [GL] Modify the FFMPeg recorder to be able to use it in SofaGLFW → see technical discussion
- #5861 [FEM] Less calls to getValue → ready
- #5857 [helper/system] FileRepository: adds findAllFilesInRepository method Some comments about code refactoring (lambda) → keep to review
- #5850 [Geomagic] Fix crash when drawDevice is set to true and add option to log haptic thread speed → ready
- #5841 [Collision] Introduce multi-staged collision pipeline → wip
- #5837 [GitHub] Add write permissions to filter_build job → wip
- #5827 [SofaCUDA] Apply new factory registration mechanism Wait for a short review then ready. → keep to review
- #5822 [Spring] SpringForceField now handles configuration singularity → consortium will take over the PRs
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes → consortium will take over the PRs
- #5798 [FileSystem] Add openFileWithDefaultApplication method This new API is not used (yet) in SOFA / SOFAGLFW (could be possibly added further to SofaGLFW#259) → ready
- #561 Clean getRecords in Timer module PR cleans the code. Hugo will test it → keep to review
- #557 Example of a ForceField implemented with JAX Seems to work for Paul, to be tested by others → keep to review
- #262 Use Sofa/GL VideoRecorderFFMPEG → see technical discussion
- #261 Fix ImGui DPI scaling by using DPI-scaled fonts and removing inverse global scaling Fonts size was not updated properly depending on the screen resolution. This PR has to be tested → keep to review
-
#260 Fix saving of settings.ini
Each time runSofa is launched, a folder imgui is created in the current dir which shouldn't be the case, it should use the config path. This PR fixes it.
→ ready - #259 First context menu in the scene graph We could already add 'find in doc' of 'find in files' menu. → ready
- #258 introduce SOFA clang-format file Such clang format files do not apply on all repositories, but only SOFA. We should possibly add them on all repositories → ready
- #257 Improve UX of tables of Vec Maybe change the magic number 8.5 and make it dynamic. Then ready → keep to review, then ready
- #88 [scripts] Add option to display reference state along the simulation to visually compare them Based on #69, allows to visualize the references for debug. → keep to review
- #69 New regression in python Put back the python version of regression test on the table. We need to switch from the executable to this version. Let's merge this along the existing regression code to test it. → ready
- #160 [forcefield] BeamHookeLawForceField: implements buildStiffnessMatrix → keep to review
- #159 Rewrite the force transfer of applyJT functions in the DiscreteCosserat mapping → wip
- #5814 [Type] Add optional support for mimalloc
- #5860 [Core] DrawMesh: Fix assertion
- #5825 [all] add namespace to all BaseObject relying on using declarations
- #5855 [GUI] Invalidate static dangling pointer
🎉 Happy new year 2026!
The SOFA core developers wish you a healthy and successful year 2️⃣ 0️⃣ 2️⃣ 6️⃣ ✨
- Discover all SOFA events for 2026
- Awards 2026 competition will be open thorough the year!
- Change of visio link (no more Webex)
- Release update
- work on plugins
- OOT compilation of plugins is tested (most PR are even merged)
- SofaPython3 fails on MacOS for stub-generation
- SoftRobots.Inverse fails for Conda CI : nightly due to tight-inclusion
- ffmeg dependency must be distributed for Windows and fixed on other os
- work on plugins
- Update on the project Template Method design pattern
- many PRs opened
- test of all PRs will be merged for test in one branch
- remaining task : BaseObject
- Parallelism in Elasticity plugin
- The code uses a std::for_each using a ExecutionPolicy
- Provides a generic implementation for both parallel and sequential policies
- std policies are really faster than our task scheduler
- compiler support is still an issue : MacOS does not support the feature at all so far (installing tbb and possibly forcing the sequential execution on MacOS could be done)
- comparison with TaskFlow would help to benchmark to evaluate if it makes sense to replace the TaskScheduler with TaskFlow
- Viser visualization: viser.studio
- OSQP has been reimplemented in ProxSuite
- ProxSuite reimplements it for comparison and benchmark purposes (dense system mostly)
- mim_solvers
-
#5841 [Collision] Introduce multi-staged collision pipeline
- Presented at the STC
- Allow to have different collision pipelines in a scene
- Issue : all links are explicit, and linking possibly on a not-yet created object
- Should implement an inheritance between multi and CollisionPipeline which is a special case of multi that have only one SubCollisionPipeline
- Might be good to rename Multi into Composite
- Remove the sorting of pipeline regarding the alarm distance
- Problem of thread safetiness on response creation inside of the Barycentric mappers
-
#5814 [Type] Add optional support for mimalloc
- so far the option is added, but OFF by default
- if distributed through Pixi, the VM (Ubuntu + MacOS) could activate it later
-
#5851 [Helper::Utils] Add method to be able to manually set SOFAPathPrefix to override getExecutablePath if SOFA_ROOT is not set
Needed to specify the location of
sites-packagesdepending onSOFA_ROOT→ ready
- #557 Example of a ForceField implemented with JAX Need local discussion with Leo → keep to review
- #215 Minimal description of the SpringForceField component Suggestion done → keep to review
- #207 For Linux distribution since Ubuntu 21.04 a warning is displayed during installation The issue should now be fixed, let's give a try on v25.12 release (upcoming!) → postponed
- #256 Hide non-public interface Significant refactoring to hide non-public interfaces, which is required for conda. The question of having private and public header on the project and or on the plugins only has been discussed, no agreement has been reached. Symbol export should be investigated. → ready
- #255 Allow user to close the Selection window Paul is tested then ready → keep to review
- #160 [forcefield] BeamHookeLawForceField: implements buildStiffnessMatrix Implementation looks fine and generic. It should maybe be tested instantiated in Vec6. This PR made us notice that the entire class needs some cleaning for Vec6. → keep to review
- #159 Rewrite the force transfer of applyJT functions in the DiscreteCosserat mapping → keep to review
- #5853 [Helper] Add default constructor for iota_iterator
- #5839 [SceneChecking] Collision: new checker on the presence of a pipeline and models
- #5824 [Core] Introduction of TopologyAccessor
- #5844 [Container.Grid] SparseGridTopology: Fix dangling reference
- #5847 [SolidMechanics.Spring] Cleaning in SpringForceField
- #5842 [AnimationLoop] Deprecated ConstraintAnimationLoop
- #5782 [Visual] Introduce generic visualization of mesh
- #5843 [Lagrangian.Solver] Replace raw pointers by unique_ptr for GenericConstraintProblem
- #5846 [applications] Change remote version for fetched plugins