View Full Version : Summary of Replies: C3D editing software

08-28-2009, 05:09 PM
Biomch-L Readers

I have put together all the responses to C3D editing software. Thank
you for all who replied.


Stephen Poon
Biomechanics Officer - ASPIRE
P.O. Box 22287, Doha - Qatar
Tel: (+974) 413 6172 ; Fax: (+974) 413 6160
Email: tszkit.poon@aspire.qa

Dear Stephen,

I would like to inform you that based on BTK, a new software named
Mokka permits to vizualise and edit biomechanical data in 3D (C3D and
TRC file at this moment).

In this alpha release, Mokka display markers, force platform geometry,
ground reaction forces. You can pick markers, choose their size/color.
Events (Foot strike, Toe Off, ...) are also listed and the
corresponding frame can be selected.

The next step will add the possibility to edit biomechanical data
(marker's label/description, remove/reorder marker/analog channels,
edit parameters).

You can find the Windows binary at this adress:

You can also fin its user guide here:


Arnaud Barré


While it is not a standalone piece of software, I found the matlab
toolbox c3dServer (http://www.c3d.org/applications/matlab.html) very
useful when trying to manage c3ds from multiple sources. It comes
with a thorough readme and if you are familiar with matlab's (or any
object oriented) structure variables, it is fairly straight forward.

I hope this is of use to you


James Coburn
MDFP Fellow
Division of Chemistry and Material Science
Silver Spring, MD

Hi Stephen

You don't mention what sort of differences in the C3D files written by
different systems you are trying to reconcile. But if you need to edit
the individual idiosyncracies of particular systems' implementations of
the C3D 'convention', then the most flexible way would be to use the
free version of the C3D Server called from custom code, eg written in
Some Matlab example code here (from Shriners Hospitals for Children in
Pennsylvania) ...
We, and many other labs, have also written Matlab code to use the C3D
Server in similar fashion.



Tim Wrigley
Director - Movement Research Laboratories
School of Physiotherapy
University of Melbourne

Hi Stephen,

We have worked with C3D files and find the following Matlab codes very
useful for manipulating the files. You can also use these programs
along with some self written code to change C3D files into other


Good Luck,

Anne Schmitz

Pre-dissertation PhD Student Biomedical Engineering

UW Madison

Dear Stephen Poon,

A low cost software is C3d Editor, from Motion Lab Systems.

Best Regards,

Wagner de Godoy
HIAE - Brazil

Dear Stephen,

I'm the main developer of a C++ library name BTK (Biomechanical
ToolKit) which can import/export C3D files. This library reads all C3D
files proposed on the website www.c3d.org and also accept corrupted
C3D files (no parameter section, bad number of blocks, etc.).
This library has also Matlab wrapping functions packaged as a Matlab
toolbox named btk.

It is an open-source project with a New BSD license. This library is
cross-platform and was tested with MacOS Leopard, Windows XP and Linux
Ubuntu Jaunty. Matlab versions accepted are between Matlab 7.0.4
(R14SP2) and 7.8 (R2009a).

The website of BTK is: http://code.google.com/p/b-tk/

There is also an experimental branch to visualize acquisition data
with VTK and Qt. There is not yet a GUI to edit C3D files.

For Matlab users, it is really easy to import C3D files into Matlab,
modify them, and export them as new files.
For example:
% Read a C3D file
% Return an acquisition as a handle
acq = btkReadAcquisition('myFile.c3d');
% return a structure with all points. Each fields of the structure
% corresponds to points' label.
points = btkGetPoints(acq);
% ... Use this structure as you want.
% Compute Ground reaction forces from force platforms data.
% The value 5.0 is a threshold value on vertical GRF to no to compute
the point of wrench application.
GRWs = btkGetGroundReactionWrenches(acq, 5.0);
% Write GRWs into the acquistion.
for i = 1:length(GRWs)
btkAppendPoint(acq, 'MARKER', ['GroundReactionPosition', num2str(i)],
btkAppendPoint(acq, 'FORCE', [GroundReactionForce', num2str(i)], GRWs(i).F);
btkAppendPoint(acq, 'MOMENT', ['GroundReactionMoment', num2str(i)], GRWs(i).M);
% Write a new C3D file.
btkWriteAcquisition(acq, 'myFileWithGRWs.c3d')
% There is also functions to get/set analog channels.
% Use the command 'help btk' for more informations.



Dear Steven,

C3D is the common public file format supported by virtually all 3D
Motion Capture systems - a history of the file format and full C3D
documentation can be downloaded from http://www.c3d.org as well as
user written applications, demonstrations of commercial C3D
applications, and a large library of sample C3D files from different
laboratories and motion capture systems.

We offer two C3D editing software solutions that run under the
Microsoft Windows and should run on Linux/BSD systems using emulators
such as WINE - these are:

C3Deditor - $495 for a site license. This software allows you to do
almost any kind of edit function imaginable on a C3D file as well as
filter/interpolate C3D data and create, modify, and delete C3D
parameters. It opens all C3D variants (REAL / INTEGER / PC / SGI /
DEC files) and will convert and save all of these types to whichever
C3D file type that you need. It will also rescale REAL formatted C3D
files to convert them safely to INTEGER C3D files without problems.
The C3Deditor can be run in a batch mode to convert multiple C3D files
and can perform complex repetitive edits automatically whenever a C3D
file is opened. It would have no problems opening C3D files from many
different systems and converting the files to a single common format.

C3D File Editor - free. This is a simple C3D file editor that is
supplied with the C3Dserver. It includes the full source code for the
editor (written in Visual Basic) so additional features can be added
if desired. The C3Dserver is a DLL that provides full access to the
C3D file format and is available in two versions. The free version of
the C3Dserver is identical to the full version ($495 for a site
license) except that each call to the C3Dserver incurs a small (5ms)
delay that does not exist in the licensed version. Thus the supplied
C3D File Editor is fully functional with the free version of the
C3Dserver but will run much faster with the licensed version.

It's worth noting that the C3Dserver allows MATLAB users to read and
write C3D files - so a MATLAB user working with the C3Dserver would be
able to open C3D files from multiple motion capture systems in any of
the supported C3D file formats without problems. Similar programs
could be written using Visual Basic, C#, C++, Java, or in any language
or application that supports the Microsoft DLL environment.

Our software licenses are all "site" licenses - so when a laboratory
purchases a copy of our software it can be installed and run on any
number of computers within the laboratory without limit. We feel that
this form of licensing makes our software available at a reasonable
cost, it reflects how software is actually used within the
biomechanics and animation environment and eases the installation and
subsequent tracking of installed software.

We also offer a free program called the MLSviewer that displays the
contents of the C3D file and allows you to examine both the data and
parameters within the C3D file in detail. All of the software
described here can be downloaded from our web site at

Edmund Cramp - eac@motion-labs.com
Motion Lab Systems, Inc. - http://www.motion-labs.com
15045 Old Hammond Highway, Baton Rouge, LA 70816 USA
Tel: (Central Time Zone, GMT-6)