Real-time multi-physics simulation with an emphasis on medical simulation.

Overview

SOFA, Simulation Open-Framework Architecture


Documentation Forum Gitter Contact

Introduction

SOFA is an open source framework primarily targeted at real-time simulation, with an emphasis on medical simulation.
It is mainly intended for the research community to help foster newer algorithms, but can also be used as an efficient prototyping tool.
SOFA's advanced software architecture allows:
(1) the creation of complex and evolving simulations by combining new algorithms with existing algorithms;
(2) the modification of key parameters of the simulation such as deformable behavior, surface representation, solvers, constraints, collision algorithm, etc. by simply editing an XML file;
(3) the synthesis of complex models from simpler ones using a scene-graph description;
(4) the efficient simulation of the dynamics of interacting objects using abstract equation solvers; and
(5) the comparison of various algorithms available in SOFA.

Installation

For up-to-date instructions, please refer to the SOFA documentation:
https://www.sofa-framework.org/documentation

Contribution

The SOFA community will be pleased to welcome you!
Find all the ways to get involved here: https://www.sofa-framework.org/community/get-involved/

Before creating any issue or pull request, please read carefully our CONTRIBUTING rules.

Information

Authors

See Authors.txt

License

SOFA is LGPL, except:

  • applications/projects (GPL)
  • applications/sofa (GPL)
  • applications/tutorials (GPL)
  • applications/plugins/OptiTrackNatNet (GPL)
  • applications/plugins/SofaPML (GPL)
  • applications/plugins/Registration (QPL)
  • sub-directories with a license file specifying a different license

LGPL refers to the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

GPL refers to the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Contact information

[email protected]


SOFA, Simulation Open-Framework Architecture
(c) 2006 INRIA, USTL, UJF, CNRS, MGH

Issues
  • [SofaPython] ADD Improve data field in SofaPython

    [SofaPython] ADD Improve data field in SofaPython

    In createObject...

    When you given an object as argument instead of a string the binding convert it (with str). This is problematic in many cases eg. with a list it is converted with the bracket (ie: '[' ) and comma as separator.

    To resolve that I add a method that, if a list is passed as an argument, convert it as a string following the sofa style (without comma and bracket).

    CHANGELOG for @hugtalbot & @guparan : [SofaPython]: change the way createObject() handle its arguments to simplify scene writing + batch of tests.


    This PR:

    • [x] builds with SUCCESS for all platforms on the CI.
    • [x] does not generate new warnings.
    • [x] does not generate new unit test failures.
    • [x] does not generate new scene test failures.
    • [x] does not break API compatibility.
    • [x] is more than 1 week old (or has fast-merge label).

    Reviewers will merge only if all these checks are true.

    enhancement pr: status ready 
    opened by VannesteFelix 47
  • [PSDE] Derive input type from parent value

    [PSDE] Derive input type from parent value

    Hi,

    I love @sescaida's PythonScriptDataEngine, I find it extremely useful when you don't want to implement a whole component to perform very basic actions. Though I find it cumbersome to have to manually specify the type of the input/output datafields. While I have no idea (yet) how to fix this for the component's outputs, I implemented a small method to try to derive the input type from the linked value. We could also add scalar types to this method, to be able to handle passing scalar parameters directly from python. Also, I think it would make more sense to use directly the output of

    datafield->getValueTypeInfo()->name()
    

    instead of an arbitrary char when expliciting the datafield type in the PSDE factory.

    If you have any idea how I could do something similar for output fields, I'm taking any advice :)


    This PR:

    • [ ] builds with SUCCESS for all platforms on the CI.
    • [ ] does not generate new warnings.
    • [ ] does not generate new unit test failures.
    • [ ] does not generate new scene test failures.
    • [ ] does not break API compatibility.
    • [ ] is more than 1 week old (or has fast-merge label).

    Reviewers will merge only if all these checks are true.

    enhancement issue: discussion pr: status to review 
    opened by marques-bruno 37
  • [SofaCore SofaConstraint] Update FreeMotionAnimationLoop so that it can compute a linearised version of the constraint force.

    [SofaCore SofaConstraint] Update FreeMotionAnimationLoop so that it can compute a linearised version of the constraint force.

    This PR diffs against the sofa-framework::issofa_constrainsolving branch until it has been merged into master.

    Objectives

    • Adjust FreeMotionAnimationLoop so that it is more faithful to the actual equations, most notably by allowing only one linearisation of the mappings within the time step.
    • Update the API in order to compute a linearised version of the constraint forces, in a similar fashion to what is done in the Compliant plugin.

    Requirements

    The following PR are required in order to build this

    • #484 ✔️
    • #450 ✔️
    • #452 ✔️
    • #456 ✔️

    For testing:

    • SOFA_USE_MASK must be deactivated, otherwise derivatives quantities ( velocity at contact points for example) are not propagated at all since all dofs are "masked" by default. After having a rather quick look, apparently the SOFA_USE_MASK impose some strict (undocumented) requirements (on top of other limitations like the fact that it does not support changes in the topology) about where in the time step the "apply" method of mappings is called.

    • There is a branch on my local fork that integrates all the requirements for testing that can be found at the following location fjourdes:insimo_freemotion_integration

    Changelog

    API Breaking

    [SofaCore]

    • ConstraintSolver can now define the VecId where the constraint lambdas and constraint correction are stored. Previously, these were fixed locations, usually VecId::externalForce() and VecId::dx(), but it could vary depending on the implementation of both the ConstraintSolver and the ConstraintCorrection API. Components can retrieve these locations when inspecting their ConstraintParams object which is usually a parameter of the API methods for constraint solving.
    • ConstraintParams contains the MultiMatrixDerivId that can be used by components related to the ConstraintSolver to retrieve the location of the constraint jacobian.
    • ConstraintResolution API constructor needs to be passed the number of lines that are involved in the solving of this constraint equation. The previous implementation was silently initializing this value to one. If that property has to modified because it depends on some other state variables of a concrete implementation of the ConstraintResolution, the setNbLines method has to be called to reflect it. Also added some getters/setters method.
    • BaseConstraintCorrection API separates the methods which computes the constraint displacement in motion space from the methods which apply it.
    • As result, factorized quite significantly the methods related to the ConstraintCorrection API
    • BaseConstraint API defines a storeLambda method which is used to store the result of the constraint force computation (stored in a BaseVector form) inside a dedicated state vector of a MechanicalState. Requires PR #456. This value can be used later on to discover the stiffness coming from the non linear mapping that result from it.
    • BaseMechanicalState resetConstraint and getConstraintJacobian methods need to be given a ConstraintParams to be able to retrieve the MatrixDerivId containing the constraint jacobian.
    • LinearSolver API
      • rename applyContactForce API method into applyConstraintForce. This method is no longer responsible for applying the corrective motion, but just to compute it.
      • buildComplianceMatrix API method needs to be passed a ConstraintParams so that concrete instances of LinearSolver can retrieve the MatrixDerivId that points to the constraint jacobian.

    FIX

    [SofaConstraint]

    • GenericConstraintSolver block gauss seidel can support arbitrary size of blocks. The previous implementation had an hard coded limit of 6 for the block size.

    UPDATES

    [SofaSimulationCore]

    • Adapted AnimateVisitor, MechanicalGetConstraintJacobianVisitor and MechanicalResetConstraintVisitor to the changes introduced in BaseMechanicalState API

    [SofaBaseMechanics]

    • MechanicalObject dynamically allocated state vectors are given a name and a owner like any other Data. As a result, these dynamic state vectors can be displayed by the GUI. Also adapted the code to the API changes introduced in BaseMechanicalState API

    [SofaMeshCollision]

    • Some contact mappers updateXfree() method were not calling applyJ and therefore were not propagating the free velocity towards contact dofs, resulting in segfault when solving constraints in velocity mode.

    [SofaConstraint]

    • GenericConstraintSolver accumulates the constraint lambdas towards independant dofs, so that non linear mappings can compute the geometric stiffness induced by the constraint forces from the previous time step.
    • FreeMotionAnimationLoop assembles mapping geometric stiffness when possible. It also uses a single mapping linearisation within the time step. The solving step becomes very similar to the one explained in the "Stable Constraints" paper, when the compliance of the constraint is equal to zero.
    • BilateralConstraintResolutionNDofs uses Eigen library to factorize a constraint block of arbitrary size using LDLT decomposition.
    • ConstraintAnimationLoop minor changes introduced to reflect API changes.

    [SofaMiscMapping]

    • DistanceMapping implements the applyJT method for MatrixDeriv types using the utility methods provided in #452

    [SofaGeneralAnimationLoop]

    • MultiStepAnimationLoop and MultiTagAnimationLoop : adapted code to reflect API change.

    ADD

    [SofaConstraint]

    • MappingGeometricStiffnessForceField can assemble the geometric stiffness of a mapping.
    • UniformConstraint defines a constraint with a uniform direction in the contact space, internally it represents an identity matrix. It computes the right hand side of constraint equations in velocity mode as rhs = phi / dt + dvfree, following the same calculus notation and derivation as the one explained in the "Stable Constraints" paper. In position mode the constraint rhs differs from the constraint rhs in velocity mode by a dt factor. rhs = phi + dvfree * dt which gives rhs = dxfree which is similar to what was done by the previous implementation.
    • ConstraintStoreLambdaVisitor which is used by the GenericConstraintSolver to store the lambda resulting from the constraint solving step into a specific location ( by default VecId::externalForce(), but a dynamic VecId can be used also)

    [Examples]

    • InextensiblePendulum.scn shows the benefits of the linearisation of the constraint force

    Remarks

    • MappingGeometricStiffnessForceField suffers the same limitation as any other forcefield, ie the mapping must be directly connected to the independant dofs, otherwise it would require an additional unsupported computation to project the mapped stiffness matrix into the space of the independant degrees of freedom. Multimappings support is not there, since it would probably require some adapatation in the API, so that it is easy to retrieve the stiffness block associated with each of the mapping parent dofs.

    • ContactMappers : It is (very) questionable to let contact mappers propagate the unconstrained dynamics solution vector towards contact dofs by calling updateXfree() since it will induce inconsistencies in mapping linearisation if the contact mappers are non linear, since contact mappings will therefore be linearised around the free motion configuration, and the rest being linearised around the configuration at the beginning of the time step. This PR does not address this problem which is left for future work. It arises only with non linear contact mappers (like the RigidContactMapper for instance), but this should be kept in mind.

    • LinearSolver API : As a general note, I believe the LinearSolver API is a bloated with virtual methods which are difficult to understand since they are not directly related to the computation / factorisation of a positive definite matrix, and are mostly optional especially for non assembled solver like CG. Most of the methods should reside in the ConstraintCorrection API, and concrete instance of ConstraintCorrection should be templated on the type of LinearSolver in my opinion, since it is the only objects that actually make use of these methods, and really what you want is to have access to the concrete type of Matrix and Vector used by the solver. Also from my understanding only LinearSolver instances that derive from MatrixLinearSolver implement these kind of methods, so maybe a first step would be to move them here.


    This PR:

    • [ ] builds with SUCCESS for all platforms on the CI.
    • [ ] does not generate new warnings.
    • [ ] does not generate new unit test failures.
    • [ ] does not generate new scene test failures.
    • [ ] does not break API compatibility.
    • [ ] is more than 1 week old (or has fast-merge label).

    Reviewers will merge only if all these checks are true.

    enhancement pr: breaking pr: status ready 
    opened by fjourdes 34
  • [SofaDenseSolver] Fix compilation with SOFA_FLOATING_POINT_TYPE as float

    [SofaDenseSolver] Fix compilation with SOFA_FLOATING_POINT_TYPE as float

    issue sofa-framework/sofa#2 Fix compilation when option SOFA_FLOATING_POINT_TYPE in CMake selected as float

    The problem arising when trying to compile with float was due to missing declaration from newmat external library. The library has been modified for sofa to use a #define SOFA_FLOAT in include.h However the SOFA_FLOAT was never defined for the extlib since the current procedure is to set CMake variable SOFA_FLOAT and SOFA_DOUBLE to 1. This was done anyway AFTER processing the cmake of the extlibs.

    Therefore, this pr moves the option for floating point type in sofa in the root CMakeLists and adds the #define for the newmat library to actually create the float type functions.


    This PR:

    • [x] builds with SUCCESS for all platforms on the CI.
    • [x] does not generate new warnings nor unit test failures.
    • [x] does not break existing scenes.
    • [x] does not break API compatibility.
    • [x] has been reviewed and agreed to be transitional.
    • [x] is more than 1 week old (or has fast-merge label).
    • [x] reports important changes in Changelog.

    Reviewers will merge only if all these checks are true.

    pr: fix pr: status ready 
    opened by FabienPean 32
  • [all] Fix the cause of failling test scenes (for a greener dashboard)

    [all] Fix the cause of failling test scenes (for a greener dashboard)


    This PR:

    • [x] builds with SUCCESS for all platforms on the CI.
    • [x] do generate LESS warnings.
    • [x] do generate LESS unit test failures.
    • [x] do generate LESS scene test failures.
    • [ ] does not break API compatibility.
    • [ ] is more than 1 week old (or has fast-merge label).

    Reviewers will merge only if all these checks are true.

    pr: fix pr: status to review 
    opened by damienmarchal 31
  • [all] Add a WarningAndErrorAsTestFailure in most of the tests.

    [all] Add a WarningAndErrorAsTestFailure in most of the tests.

    Problem statement: Historically a lot of tests were implemented with the assumption that warning or error messages were tests failure. This assumption was problematic as it favor the testing of code paths that does not generate warning or errors instead of testing all the possible paths. To favor both valid and invalid paths this implicit behavior was remove and and made explicit using the ExpectMessage and MessageAsTestFailure raii's. In the process the old behavior of generating failure on errors was lost.

    The PR mix the two and:

    • restores this old behavior by default so a test that specify nothing will fail on warning and error.
    • but in addition, each tests class/function/bloc can now specify how a specific bloc can react to a message. This can be done using a new syntax taken inspired mimicking the one from gtest.
    • improve the way test failures about warning and error are reported: https://ci.inria.fr/sofa-ci/job/ubuntu_gcc-4.8_options/5074/testReport/junit/(root)/RigidRigidMappingTest_0/test_translation/

    Example:

    class MyTest : public Sofa_test<>
     
         /// This test will fail if a warning/error message is send because the test inherit from sofa_test
        void defaultTestBehavior()
        {
            ....
        }
    
        /// This test should generate failure if NO warning and NO Error message is emitted
        void catchingTestBehavior()
        {
            EXPECT_MSG_EMIT(Warning) ;
            EXPECT_MSG_EMIT(Error) ;
    
            mycomponent.load("atotallybrokenfile.txt")
        }
    
        /// By default test failure are catched from Sofa_test. This means that the information returned
        /// in the test failure are the location of the failure in Sofa_test.cpp:lineno
        /// This is why it is always better to explicitely specify the test behavior (possible the same as 
        /// the default one as it will report correct testname/line number information.  
        void noEmitTestBehavior()
        {
            EXPECT_MSG_NOEMIT(Warning) ;
            EXPECT_MSG_NOEMIT(Error) ;
        }
       
        /// Finally it is possible to narrow where the messages are expected using blocks...
        void complexTestBehavior()
        {
            /// Here is the default mode. 
            ....
            {
                /// We will report a failure is there no warning nor error emitted before the end of this block.  
                EXPECT_MSG_EMIT(Warning) ;
                EXPECT_MSG_EMIT(Error) ;
                ...
                { 
                    /// But this sub-part does not count... and it shouldn't emit a message. 
                    EXPECT_MSG_NOEMIT(Error) ;
                    .... 
               }
            }
        }
    

    This PR will generate a lot of new test failure... that are either real failure that deserve investigation or tests that was previously simply previously ignoring error & warning messages;

    CHANGELOG for @hugtalbot & @guparan :

    • TestMessageHandler.cpp implements a new & robust way to connect msg_* message to test failure
    • TestMessageHandler_test.cpp implements test for TestMessageHandler.
    • Sofa_test is updated to use the new TestMessageHandler where msg_error generates test failures
    • All the existing tests have been changed to use the new API & removed the old one.
    • MeshSTL.cpp replace a std:cerr by a msg_error so that FIX the corresponding failing test.
    • Message.cpp adds a way to convert message type to string.
    • updates externs/gtest to a fresh checkout.

    This PR:

    • [x] builds with SUCCESS for all platforms on the CI.
    • [ ] does not generate new warnings nor unit test failures. (This PR cannot do that...read my comment about that).
    • [x] does not break existing scenes.
    • [x] does not break API compatibility.
    • [x] has been reviewed and agreed to be transitional.
    • [x] is more than 1 week old.
    • [ ] #237 should fix most of the newly failing tests. #237 should be merged right after this PR.

    Reviewers will merge only if all these checks are true.

    enhancement pr: status ready 
    opened by damienmarchal 27
  • [All] auto-init/cleanup libraries

    [All] auto-init/cleanup libraries

    I am unsure this PR is correct, so it really needs a green light from others before merge.

    When trying to call std::exit in some plugin, I had a segfault in cleanup code similar to this one:

    // Detect missing cleanup() call.
    static const struct CleanupCheck
    {
        CleanupCheck() {
        }
        
        ~CleanupCheck() {
            if (core::isInitialized() && !core::isCleanedUp())
                helper::printLibraryNotCleanedUpWarning("SofaCore", "sofa::core::cleanup()"); // segfault
        }
    } check;
    

    In fact, most init.cpp files in SOFA have code similar to this one. In my case, MessageDispatcher::LoggerStream::~LoggerStream caused a call to MessageDispatcher::process which would then cause a segfault.

    What I don't understand is why the above code snipped does not simply cleanup() the library in the destructor, since the latter is being called while the library unloads and this is the last chance to actually clean things up, instead of (trying to) emit a warning while the whole program is being terminated.

    So unless there is a compelling reason to leave it this way (and I would really like to know it), I suggest the above to be changed to:

    static const struct CleanupCheck
    {
        CleanupCheck() {
            init();
        }
        
        ~CleanupCheck() {
            cleanup();
            // leaving the warning if for some reason cleanup failed
            if (core::isInitialized() && !core::isCleanedUp())
                helper::printLibraryNotCleanedUpWarning("SofaCore", "sofa::core::cleanup()");
        }
    } check;
    

    so that the library automatically init() and cleanup() upon dlopen/exit.

    This PR:

    • [ ] builds with SUCCESS for all platforms on the CI.
    • [ ] does not generate new warnings nor unit test failures.
    • [ ] does not break existing scenes.
    • [ ] does not break API compatibility.
    • [ ] has been reviewed and agreed to be transitional.
    • [ ] is more than 1 week old. Reviewers will merge only if all this checks are true.
    pr: revert(ed) 
    opened by maxime-tournier 26
  • [Sofa.Core] A helper class for consistent component naming

    [Sofa.Core] A helper class for consistent component naming

    Naming components was not consistent:

    • XML used a 'load-time' helper to name the components: the class name of the component + a counter for a unique name
    • Python used the class name only
    • C++ instantiations: either the class name or a hard-coded value

    This is now unified using the singleton sofa::core::NameHelper. It applies the XML method: the class name + a counter

    [ci-depends-on https://github.com/sofa-framework/SofaPython3/pull/228]


    By submitting this pull request, I acknowledge that
    I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


    Reviewers will merge this pull-request only if

    • it builds with SUCCESS for all platforms on the CI.
    • it does not generate new warnings.
    • it does not generate new unit test failures.
    • it does not generate new scene test failures.
    • it does not break API compatibility.
    • it is more than 1 week old (or has fast-merge label).
    pr: breaking pr: status ready pr: clean 
    opened by alxbilger 25
  • RegularGridTopology dimensions

    RegularGridTopology dimensions

    Small PR on GridTopology and RegularGridTopology link to issue: #163

    • Allow to set RegularGridTopology in 1,2 or 3 dimension. But still check if the grid resolution is valid.
    • Fix example of Tetrahedron FEM that was crashing if no tetrahedron is found in the scene.
    • Add an example scene.
    • Remove RegularGridTopology dependencies from MechanicalObject.

    CHANGELOG:

    • GridTopology
      • clean the code & factor the constructor
      • implement "flat" grids in 1 or 2 dimension by using setting grid resolution to "1" in the corresponding axis
    • RegularGridTopology clean the constructor's code & remove NDEBUG code.
    • Adds RegularGridTopology_test
    • TetrahedronFEMForceField clean code
    • MechanicalObject removes code that was specific to the grid.
    • Adds new examples scenes called: examples/Components/topology/Hexa2TetraTopologicalMapping.scn examples/Components/topology/RegularGridTopology_dimension.scn

    This PR:

    • [x] builds with SUCCESS for all platforms on the CI.
    • [x] does not generate new warnings nor unit test failures.
    • [x] does not break existing scenes.
    • [x] does not break API compatibility.
    • [x] is more than 1 week old (or has fast-merge label).

    Reviewers will merge only if all these checks are true.

    pr: fix pr: status ready 
    opened by epernod 25
  • [SofaNG] Setup GUI

    [SofaNG] Setup GUI

    #1527

    based on:

    • #2843

    Deprecates the rest of SofaGraphComponent and SofaUserInteraction

    Create a GUI (out of Sofa.Component) module, with:

    • Common (definition of GUIs)
    • GUIs themselves: Batch, Qt and Headlessrecorder
    • Component, with components only used for GUI (settings linked to performers)

    Metamodule SofaGui is still used for runSofa (so with a kind of conditional factory, depending of the compilation option at cmake) but I think we should move this "conditional" compilation directly in runSofa

    [~~ci-depends-on https://github.com/sofa-framework/SofaGLFW/pull/31~~]


    By submitting this pull request, I acknowledge that
    I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


    Reviewers will merge this pull-request only if

    • it builds with SUCCESS for all platforms on the CI.
    • it does not generate new warnings.
    • it does not generate new unit test failures.
    • it does not generate new scene test failures.
    • it does not break API compatibility.
    • it is more than 1 week old (or has fast-merge label).
    pr: status ready pr: clean NG3: new-archi 
    opened by fredroy 24
  • [SofaKernel] FIX bug in toEulerVector

    [SofaKernel] FIX bug in toEulerVector


    This PR:

    • [x] builds with SUCCESS for all platforms on the CI.
    • [x] does not generate new warnings.
    • [x] does not generate new unit test failures.
    • [x] does not generate new scene test failures.
    • [x] does not break API compatibility.
    • [x] is more than 1 week old (or has fast-merge label).

    Reviewers will merge only if all these checks are true.

    pr: fix pr: status ready 
    opened by raffaellatrivisonne 24
  • [SofaBaseMechanics_test] CMakeLists with forgotten files

    [SofaBaseMechanics_test] CMakeLists with forgotten files

    https://github.com/sofa-framework/sofa/blob/b66d9ad54731b35891645b131efa04eecada3467/SofaKernel/modules/SofaBaseMechanics/SofaBaseMechanics_test/CMakeLists.txt#L15-L19

    @fredroy @guparan this shoud be removed right?

    deprecated STC#13 
    opened by hugtalbot 1
  • BaseObject::l_context is miss-designed

    BaseObject::l_context is miss-designed

    ** Problem description** A BaseObject can be in multiple node fo the scene graph while context management is still done as there was only one. This cause several problems.

    Eg:

    import Sofa
    
    def createScene(node): 
        node.addChild("child1")
        node.addChild("child2")
    
        node.child1.addObject("MechanicalObject", name="position")
        print(node.child1.position.linkpath)                                              # the printed path is now @/child1/position
    
        node.child2.addObject(node.child1.position)                               # makes a multiparent node. 
        print(node.child1.position.linkpath)                                              # the printed path is now "@/child2/position"
                                                                                                             #    problem 1: the node is still showed in runSofa as belonging to child1
                                                                                                             #    problem 2:                                      
    
        node.child2.removeObject(node.child1.position)                         # so now the object is a child of only the node "child1"                     
        print("node.child1.position.linkpath)                                             # but the object context is now empty and show "@position"
    
    issue: bug (minor) 
    opened by damienmarchal 0
  • [CMake] FIX out-of-tree build (2)

    [CMake] FIX out-of-tree build (2)

    Following #2940


    By submitting this pull request, I acknowledge that
    I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


    Reviewers will merge this pull-request only if

    • it builds with SUCCESS for all platforms on the CI.
    • it does not generate new warnings.
    • it does not generate new unit test failures.
    • it does not generate new scene test failures.
    • it does not break API compatibility.
    • it is more than 1 week old (or has fast-merge label).
    pr: fix pr: fast merge pr: status ready 
    opened by guparan 0
  • [examples] Run PluginFinder

    [examples] Run PluginFinder


    By submitting this pull request, I acknowledge that
    I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


    Reviewers will merge this pull-request only if

    • it builds with SUCCESS for all platforms on the CI.
    • it does not generate new warnings.
    • it does not generate new unit test failures.
    • it does not generate new scene test failures.
    • it does not break API compatibility.
    • it is more than 1 week old (or has fast-merge label).
    pr: fast merge pr: status to review pr: clean 
    opened by alxbilger 1
  • [Component] All modules have a version

    [Component] All modules have a version

    This is required by the plugin manager when writing and reading in an ini file


    By submitting this pull request, I acknowledge that
    I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


    Reviewers will merge this pull-request only if

    • it builds with SUCCESS for all platforms on the CI.
    • it does not generate new warnings.
    • it does not generate new unit test failures.
    • it does not generate new scene test failures.
    • it does not break API compatibility.
    • it is more than 1 week old (or has fast-merge label).
    pr: fast merge pr: status to review pr: clean 
    opened by alxbilger 1
  • [SofaGuiQt] Modernize the connect to use the c++ syntax

    [SofaGuiQt] Modernize the connect to use the c++ syntax

    Pro:

    • type and signature consistancy at compile time.
    • ease the refactoring as the signal/slots are noww real method
    • make explicit the type conversion between different signature.

    By submitting this pull request, I acknowledge that
    I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


    Reviewers will merge this pull-request only if

    • it builds with SUCCESS for all platforms on the CI.
    • it does not generate new warnings.
    • it does not generate new unit test failures.
    • it does not generate new scene test failures.
    • it does not break API compatibility.
    • it is more than 1 week old (or has fast-merge label).
    pr: status to review pr: clean 
    opened by damienmarchal 3
Releases(v21.12.00)
  • v21.12.00(Dec 16, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/v21.12/CHANGELOG.md#v211200 Diff with v21.06: https://github.com/sofa-framework/sofa/compare/v21.06...v21.12

    Required dependencies

    Windows

    1. Install Microsoft Visual C++ 2017 Redistributable.
    2. [OPTIONAL] Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers. Download and install Python 3.7 (amd64).
      Make sure to enable PIP installation and addition to PATH.
      Then, open a console and run python -V && python -m pip install numpy scipy

    Linux

    1. Install libopengl0

       sudo apt install libopengl0
      
    2. [OPTIONAL] Install Python 3.8 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.

       sudo apt install python3.8-dev python3-distutils
       curl -L https://bootstrap.pypa.io/pip/get-pip.py --output /tmp/get-pip3.py
       python3.8 /tmp/get-pip3.py
       python3.8 -m pip install --upgrade pip
       python3.8 -m pip install numpy scipy
      

    MacOS

    1. All core dependencies are included in the binaries.

    2. [OPTIONAL] Install Python 3.9 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.

       brew install [email protected]
       python3.9 -m pip install numpy scipy
      

    Plugins

    Some plugins are now generating their own binaries :tada: To install a plugin, download and unzip it into the plugins folder of SOFA.

    If you want your plugin added to this list, feel free to contact us.

    Info for developers

    SOFA binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python | pybind11 | Glew | Zlib | libPNG | libJPEG | libTIFF | |----------------|--------|--------|-------|--------|----------|-------|--------|--------|---------|---------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 3.7.9 | 2.4.3 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.71.0 | 3.3.7 | 3.8.10 | 2.4.3 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.76.0 | 3.3.9 | 3.9.5 | 2.6.2 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v21.12.00_Linux.run(177.16 MB)
    SOFA_v21.12.00_Linux.zip(209.90 MB)
    SOFA_v21.12.00_MacOS.zip(305.73 MB)
    SOFA_v21.12.00_Win64.exe(124.85 MB)
    SOFA_v21.12.00_Win64.zip(170.47 MB)
  • v21.06.03(Dec 3, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/v21.06/CHANGELOG.md#v210603 Diff with v21.06.02: https://github.com/sofa-framework/sofa/compare/v21.06.02...v21.06.03

    Required dependencies

    Windows

    1. Install Microsoft Visual C++ 2017 Redistributable.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          Download and install Python 3.7 (amd64).
          Make sure to enable PIP installation and addition to PATH.
          Then, open a console and run python -V && python -m pip install numpy scipy

    Linux

    1. Install libopengl0
          sudo apt install libopengl0
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          sudo apt install python3.7-dev python3-pip
          python3.7 -m pip install numpy scipy

    MacOS

    1. All core dependencies are included in the binaries.
    2. OPTIONAL     Install Python 3.9 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          brew install [email protected]
          python3.9 -m pip install numpy scipy

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python | pybind11 | Glew | Zlib | libPNG | libJPEG | libTIFF | |----------------|----------|----------|----------|------------|------------|---------|---------|------------|----------|---------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 3.7.9 | 2.4.3 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 3.7.5 | 2.4.3 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.76.0 | 3.3.7 | 3.9.5 | 2.6.2 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v21.06.03_Linux.zip(284.78 MB)
    SOFA_v21.06.03_MacOS.zip(393.09 MB)
    SOFA_v21.06.03_Win64.zip(255.13 MB)
  • v21.06.02(Oct 27, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/v21.06/CHANGELOG.md#v210602 Diff with v21.06.01: https://github.com/sofa-framework/sofa/compare/v21.06.01...v21.06.02

    Required dependencies

    Windows

    1. Install Microsoft Visual C++ 2017 Redistributable.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          Download and install Python 3.7 (amd64).
          Make sure to enable PIP installation and addition to PATH.
          Then, open a console and run python -V && python -m pip install numpy scipy

    Linux

    1. Install libopengl0
          sudo apt install libopengl0
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          sudo apt install python3.7-dev python3-pip
          python3.7 -m pip install numpy scipy

    MacOS

    1. All core dependencies are included in the binaries.
    2. OPTIONAL     Install Python 3.9 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          brew install [email protected]
          python3.9 -m pip install numpy scipy

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python | pybind11 | Glew | Zlib | libPNG | libJPEG | libTIFF | |----------------|----------|----------|----------|------------|------------|---------|---------|------------|----------|---------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 3.7.9 | 2.4.3 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 3.7.5 | 2.4.3 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.76.0 | 3.3.7 | 3.9.5 | 2.6.2 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v21.06.02_Linux.zip(282.06 MB)
    SOFA_v21.06.02_MacOS.zip(393.15 MB)
    SOFA_v21.06.02_Win64.zip(254.99 MB)
  • v21.06.01(Oct 4, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/v21.06/CHANGELOG.md#v210601 Diff with v21.06.00: https://github.com/sofa-framework/sofa/compare/v21.06.00...v21.06.01

    Required dependencies

    Windows

    1. Install Microsoft Visual C++ 2017 Redistributable.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          Download and install Python 3.7 (amd64).
          Make sure to enable PIP installation and addition to PATH.
          Then, open a console and run python -V && python -m pip install numpy scipy

    Linux

    1. Install libopengl0
          sudo apt install libopengl0
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          sudo apt install python3.7-dev python3-pip
          python3.7 -m pip install numpy scipy

    MacOS

    1. All core dependencies are included in the binaries.
    2. OPTIONAL     Install Python 3.9 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          brew install [email protected]
          python3.9 -m pip install numpy scipy

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python | pybind11 | Glew | Zlib | libPNG | libJPEG | libTIFF | |----------------|----------|----------|----------|------------|------------|---------|---------|------------|----------|---------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 3.7.9 | 2.4.3 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 3.7.5 | 2.4.3 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.76.0 | 3.3.7 | 3.9.5 | 2.6.2 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v21.06.01_Linux.zip(282.05 MB)
    SOFA_v21.06.01_MacOS.zip(393.01 MB)
    SOFA_v21.06.01_Win64.zip(254.98 MB)
  • v21.06.00(Jul 5, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/v21.06/CHANGELOG.md#v210600 Diff with v20.12.03: https://github.com/sofa-framework/sofa/compare/v20.12.03...v21.06.00

    Required dependencies

    Windows

    1. Install Microsoft Visual C++ 2017 Redistributable.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          Download and install Python 3.7 (amd64).
          Make sure to enable PIP installation and addition to PATH.
          Then, open a console and run python -V && python -m pip install numpy scipy

    Linux

    1. Install libopengl0
          sudo apt install libopengl0
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          sudo apt install python3.7-dev python3-pip
          python3.7 -m pip install numpy scipy

    MacOS

    1. All core dependencies are included in the binaries.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          brew install [email protected]
          python3.7 -m pip install numpy scipy

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python | Glew | Zlib | libPNG | libJPEG | libTIFF | |----------------|----------|----------|----------|------------|----------|---------|-----------|----------|----------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 3.7.9 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 3.7.5 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.76.0 | 3.3.7 | 3.7.9 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v21.06.00_Linux.run(220.66 MB)
    SOFA_v21.06.00_Linux.zip(281.88 MB)
    SOFA_v21.06.00_MacOS.dmg(255.83 MB)
    SOFA_v21.06.00_MacOS.zip(393.13 MB)
    SOFA_v21.06.00_Win64.exe(172.14 MB)
    SOFA_v21.06.00_Win64.zip(254.96 MB)
  • v20.12.03(May 17, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/v20.12/CHANGELOG.md#v201203 Diff with v20.12.02: https://github.com/sofa-framework/sofa/compare/v20.12.02...v20.12.03

    Required dependencies

    Windows

    1. Install Microsoft Visual C++ 2017 Redistributable.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          Download and install Python 3.7 (amd64).
          Make sure to enable PIP installation and addition to PATH.
          Then, open a console and run python -V && python -m pip install numpy scipy
    3. DEPRECATED
          Install Python 2.7 + Numpy + Scipy if you want to use the SofaPython plugin or any of its dependers.
          Download and install Python 2.7 (amd64).
          Make sure to enable PIP installation and addition to PATH.
          Then, open a console and run python -V && python -m pip install "numpy < 1.17" "scipy < 1.3"

    Linux

    1. Install libopengl0
          sudo apt install libopengl0
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          sudo apt install python3.7-dev python3-pip
          python3.7 -m pip install --upgrade pip && python3.7 -m pip install numpy scipy
    3. DEPRECATED
          Install Python 2.7 + Numpy + Scipy if you want to use the deprecated SofaPython plugin or any of its dependers.
          sudo apt install python2.7-dev python-pip
          python2.7 -m pip install --upgrade "pip < 21.0" && python2.7 -m pip install "numpy < 1.17" "scipy < 1.3"

    MacOS

    1. All core dependencies are included in the binaries.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          brew install [email protected]
          python3.7 -m pip install numpy scipy

    Python2 to Python3 migration

    SofaPython3 is now included in SOFA binaries. Thus, these Python2-related features remain disabled: | In the C++ API | In the Python2 API | |-----------------|----------| | SofaTest/Python_test | SofaTest.Macro | SofaExporter/Binding_OBJExporter
    SofaExporter/Binding_STLExporter | | | Compliant/mapping/PythonMultiMapping
    Compliant/python/Binding_AssembledSystem | Compliant.Control
    Compliant.Frame
    Compliant.Rigid
    Compliant.Script
    Compliant.sml
    Compliant.Tools
    Compliant.Vec
    Compliant.future
    Compliant.StructuralAPI | | image/python/Binding_ImageData | SofaImage.API |

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python2 | Python3 | Glew | Zlib | libPNG | libJPEG | libTIFF | |-------------|----------|----------|---------|-----------|-----------|---------|----------|----------|---------|----------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 2.7.17 | 3.7.9 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 2.7.17 | 3.7.5 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.67.0 | 3.3.7 | 2.7.10 | 3.7.9 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v20.12.03_Linux.run(229.93 MB)
    SOFA_v20.12.03_Linux.zip(311.54 MB)
    SOFA_v20.12.03_MacOS.dmg(280.37 MB)
    SOFA_v20.12.03_MacOS.zip(417.83 MB)
    SOFA_v20.12.03_Win64.exe(178.28 MB)
    SOFA_v20.12.03_Win64.zip(281.47 MB)
  • v20.12.02(Mar 31, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/v20.12/CHANGELOG.md#v201202 Diff with v20.12.01: https://github.com/sofa-framework/sofa/compare/v20.12.01...v20.12.02

    Required dependencies

    Windows

    1. Install Microsoft Visual C++ 2017 Redistributable.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          Download and install Python 3.7 (amd64).
          Make sure to enable PIP installation and addition to PATH.
          Then, open a console and run python -V && python -m pip install numpy scipy
    3. DEPRECATED
          Install Python 2.7 + Numpy + Scipy if you want to use the SofaPython plugin or any of its dependers.
          Download and install Python 2.7 (amd64).
          Make sure to enable PIP installation and addition to PATH.
          Then, open a console and run python -V && python -m pip install "numpy < 1.17" "scipy < 1.3"

    Linux

    1. Install libopengl0
          sudo apt install libopengl0
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          sudo apt install python3.7-dev python3-pip
          python3.7 -m pip install --upgrade pip && python3.7 -m pip install numpy scipy
    3. DEPRECATED
          Install Python 2.7 + Numpy + Scipy if you want to use the deprecated SofaPython plugin or any of its dependers.
          sudo apt install python2.7-dev python-pip
          python2.7 -m pip install --upgrade "pip < 21.0" && python2.7 -m pip install "numpy < 1.17" "scipy < 1.3"

    MacOS

    1. All core dependencies are included in the binaries.
    2. OPTIONAL     Install Python 3.7 + Numpy + Scipy if you want to use the SofaPython3 plugin or any of its dependers.
          brew install [email protected]
          python3.7 -m pip install numpy scipy

    Python2 to Python3 migration

    SofaPython3 is now included in SOFA binaries. Thus, these Python2-related features remain disabled: | In the C++ API | In the Python2 API | |-----------------|----------| | SofaTest/Python_test | SofaTest.Macro | SofaExporter/Binding_OBJExporter
    SofaExporter/Binding_STLExporter | | | Compliant/mapping/PythonMultiMapping
    Compliant/python/Binding_AssembledSystem | Compliant.Control
    Compliant.Frame
    Compliant.Rigid
    Compliant.Script
    Compliant.sml
    Compliant.Tools
    Compliant.Vec
    Compliant.future
    Compliant.StructuralAPI | | image/python/Binding_ImageData | SofaImage.API |

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python2 | Python3 | Glew | Zlib | libPNG | libJPEG | libTIFF | |-------------|----------|----------|---------|-----------|-----------|---------|----------|----------|---------|----------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 2.7.17 | 3.7.9 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 2.7.17 | 3.7.5 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.67.0 | 3.3.7 | 2.7.10 | 3.7.9 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v20.12.02_Linux.run(208.45 MB)
    SOFA_v20.12.02_Linux.zip(311.37 MB)
    SOFA_v20.12.02_MacOS.dmg(280.22 MB)
    SOFA_v20.12.02_MacOS.zip(417.71 MB)
    SOFA_v20.12.02_Win64.exe(158.30 MB)
    SOFA_v20.12.02_Win64.zip(281.30 MB)
  • v20.12.01(Mar 2, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/v20.12/CHANGELOG.md#v201201 Diff with v20.12.00: https://github.com/sofa-framework/sofa/compare/v20.12.00...v20.12.01

    WARNING: There is an issue with files order in this version on Windows (easy to fix).
    See https://www.sofa-framework.org/community/forum/topic/error-in-first-launch-of-sofa-after-installation/

    Required dependencies

    Windows

    • Install Microsoft Visual C++ 2017 Redistributable.
    • [optional] Install Python 3.7 (amd64) and Numpy if you want to use the SofaPython3 plugin or any of its dependers.
      Make sure to enable PIP installation and addition to PATH.
      Then, open a console and run python -V && python -m pip install numpy
    • [deprecated] Install Python 2.7 (amd64) and Numpy if you want to use the SofaPython plugin or any of its dependers.
      Make sure to enable PIP installation and addition to PATH.
      Then, open a console and run python -V && python -m pip install numpy

    Linux

    • Install libopengl0 if it is not already in your system: sudo apt install libopengl0
    • [optional] Install Python 3.7 and Numpy if you want to use the SofaPython3 plugin or any of its dependers.
      sudo add-apt-repository ppa:deadsnakes
      sudo apt update
      sudo apt install libpython3.7 python3.7 python3-pip
      python3.7 -m pip install numpy

    MacOS

    • [optional] Install Python 3.7 and Numpy if you want to use the SofaPython3 plugin or any of its dependers.
      brew install [email protected]
      python3.7 -m pip install numpy

    Python2 to Python3 migration

    SofaPython3 is now included in SOFA binaries. Thus, these Python2-related features remain disabled: | In the C++ API | In the Python2 API | |-----------------|----------| | SofaTest/Python_test | SofaTest.Macro | SofaExporter/Binding_OBJExporter
    SofaExporter/Binding_STLExporter | | | Compliant/mapping/PythonMultiMapping
    Compliant/python/Binding_AssembledSystem | Compliant.Control
    Compliant.Frame
    Compliant.Rigid
    Compliant.Script
    Compliant.sml
    Compliant.Tools
    Compliant.Vec
    Compliant.future
    Compliant.StructuralAPI | | image/python/Binding_ImageData | SofaImage.API |

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python2 | Python3 | Glew | Zlib | libPNG | libJPEG | libTIFF | |-------------|----------|----------|---------|-----------|-----------|---------|----------|----------|---------|----------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 2.7.17 | 3.7.9 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 2.7.17 | 3.7.5 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.67.0 | 3.3.7 | 2.7.10 | 3.7.9 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v20.12.01_Linux.run(208.54 MB)
    SOFA_v20.12.01_Linux.zip(311.37 MB)
    SOFA_v20.12.01_MacOS.dmg(280.22 MB)
    SOFA_v20.12.01_MacOS.zip(417.71 MB)
    SOFA_v20.12.01_Win64.exe(158.30 MB)
    SOFA_v20.12.01_Win64.zip(281.30 MB)
  • v20.12.00(Jan 29, 2021)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v2012 Diff with v20.06: https://github.com/sofa-framework/sofa/compare/v20.06.01...v20.12.00

    Required dependencies

    Windows

    • Install Microsoft Visual C++ 2017 Redistributable.
    • [optional] Install Python 3.7 (amd64) and Numpy if you want to use the SofaPython3 plugin or any of its dependers.
      Make sure to enable PIP installation and addition to PATH.
      Then, open a console and run python -V && python -m pip install numpy
    • [deprecated] Install Python 2.7 (amd64) and Numpy if you want to use the SofaPython plugin or any of its dependers.
      Make sure to enable PIP installation and addition to PATH.
      Then, open a console and run python -V && python -m pip install numpy

    Linux

    • Install libopengl0 if it is not already in your system: sudo apt install libopengl0
    • [optional] Install Python 3.7 and Numpy if you want to use the SofaPython3 plugin or any of its dependers.
      sudo add-apt-repository ppa:deadsnakes
      sudo apt update
      sudo apt install libpython3.7 python3.7 python3-pip
      python3.7 -m pip install numpy

    MacOS

    • [optional] Install Python 3.7 and Numpy if you want to use the SofaPython3 plugin or any of its dependers.
      brew install [email protected]
      python3.7 -m pip install numpy

    Python2 to Python3 migration

    SofaPython3 is now included in SOFA binaries. Thus, these Python2-related features remain disabled: | In the C++ API | In the Python2 API | |-----------------|----------| | SofaTest/Python_test | SofaTest.Macro | SofaExporter/Binding_OBJExporter
    SofaExporter/Binding_STLExporter | | | Compliant/mapping/PythonMultiMapping
    Compliant/python/Binding_AssembledSystem | Compliant.Control
    Compliant.Frame
    Compliant.Rigid
    Compliant.Script
    Compliant.sml
    Compliant.Tools
    Compliant.Vec
    Compliant.future
    Compliant.StructuralAPI | | image/python/Binding_ImageData | SofaImage.API |

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python2 | Python3 | Glew | Zlib | libPNG | libJPEG | libTIFF | |-------------|----------|----------|---------|-----------|-----------|---------|----------|----------|---------|----------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 2.7.17 | 3.7.9 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 2.7.17 | 3.7.5 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.12.6 | 1.67.0 | 3.3.7 | 2.7.10 | 3.7.9 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v20.12.00_Linux.run(137.49 MB)
    SOFA_v20.12.00_Linux.zip(170.07 MB)
    SOFA_v20.12.00_MacOS.dmg(142.14 MB)
    SOFA_v20.12.00_MacOS.zip(163.83 MB)
    SOFA_v20.12.00_Win64.exe(97.65 MB)
    SOFA_v20.12.00_Win64.zip(154.05 MB)
  • v20.06.01(Aug 4, 2020)

    Changes

    Changelog: https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v2006 Diff with v20.06.00: https://github.com/sofa-framework/sofa/compare/v20.06.00...v20.06.01

    Required dependencies

    Windows

    Install Microsoft Visual C++ 2017 Redistributable. [optional] Install Python 2.7 (amd64) if you want to use the SofaPython plugin or any of its dependers. Make sure it is accessible in your system PATH.

    Linux

    All dependencies should be included.

    MacOS

    All dependencies should be included.

    Python2 to Python3 migration

    Including SofaPython3 in SOFA binaries is still a work in progress. In the meantime, in this release, all soft dependencies to SofaPython (Python2) have been disabled in order to ease the future integration of SofaPython3. Thus, these Python2-related features are disabled: | In the C++ API | In the Python2 API | |-----------------|----------| | SofaTest/Python_test | SofaTest.Macro | SofaExporter/Binding_OBJExporter
    SofaExporter/Binding_STLExporter | | | Compliant/mapping/PythonMultiMapping
    Compliant/python/Binding_AssembledSystem | Compliant.Control
    Compliant.Frame
    Compliant.Rigid
    Compliant.Script
    Compliant.sml
    Compliant.Tools
    Compliant.Vec
    Compliant.future
    Compliant.StructuralAPI | | image/python/Binding_ImageData | SofaImage.API |

    If you really need these features, you can get a legacy version of the binaries here.

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python | Glew | Zlib | libPNG | libJPEG | libTIFF | |-----------------|----------|----------|---------|----------|---------|----------|----------|---------|----------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 2.7.17 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 2.7.17 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.11.1 | 1.67.0 | 3.3.7 | 2.7.10 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v20.06.01_Linux.run(208.52 MB)
    SOFA_v20.06.01_Linux.zip(311.07 MB)
    SOFA_v20.06.01_MacOS.dmg(286.86 MB)
    SOFA_v20.06.01_MacOS.zip(295.90 MB)
    SOFA_v20.06.01_Win64.exe(156.73 MB)
    SOFA_v20.06.01_Win64.zip(260.61 MB)
  • v20.06.00(Jul 3, 2020)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v2006

    Required dependencies

    Windows

    Install Microsoft Visual C++ 2017 Redistributable. [optional] Install Python 2.7 (amd64) if you want to use the SofaPython plugin or any of its dependers. Make sure it is accessible in your system PATH.

    Linux

    All dependencies should be included.

    MacOS

    All dependencies should be included.

    Python2 to Python3 migration

    Including SofaPython3 in SOFA binaries is still a work in progress. In the meantime, in this release, all soft dependencies to SofaPython (Python2) have been disabled in order to ease the future integration of SofaPython3. Thus, these Python2-related features are disabled: | In the C++ API | In the Python2 API | |-----------------|----------| | SofaTest/Python_test | SofaTest.Macro | SofaExporter/Binding_OBJExporter
    SofaExporter/Binding_STLExporter | | | Compliant/mapping/PythonMultiMapping
    Compliant/python/Binding_AssembledSystem | Compliant.Control
    Compliant.Frame
    Compliant.Rigid
    Compliant.Script
    Compliant.sml
    Compliant.Tools
    Compliant.Vec
    Compliant.future
    Compliant.StructuralAPI | | image/python/Binding_ImageData | SofaImage.API |

    If you really need these features, you can get a legacy version of the binaries here.

    Info

    Binaries were generated using the following libraries: | . | Qt | Boost | Eigen | Python | Glew | Zlib | libPNG | libJPEG | libTIFF | |-----------------|----------|----------|---------|----------|---------|----------|----------|---------|----------| | Windows | 5.12.6 | 1.69.0 | 3.3.7 | 2.7.17 | 1.13 | 1.2.8 | 1.6.18 | 6b | 4.0.9 | | Linux | 5.12.6 | 1.67.0 | 3.3.4 | 2.7.17 | 2.0.0 | 1.2.11 | 1.6.34 | 8c | 4.0.9 | | MacOS | 5.11.1 | 1.67.0 | 3.3.7 | 2.7.10 | 2.1.0 | 1.2.11 | 1.6.36 | 9c | 4.0.10 |

    Source code(tar.gz)
    Source code(zip)
    SOFA_v20.06.00_Linux.run(212.66 MB)
    SOFA_v20.06.00_Linux.zip(318.66 MB)
    SOFA_v20.06.00_MacOS.dmg(290.30 MB)
    SOFA_v20.06.00_MacOS.zip(299.42 MB)
    SOFA_v20.06.00_Win64.exe(158.15 MB)
    SOFA_v20.06.00_Win64.zip(263.06 MB)
  • v19.12.00(Jan 20, 2020)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1912

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 (amd64) is needed to use the SofaPython plugin. Make sure it is accessible in the system PATH.

    Linux

    All dependencies are included.

    MacOS

    All dependencies are included.

    Info

    Binaries were generated using the following libraries:

    . | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.13 | 2.7.12 | 2.7.10 Boost | 1.64.0 | 1.58.0 | 1.67.0 Qt | 5.9.1 | 5.12.2 | 5.11.1 Glew | 1.13 | 1.13.0 | 2.1.0 Zlib | 1.2.8 | 1.2.8 | 1.2.11 libPNG | 1.6.18 | 1.2.54 | 1.6.36 libJPEG | 6b | 8.0.2 | 9c libTIFF | 4.0.9 | 5.2.4 | 4.0.10

    Source code(tar.gz)
    Source code(zip)
    SOFA_v19.12.00_Linux.run(142.16 MB)
    SOFA_v19.12.00_Linux.zip(178.13 MB)
    SOFA_v19.12.00_MacOS.dmg(144.60 MB)
    SOFA_v19.12.00_MacOS.zip(157.40 MB)
    SOFA_v19.12.00_Win64.exe(99.09 MB)
    SOFA_v19.12.00_Win64.zip(141.09 MB)
  • v19.06.01(Jul 26, 2019)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1906

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 (amd64) is needed to use the SofaPython plugin. Make sure it is accessible in the system PATH.

    Linux

    All dependencies are included.

    MacOS

    All dependencies are included.

    Info

    Binaries were generated using the following libraries:

    . | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.13 | 2.7.12 | 2.7.10 Boost | 1.64.0 | 1.58.0 | 1.67.0 Qt | 5.9.1 | 5.12.2 | 5.11.1 Glew | 1.13 | 1.13.0 | 2.1.0 Zlib | 1.2.8 | 1.2.8 | 1.2.11 libPNG | 1.6.18 | 1.2.54 | 1.6.36 libJPEG | 6b | 8.0.2 | 9c libTIFF | 4.0.9 | 5.2.4 | 4.0.10

    Source code(tar.gz)
    Source code(zip)
    SOFA_v19.06.01_Linux.run(141.85 MB)
    SOFA_v19.06.01_Linux.zip(177.49 MB)
    SOFA_v19.06.01_MacOS.dmg(147.74 MB)
    SOFA_v19.06.01_MacOS.zip(153.03 MB)
    SOFA_v19.06.01_Win64.exe(121.41 MB)
    SOFA_v19.06.01_Win64.zip(174.54 MB)
  • v19.06.00(Jul 8, 2019)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1906

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 (amd64) is needed to use the SofaPython plugin. Make sure it is accessible in the system PATH.

    Linux

    All dependencies are included.

    MacOS

    All dependencies are included.

    Info

    Binaries were generated using the following libraries:

    . | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.13 | 2.7.12 | 2.7.10 Boost | 1.64.0 | 1.58.0 | 1.67.0 Qt | 5.9.1 | 5.12.2 | 5.11.1 Glew | 1.13 | 1.13.0 | 2.1.0 Zlib | 1.2.8 | 1.2.8 | 1.2.11 libPNG | 1.6.18 | 1.2.54 | 1.6.36 libJPEG | 6b | 8.0.2 | 9c libTIFF | 4.0.9 | 5.2.4 | 4.0.10

    Source code(tar.gz)
    Source code(zip)
    SOFA_v19.06.00_Linux.run(134.63 MB)
    SOFA_v19.06.00_Linux.zip(166.04 MB)
    SOFA_v19.06.00_MacOS.dmg(171.78 MB)
    SOFA_v19.06.00_MacOS.zip(177.14 MB)
    SOFA_v19.06.00_Win64.exe(121.41 MB)
    SOFA_v19.06.00_Win64.zip(174.54 MB)
  • v18.12.01(Feb 14, 2019)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1812

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 is needed to use the SofaPython plugin. Make sure it is accessible in the system PATH.

    Linux

    All dependencies are included.

    MacOS

    All dependencies are included.

    Info

    Binaries were generated using the following libraries:

    . | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.12 | 2.7.12 | 2.7.15 Boost | 1.69.0 | 1.58.0 | 1.68.0 Qt | 5.11.3 | 5.10.1 | 5.10.1 Glew | 1.13 | 1.13.0 | 2.1.0 Zlib | 1.2.8 | 1.2.8 | 1.2.11 libPNG | 1.6.18 | 1.2.54 | 1.6.36 libJPEG | 6b | 8.0.2 | 9c libTIFF | 4.0.9 | 5.2.4 | 4.0.10

    Source code(tar.gz)
    Source code(zip)
    SOFA_v18.12.01_Linux.run(137.77 MB)
    SOFA_v18.12.01_MacOS.dmg(137.22 MB)
    SOFA_v18.12.01_Win32.exe(85.46 MB)
    SOFA_v18.12.01_Win64.exe(91.61 MB)
  • v18.12.00(Jan 22, 2019)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1812

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 is needed to use the SofaPython plugin. Make sure it is accessible in the system PATH.

    Linux

    All dependencies are included.

    MacOS

    All dependencies are included.

    Info

    Binaries were generated using the following libraries:

    . | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.12 | 2.7.12 | 2.7.15 Boost | 1.69.0 | 1.58.0 | 1.68.0 Qt | 5.11.3 | 5.10.1 | 5.10.1 Glew | 1.13 | 1.13.0 | 2.1.0 Zlib | 1.2.8 | 1.2.8 | 1.2.11 libPNG | 1.6.18 | 1.2.54 | 1.6.36 libJPEG | 6b | 8.0.2 | 9c libTIFF | 4.0.9 | 5.2.4 | 4.0.10

    Source code(tar.gz)
    Source code(zip)
    SOFA_v18.12.00_Linux.run(137.89 MB)
    SOFA_v18.12.00_MacOS.dmg(137.19 MB)
    SOFA_v18.12.00_Win32.exe(85.20 MB)
    SOFA_v18.12.00_Win64.exe(91.26 MB)
  • v18.06.01(Oct 5, 2018)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1806

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 is needed to use the SofaPython plugin. Make sure it is accessible in the system PATH.

    Linux

    Run ldd --version and choose the package corresponding to your GLIBC version. All dependencies are included in the ZIP package. Python 2.7 is needed to use the SofaPython plugin.

    MacOS

    All dependencies are included in the DMG package. After install, to start runSofa, open a console and type
    /Applications/runSofa.app/Contents/MacOS/runSofa

    Info

    Binaries were generated using the following libraries:

    . | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.12 | 2.7.12 | 2.7.10 Boost | 1.64.0 | 1.58.0 | 1.67.0 Qt | 5.7.1 | 5.10.1 | 5.7.1 Glew | 1.13 | 1.13.0 | 2.1.0 Zlib | 1.2.8 | 1.2.8 | 1.2.11 libPNG | 1.6.18 | 1.2.54 | 1.6.34 libJPEG | 6b | 8.0.2 | 9c libTIFF | 4.0.9 | 5.2.4 | 4.0.9

    Source code(tar.gz)
    Source code(zip)
    SOFA_v18.06.01_Linux-glibc_2.23.zip(176.09 MB)
    SOFA_v18.06.01_Linux-glibc_2.27.zip(269.15 MB)
    SOFA_v18.06.01_MacOS.dmg(121.09 MB)
    SOFA_v18.06.01_Win32.exe(105.33 MB)
    SOFA_v18.06.01_Win64.exe(111.81 MB)
  • v18.06.00(Jul 18, 2018)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1806

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 is needed to use the SofaPython plugin. Make sure it is accessible in the system PATH.

    Linux

    Run ldd --version and choose the package corresponding to your GLIBC version. All dependencies are included in the ZIP package. Python 2.7 is needed to use the SofaPython plugin.

    MacOS

    All dependencies are included in the DMG package. After install, to start runSofa, open a console and type
    /Applications/runSofa.app/Contents/MacOS/runSofa

    Info

    Binaries were generated using the following libraries:

      | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.12 | 2.7.12 | 2.7.10 Boost | 1.64.0 | 1.58.0 | 1.67.0 Qt | 5.7.1 | 5.10.1 | 5.7.1 Glew | 1.13 | 1.13.0 | 2.1.0 Zlib | 1.2.8 | 1.2.8 | 1.2.11 libPNG | 1.6.18 | 1.2.54 | 1.6.34 libJPEG | 6b | 8.0.2 | 9c libTIFF | 4.0.9 | 5.2.4 | 4.0.9

    Source code(tar.gz)
    Source code(zip)
    SOFA_v18.06.00_Linux-glibc_2.23.zip(176.66 MB)
    SOFA_v18.06.00_Linux-glibc_2.27.zip(270.67 MB)
    SOFA_v18.06.00_MacOS.dmg(121.08 MB)
    SOFA_v18.06.00_Win32.exe(105.82 MB)
    SOFA_v18.06.00_Win64.exe(112.36 MB)
  • v17.12.02(May 24, 2018)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1712

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 is also needed to use the SofaPython plugin. Make sure it is accessible in your PATH.

    Linux

    Make sure you have Qt5 on your system. sudo apt install qt5-default libqt5opengl5-dev will install all required Qt5 deps. Python 2.7 is also needed to use the SofaPython plugin.

    MacOS

    All dependencies are already included in the DMG package. After install, to start runSofa, open a console and type
    /Applications/runSofa.app/Contents/MacOS/runSofa

    Info

    Binaries were generated using the following library versions:

    lib | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.12 | 2.7.12 | 2.7.10 Boost | 1.64 | 1.58 | 1.64 Qt | 5.7.1 | 5.5.1 | 5.7.1 Glew | 1.13 | 1.13 | 2.0 Zlib | 1.2.8 | 1.2.8 | 1.2.8 libPNG | 1.6.18 | 1.2.54 | 1.6.31 libJPEG | 6b | 8.0.2 | 9b libTIFF | 4.0.9 | 4.0.6 | 4.0.8

    Source code(tar.gz)
    Source code(zip)
    SOFA_v17.12.02_Linux.zip(147.91 MB)
    SOFA_v17.12.02_MacOS.dmg(121.11 MB)
    SOFA_v17.12.02_Win32.exe(74.92 MB)
    SOFA_v17.12.02_Win64.exe(79.55 MB)
  • v17.12.01(Apr 6, 2018)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1712

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 is also needed to use the SofaPython plugin. Make sure it is accessible in your PATH.

    Linux

    Make sure you have Qt5 on your system. sudo apt install qt5-default libqt5opengl5-dev will install all required Qt5 deps. Python 2.7 is also needed to use the SofaPython plugin.

    MacOS

    All dependencies are already included in the DMG package. After install, to start runSofa, open a console and type
    /Applications/runSofa.app/Contents/MacOS/runSofa

    Info

    Binaries were generated using the following library versions:

    lib | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.12 | 2.7.12 | 2.7.10 Boost | 1.64 | 1.58 | 1.64 Qt | 5.7.1 | 5.5.1 | 5.7.1 Glew | 1.13 | 1.13 | 2.0 Zlib | 1.2.8 | 1.2.8 | 1.2.8 libPNG | 1.6.18 | 1.2.54 | 1.6.31 libJPEG | 6b | 8.0.2 | 9b libTIFF | 4.0.9 | 4.0.6 | 4.0.8

    Source code(tar.gz)
    Source code(zip)
    SOFA_v17.12.01_Linux.zip(144.20 MB)
    SOFA_v17.12.01_MacOS.dmg(113.06 MB)
    SOFA_v17.12.01_Win32.exe(75.53 MB)
    SOFA_v17.12.01_Win64.exe(80.21 MB)
  • v17.12.00(Feb 6, 2018)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1712

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015. Python 2.7 is also needed to use the SofaPython plugin. Make sure it is accessible in your PATH.

    Linux

    Make sure you have Qt5 on your system. sudo apt install qt5-default libqt5opengl5-dev will install all required Qt5 deps. Python 2.7 is also needed to use the SofaPython plugin.

    MacOS

    All dependencies are already included in the DMG package. After install, to start runSofa, open a console and type
    /Applications/runSofa.app/Contents/MacOS/runSofa

    Info

    Binaries were generated using the following library versions:

    lib | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Python | 2.7.12 | 2.7.12 | 2.7.10 Boost | 1.64 | 1.58 | 1.64 Qt | 5.7.1 | 5.5.1 | 5.7.1 Glew | 1.13 | 1.13 | 2.0 Zlib | 1.2.8 | 1.2.8 | 1.2.8 libPNG | 1.6.18 | 1.2.54 | 1.6.31 libJPEG | 6b | 8.0.2 | 9b libTIFF | 4.0.9 | 4.0.6 | 4.0.8

    Source code(tar.gz)
    Source code(zip)
    SOFA_v17.12.00_Linux.zip(144.19 MB)
    SOFA_v17.12.00_MacOS.dmg(113.07 MB)
    SOFA_v17.12.00_Win32.exe(75.53 MB)
    SOFA_v17.12.00_Win64.exe(80.21 MB)
  • v17.06(Oct 12, 2017)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1706

    Required dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2015.

    Linux

    Make sure you have Qt5 on your system. For instance, execute the following command for Ubuntu/Debian: sudo apt-get install qt5-default libqt5opengl5-dev sudo apt-get install freeglut3 (if necessary)

    MacOS

    All dependencies are already included in the DMG package.

    Info

    Binaries were generated using the following library versions:

    lib | Windows | Linux | MacOS --- | :-------: | :-------: | :-------: Boost | 1.64 | 1.58 | 1.64 Qt | 5.7.1 | 5.5.1 | 5.7.1 Glew | 1.13 | 1.13 | 2.0 Zlib | 1.2.8 | 1.2.8 | 1.2.5 libPNG | 1.6 | 1.2.54 | 1.6.29

    Source code(tar.gz)
    Source code(zip)
    SOFA_v17.06_Linux.zip(138.20 MB)
    SOFA_v17.06_MacOS.dmg(182.36 MB)
    SOFA_v17.06_Win32.exe(72.74 MB)
    SOFA_v17.06_Win64.exe(77.30 MB)
  • v16.12(Jan 27, 2017)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1612

    Dependencies

    Windows

    Install the Visual C++ Redistributable Packages for Visual Studio 2013.

    For information, binaries were generated using the following library versions:

    • boost 1.59
    • Qt 5.7
    • GLEW 1.2.3
    • zlib 1.2.7
    • libpng-1.2.6

    Linux

    Make sure you have Qt5 on your system. For instance, execute the following command for Ubuntu/Debian: sudo apt-get install qt5-default libqt5opengl5-dev sudo apt-get install freeglut3 (if necessary)

    For information, binaries were generated using the following library versions:

    • boost 1.54
    • Qt 5.4.1
    • GLEW 1.10.0
    • zlib 1.2.8
    • libpng-1.2.6

    MacOS

    All dependencies are already included in the DMG package.

    For information, binaries were generated using the following library versions:

    • boost 1.63
    • Qt 5.6.2
    • GLEW 2.0.0
    • zlib 1.2.5
    • libpng-1.6.28
    Source code(tar.gz)
    Source code(zip)
    Sofa-16.12-Linux.zip(137.72 MB)
    Sofa-16.12-MacOS.dmg(212.60 MB)
    Sofa-16.12-win32.exe(84.49 MB)
    Sofa-16.12-win64.exe(91.16 MB)
  • v16.08(Aug 5, 2016)

    Changelog

    https://github.com/sofa-framework/sofa/blob/master/CHANGELOG.md#v1608

    Dependencies

    Windows

    Make sure you have Qt5 on your system or download qt-everywhere-opensource-src-5.5.1 Download the Visual C++ Redistributable for Visual Studio 2015: VC-redist.x86.exe VC-redist.x64.exe

    Linux

    Make sure you have Qt5 on your system. For instance, execute the following command for Ubuntu/Debian: sudo apt-get install qt5-default qttools5-dev-tools libqt5opengl5-dev sudo apt-get install freeglut3 (if necessary)

    MacOS

    All dependencies are already included in the DMG package.

    Source code(tar.gz)
    Source code(zip)
    Sofa-16.08-Linux.zip(122.07 MB)
    Sofa-16.08-MacOS.dmg(200.19 MB)
    Sofa-16.08-win32.zip(103.46 MB)
    Sofa-16.08-win64.zip(110.51 MB)
  • v15.12(Aug 5, 2016)

    Dependencies

    Windows

    Make sure you have Qt5 on your system or download qt-everywhere-opensource-src-5.5.1 Download the Visual C++ Redistributable for Visual Studio 2015: VC-redist.x86.exe

    Linux

    Make sure you have Qt5 on your system. For instance, execute the following command for Ubuntu/Debian: sudo apt-get install qt5-default qttools5-dev-tools libqt5opengl5-dev sudo apt-get install freeglut3 (if necessary)

    MacOS

    All dependencies are already included in the DMG package.

    Source code(tar.gz)
    Source code(zip)
    Sofa-15.12-Darwin.dmg(178.38 MB)
    Sofa-15.12-Linux.tar.gz(117.94 MB)
    Sofa-15.12-win32.zip(98.83 MB)
C++ library for multi-physics simulation

Project CHRONO Project Chrono represents a community effort aimed at producing a physics-based modelling and simulation infrastructure based on a plat

null 1.4k May 13, 2022
Box2D is a 2D physics engine for games

Build Status Box2D Box2D is a 2D physics engine for games. Contributing Please do not submit pull requests with new features or core library changes.

Erin Catto 5.7k May 17, 2022
A fast and lightweight 2D game physics library.

NEW IN CHIPMUNK 7 Chipmunk 7 is complete and now includes the ARM NEON optimizations, the autogeometry code, and the mulithreaded solver. The latest p

Scott Lembcke 1.8k May 11, 2022
2D physics engine for games

LiquidFun Version 1.1.0 Welcome to LiquidFun! LiquidFun is a 2D physics engine for games. Go to our landing page to browse our documentation and see s

Google 4.4k May 7, 2022
High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton.

Simbody Simbody is a high-performance, open-source toolkit for science- and engineering-quality simulation of articulated mechanisms, including biomec

Simbody Project 1.9k May 15, 2022
Natively multithreaded physics for threejs with PhysX.

Three-Physx Natively multithreaded physics for threejs with PhysX and an easy interface. Credit to Milkshake inc, physx-js, three-ammo, three-to-canno

XR Foundation 12 Feb 17, 2022
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

Bullet Physics SDK This is the official C++ source code repository of the Bullet Physics SDK: real-time collision detection and multi-physics simulati

Bullet Physics SDK 9.3k May 10, 2022
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

Bullet Physics SDK 9.3k May 11, 2022
A minimalist library with basic facilities for developing interactive real-time 3D applications, with a strong emphasis on simplicity and ease of use.

SlimEngine A minimalist and platform-agnostic base project for interactive graphical applications (2D/3D) with a strong emphasis on simplicity, ease o

Arnon Marcus 66 May 10, 2022
iMSTK - Interactive Medical Simulation Toolkit

iMSTK - Interactive Medical Simulation Toolkit About Overview Participants Licensing Resources Documentation Discourse Issue tracker Prerequisites Get

Kitware, Inc. 11 May 7, 2022
C++ library for multi-physics simulation

Project CHRONO Project Chrono represents a community effort aimed at producing a physics-based modelling and simulation infrastructure based on a plat

null 1.4k May 13, 2022
C++ library for multi-physics simulation

Project Chrono represents a community effort aimed at producing a physics-based modelling and simulation infrastructure based on a platform-independent, open-source design.

null 1.4k May 11, 2022
This is a demonstration repository for The Pitt Challenge project about medical image compression.

Image Compression for Portable Medical Records This is a demonstration repository for The Pitt Challenge project about medical image compression. Back

null 3 Oct 24, 2021
the implementations of 'Parzen-Window Based Normalized Mutual Information for Medical Image Registration'

ImageRegistration_NormalisedMutualInformation 代码复现论文《Parzen-Window Based Normalized Mutual Information for Medical Image Registration》 利用归一化互信息对医学图像进行

gtc1072 3 Apr 4, 2022
Improved version of real-time physics engine that couples FEM-based deformables and rigid body dynamics

Enhanced version of coupled FEM and constrained rigid body simulation Description This little playground aimed to test our Conjugate Gradients based M

Andrey Voroshilov 25 Apr 11, 2022
Real-time oriented physics engine and library that's currently best suited for 2D games.

PlayRho A way to play with physical behaviors like the conservation of momentum. PlayRho is a real-time oriented physics engine and library that's cur

Louis Langholtz 82 Apr 22, 2022
Overlay Microsoft Flight Simulator (FS2020) aircraft data onto real airport charts in real-time

FLIGHTSIM CHARTS Introduction Overlay Microsoft Flight Simulator (FS2020) aircraft data onto real airport charts in real-time. Instantly teleport to a

Scott Vincent 4 Apr 19, 2022
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

null 24.1k May 11, 2022
R2LIVE is a robust, real-time tightly-coupled multi-sensor fusion framework, which fuses the measurement from the LiDAR, inertial sensor, visual camera to achieve robust, accurate state estimation.

R2LIVE is a robust, real-time tightly-coupled multi-sensor fusion framework, which fuses the measurement from the LiDAR, inertial sensor, visual camera to achieve robust, accurate state estimation.

HKU-Mars-Lab 551 May 12, 2022
StarRocks is a next-gen sub-second MPP database for full analysis senarios, including multi-dimensional analytics, real-time analytics and ad-hoc query, formerly known as DorisDB.

StarRocks is a next-gen sub-second MPP database for full analysis senarios, including multi-dimensional analytics, real-time analytics and ad-hoc query, formerly known as DorisDB.

StarRocks 2.5k May 16, 2022
ORB-SLAM3 is the first real-time SLAM library able to perform Visual, Visual-Inertial and Multi-Map SLAM with monocular, stereo and RGB-D cameras, using pin-hole and fisheye lens models.

Just to test for my research, and I add coordinate transformation to evaluate the ORB_SLAM3. Only applied in research, and respect the authors' all work.

B.X.W 4 May 13, 2022
Tandem - [CoRL 21'] TANDEM: Tracking and Dense Mapping in Real-time using Deep Multi-view Stereo

TANDEM: Tracking and Dense Mapping in Real-time using Deep Multi-view Stereo Lukas Koestler1*    Nan Yang1,2*,†    Niclas Zeller2,3    Daniel Cremers1

TUM Computer Vision Group 578 May 13, 2022
Real-time Water - Fast Water Simulation for Games Using Height Fields

In this project a water-simulation was implemented based on the approach suggested in the presentation "Fast Water Simulation for Game

Henrik Patjens 137 Mar 16, 2022
EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.

EA Standard Template Library EASTL stands for Electronic Arts Standard Template Library. It is a C++ template library of containers, algorithms, and i

Electronic Arts 6.4k May 7, 2022
A minimalist andf platform-agnostic application layer for writing graphical applications, with a strong emphasis on simplicity and ease of use.

SlimApp A minimalist(*) and platform-agnostic application layer for writing graphical applications. Available as either a single header file or a dire

Arnon Marcus 33 Apr 22, 2022
Software ray tracer written from scratch in C that can run on CPU or GPU with emphasis on ease of use and trivial setup

A minimalist and platform-agnostic interactive/real-time raytracer. Strong emphasis on simplicity, ease of use and almost no setup to get started with

Arnon Marcus 42 Apr 23, 2022
HDRView is a simple research-oriented image viewer with an emphasis on examining and comparing high-dynamic range (HDR) images

HDRView is a simple research-oriented high-dynamic range image viewer with an emphasis on examining and comparing images, and including minimalistic tonemapping capabilities. HDRView currently supports reading EXR, PNG, TGA, BMP, HDR, JPG, GIF, PNM, PFM, and PSD images and writing EXR, HDR, PNG, TGA, PPM, PFM, and BMP images.

Wojciech Jarosz 100 Apr 18, 2022
High Performance 3D Game Engine, with a high emphasis on Rendering

Electro High Performance 3D Game Engine, with a high emphasis on Rendering MainFeatures Rendering PBR Renderer (Cook–Torrance GGX) IBL (Image Based Li

Surge 45 May 10, 2022