Guide Overview

OpenSim enables users to create computer models of the musculoskeletal system and create dynamic simulations of movement. Individuals who read this guide will learn advanced programming features of OpenSim through illustrations and exercises. Completing the exercises will enable you to create simulations, analyze simulations, and add new functionality to the software.

This guide summarizes the tools and capabilities of OpenSim available to the C++ programmer. It includes five sections:

  1. Getting Started as a Developer describes some basic technical background, the prerequisites to build and run the examples in the chapters to follow, and a step-by-step example
  2. Performing a Simulation illustrates how to write a main program that performs a dynamic simulation
  3. Creating Your Own Analysis demonstrates how to write a plug-in to analyze a simulation
  4. Adding New Functionality describes how to add functionality to OpenSim
  5. SimTK Basics provides some background on SimTK

For more information on OpenSim, visit the OpenSim project site at The project site provides a forum for users to ask questions and share expertise, as well as many other resources.

Looking for a PDF? You can also download the Developer's Guide as a PDF (updated 4/4/2012). Please note that the most up-to-date material can be found online.


This guide is recommended for those who desire in-depth knowledge of musculoskeletal modeling and simulation with OpenSim and wish to use the Application Programming Interface (API) to create or contribute novel models or algorithms not currently supported by the OpenSim application. Programming experience in C++ will help you complete the exercises.