The files that make up the OpenSim source are located in 3 different

Layout of opensim-core

  • Applications: Applications built on top of the OpenSim API including scale, ik, id, forward, analyze and corresponding test cases.
  • OpenSim/doc: setup files for API documentation.
  • OpenSim/Examples_ C++ API example projects.
  • OpenSim/Wrapping: SWIG files for generating Java and Python wrappers.
  • OpenSim/<everything else>: The C++ source code used to build the OpenSim libraries.
  • Vendors: Source code for third-party libraries.

Layout of SVN OpenSim

  • Gui: Java source code and Netbeans build files for the GUI.
  • Installer: Files to for making a Windows installer for the GUI.
  • Vendors: Third-party libraries, like VTK, which is used for visualizing.

History of the organization of the source files

Prior to June 2014, all of the OpenSim source files were located in a single SVN repository, at In June 2014, we moved some of the source files into git repositories at

This conversion was performed using Python scripts located at, which employ the svn2git conversion tool ( The conversion consisted of the following steps:

  1. Convert the entire OpenSim SVN repository to git using svn2git. Call this GIT repository 'opensim-legacy'.
  2. Make a copy of 'opensim-legacy', name it 'opensim-core', and make the following changes to it:
    • Delete from the history any directories with the following names:
      • importOldModels
      • Models
      • Gui
      • Installer
      • Documentation
      • html
      • xerces-c*
      • Specs
      • vtk_dll
      • CFSQP
      • NMBLTK
      • SimTK
      • Gui
      • Gait*
      • Arm26
      • Leg39
      • si (used for Doxygen documentation; stands for search index).

    • Delete from the history any files matching (binary and machine-generated files):
      • WriteEnvStr.nsh
      • *_wrap.cxx
      • *.psd
      • *.java
      • *.dll
      • *.lib
      • *.dylib
      • *.so
      • *.jar
      • OpenSimJNI_wrap.cxx
      • *.exe
  3. Make a copy of 'opensim-legacy', extract the 'Models' folder into its own git repository, and name it 'opensim-models'. The models take up a lot of disk space, since they contain reference output (huge Storage files). We felt we could separate this from opensim-core to keep opensim-core as small as possible.
  4. Delete from the SVN repository any files that are not related to the GUI or to creating a release of the OpenSim application.

The 'opensim-legacy' repository, which is a private GitHub repository which only members of the opensim-org can view, contains a nearly complete history of the OpenSim source files, and can be used for reference by the development team to explore OpenSim's history using git. We felt this was necessary since the 'opensim-core' repository does not contain a complete history.

The SVN repository used to contain an optimization library CFSQP. We do not have a license to distribute this code freely. We have deleted this library from the SVN repository and placed it in a private GitHub repository, accessibly only to members of the opensim-org organization.

For further details about the conversion, see the files at; in particular, the README.txt file.