Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

OpenSim 3.0 is our biggest upgrade to-date. We've added new features, including live model editing, scripting in Matlab and the OpenSim application, and improved muscle models. We've enhanced some of the core existing OpenSim functionality, including our muscle models and tools for visualizing forces and other motion data. OpenSim 3.0 also includes a host of usability improvements for beginning users to advanced developers. Read more about the new features and improvements below.

...

  • Probes are a new model components that perform measurements on an OpenSim model during a simulation. 
  • These measurements can then be outputted to an external file using a ProbeReporter analysis.
  • Four Probes are included with the OpenSim 3.0 release, including probes to output actuator force, actuator power, joint internal power, and system energy. You can add any of these existing probes to your OpenSim model. 
  • Developers and API users can create new Probes and combine them with existing Probes to achieve a wide range of functionality.
  • Read more in the section on Probes.

API Improvements 

  • The new ModelComponent interface enables users to more easily add custom model components.
  • We've added a Visualizer, to visualize OpenSim models and their simulations using the API  and thus accessible to user programs.
  • We streamlined the property handling interface to reduce error incidence and the length and complexity of the code required to add properties.
  • OpenSim 3.0 uses Simbody 3.0 as its underlying dynamics engine for improved performance and new features. Read more in the Simbody 3.0 upgrade notes.
  • We updated the Coordinate class to the new property interface, improved its documentation and memory management, and added the property is_free_to_satisfy_constraints to allow dependent coordinates to assume any value necessary to satisfy constraints during the assembly of a model.
  • We revamped the Controller class by converting to new properties, and performing other clean up and interface improvement
  • The API now includes more convenient states reporting.
  • We added setDescription, setAuthors, setReferences methods to Object to enable you to describe your component and identify yourself and your sources, so that users of the components you create can credit your work.
  • You can access the Doxygen documentation from the OpenSim GUI.
  • We streamlined the build process by refining the CMakeLists, adding better documentation, distributing the source code via a zip file, eliminating Xerces, and fixing linux build bugs.
  • Read more about the OpenSim API and new class structure in the OpenSim API Doxygen.

License Updates for OpenSim

OpenSim 3.0 includes updated licenses for the OpenSim application and the API. Read the License for OpenSim 3.0 and Later.

  • The OpenSim application now allows commercial use, provided you still acknowledge your use of OpenSim
  • The OpenSim API is now fully open source, following the Apache 2.0 License. We request that you acknowledge your use of the OpenSim API.
  • The model files distributed with OpenSim have custom licenses, with most using Creative Commons (CCBY 3.0). Refer to each model for more details.
  • Users developing new models, plugins, simulations, etc. retain the right to define their own license. 

...

  • We are now using wiki-based documentation for all of our documentation (user guide, developer guide, examples, tutorials, etc.). This documentation is hierarchical and searchable, and makes it easy to constantly add new information and examples. The GUI now links to this online documentation (or a local copy if you're offline). Some key features of our online documentation include:
  • We've added many examples for using the new Scripting functionality in Matlab and the GUI
  • Our API examples have also been improved and expanded
    • There is a new plugin example showing you how to create a "BodyDrag" force.
    • We improved the example for creating a custom muscle with fatigue that utilizes the new Muscle interface
    • We've streamlined the API example build process, to help you get started with these examples more quickly.
    • See the Developer's Guide for more information.

Bug Fixes

  • We corrected an IK bug discovered in the GUI. When specifying IK coordinate tasks, the GUI was using the current value of a model's coordinate when the "value_type" was set to  default_value. It has been corrected to now track the coordinate's default value (NOT its current value).