C3D
History
Before the C3D format was created, each motion capture system vendor created data files in custom formats that contained the data collected. Systems created a unique collection of data files that their users had to figure out how to process. Each motion capture manufacturer understood how their systems worked but had virtually no experience of the clinical and research data environments in which the systems were used. This made life difficult for individual laboratories and very hard for researchers in multiple data collection environments to share their data with researchers using different systems while working on the same research area, grant, or project.
Originally the only way to share and compare data clinically was to print out the results on paper. The C3D format was created in the National Institute of Health in Bethesda, Maryland under the direction of Steven Stanhope, to rectify this situation by creating a file format that put the preservation, compatibility, and integrity of every data collection, with the ability to share and compare data, at the top of the end-users concerns. The precursor to the C3D file format was AMASS, a binary file containing a header section, plus interleaved 3D coordinate and analog data that was first used by the SELSPOT 3D motion analysis system in the early 1980s. An important goal in the design of AMASS was to have a format environment that met all needs for both parameter input/exchange and data storage. This was achieved by adding a standard, readily accessible, parameter section to all files, which documents the individual parameter values and describes all of the data included in the file resulting in a universal file structure that supports a wide range of file formats.
The AMASS software used a single file format definition to store the data and parameters that it generated, in one uniform binary file format. This was used by each of the AMASS applications, each storing its data in a separate file as the data collection environment was described, data collected, processed, and finally combined into a single file that stored the 3D point co-ordinates and analog measurements, together with all the information (parameters) needed to access and process the contents of the file – this was the original C3D file format.
The C3D File Structure
The C3D file has three basic components:
- File Header – the first 512 bytes of all C3D files contain pointers and variables that define the structure of the C3D file.
- Parameters – information documenting the data stored in the C3D file that normally allows anyone to read and interpret the data in a C3D file that is stored according to the C3D format described.
- Data – at this level the C3D file is simply a binary file that can store 3D location data together with analog sensor information in a structure defined in the C3D File Header, described by the Parameters and documented by the C3D format description.
The C3D file header section organization defining 3D Point data storage.