optimistix
Nonlinear optimisation in JAX and Equinox.
What it is and what it does
Optimistix is a JAX library for solving nonlinear problems: finding roots, minimizing functions, computing fixed points, and solving least-squares problems. It wraps these problem types into a unified interface so you can, for example, convert a root-finding problem to a least-squares problem and solve it with a minimization algorithm. The library is built around modular solvers—you can compose descent paths (like dogleg), update rules (like trust region), and quadratic models (like BFGS) to construct custom optimizers.
Because it's built on JAX, Optimistix inherits autodifferentiation, automatic parallelization, and GPU/TPU support. It works with PyTree-based state, integrates with the Equinox neural-network library, and can interoperate with Optax optimizers. The library is in alpha (Development Status 3) and actively maintained, with documentation available online.
Use it for:
- Solve implicit differential equations (e.g., implicit Euler) by finding fixed points of the update map.
- Minimize loss functions in neural networks or scientific models using custom composed solvers.
- Find roots of nonlinear systems for physics simulations or engineering problems.
- Solve least-squares problems for parameter fitting or inverse problems.
- Combine multiple solver types in a single JAX-compiled pipeline with autodiff.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Optimistix provides nonlinear solvers for root finding, minimization, fixed-point problems, and least-squares fitting, built on JAX with support for autodiff, GPU/TPU acceleration, and PyTree-based state.
Yes, if you work with JAX and need nonlinear solvers. The library is actively maintained, has no known vulnerabilities, installs with low friction, and offers a composable solver interface tailored to JAX's autodiff and GPU/TPU ecosystem. The alpha status means the API may change, but the maintenance signal is strong. Not necessary if you only need first-order gradient optimizers (use Optax instead) or if you are not already in the JAX ecosystem.
Install
optimistix on PyPI
pip
pip install optimistixuv
uv add optimistixpoetry
poetry add optimistixInstalling optimistix
Before you install
Low friction: pure Python wheel with five runtime dependencies (equinox, jax, jaxtyping, lineax, typing-extensions). Actively maintained with recent commits and no known vulnerabilities. Requires Python 3.11+.
License in practice
Apache 2.0 permissive license allows commercial and derivative use with minimal restrictions—include a copy of the license and note any modifications to the source.
Quickstart
pip install optimistix
import jax.numpy as jnp
import optimistix as optx
y0 = jnp.array(1.)
dt = jnp.array(0.1)
def fn(y, args):
return y0 + jnp.tanh(y) * dt
solver = optx.Newton(rtol=1e-5, atol=1e-5)
sol = optx.fixed_point(fn, solver, y0)
y1 = sol.value
Requires Python 3.11+; JAX and its dependencies (including jax itself) must be installed and functional.
Verify before relying
- Whether solver convergence guarantees or failure modes are documented for each algorithm.
- Performance comparison with other JAX optimization libraries or non-JAX solvers.
- Supported problem sizes and scalability limits on GPU/TPU.
Package facts
| License | Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (~=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — equinox, jax, jaxtyping, lineax, typing-extensions |
| Maintenance | actively maintained — 179 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 391,911/month — #7,009 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: optimistix-0.1.0-py3-none-any.whl
Keywords: deep-learning, equinox, jax, levenberg-marquardt, neural-networks, nonlinear-programming, numerical-optimization, optimization
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
diffraxDiffrax provides numerical solvers for…
permissive · top 15,000 on PyPI
lineaxLineax solves linear systems and least-squares…
permissive · top 15,000 on PyPI
optaxOptax provides composable building blocks for…
permissive · top 5,000 on PyPI
directsearchSolves unconstrained and linearly constrained…
copyleft · top 15,000 on PyPI
torchdiffeqProvides PyTorch-based ODE solvers with…
permissive · top 5,000 on PyPI
ott-jaxOTT-JAX solves optimal transport…
permissive · top 15,000 on PyPI
xpressPython interface to the FICO Xpress Optimizer…
unclear · top 15,000 on PyPI
google-tunixTunix is a JAX-based library for post-training…
permissive · top 15,000 on PyPI
nvidia-cusolverProvides CUDA solver native runtime libraries…
unclear · top 1,000 on PyPI