The **Plug-in Gait Dynamic** pipeline consists of the following components: all individual pipeline operations:

- A quintic spline filter based on code written by Herman Woltring. This filter is intended to be applied to the real marker trajectory data before the modeling stage. No further explicit filtering of the data occurs during the modeling stage.
- Operations that automatically detect and autocorrelate gait cycle events.
- The modeling stage, which takes the real marker trajectories, and generates 'virtual' marker trajectories that represent kinematic and kinetic quantities (angles, moments etc.) and representations of the modeled segments.
- An export operation, to enable you to save your processed trial data to a C3D file.

This guide covers only the modeling stage of the process. You can perform modeling on the real marker data independently from the filtering and event detection processes by selecting the appropriate check box in the pipeline.

Plug-in Gait outputs virtual markers that are used for several purposes:

- To calculate variables
- For visualization purposes, such as to define the positions of meshes (representing bones), which can be displayed in the Polygon application. These mesh outputs are rigidly linked to the calculated rigid body segments but are not necessarily the same. The origins and axes for the meshes are dependent on the meshes contained in the Polygon mesh file.

Internally, the modeling stage consists of four interdependent models:

- A kinematic lower body
- A kinematic upper body
- A kinetic lower body
- A kinetic upper body

The kinematic models are responsible for the definitions of the rigid body segments, and the calculations of joint angles between these segments.

The kinetic models then apply masses and moments of inertia to the segments, and enable the "reactions" that occur on the segments to be calculated.

To run the models, you must supply the required subject measurements. When you have done this, the stages of the Plug-in Gait modeling process are:

- The initial stage checks that the required components are present. This includes checks for required markers present in the trial, and subject parameter values. Modeling only continues if these requirements are met. The pelvis markers are the minimum required for the lower body model, and the thorax markers are required for the upper body model.
- Various static values that can be calculated as being fixed for the whole trial, and are needed for the definitions of the segments, are calculated.
- The positions of the rigid segments are defined on a frame-by-frame basis. Each segment is defined by an origin in global (laboratory) coordinates, and three orthogonal axis directions.

In general, the three axis directions are defined using two directions derived from the marker data.

- One of these directions is taken as a dominant or principal direction, and used to directly define one of the axes in the segment.
- The second direction is subordinate to the first, and is used with the first direction to define a plane.
- The third axis of the segment is taken to be perpendicular to this plane.
- Then the second axis can be found that is perpendicular to both the first and third axes. All segment axis systems are right-handed systems.

The outputs that are required from the modeling are then calculated, based on the frame-by-frame positions of the segments.

The kinematic models are run slightly differently for the static trials, to calculate certain static 'calibration' angles that are required for the dynamic modeling. These differences are noted in the descriptions of the models, otherwise it should be assumed that the model is calculated in the same way for both trial types.

When the static modeling is being performed, calculated subject measurements are output to the subject measurements file. This is not done for the dynamic trial, even if new values are calculated internally to enable the model to be run.

To define joint centers, the chord function is used extensively in the Plug-in Gait models. Three points are used to define a plane. One of these points is assumed to be a previously calculated joint center, and a second is assumed to be a real marker, at some known, perpendicular distance (the joint center offset) from the required joint center.

(It's called a chord because by definition, the three points (two joint centers and the joint marker) lie on the periphery of a circle.)

A modified version of the function calculates the required joint center position when the plane definition marker is rotated out of this plane by a known angle round the proposed joint center axis. For an illustration of this, see Dynamic knee joint center calculation.