Skip to main content

PyRoki: Python Robot Kinematics Library

Project page • arXiv

PyRoki is a modular, extensible, and cross-platform toolkit for kinematic optimization, all in Python.

Core features include:

  • Differentiable robot forward kinematics model from a URDF.
  • Automatic generation of robot collision primitives (e.g., capsules).
  • Differentiable collision bodies with numpy broadcasting logic.
  • Common cost implementations (e.g., end effector pose, self/world-collision, manipulability).
  • Arbitrary costs, autodiff or analytical Jacobians.
  • Integration with a Levenberg-Marquardt Solver that supports optimization on manifolds (e.g., lie groups) and hard constraints via an Augmented Lagrangian solver.
  • Cross-platform support (CPU, GPU, TPU) via JAX.

Please refer to the documentation for more details, features, and usage examples.


Installation

You can install pyroki with pip, on Python 3.10+:

git clone https://github.com/chungmin99/pyroki.git
cd pyroki
pip install -e .

Status

May 6, 2025: Initial release

We are preparing and will release by May 16, 2025:

  • Examples + documentation for hand / humanoid motion retargeting
  • Documentation for using manually defined Jacobians
  • Support with Python 3.10+

Limitations

  • Static shapes & JIT overhead: JAX JIT compilation is triggered on first run and when input shapes change (e.g., number of targets, obstacles). Arrays can be pre-padded to vectorize over inputs with different shapes.
  • No sampling-based planners: We don't include sampling-based planners (e.g., graphs, trees).
  • Collision performance: Speed and accuracy comparisons against other robot toolkits such as CuRobo have not been extensively performed, and is likely slower than other toolkits for collision-heavy scenarios.

The following are current implementation limitations that could potentially be addressed in future versions:

  • Joint types: We only support revolute, continuous, prismatic, and fixed joints. Other URDF joint types are treated as fixed joints.
  • Collision geometry: We are limited to sphere, capsule, halfspace, and heightmap geometries. Mesh collision is approximated as capsules.
  • Kinematic structures: We only support kinematic trees; no closed-loop mechanisms or parallel manipulators.

Citation

This codebase is released with the following preprint.

Chung Min Kim*, Brent Yi*, Hongsuk Choi, Yi Ma, Ken Goldberg, Angjoo Kanazawa. PyRoki: A Modular Toolkit for Robot Kinematic Optimization arXiV, 2025.

*Equal Contribution, UC Berkeley.

Please cite PyRoki if you find this work useful for your research:

@inproceedings{kim2025pyroki,
  title={PyRoki: A Modular Toolkit for Robot Kinematic Optimization},
  author={Kim*, Chung Min and Yi*, Brent and Choi, Hongsuk and Ma, Yi and Goldberg, Ken and Kanazawa, Angjoo},
  booktitle={2025 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  year={2025},
  url={https://arxiv.org/abs/2505.03728},
}

Thanks!

Metadata

Release files for almond-pyroki 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 almond-pyroki 0.1.1
File Size Uploaded
almond_pyroki-0.1.1.tar.gz 42.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for almond-pyroki 0.1.1
File Interpreter ABI Platform
almond_pyroki-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 88.1 kB

Release files / almond_pyroki-0.1.1.tar.gz

Download URL almond_pyroki-0.1.1.tar.gz
Size 42.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8b14fe5cbafd4202f0a6d15ac2401bc919dd01caafeaecabd97936034feb5111
BLAKE2b-256 checksum
How to use checksums
ae1b385d7f3c03c3264a45c87e30424a879f07d7d29b303d9473f2415d5b6453
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / almond_pyroki-0.1.1-py3-none-any.whl

Download URL almond_pyroki-0.1.1-py3-none-any.whl
Size 45.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd57d4dc8b032e8e9aabacadffa64c45f45c7d8b392dc3484dab4dce2d181512
BLAKE2b-256 checksum
How to use checksums
b9880b6eea46d7fe90a0debd791512b8692bf585248e01f6be232447c11e77b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

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