Skip to main content

Functions for 3D coordinate transformations

Project description

Code to convert between various geometric transformations.

  • Composing rotations / zooms / shears / translations into affine matrix;

  • Decomposing affine matrix into rotations / zooms / shears / translations;

  • Conversions between different representations of rotations, including:

    • 3x3 Rotation matrices;

    • Euler angles;

    • quaternions.

We have tried to document the algorithms carefully and write clear code in the hope that this code can be a teaching reference. We document the math behind some of the algorithms using sympy in transforms3d/derivations. We would be very pleased if y’all would like to add your own algorithms and derivations - please get a copy of the code from and get on down, algorithmically. Feel free to use the github issue tracker and pull request system to ask for advice and support.


Documentation for latest released version at



Released under the BSD two-clause license - see the file LICENSE in the source distribution.

Much of the code comes from by Christoph Gohlke, also released under the BSD license.

We use Github actions to test the code automatically under Pythons 3.7 through 3.10.

We depend on numpy >= 1.15. You may be able to make it work on an earlier numpy if you really needed that.

The latest released version is at


Please put up issues on the transforms3d issue tracker.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

transforms3d-0.4.1.tar.gz (1.4 MB view hashes)

Uploaded source

Built Distribution

transforms3d-0.4.1-py3-none-any.whl (1.4 MB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page