Theseus is a library for differentiable nonlinear optimization that lets you embed solvers like Gauss-Newton or Levenberg–Marquardt inside PyTorch models. Problems are expressed as factor graphs with variables on manifolds (e.g., SE(3), SO(3)), so classical robotics and vision tasks—bundle adjustment, pose graph optimization, hand–eye calibration—can be written succinctly and solved efficiently. Because solves are differentiable, you can backpropagate through optimization to learn cost weights, feature extractors, or initialization networks end-to-end. The implementation supports batched optimization on GPU, robust losses, damping strategies, and custom factors, making it practical for real-time systems. Helper packages provide geometry primitives and utilities for composing priors, relative constraints, and measurement models. Theseus bridges the gap between classical optimization and deep learning, enabling hybrid systems that learn components.
Features
- Differentiable Gauss-Newton and Levenberg–Marquardt solvers in PyTorch
- Factor-graph API with manifold variables like SE(3) and SO(3)
- Batched, GPU-accelerated solves with robust loss functions
- Autograd support to learn costs, features, or initializations end-to-end
- Geometry helpers and reusable factors for SLAM and bundle adjustment
- Extensible design for custom variables, factors, and damping policies