jaxlie
Matrix Lie groups in JAX
What it is and what it does
jaxlie is a JAX library for working with matrix Lie groups commonly used in rigid body kinematics and transformations. It provides high-level dataclass implementations of SO2 (2D rotations), SE2 (2D rigid transforms), SO3 (3D rotations), and SE3 (3D rigid transforms), each parameterized in a way suitable for optimization and differentiation. Every group supports forward and reverse-mode autodiff-friendly operations including exp, log, matrix conversion, composition, and inversion.
The library is designed for computer vision and robotics workflows where you need to optimize over transformation manifolds or compose transformations in differentiable code. It integrates with JAX's function transformations (vmap, jit, grad) and supports broadcasting, pytree flattening, and serialization via flax. Taylor approximations handle numerical stability near singularities, and utilities like uniform random sampling and Euler angle conversion are included for SO3.
Use it for:
- Optimize camera poses or object transforms in 3D vision pipelines using manifold-aware gradient descent.
- Compose and apply rigid body transformations in robotics simulation or control code with automatic differentiation.
- Batch-process rotations and transforms across multiple frames or trajectories using vmap.
- Convert between rotation representations (quaternions, matrices, Euler angles) while maintaining differentiability.
- Implement factor graph optimization for SLAM or pose estimation with Lie group constraints.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
jaxlie implements Lie groups (SO2, SE2, SO3, SE3) for rigid body transformations in JAX, providing differentiable operations like exp, log, and matrix conversions for computer vision and robotics applications.
Yes, if you are building JAX-based computer vision or robotics code that requires differentiable rigid body transformations. The library is well-designed for manifold optimization and integrates cleanly with JAX's ecosystem. The aging maintenance status (477 days since last release) is not a blocker—the package is stable and the repo remains active—but check whether recent JAX API changes affect your use case. No known vulnerabilities.
Install
jaxlie on PyPI
pip
pip install jaxlieuv
uv add jaxliepoetry
poetry add jaxlieInstalling jaxlie
Before you install
Low friction: pure Python wheel with five runtime dependencies (jax, numpy, jax_dataclasses, typing_extensions, tyro). Maintenance status is aging—last commit 477 days ago—but the repo remains active and the package has been stable since its 2021 release.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source contexts.
Quickstart
pip install jaxlie
import jaxlie
# Create a 3D rotation from quaternion (wxyz)
rotation = jaxlie.SO3(jnp.array([1.0, 0.0, 0.0, 0.0]))
# Apply rotation to a 3D point
point = jnp.array([1.0, 0.0, 0.0])
rotated = rotation.apply(point)
Requires JAX installed; jaxlie requires Python >=3.8.
Verify before relying
- Whether the package's AD support covers all use cases or has known limitations in reverse-mode differentiation.
- Performance characteristics and scalability when used with large batches or vmap over many group elements.
- Stability and numerical accuracy of Taylor approximations near singularities in practice.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — jax, jax_dataclasses, numpy, typing_extensions, tyro |
| Maintenance | aging — 477 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 96,173/month — #13,225 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jaxlie-1.5.0-py3-none-any.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
transformationsCalculates 4x4 homogeneous transformation…
permissive · top 5,000 on PyPI
transforms3dConverts between different 3D geometric…
permissive · top 15,000 on PyPI
romaRoMa provides differentiable conversions…
permissive · top 15,000 on PyPI
jaxellipProvides JAX-compatible implementations of…
permissive · top 15,000 on PyPI
json-eParameterizes and transforms JSON data…
copyleft · top 5,000 on PyPI
libpinocchiolibpinocchio provides efficient rigid body…
permissive · top 15,000 on PyPI
e3nn-jaxImplements equivariant convolutional neural…
permissive · top 15,000 on PyPI
drjaxDrJAX embeds MapReduce programming primitives…
permissive · top 15,000 on PyPI
pinPython interface to a C++ rigid-body dynamics…
permissive · top 5,000 on PyPI
pyquaternionProvides quaternion representation,…
permissive · top 5,000 on PyPI