OpenSim provides a graphical user interface (GUI) and an application programming interface (API) for loading, manipulating, simulating, and analyzing neuromusculoskeletal models. Both are included in the binary releases that can be downloaded from the OpenSim project site (https://simtk.org/home/opensim).
The OpenSim GUI is specialized for visualizing 3D models, experimental data input, and simulation results such as skeletal motion and muscle activation patterns. Built-in tools enable users to perform a variety of simulations and analyses including: inverse kinematics, inverse dynamics, static optimization, forward dynamics simulation, and computed muscle control with no programming required. A graphical plotter enables the creation of plots of muscle moment-arms, joint kinematics, muscle forces, and virtually any quantity computed from a simulation or an analysis.
The API provides programmatic access to the underlying computational infrastructure and algorithms employed by the graphical interface. This enables users with programming skills to combine existing functionality in new ways and extend the libraries of existing components of a model and analyses by writing their own programs and OpenSim plug-ins. Plug-ins are accessible through the graphical interface and are a convenient way of sharing technical innovations with others.
Building the OpenSim API from source is for advanced programmers who want to explore the underlying algorithms used in OpenSim and develop new functionality not possible through the plugin architecture. We provide instructions for the build process, but we cannot guarantee compatibility with your system or support in the build process.