Skip to main content

Motion3D

A header-only C++ library with full Python bindings for handling, converting, and storing 3D motions and poses.

It supports converting, chaining and applying transformations in many common representations:

  • Axis-angle rotation and translation vector
  • Dual quaternion
  • Euler angles and translation vector
  • SE(3) transformation matrix
  • Rotation quaternion and translation vector

Using the TransformInterface base class, transformations can be applied and chained without worrying about the underlying type.

The TransformContainer enables handling multiple transformations as motions or as poses, with or without corresponding timestamps. Furthermore, the M3DWriter and M3DReader can be used to store and load transformations from both C++ and Python in the M3D file format.

Installation

Requirements

Dependency Version Note
CMake >= 3.14
GCC >= 9.4 C++17 is required
Eigen >= 3.3
Python >= 3.6

With Ubuntu 20.04, all dependencies can be installed using:

apt install build-essential cmake libeigen3-dev python3 python3-dev python3-pip

See docker/motion3d.dockerfile for further installation details, e.g., for packages required for development.

C++

After all requirements are available, use CMake and Make to install the library headers:

mkdir build && cd build
cmake ..
make install

For uninstalling use make uninstall.

Python

The library can be installed either over PyPI using pip:

python3 -m pip install motion3d

or directly from within the cloned repository:

python3 -m pip install .

If Eigen is not found on the system, the setup downloads a suitable version locally before building the package.

Documentation

Fore more information about the transformation types, definitions, and the usage in C++ and Python, see the documentation.

The doc directory provides a detailed readme on how to create the documentation directly from the repository.

Metadata

Release files for motion3d 0.1.1

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

Source distribution (sdist)

Source distribution for motion3d 0.1.1
File Size Uploaded Provenance Actions
motion3d-0.1.1.tar.gz 69.4 kB Without provenance Details for motion3d-0.1.1.tar.gz

Release files / motion3d-0.1.1.tar.gz

Download URL motion3d-0.1.1.tar.gz
Size 69.4 kB
Tags Source
SHA-256 checksum
How to use checksums
80f0407d550dad22135189d4bfec51d74aa39e6ee97fa515513721c093170bc1
BLAKE2b-256 checksum
How to use checksums
9d52d38a5b3385dd8771d524d0e68f3dd5dba7dcdaaf4d7e852671b9e423ea65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Security for motion3d 0.1.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file No provenance

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