Opensim Core Versions Save

SimTK OpenSim C++ libraries and command-line applications, and Java/Python wrapping.

4.5

2 months ago

Core libraries corresponding to the OpenSim 4.5 release.

Changes included in this release can be found in both CHANGELOG.md and CHANGELOG_MOCO.md (Moco 1.3.0).

4.4.1

9 months ago

API-only release in preparation for the TGCS 2023 OpenSim workshop.

Some important changes in this release include:

  • IMU::calcGyroscopeSignal() now reports angular velocities in the IMU frame.
  • Made Component::getSocketNames a const member method (previously: non-const)
  • Modifed the swig interface files to make OpenSim::PathPointSet adopt new PathPoints inserted into it. (Issue #3276)
  • Remove references to obsoleted dependency BTK, use ezc3d exclusively.
  • Improve documentation for MotionType to serve scripting users (Issue #3324).
  • Added OpenSim::AbstractSocket::canConnectTo(Object const&) const, for faster socket connectivity checks (#3451)
  • Fixed the CoordinateCouplerConstraint bug preventing functions with multiple independent coordinates (#3435)
  • Added SIMBODY_EXTRA_CMAKE_ARGS to dependencies/CMakeLists.txt, which lets integrators customize Simbody via the OpenSim superbuild (#3455)
  • The property, input, output, and socket macros (e.g. OpenSim_DECLARE_PROPERTY) can now be used outside of the OpenSim namespace and no longer require a using namespace OpenSim; declaration in order to work (#3468)
  • Fixed issues #3083 #2575 where analog data is not pulled out from c3d files, a a new function getAnalogDataTable() has been added to the C3DFileAdapter
  • Add calcMomentum, calcAngularMomentum, calcLinearMomentum, and associated Outputs to Model (#3474)
  • Fix issue where a different init.py is used by conda package and dev environment, the fix allows developers to install local builds into conda. (#3502)
  • Fixed a bug where failing MocoProblems with path constraints returned a zero time vector.
  • Added getSphereForce, getHalfSpaceForce, and associated Outputs sphere_force and half_space_force to SmoothSphereHalfSpaceForce.
  • Added convenience methods MocoGoal::setEndpointConstraintBounds and MocoGoal::getEndpointConstraintBounds.

4.4

1 year ago

Code base for opensim-core used for version 4.4 release

4.3

2 years ago

Code base of opensim-core corresponding to release 4.3

4.2

2 years ago

Release 4.2 of the OpenSim core libraries (including Moco)

4.1

4 years ago

Release 4.1 of OpenSim core libraries

4.0

5 years ago

v4.0.0_beta

7 years ago

This release is intended to freeze user facing API changes and to enable GUI integration and internal and external user testing.

Some important changes since the alpha include:

  • revised and more complete Model::print... methods to print general and specific model information, such as the number of bodies or the names of every Component in the model, to the console
  • DataTable enhancements to read and write tables of different numeric types like: Vec3, SpatialVec, Quaternion and being able to grow tables by appending columns
  • the user-facing option to reverse the sense of a Joint (e.g. from child to parent) was removed. Joints now always provide generalized coordinates that describe the motion of the child frame in the parent and may be reversed internally to obtain an efficient multibody tree representation of the model.
  • no more internal (silent) clamping of muscle excitation (controls) to Muscle models. Input controls must satisfy the max_control and min_control settings of an actuator (includes muscles) otherwise an Exception is thrown.
  • update to the PathPoint hierarchy, with MovingPathPoint now deriving directly from anAbstractPathPoint and excludes stationary information that remains in PathPoint.
  • Connector was renamed to Socket. A component has a list of sockets that connect it to its dependencies (that are other components)
  • Component::connect() was replaced by Component::finalizeConnections() to distinguish the Component level operation of satisfying its dependencies (Sockets and Inputs) in finalizeConnections(), from the individual Socket/Input task of connecting to its respective Component/Output (connect()).

v4.0.0_alpha

7 years ago

This release is intended primarily for the @opensim-org/dev-team to test with scripting environments and for updating and writing scripting examples.

A few key changes since devweek0716 include:

  • Connector and Input macros for auto generating connect methods.
  • Reporter::addToReport for including Outputs of Components to a Reporter
  • conversion of TimeSeriesTable<T> to (flatten) and from (pack) a TimeSeriesTable<double> and reading/writing from tables from/to .sto files
  • Frame::attachGeometry convenience method for slapping on (displayable) Geomtery

See README.md for instructions for building the OpenSim libraries from source.

To set up MATLAB for scripting with your local build of opensim-core, we recommend you follow the Manual Setup instructions (scroll down to the heading "Manual Setup" and click "expand"). You should make the following change to the edit classpath.txt step:

  • On Windows, use: <opensim-core-install>/sdk/Java/org-opensim-modeling.jar instead of what is specified.
  • On macOS, use: <opensim-core-install>/share/java/org-opensim-modeling.jar instead of what is specified.