Skip to main content

MOtoNMS: A MATLAB toolbox to process motion data for neuromusculoskeletal modeling and simulation



Neuromusculoskeletal modeling and simulation enable investigation of the neuromusculoskeletal system and its role in human movement dynamics. These methods are progressively introduced into daily clinical practice. However, a major factor limiting this translation is the lack of robust tools for the pre-processing of experimental movement data for their use in neuromusculoskeletal modeling software.


This paper presents MOtoNMS (matlab MOtion data elaboration TOolbox for NeuroMusculoSkeletal applications), a toolbox freely available to the community, that aims to fill this lack. MOtoNMS processes experimental data from different motion analysis devices and generates input data for neuromusculoskeletal modeling and simulation software, such as OpenSim and CEINMS (Calibrated EMG-Informed NMS Modelling Toolbox). MOtoNMS implements commonly required processing steps and its generic architecture simplifies the integration of new user-defined processing components. MOtoNMS allows users to setup their laboratory configurations and processing procedures through user-friendly graphical interfaces, without requiring advanced computer skills. Finally, configuration choices can be stored enabling the full reproduction of the processing steps. MOtoNMS is released under GNU General Public License and it is available at the SimTK website and from the GitHub repository. Motion data collected at four institutions demonstrate that, despite differences in laboratory instrumentation and procedures, MOtoNMS succeeds in processing data and producing consistent inputs for OpenSim and CEINMS.


MOtoNMS fills the gap between motion analysis and neuromusculoskeletal modeling and simulation. Its support to several devices, a complete implementation of the pre-processing procedures, its simple extensibility, the available user interfaces, and its free availability can boost the translation of neuromusculoskeletal methods in daily and clinical practice.


Neuromusculoskeletal modeling and dynamics simulation have recently emerged as powerful tools to establish the causal relation between the neuromusculoskeletal system function and the observed movement. They estimate human internal variables, such as neural signals and muscle dynamics, that could not be derived by experimental measures and conventional motion analysis [15]. This provides a key contribution to fully understand human locomotion in healthy subjects and to establish a scientific basis for rehabilitation treatment of pathological movements [2, 5, 6].

In the latest years, several software tools (e.g., SIMM, AnyBody, OpenSim, MSMS) were released to automate and facilitate the complex and time-consuming process of modeling and simulate the movement of musculoskeletal systems [710]. Among them, the freely available OpenSim software has seen a widespread adoption with a growing network of research applications [4, 1114].

Regardless the applications and the final objective of the study, these software tools require as input the simultaneous recordings of heterogeneous motion data acquired with different devices: three-dimensional marker trajectories, foot ground reaction forces (GRFs), and, often, surface electromyography (EMG). Before the recorded raw data can actually be used as input for the simulation softwares, several pre-processing steps are required depending on the objective of the study [15, 16]. Among them, filtering is usually performed and is one of the most critical [17, 18]. In addition, simpler steps as transformations among coordinate systems of the acquisition devices and the musculoskeletal modeling software still require to be carefully defined. Finally, the integrated and pre-processed motion data must be stored using the file format of the chosen simulation software.

While mature tools are available for the analysis of biomechanical data [19], there is still a lack of a robust tool for the pre-processing of experimental recorded data for optimal integration in neuromusculoskeletal modeling and simulation software. This represents a major factor limiting the translation of neuromusculoskeletal studies into daily practice, as highlighted by several researchers [13, 20, 21].

The main cause holding back the development of such a tool is probably the large number of commercially available motion analysis devices and proprietary softwares [13, 20, 22]. It is therefore difficult to handle all data seamlessly and with unified procedures. As a recognized problem, the biomechanics community proposed a standard file format (C3D – Coordinate 3D, [23]) to store all the heterogenous motion data: raw coordinate of 3D points, raw analog data from synchronized devices, force plates calibration, analog channels configuration, sample rates, and quantities computed by the acquisition software (joint angle, joint moment, joint power, …).

Despite the maturity of C3D, its use is still limited. Most of the companies provide acquisition systems that record information using different file formats and proprietary software tools that mainly process data with their own format. The consequence is that researchers develop a proliferation of custom tools and codes that perform similar processing pipeline, but might differ for the input data format and for the use of procedures and proprietary software specific to an acquisition system. As the latter are usually not openly available, it becomes difficult to reproduce the same data processing procedures in a consistent and repeatable way across different laboratories [20, 24].

Over the last years, the problem escalated as emerging biomechanics research challenges require multidisciplinary knowledge stimulating multicenter collaborations [25, 26]. Thus, the definition of shared and standard procedures for biomechanical data collection, management, and processing is increasingly required [20, 24].

This work presents MOtoNMS (matlab MOtion data elaboration TOolbox for NeuroMusculoSkeletal applications), a software toolbox that directly addresses this problem. MOtoNMS is an open source software [27] that has been already successfully used to process and share data from different laboratories, each one with its own gait analysis instrumentation and methodologies, for their use in neuromusculoskeletal analyses and applications.

The procedures implemented in MOtoNMS include: (i) computation of centers of pressure and torques for the most commonly available force platforms (types 1 to 4, including Bertec, AMTI, and Kistler); (ii) transformation of data between different coordinate systems; (iii) EMG filtering, maximum EMG peak computation, and EMG normalization; (iv) different procedures for gait events detection; (v) joint centers computation methods for hip, knee, ankle, elbow, shoulder, and wrist; (vi) support for OpenSim file formats and possibility to configure new output formats.

While MOtoNMS already provides a library of modules for the most commonly required steps, its architecture is designed to be open to new contributions in instrumentations, protocols, and methodologies. The choice of MATLAB, the most widespread language among biomechanists, goes also in the direction of simplifying the sharing of procedures within the community.

This paper describes the toolbox structure and modules, and then introduces the testing procedure. Finally, the paper points out MOtoNMS key features and main advantages. Motion data and results, freely available, show that MOtoNMS can handle experimental data collected in motion analysis laboratories with different setups and can process them to provide inputs for OpenSim [9] and CEINMS [28, 29]. The latter is a freely available neuromusculoskeletal software, developed by the authors’ research groups, that uses experimentally recorded EMG signals as estimates of the individual muscle recruitment strategies to predict muscle forces and joint moments [30].


The MOtoNMS toolbox is implemented in MATLAB (The MathWorks, USA) and is intended to be accessible to a wide spectrum of users, from researchers to clinicians, who are interested in pre-processing experimental motion data to be used in neuromusculoskeletal simulations. The selection and setup of procedures is available through a set of graphical user interfaces, thus not requiring end-users to have advanced computer skills. Current MOtoNMS release works with MATLAB R2010b and later versions, and runs on the major operating systems (Windows, Linux, and MacOS X).

Figure 1 presents the toolbox organization. MOtoNMS comprises several blocks that are grouped in three main functional areas: Data Elaboration, with the procedures for the data processing pipeline, Data Management, responsible for the input data loading and the output data generation and storing, and System Configuration, supporting the user in the configuration of the elaboration through user friendly graphical interfaces. This structure, distributing independent modules with precise duties and well-defined input/output interfaces in three areas, simplifies the integration of other functionalities and algorithms.

Fig. 1
figure 1

MOtoNMS overview schema. Data Elaboration is the toolbox core, processing data according to the user’s choices selected during the System Configuration steps. Data Management defines storing and management of input and output files

Data Elaboration

Data Elaboration is the toolbox core with the two blocks of Dynamic Trials Elaboration and Static Trials Elaboration. These are responsible for processing EMG, GRFs, and marker trajectories for dynamic and static trials.

Dynamic Trials Elaboration

This block (Fig. 2) handles motion data recorded from dynamic trials. It supports the different GRF data structures generated by the most common force plate (FP) types [31], with no constraints on the number and position of FPs in the laboratory. Depending on the FP type and its output, MOtoNMS correctly extracts raw force data, plate moments, and, when available, centers of pressure (CoP) [31]. For FP of type 3, total raw forces and moments are computed [32]. Three-dimensional marker trajectories undergo piecewise cubic interpolation when gaps caused by occlusions during the acquisition are automatically identified. Users can define the gap’s maximum size that will be interpolated. Choosing a value of zero results in no interpolation. A log file tracing the procedure is also available. Users can enable the filtering of pre-processed marker data and raw GRFs with a zero-lag second order low pass Butterworth filter at customizable cut-off frequencies. When CoPs are not directly provided by the FPs (types 2 to 4) [31], they are computed from filtered and thresholded forces and moments [32].

Fig. 2
figure 2

Dynamic Trials Elaboration. Flowchart of the Dynamic Trials Elaboration block. The user can customize this processing workflow by means of parameters defined in the elaboration.xml configuration file. Sub-blocks influenced by those parameters are emphasized with a bold line

The analysis window definition sub-block (Fig. 2) allows selection of the data segments to be processed according to users choices. Frames of interest can be selected based on events, when available in the input C3D files. Alternatively, a thresholding algorithm based on GRF data is implemented for automatic detection of heel strike and toe off events [33]. Lastly, a manual selection of start and stop frames is also possible. Processed GRFs are then used to compute FP free torques [34] based on filtered forces, moments, and CoP for the selected frames. Finally, marker and GRF data are transformed from laboratory or FP reference systems to the global reference system of the selected musculoskeletal application, i.e. OpenSim. Required rotations depend on the laboratory setup described in the dedicated configuration file (“System Configuration” Section).

When available, raw EMG signals are processed by high-pass filtering, rectification, and low-pass filtering [28]. Resulting EMG linear envelopes are then normalized. For each muscle, the maximum EMG peak is identified by extracting the maximum instantaneous value from a set of trials selected by the user for the specific purpose. Those values are then logged in a text file. Other intermediate processing results (i.e., selected and processed EMG, filtered GRFs, CoPs, and moments within the analysis window) are also stored in dedicated folders, together with plots that facilitate their visual inspection.

Static Trials Elaboration

The objective of the Static Trials Elaboration block is to optimize data for the scaling of generic musculoskeletal models, which is essential to match an individual’s anthropometry [9]. Therefore it processes marker trajectories recorded during static standing trials and provides methods for the computation of subject-specific joint centers, which are usually recommended to improve the accuracy of the scaling procedure. This block is designed to accommodate different algorithms for the joint centers estimation. Users can include their own procedures for the joints of interest. Currently, MOtoNMS provides joint centers computation methods for hip, knee, ankle, elbow, shoulder, and wrist. Hip joint center is estimated through Harrington method [35], while the others are computed as the mid points between anatomical landmarks specified by the user.

Data Management

Data Management (Fig. 1) deals with input and output data, supporting an easy integration of new file formats and inducing a clear and uniquely defined organization of the files. This is achieved also through a complete separation between Data Management and Data Elaboration.

Input data loading

Input data are extracted from C3D files and stored in MATLAB structures. This avoids continuous and computationally expensive access to C3D files. The extracted data include: marker trajectories, FP characteristics, GRFs, EMG signals, other data from analog channels, and events. Two implementations for data extraction are available: using C3Dserver software [23], limited to MATLAB 32 bit on Window platforms, or exploiting the Biomechanical Toolkit (BTK, [19]). Users can choose between the two alternatives according to the system requirements, with the second one enabling cross-platform execution.

The choice of supporting only C3D as input file format does not limit the usability of MOtoNMS. Indeed, being the standard for the representation of biomechanical data, usually acquisition systems (Vicon, Qualysis, BTS, MotionAnalysis, Codamotion, etc.) export synchronized data in the C3D file format.

Output data generation

The processed marker trajectories and GRFs are stored in.trc and.mot files (OpenSim file formats). The EMG linear envelopes are exported by default to.mot files (SIMM and OpenSim motion format), compatible also with the CEINMS toolbox [30]. Alternative file formats can be selected by the user, such as.sto (OpenSim storage) and text formats. The support of new file formats for other musculoskeletal modeling software requires the implementation of additional output blocks. These have only to store in the desired file formats the data already available from the processing phase, thus not introducing any change in the Data Elaboration step (Fig. 1).

Data storage structure

MOtoNMS automatically generates output directories mirroring the structure of the data folders provided by the user. This relieves the user from manually creating the output folders and also results in a consistent structure, simplifying information retrieval. Albeit not mandatory, MOtoNMS authors encourage users to follow few simple suggestions in the organization of input experimental data, to foster the sharing of tools and results among research teams (Fig. 3).

Fig. 3
figure 3

Data Folders Organization. Folders in black store input data. The picture presents the structure suggested by MOtoNMS authors: a folder for each subject that includes a set of directories, each one for a different acquisition session. All subjects must be grouped in a InputData folder. Red files are the configuration files, while green folders are for the output generated by the toolbox. These folders are automatically created and mirror the structure of the InputData folder. MOtoNMS reads C3D files and saves the extracted data in the sessionData subfolder. staticElaborations and dynamicElaborations subfolders include the output respectively of the Static Trials Elaboration and the Dynamic Trials Elaboration blocks. Finally, the results of multiple executions of these two parts, with different configurations for the same input data, are stored in different subfolders, each one named with an identifier chosen by the user through the graphical interface

System Configuration

The high configurability of MOtoNMS results in a high number of parameters. These are not set directly in the code as it would make the system hard to maintain. Instead, MOtoNMS can be fully configured through configuration files without modifying the underlying MATLAB code. Moreover, the use of configuration files guarantees the reproducibility of the data processing. Parameters are defined in three files: (1) acquisition, including information about the acquisition session (i.e., number of FP, coordinate system orientations, marker sets, and EMG setups), (2) elaboration, including parameters that univocally define the execution of the Dynamic Trials Elaboration block (i.e., selected trials, cut-off frequencies, markers list for output file, …, Lst. ??), and (3) static, including additional parameters for the elaboration of static trials (i.e., joint centers of interest). MOtoNMS stores a copy of the configuration files together with the output to keep a trace of performed elaborations [36]. The chosen language for these files is XML (eXtensible Markup Language), extremely suitable for parameter information encoding (Lst. ??). Syntax correctness of each file is guaranteed through the use of XML Schema Definition (XSD). MOtoNMS provides user-friendly MATLAB graphical interfaces that allow the user to handily configure the toolbox execution and automatically create the XML configuration files, ensuring their syntax correctness (Fig. 4). In addition, the configuration procedure has been designed to limit the required information to the one specific of the current experimental session. Those features that are common to several acquisition sessions (e.g., laboratory setup, marker and EMG protocols) are instead conveniently stored into XML files during the initial setup. These files can be selected from the GUI, so the user is not required to input all the included information at each new acquisition, thus resulting in an efficient system configuration procedure.

Fig. 4
figure 4

MOtoNMS GUI. Examples of user-friendly graphical MATLAB interfaces available in MOtoNMS for the configuration of the toolbox procedures (acquisition, elaboration, static configuration files)


Data from four institutions were processed using MOtoNMS. The four gait laboratories are characterized by different instrumentations and setup (Table 1): (1) three motion capture systems: BTS, Vicon, and Qualysis; (2) three types of FPs [23], requiring different computation for plates moments and CoP; (3) four different setups for the global reference system, and FP positions and orientations along the walkway, resulting in different rotations from each FP reference system to the global one; (4) different configurations of analog channels; and (5) marker and EMG protocols dependent on each laboratory routine analysis.

Table 1 Characteristics of the laboratories testing MOtoNMS

Experimental data were collected from four healthy subjects, one for each institution, who gave their informed consent. MOtoNMS was used to elaborate the collected movement trials and produce the following outputs: (1).trc and.mot files for OpenSim (Fig. 5), (2) joint centers for hip, knee, and ankle and, depending on data availability, also wrist, elbow, and shoulder (Fig. 6), (3) normalized EMG linear envelopes (Fig. 7), and (4) plots of processed data (Fig. 8).

Fig. 5
figure 5

Gait cycle in OpenSim. Example of.trc and.mot files generated using MOtoNMS and loaded in OpenSim. The sequence (a-f) reproduces a gait cycle on the laboratory force platforms

Fig. 6
figure 6

Joint centers. A 3D view of hip (HJC), knee (KJC), ankle (AJC), elbow (EJC), shoulder (SJC) and wrist (WJC) joint centers and markers used for their computation

Fig. 7
figure 7

Normalized EMG linear envelopes. Normalized EMG linear envelopes versus the percentage of the analysis window selected for the elaboration. All muscles of a single acquisition are grouped together to provide a global picture of the output of the EMG processing step

Fig. 8
figure 8

Example of output EMG plots. The main plot shows raw EMG (blue) for an overall trial, together with the computed envelope (green) and the selected analysis window (red). An example of plot of an envelope within the analysis window is reported in the smaller picture. Two measurement scales are visible in the graph: the normalized one (blue, on the left), and the voltage from the acquisition device (green, on the right)

Tests aimed at proving the correctness of execution on different combinations of configuration options, i.e., the definition of the analysis window, the cut-off frequencies for filtering, number and combination of trials to be elaborated and different sets of trials for the computation of the maximum EMG peak.

To illustrate MOtoNMS capabilities, a selection of the collected trials and examples of obtained results with the corresponding configuration files are freely available for download [37]. Three elaborations for the dynamic trials and one for the static acquisitions are included for each data set. Resulting.trc and.mot files can be directly loaded in OpenSim and used to visualize the processed data. The full MATLAB source code of MOtoNMS [27] with the User Manual [36] is also available to allow reproducibility of results and additional testing.

Results show that, despite the differences in instruments, configurations, and protocols (Tables 1 and 2), MOtoNMS succeeded in processing data in a consistent and repeatable way, based on the parameters selected in the user-defined configuration files.

Table 2 FPs characteristics of the laboratories testing MOtoNMS

Discussion and conclusions

MOtoNMS enables processing motion data collected with different instruments and procedures, and generates inputs for neuromusculoskeletal modeling software. Marker trajectories, GRFs, and joint centers are processed and saved using OpenSim file formats [9], while normalized EMG linear envelopes are exported by default to the OpenSim motion file format (.mot), compatible also with CEINMS [30].

MOtoNMS has been designed to be flexible and highly configurable, to satisfy the requests of different research groups without the need of accessing and modifying the code. Indeed, processing properties (i.e., selected trials, cut-off frequencies, data analysis window, markers list, joint centers of interest, …) can be selected directly from user-friendly graphical interfaces and stored, together with the laboratory arrangements, in configuration files. In addition, processed data, along with the configuration and processing log files, are automatically organized in output directories with a uniquely defined structure. This becomes an essential feature for information retrieval and when results are shared among different research teams, especially if large amount of data are involved. Finally, MOtoNMS has been developed in MATLAB for its large diffusion in biomechanics research, and works on the most diffused operating systems (Windows, Linux, and Mac OS X).

Currently available alternatives to MOtoNMS do not provide complete solutions that generalize across laboratories. Lee S. and Son J. proposed a toolbox that converts motion data in OpenSim inputs [38], however it is limited to VICON systems only. Other MATLAB functions with a broader applicability are available on the website [39, 40]. While they implement several tasks, they are not connected in a well-structured instrument able to fully process data in a single procedure [41, 42]. The users are required to go through a sequence of MATLAB functions and often to adapt the code to their own laboratory configuration and experimental protocols. Tim Dorn provides a complete tool with the C3D Extraction Toolbox [43]. However, support and testing of different laboratory setup is limited to specific instrumentation types (e.g., assumption of AMTI force plates). Finally, none of these solutions provide a tool to process the recorded data supplying filtering blocks, several methods for the analysis windows selection, computation of joint centers, EMG linear envelopes and maximum EMG peaks from selected trials for normalization, and graphical interfaces.

Results showed that MOtoNMS could instead be used to process data from laboratories of four institutions (Table 1) with three different motion capture systems (i.e., Vicon, BTS, Qualisys), EMG units (Noraxon, BTS, and Zerowire), as well as GRF data generated by four different force plate types (e.g., types 1 to 4 by Bertec, AMTI, and Krisler, Table 2). This makes MOtoNMS the first toolbox that allows users to easily configure the processing of motion data from laboratories with different instruments, software, protocols, and methodologies, and export data processed for musculoskeletal applications. MOtoNMS currently supports OpenSim and CEINMS file formats. Nevertheless, its modular design supports the integration of additional blocks for the generation of output files required by other musculoskeletal applications.

MOtoNMS is an ongoing software with a dynamic cycle of development, aimed at extending its features. Additional methods for joint centers computation, e.g. based on functional movements, may be included in a near future. Customizable algorithms for a better control in the computation of EMG maximum and average could also be introduced. We are also planning to distribute a database of configuration files for the most popular acquisition protocols [4446]. In addition, we will provide a standalone application of MOtoNMS using the MATLAB Runtime Compiler that will allow the use of the software in the contexts, such as the clinical one, where the diffusion of MATLAB could be limited.

MOtoNMS is released under GNU GPL license and latest versions of the toolbox are constantly uploaded on the project page at the website [37], together with up-to-date documentation and a set of testing data. The GitHub repository of the project traces changes in the development of the software and aims at encouraging contributions to extend MOtoNMS capabilities from other users [27].

The authors hope that MOtoNMS will be useful to the research community, reducing the gap between experimental motion data and neuromusculoskeletal simulation software, and uniforming data processing methods across laboratories. Moreover, reduction of processing time and the intuitive graphical user interfaces may facilitate the translation of neuromusculoskeletal modeling and simulation to daily and clinical practice.

Availability and requirements

Project name: MOtoNMSProject home page: Repository: (public GIT repository)DOI: 10.5281/zenodo.18690Test Data: Documentation: [User Manual]Operating system(s): Platform independentProgramming language: MATLABOther requirements: C3Dserver ( or Biomechanical Toolkit (BTK, GNU General Public License v3Any restrictions to use by non-academics: None



Biomechanical Toolkit


Coordinate 3D


Center of Pressure




Force Platform


GNU General Public License


Foot Ground Reaction Forces


Extensibile Markup Language


XML Schema Definition


  1. Pandy MG. Computer modeling and simulation of human movement. Annu Rev Biomed Eng. 2001; 3(1):245–73.

    Article  CAS  PubMed  Google Scholar 

  2. Zajac FE, Neptune RR, Kautz SA. Biomechanics and muscle coordination of human walking: part ii: lessons from dynamical simulations and clinical implications. Gait & Posture. 2003; 17(1):1–17.

    Article  Google Scholar 

  3. Jonkers I, Stewart C, Spaepen A. The study of muscle action during single support and swing phase of gait: clinical relevance of forward simulation techniques. Gait & Posture. 2003; 17(2):97–105.

    Article  Google Scholar 

  4. Piazza S. Muscle driven forward dynamic simulations for the study of normal and pathological gait. J NeuroEngineering and Rehabil. 2006; 3(1):5.

    Article  Google Scholar 

  5. Fregly BJ. Design of optimal treatments for neuromusculoskeletal disorders using patient-specific multibody dynamic models. Int J comput vision and biomechnanics. 2009; 2(2):145–55.

    Google Scholar 

  6. Fregly BJ, Boninger ML, Reinkensmeyer DJ. Personalized neuromusculoskeletal modeling to improve treatment of mobility impairments: a perspective from european research sites. J Neuroeng Rehabil. 2012; 9:18.

    Article  PubMed Central  PubMed  Google Scholar 

  7. Delp SL, Loan JP. A graphics-based software system to develop and analyze models of musculoskeletal structures. Comput Biol Med. 1995; 25(1):21–34.

    Article  CAS  PubMed  Google Scholar 

  8. Damsgaard M, Rasmussen J, Christensen ST, Surma E, de Zee M. Analysis of musculoskeletal systems in the anybody modeling system. Simul Model Pract Theory. 2006; 14(8):1100–1111.

    Article  Google Scholar 

  9. Delp SL, Anderson FC, Arnold AS, Loan P, Habib A, John CT, et al. Opensim: open-source software to create and analyze dynamic simulations of movement. Biomed Eng IEEE Trans. 2007; 54(11):1940–1950.

    Article  Google Scholar 

  10. Davoodi R, Loeb GE. MSMS software for VR simulations of neural prostheses and patient training and rehabilitation. Studies in health technology and informatics. 2011; 163:156–162.

    PubMed  Google Scholar 

  11. Steele KM, Seth A, Hicks JL, Schwartz MS, Delp SL. Muscle contributions to support and progression during single-limb stance in crouch gait. J biomechanics. 2010; 43(11):2099–105.

    Article  Google Scholar 

  12. Hamner SR, Seth A, Delp SL. Muscle contributions to propulsion and support during running. J biomechanics. 2010; 43(14):2709–716.

    Article  Google Scholar 

  13. Reinbolt JA, Seth A, Delp SL. Simulation of human movement: applications using Opensim. Procedia IUTAM. 2011; 2:186–98.

    Article  Google Scholar 

  14. Donnelly C, Lloyd DG, Elliott B, Reinbolt JA. Optimizing whole-body kinematics to minimize valgus knee loading during sidestepping: implications for acl injury risk. J biomechanics. 2012; 45(8):1491–1497.

    Article  CAS  Google Scholar 

  15. Winter D. Biomechanics and motor control of human movement, 4th ed: John Wiley and Sons, Hoboken, NJ; 2009.

  16. Chiari L, Della Croce U, Leardini A, Cappozzo A. Human movement analysis using stereophotogrammetry- part 2: Instrumental errors. Gait & Posture. 2005; 21(2):197–211.

    Article  Google Scholar 

  17. Kristianslund E, Krosshaug T, van den BogertAJ. Effect of low pass filtering on joint moments from inverse dynamics: implications for injury prevention. J biomechanics. 2012; 45(4):666–71.

    Article  Google Scholar 

  18. Edwards WB, Troy KL, Derrick TR. On the filtering of intersegmental loads during running. Gait & posture. 2011; 34(3):435–8.

    Article  Google Scholar 

  19. Barre A, Armand S. Biomechanical toolkit: Open-source framework to visualize and process biomechanical data. Comput Methods Prog Biomed. 2014; 114(1):80–7.

    Article  Google Scholar 

  20. Kaufman KR. Gait analysis in the science of rehabilitation: Diane Publishing Company, Darby, PA, Section IV Future Directions in Gait Analysis; 1998, pp. 85–112.

  21. Erdemir A, McLean S, Herzog W, van den Bogert AJ. Model-based estimation of muscle forces exerted during movements. Clin Biomech. 2007; 22(2):131–54.

    Article  Google Scholar 

  22. Benedetti MG, Merlo A, Leardini A. Inter-laboratory consistency of gait analysis measurements. Gait & Posture. 2013; 38(4):934–9.

    Article  CAS  Google Scholar 

  23. Motion Lab Systems. [Internet]. The 3D Biomechanics Data Standard. Available from: accessed August 5, 2015.

  24. Paul G, Wischniewski S. Standardisation of digital human models. Ergon. 2012; 55(9):1115–1118.

    Article  Google Scholar 

  25. Davis III RB, Davids JR, Gorton III GE, Aiona M, Scarborough N, Oeffinger D, et al. A minimum standardized gait analysis protocol: development and implementation by the Shriners Motion Analysis Laboratory network (SMALnet). In: Pediatric Gait, 2000. A New Millennium in Clinical Care and Motion Analysis Technology. IEEE Press, Piscataway, NJ: 2000. p. 1–7.

  26. Gorton III GE, Hebert DA, Gannotti ME. Assessment of the kinematic variability among 12 motion analysis laboratories. Gait & Posture. 2009; 29(3):398–402.

    Article  Google Scholar 

  27. Mantoan A, Reggiani M. MOtoNMS v2.2. 2015. doi:doi:10.5281/zenodo.18690 doi:10.5281/zenodo.18690 accessed August 5, 2015.

  28. Lloyd DG, Besier TF. An EMG-driven musculoskeletal model to estimate muscle forces and knee joint moments in vivo. J Biomechanics. 2003; 36(6):765–76.

    Article  Google Scholar 

  29. Sartori M, Reggiani M, Farina D, Lloyd DG. EMG-driven forward-dynamic estimation of muscle force and joint moment about multiple degrees of freedom in the human lower extremity. PLOS ONE. 2012; 7(12):52618.

    Article  Google Scholar 

  30. Pizzolato C, Lloyd D, Sartori M, Ceseracciu E, Reggiani M. [Internet]. CEINMS — Calibrated EMG-Informed NeuroMusculoSkeletal Model. 2015. Available from: accessed August 5, 2015.

  31. Motion Lab Systems. [Internet]. The C3D File Format User Guide. 2008. Available from: accessed August 5, 2015.

  32. Kwon YH. [Internet]. Kwon3D Motion Analysis Web. Available from: accessed August 5, 2015.

  33. Rueterbories J, Spaich EG, Larsen B, Andersen OK. Methods for gait event detection and analysis in ambulatory systems. Med Eng & Physics. 2010; 32(6):545–52.

    Article  Google Scholar 

  34. Gordon Robertson DE, Caldwell G, Hamill J, Kamen G, Whittlesey S. Research Methods in Biomechanics. Champaign: Human Kinetics; 2004.

    Google Scholar 

  35. Harrington ME, Zavatsky AB, Lawson SEM, Yuan Z, Theologis TN. Prediction of the hip joint centre in adults, children, and patients with cerebral palsy based on magnetic resonance imaging. J Biomechanics. 2007; 40(3):595–602.

    Article  CAS  Google Scholar 

  36. Mantoan A, Reggiani M. MOtoNMS - Matlab MOtion Data Elaboration TOolbox for NeuroMusculoSkeletal Applications - User Manual. 2015. Available from accessed August 5, 2015.

  37. Mantoan A, Reggiani M. [Internet]. Matlab MOtion data elaboration TOolbox for NeuroMusculoSkeletal apps (MOtoNMS). 2015. Available from: accessed August 5, 2015.

  38. Lee S, Son J. [Internet]. Lee-Son’s Toolbox. 2012. Available from: accessed August 5, 2015.

  39. Dunne J. Internet]. OpenSim Documentation: Tools for Preparing Motion Data. Available from: Accessed August 5, 2015.

  40. Dunne J. [Internet]. c3d2opensim, Matlab code for processing motion data into OpenSim ready files. 2015. Available from: accessed August 5, 2015.

  41. Seth A. [Internet]. Preprocess for OpenSim. 2008. Available from: accessed August 5, 2015.

  42. Lichtwark G, Habib A, Barrett R. [Internet]. Matlab-Opensim Interfaces. 2013. Available from: accessed August 5, 2015.

  43. Dorn T. Available from: accessed August 5, 2015. 2011.

  44. Davis III RB, Ounpuu S, Tyburski D, Gage JR. A gait analysis data collection and reduction technique. Hum Mov Sci. 1991; 10(5):575–87.

    Article  Google Scholar 

  45. Kadaba MP, Ramakrishnan H, Wootten M. Measurement of lower extremity kinematics during level walking. J Orthop Res. 1990; 8(3):383–92.

    Article  CAS  PubMed  Google Scholar 

  46. Cappozzo A, Catani F, Della Croce U, Leardini A. Position and orientation in space of bones during movement: anatomical frame definition and determination. Clin Biomech. 1995; 10(4):171–8.

    Article  Google Scholar 

  47. Del Din S, Carraro E, Sawacha Z, Guiotto A, Bonaldo L, Masiero S, et al. Impaired gait in ankylosing spondylitis. Medical & Biological Engineering & Computing. 2011; 49:801–9.

    Article  Google Scholar 

  48. Dorn TW, Schache AG, Pandy MG. Muscular strategy shift in human running: dependence of running speed on hip and ankle muscle performance. J Exp Biol. 2012; 215:1944–1956.

    Article  PubMed  Google Scholar 

  49. Cereatti A, Croce UD, Cappozzo A. Reconstruction of skeletal movement using skin markers: comparative assessment of bone pose estimators. J NeuroEngineering and Rehabil. 2006; 3:7.

    Article  Google Scholar 

  50. Dempsey AR, Lloyd DG, Elliott BC, Steele JR, Munro BJ, Russo KA. The effect of technique change on knee loads during sidestep cutting. Med Sci Sports Exerc. 2007; 39:1765–1773.

    Article  PubMed  Google Scholar 

Download references


The authors would like to thank Michele Vivian for his contributions to the initial idea of this project, and Peter Staab for testing MOtoNMS with FP of type 3. We are grateful to Dr. Leonardo Gizzi and Dr. Fabiola Spolaor for their help in data collection at UMG and UNIPD, respectively. We would also like to thank Prof. David G. Lloyd and Prof. Dario Farina for granting us access to their laboratory facilities. Finally, the authors would like to thank all the researchers at the University of Western Australia and at the Griffith University that contributed to the original processing pipeline. This research has been partially supported by EU-FP7 grant BioMot (project no. 611695).

Author information

Authors and Affiliations


Corresponding authors

Correspondence to Massimo Sartori or Monica Reggiani.

Additional information

Competing interests

None of the authors had financial and personal relationships with other people or organisations that could inappropriately influence the article.

Authors’ contributions

AM and MR designed and implemented MOtoNMS. MS contributed to conceive the initial idea. AM, CL, MS, and ZS prepared the data and helped testing the software. CC oversaw the project. AM and MR drafted the initial version of the manuscript, which was later edited after receiving comments from CL and MS. All authors have read and approved the final manuscript.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver( applies to the data made available in this article, unless otherwise stated.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Mantoan, A., Pizzolato, C., Sartori, M. et al. MOtoNMS: A MATLAB toolbox to process motion data for neuromusculoskeletal modeling and simulation. Source Code Biol Med 10, 12 (2015).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: