{"id":13806876,"url":"https://github.com/brentyi/jaxlie","last_synced_at":"2025-05-15T14:05:44.085Z","repository":{"id":45116534,"uuid":"316670524","full_name":"brentyi/jaxlie","owner":"brentyi","description":"Rigid transforms + Lie groups for JAX","archived":false,"fork":false,"pushed_at":"2025-04-24T17:23:23.000Z","size":13968,"stargazers_count":253,"open_issues_count":5,"forks_count":16,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-24T17:52:41.186Z","etag":null,"topics":["computer-vision","geometry","jax","lie-groups","robotics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brentyi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-28T06:18:13.000Z","updated_at":"2025-04-24T17:11:15.000Z","dependencies_parsed_at":"2024-01-07T10:51:02.827Z","dependency_job_id":"84ac137e-63af-4b26-badd-1db731836f0d","html_url":"https://github.com/brentyi/jaxlie","commit_stats":{"total_commits":122,"total_committers":5,"mean_commits":24.4,"dds":"0.032786885245901676","last_synced_commit":"41337d7ea19ed4a10c487cf2a0b3bb42cb46b3a0"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brentyi%2Fjaxlie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brentyi%2Fjaxlie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brentyi%2Fjaxlie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brentyi%2Fjaxlie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brentyi","download_url":"https://codeload.github.com/brentyi/jaxlie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254355334,"owners_count":22057354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computer-vision","geometry","jax","lie-groups","robotics"],"created_at":"2024-08-04T01:01:17.429Z","updated_at":"2025-05-15T14:05:39.075Z","avatar_url":"https://github.com/brentyi.png","language":"Python","funding_links":[],"categories":["Python","Libraries"],"sub_categories":["New Libraries"],"readme":"# jaxlie\n\n![build](https://github.com/brentyi/jaxlie/workflows/build/badge.svg)\n![mypy](https://github.com/brentyi/jaxlie/workflows/mypy/badge.svg)\n![lint](https://github.com/brentyi/jaxlie/workflows/lint/badge.svg)\n[![codecov](https://codecov.io/gh/brentyi/jaxlie/branch/master/graph/badge.svg)](https://codecov.io/gh/brentyi/jaxlie)\n[![pypi_dowlnoads](https://pepy.tech/badge/jaxlie)](https://pypi.org/project/jaxlie)\n\n**[ [API reference](https://brentyi.github.io/jaxlie) ]** **[\n[PyPI](https://pypi.org/project/jaxlie/) ]**\n\n`jaxlie` is a library containing implementations of Lie groups commonly used for\nrigid body transformations, targeted at computer vision \u0026amp; robotics\napplications written in JAX. Heavily inspired by the C++ library\n[Sophus](https://github.com/strasdat/Sophus).\n\nWe implement Lie groups as high-level (data)classes:\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eGroup\u003c/th\u003e\n      \u003cth\u003eDescription\u003c/th\u003e\n      \u003cth\u003eParameterization\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody valign=\"top\"\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003ejaxlie.\u003cstrong\u003eSO2\u003c/strong\u003e\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eRotations in 2D.\u003c/td\u003e\n      \u003ctd\u003e\u003cem\u003e(real, imaginary):\u003c/em\u003e unit complex (∈ S\u003csup\u003e1\u003c/sup\u003e)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003ejaxlie.\u003cstrong\u003eSE2\u003c/strong\u003e\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eProper rigid transforms in 2D.\u003c/td\u003e\n      \u003ctd\u003e\u003cem\u003e(real, imaginary, x, y):\u003c/em\u003e unit complex \u0026amp; translation\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003ejaxlie.\u003cstrong\u003eSO3\u003c/strong\u003e\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eRotations in 3D.\u003c/td\u003e\n      \u003ctd\u003e\u003cem\u003e(qw, qx, qy, qz):\u003c/em\u003e wxyz quaternion (∈ S\u003csup\u003e3\u003c/sup\u003e)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003ejaxlie.\u003cstrong\u003eSE3\u003c/strong\u003e\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eProper rigid transforms in 3D.\u003c/td\u003e\n      \u003ctd\u003e\u003cem\u003e(qw, qx, qy, qz, x, y, z):\u003c/em\u003e wxyz quaternion \u0026amp; translation\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nWhere each group supports:\n\n- Forward- and reverse-mode AD-friendly **`exp()`**, **`log()`**,\n  **`adjoint()`**, **`apply()`**, **`multiply()`**, **`inverse()`**,\n  **`identity()`**, **`from_matrix()`**, and **`as_matrix()`** operations. (see\n  [./examples/se3_example.py](./examples/se3_basics.py))\n- Taylor approximations near singularities.\n- Helpers for optimization on manifolds (see\n  [./examples/se3_optimization.py](./examples/se3_optimization.py),\n  \u003ccode\u003ejaxlie.\u003cstrong\u003emanifold.\\*\u003c/strong\u003e\u003c/code\u003e).\n- Compatibility with standard JAX function transformations. (see\n  [./examples/vmap_example.py](./examples/vmap_example.py))\n- Broadcasting for leading axes.\n- (Un)flattening as pytree nodes.\n- Serialization using [flax](https://github.com/google/flax).\n\nWe also implement various common utilities for things like uniform random\nsampling (**`sample_uniform()`**) and converting from/to Euler angles (in the\n`SO3` class).\n\n---\n\n### Install (Python \u003e=3.7)\n\n```bash\n# Python 3.6 releases also exist, but are no longer being updated.\npip install jaxlie\n```\n\n---\n\n### Misc\n\n`jaxlie` was originally written when I was learning about Lie groups for our IROS 2021 paper\n([link](https://github.com/brentyi/dfgo)):\n\n```\n@inproceedings{yi2021iros,\n    author={Brent Yi and Michelle Lee and Alina Kloss and Roberto Mart\\'in-Mart\\'in and Jeannette Bohg},\n    title = {Differentiable Factor Graph Optimization for Learning Smoothers},\n    year = 2021,\n    BOOKTITLE = {2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrentyi%2Fjaxlie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrentyi%2Fjaxlie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrentyi%2Fjaxlie/lists"}