You are viewing the documentation for OpenSim 2.4. Are you looking for the latest OpenSim 4.0 Documentation?

SimTK Basics

The topics covered in this section include:

Overview

The OpenSim API uses the Simbios "simulation toolkit" SimTK as its low-level, domain-independent computational layer. Some familiarity with SimTK is required to use the OpenSim API because some of the SimTK objects are visible there. This chapter presents a brief introduction to the parts of SimTK that are most commonly used with the OpenSim API; you can find more documentation for SimTK elsewhere (see https://simtk.org/home/simtkcore, Documents tab). The intent, however, is that there is enough material here so that you can use the OpenSim API for many purposes without having to look further.
SimTK provides a broad base of functionality. We will discuss the subset needed for the OpenSim API in six groups:

Together, the numerical objects and numerical methods provide Matlab-like functionality accessible from C++. We will cover the low-level numerical objects in detail, provide an introduction to the available numerical methods, and introduce basic concepts for Simbody and the SimTK simulation architecture as employed by OpenSim.

Naming Conventions

All symbol names that come from SimTK are in the SimTK namespace, while symbols introduced by OpenSim are in the OpenSim namespace. In most cases you will want to include the following line at the top of your source files so that you do not have to repeat the namespace for every SimTK symbol:

using namespace SimTK; 

Alternatively, you can introduce symbols selectively with statements like

using SimTK::Vec3;

Or you can prefix the symbols with SimTK:: when you use them. There are a few symbols, typically pre-processor macros, that cannot be put in a C++ namespace; those symbols begin with the six-character string "SimTK_" instead.

SimTK uses mixedUpperAndLowerCase names with a capital letter used to begin a new word. Class names and constants begin with a CapitalLetter. Method (function) names and variable names begin with a lowerCaseLetter. Pre-processor macros, except for the initial SimTK prefix, are written in ALL_CAPS with underscores separating words.

For More Information about SimTK

This chapter provides a quick look at SimTK, but there is much more to learn if you are interested. A good place to start is https://simtk.org/home/simtkcore, Documents tab, where you will find several tutorials and theory manuals. More information and source code for the projects making up SimTK can be found on Simtk.org under projects: simbody, simmath, cpodes, simtkcommon, and lapack.

Next: Numbers and Constants in SimTK

OpenSim is supported by the Mobilize Center , an NIH Biomedical Technology Resource Center (grant P41 EB027060); the Restore Center , an NIH-funded Medical Rehabilitation Research Resource Network Center (grant P2C HD101913); and the Wu Tsai Human Performance Alliance through the Joe and Clara Tsai Foundation. See the People page for a list of the many people who have contributed to the OpenSim project over the years. ©2010-2024 OpenSim. All rights reserved.