Skip to main content

This is a small library for reading and writing C3D binary files. C3D files are a standard format for recording 3-dimensional time sequence data, especially data recorded by a 3D motion tracking apparatus.

Installing

Install with pip:

pip install c3d

Or if you’d like to use the bleeding-edge version, just clone the github repository and build and install using the normal Python setup process:

pip install git+https://github.com/EmbodiedCognition/py-c3d

Usage

Tools

This package includes a script for converting C3D motion data to CSV format (c3d2csv) and an OpenGL-based visualization tool for observing the motion described by a C3D file (c3d-viewer).

Note for the viewer you need to install pyglet. This can be done by installing the gui extra of py-c3d:

pip install "c3d[gui]"

Library

To use the C3D library, just import the package and create a Reader or Writer depending on your intended usage

import c3d

with open('data.c3d', 'rb') as handle:
    reader = c3d.Reader(handle)
    for i, (points, analog) in enumerate(reader.read_frames()):
        print('Frame {}: {}'.format(i, points.round(2)))

You can also get and set metadata fields using the library; see the package documentation for more details.

Developer Install

To work on c3d, first install poetry and then run:

git clone https://github.com/EmbodiedCognition/py-c3d
cd py-c3d
poetry install

This will create a new virtual environment with all the required dependency and c3d in develop mode.

Tests

To run tests available in the test folder, following command can be run from the root of the package directory:

python -m unittest discover .

Test scripts will automatically download test files from c3d.org.

Caveats

This library is minimally effective, in the sense that the only motion tracking system I have access to (for testing) is a Phasespace system. If you try out the library and find that it doesn’t work with your motion tracking system, let me know. Pull requests are also welcome!

Also, if you’re looking for more functionality than just reading and writing C3D files, there are a lot of better toolkits out there that support a lot more file formats and provide more functionality, perhaps at the cost of increased complexity. The biomechanical toolkit is a good package for analyzing motion data.

Release files for c3d 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for c3d 0.6.0
File Size Uploaded
c3d-0.6.0.tar.gz 29.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for c3d 0.6.0
File Interpreter ABI Platform
c3d-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 61.1 kB

Release files / c3d-0.6.0.tar.gz

Download URL c3d-0.6.0.tar.gz
Size 29.8 kB
Tags Source
SHA-256 checksum
How to use checksums
59f94bc243bfe811683abf9d2d2831bf3749a2fe056bbc6a8a5461054eb6c2e5
BLAKE2b-256 checksum
How to use checksums
4352e292175e9b252daaa5d9533ab88bf56f25ed6401dd16bb1e3bf5cb17c53e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2025.

Transparency log

Release files / c3d-0.6.0-py3-none-any.whl

Download URL c3d-0.6.0-py3-none-any.whl
Size 31.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
86928e4bd46aac107b1288981e4fee0daaca7ca24524bef6e890a99b7d1421a4
BLAKE2b-256 checksum
How to use checksums
66f490cbc0ae74ad59b00ca163732fa0fe9dad7979f65938f171990653829529
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page