roma
A lightweight library to deal with 3D rotations in PyTorch.
Decision gist · record as of 2026-08-14
Yes. RoMa is actively maintained, has no known vulnerabilities, installs with minimal friction (two common dependencies), and fills a specific need for differentiable rotation handling in PyTorch. The permissive BSD-3-Clause license poses no barrier. Install it if your project involves 3D rotations, pose estimation, or rotation-aware neural networks.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires PyTorch and NumPy; Python >= 3.8
- Low friction: pure Python wheel with only torch and numpy as runtime dependencies.
- Actively maintained with a recent release (3 days old) and steady repository activity.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; attribution and license notice required in distributions.
last release 2026-08-11 (3 days) · last repo commit 2026-08-14 · 641 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 238,121 downloads/mo, #8,947 on PyPI
Alternatives
Verify before relying
pip install roma
import torch
import roma
rotvec = torch.randn(2, 3, 3)
q = roma.rotvec_to_unitquat(rotvec)
R = roma.unitquat_to_rotmat(q)- Performance characteristics (speed, memory) relative to alternatives for large-scale rotation operations
- Numerical stability guarantees for edge cases (near-singularities, very small rotations)
- Completeness of gradient support across all conversion functions
What it is and what it does
RoMa is a PyTorch library for working with 3D rotations in machine learning pipelines. It handles conversions between common rotation representations—rotation vectors, unit quaternions, rotation matrices, and Euler angles—while maintaining differentiability throughout for backpropagation. The library also provides rotation-space metrics (geodesic distance, cosine angle), quaternion operations, spherical interpolation, and rigid transformation composition.
The package targets researchers and engineers building neural networks or optimization systems that need to reason about 3D rotations. It abstracts away the mathematical complexity of rotation manifolds and provides utilities like Procrustes orthonormalization and Gram-Schmidt orthogonalization for converting arbitrary matrices to valid rotations. Batch operations are supported naturally across arbitrary dimensions.
Use it for
- Train neural networks that predict 3D rotations or rotation-parameterized transformations in computer vision or robotics
- Implement gradient-based optimization over rotation space for pose estimation or alignment problems
- Convert between rotation representations in a differentiable pipeline without breaking the computational graph
- Interpolate smoothly between rotations using spherical interpolation for animation or trajectory generation
- Compose and invert rigid transformations (rotation + translation) in batch form for 3D geometry operations
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
RoMa is actively maintained, has no known vulnerabilities, installs with minimal friction (two common dependencies), and fills a specific need for differentiable rotation handling in PyTorch. The permissive BSD-3-Clause license poses no barrier. Install it if your project involves 3D rotations, pose estimation, or rotation-aware neural networks.
Install
roma on PyPI
Before you install
Low friction: pure Python wheel with only torch and numpy as runtime dependencies. Actively maintained with a recent release (3 days old) and steady repository activity.
Requires PyTorch and NumPy; Python >= 3.8
License in practice
BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; attribution and license notice required in distributions.
Quickstart
pip install roma
import torch
import roma
rotvec = torch.randn(2, 3, 3)
q = roma.rotvec_to_unitquat(rotvec)
R = roma.unitquat_to_rotmat(q)
Verify before relying
- Performance characteristics (speed, memory) relative to alternatives for large-scale rotation operations
- Numerical stability guarantees for edge cases (near-singularities, very small rotations)
- Completeness of gradient support across all conversion functions
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagestorchnumpy |
| Maintenance | Actively maintained 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 238,121 / month, #8,947 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Operating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: roma-1.6-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “3d rotation pytorch”
- romaRoMa provides differentiable conversions between 3D rotation…
- e3nne3nn provides PyTorch-based operations for building E(3)-equivariant…
- cuequivariancecuEquivariance provides CUDA-accelerated operations for building…
Give your agent the search over MCP, or paste the wish link into any chat.
More Mathematics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.
Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.
onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.
Install it if you have ONNX models to run in production or development.
See also transformations · transforms3d · jaxlie · numpy-quaternion · pyquaternion · tensorflow-graphics · pipablepytorch3d · pytransform3d · colormath