Metadata-Version: 2.5
Name: almond-jaxls
Version: 0.1.0
Summary: Almond's fork of jaxls: nonlinear least squares with JAX. Installs the `jaxls` module.
Project-URL: GitHub, https://github.com/brentyi/jaxls
License: MIT
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: jax-dataclasses>=1.6.2
Requires-Dist: jax>=0.4.0
Requires-Dist: jaxlib
Requires-Dist: jaxlie>=1.0.0
Requires-Dist: loguru
Requires-Dist: rich>=13.0.0
Requires-Dist: termcolor
Requires-Dist: tqdm
Requires-Dist: typing-extensions>=4.5.0
Provides-Extra: cholmod
Requires-Dist: scikit-sparse; extra == 'cholmod'
Provides-Extra: dev
Requires-Dist: ipython; extra == 'dev'
Requires-Dist: libcst; extra == 'dev'
Requires-Dist: nbconvert; extra == 'dev'
Requires-Dist: pyright>=1.1.308; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: viser; extra == 'dev'
Provides-Extra: docs
Requires-Dist: fast-simplification; extra == 'docs'
Requires-Dist: graphviz; extra == 'docs'
Requires-Dist: ipykernel; extra == 'docs'
Requires-Dist: jupyterlab; extra == 'docs'
Requires-Dist: matplotlib; extra == 'docs'
Requires-Dist: myst-nb>=1.0.0; extra == 'docs'
Requires-Dist: opencv-python; extra == 'docs'
Requires-Dist: plotly; extra == 'docs'
Requires-Dist: robot-descriptions; extra == 'docs'
Requires-Dist: scikit-sparse; extra == 'docs'
Requires-Dist: scipy; extra == 'docs'
Requires-Dist: sphinx-book-theme>=1.0.0; extra == 'docs'
Requires-Dist: sphinx-copybutton>=0.5.0; extra == 'docs'
Requires-Dist: sphinx>=7.0.0; extra == 'docs'
Requires-Dist: trimesh; extra == 'docs'
Requires-Dist: tyro; extra == 'docs'
Requires-Dist: viser>=1.0.19; extra == 'docs'
Requires-Dist: yourdfpy; extra == 'docs'
Description-Content-Type: text/markdown

# jaxls

> [!NOTE]
> This is [Almond Bot](https://almond.bot)'s fork of
> [brentyi/jaxls](https://github.com/brentyi/jaxls), published to PyPI as
> [`almond-jaxls`](https://pypi.org/project/almond-jaxls/) because upstream has
> no current PyPI release. It installs the `jaxls` import name and is pinned to
> the revision the [Almond Axol SDK](https://github.com/almond-bot/axol) is
> tested against (see the `almond` branch). If upstream publishes an official
> release, prefer it over this fork.

[**[ Documentation ]**](https://brentyi.github.io/jaxls)

[![pyright](https://github.com/brentyi/jaxls/actions/workflows/pyright.yml/badge.svg)](https://github.com/brentyi/jaxls/actions/workflows/pyright.yml)

jaxls is a solver for sparse, constrained, and/or non-Euclidean least squares problems in JAX.

#### Projects using jaxls

<table>
  <tr>
    <td>
      <a href="https://egoallo.github.io/">
        egoallo
        <br /><img
          alt="GitHub stars"
          src="https://img.shields.io/github/stars/brentyi/egoallo?style=social"
        />
      </a>
    </td>
    <td>
      For guiding diffusion model sampling with 2D observations / reprojection errors.
    </td>
  </tr>
  <tr>
    <td>
      <a href="https://videomimic.net/">
        videomimic
        <br /><img
          alt="GitHub stars"
          src="https://img.shields.io/github/stars/hongsukchoi/videomimic?style=social"
        />
      </a>
    </td>
    <td>
      For joint human-scene optimization and motion retargeting.
    </td>
  </tr>
  <tr>
    <td>
      <a href="https://pyroki-toolkit.github.io/">
        pyroki
        <br /><img
          alt="GitHub stars"
          src="https://img.shields.io/github/stars/chungmin99/pyroki?style=social"
        />
      </a>
    </td>
    <td>
      For solving inverse kinematics, motion planning, etc for robots.
    </td>
  </tr>
  <tr>
    <td>
      <a href="https://protomotions.github.io/tutorials/workflows/retargeting_pyroki.html">
        ProtoMotions
        <br /><img
          alt="GitHub stars"
          src="https://img.shields.io/github/stars/nvlabs/ProtoMotions?style=social"
        />
      </a>
    </td>
    <td>
      For trajectory-level humanoid motion retargeting (via PyRoki).
    </td>
  </tr>
</table>

The [documentation](https://brentyi.github.io/jaxls) also covers how you can use it for things like cloth simulation:

<img width="500" alt="image" src="https://github.com/user-attachments/assets/ada16acb-e0d4-42db-b43b-4ee6be6066bf" />

Camera calibration:

<img width="500" alt="image" src="https://github.com/user-attachments/assets/fec84454-d8ca-41bb-857d-8a3d8e7bf090" />

Mesh optimization:

<img width="500" alt="image" src="https://github.com/user-attachments/assets/84ffb9b5-985a-488c-b75a-aacb52194463" />

And optimal control:

https://github.com/user-attachments/assets/82c2ad41-d688-4825-9671-8f6af9f2b252
