transforms3d
Functions for 3D coordinate transformations
What it is and what it does
Transforms3d is a library for converting between and composing 3D geometric transformations. It handles rotations (as matrices, Euler angles, or quaternions), translations, scales, and shears, allowing you to build complex affine transformations by composing these primitives or break down an existing matrix back into its components. The code is written with teaching in mind—algorithms are documented with mathematical derivations using sympy—making it useful both as a practical tool and as a reference for understanding the underlying geometry.
The package depends only on numpy and installs as a pure Python wheel, making it lightweight and portable. It targets developers and researchers working with 3D graphics, robotics, computer vision, or any domain requiring coordinate transformations. The dormant maintenance status (no releases for 788 days) suggests the API is stable, but users should be aware that active development has slowed.
Use it for:
- Convert between rotation representations (matrices, quaternions, Euler angles) in 3D graphics or robotics pipelines.
- Decompose an affine transformation matrix into its rotation, scale, shear, and translation components for analysis or modification.
- Compose multiple transformations (rotation, translation, scale) into a single affine matrix for efficient rendering or simulation.
- Validate or debug 3D transformation logic by converting between formats and checking consistency.
- Learn or teach the mathematics of 3D transformations using documented algorithms and sympy derivations.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts between different 3D geometric transformations—rotation matrices, Euler angles, quaternions, and affine matrices—and composes or decomposes them.
Yes, if you need 3D transformation conversions and can accept dormant maintenance. The package is stable, has no known vulnerabilities, installs with minimal friction, and carries a permissive license. It is well-suited for production use in graphics, robotics, or scientific computing where transformation math is a small part of a larger system. Not recommended if you require active bug fixes or feature development.
Install
transforms3d on PyPI
pip
pip install transforms3duv
uv add transforms3dpoetry
poetry add transforms3dInstalling transforms3d
Before you install
Low friction: pure Python wheel with only numpy as a dependency. Maintenance is dormant (788 days since last release) but the repository remains active with a last commit on 2024-07-06, suggesting stability rather than abandonment.
License in practice
BSD license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
pip install transforms3d
import transforms3d
matrix = transforms3d.affines.compose(T=[1, 2, 3], R=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], Z=[1, 1, 1], S=[1, 1, 1])
Requires numpy >= 1.15; Python >= 3.6.
Verify before relying
- Whether the package is actively maintained or in stable maintenance mode (last release 2024-06-17 but no releases for 788 days prior).
- Specific numerical accuracy or precision guarantees for transformation conversions.
- Performance characteristics for large-scale or real-time transformation operations.
Package facts
| License | BSD license (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | dormant — 788 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 696,765/month — #5,302 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: transforms3d-0.4.2-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
affineAffine provides a Python class for representing…
permissive · top 5,000 on PyPI
magiccubeMagicCube implements NxNxN Rubik cubes with…
permissive · top 15,000 on PyPI
pytransform3dpytransform3d provides operations, conversions,…
permissive · top 15,000 on PyPI
romaRoMa provides differentiable conversions…
permissive · top 15,000 on PyPI
transformationsCalculates 4x4 homogeneous transformation…
permissive · top 5,000 on PyPI
jaxliejaxlie implements Lie groups (SO2, SE2, SO3,…
permissive · top 15,000 on PyPI
numpy-quaternionAdds a quaternion dtype to NumPy, enabling…
permissive · top 5,000 on PyPI
euclid3Provides 2D and 3D vector, matrix, quaternion,…
unclear · top 15,000 on PyPI
Geode-ConversionProvides conversion functionality for the…
unclear · top 15,000 on PyPI
pyquaternionProvides quaternion representation,…
permissive · top 5,000 on PyPI