The C3D web site has copies of the current C3D format description, downloadable and on-line - there have been a couple of significant updates to the C3D description that may affect applications that people have written:
- The original description documented the C3D file frame count (POINT:FRAMES) as a 16-bit signed integer count, this was changed in the early 2000's to describe the count as an unsigned integer. However the design of the C3D file format has always permitted this to be stored as a floating point value which removes all integer limits from the frame count. The POINT:FRAMES parameter is now described as potentially either an unsigned 16-bit integer or a floating point value - this will make life much easier in future.
- The 2004 description incorrectly documented that the C3D file header words storing the "first frame" and "last frame" referred to the C3D file frame numbers but after re-reading the original documentation written I realized that this referred to the frame count of the SEG file that created the C3D file, not the C3D file frame numbers. This makes a lot more sense and the documentation has been updated to correct this which greatly simplifies life although there may be issues for some current applications if the header frame numbers are not updated if the C3D file is edited in a way that changes the frame numbers.
- The documentation describes how UTF-8 encoding can be applied to the C3D file format in a way that will maintain compatibility for all applications but allow users with non-ASCII languages to use their own character sets to describe markers and analog channels.
- Support for more than 255 analog channels has been documented to make life easy for IMU applications, Note that the C3D "analog" data can be any 16-bit data values, stored at potentially much higher data rates than the 3D point data. The interpretation of the data values is dependent on the applications reading and processing it, not the C3D format.
There have been multiple minor edits in the last month or two but I believe (I hope) that the documentation is now stable.
Leave a comment: