Skip to content

Release 4.3a2

Pre-release
Pre-release

Choose a tag to compare

@dellaert dellaert released this 04 Aug 16:07
· 289 commits to develop since this release

GTSAM 4.3a2

GTSAM 4.3a2 is a substantial alpha release that expands continuous-time estimation, constrained and certifiable optimization, hybrid inference, navigation, parallel solvers, and GPU acceleration. It also brings extensive improvements to documentation, notebooks, language wrappers, build tooling, and Python wheel publishing.

The API is not stable for these new additions. Esp. the GPU acceleration and certifiable optimization are still in flux. Once those settle down, we aim to cut a 4.3 release.

Highlights

Continuous-time Gaussian processes

This release introduces a comprehensive continuous-time Gaussian-process framework based on white-noise-on-acceleration (WNOA) models. It includes continuous-time factors, trajectory interpolation, factor-graph construction, Python bindings, and worked notebooks and examples.

The new framework supports continuous-time trajectory estimation while integrating naturally with GTSAM’s nonlinear factor graphs.

Constrained, QCQP, and certifiable optimization

The constrained optimization framework now includes linear programs (LP), quadratic programs (QP), and quadratically constrained quadratic programs (QCQP), together with Python wrappers, examples, and documentation.

QCQP factor-graph conversion provides an intermediate representation for constructing monolithic and chordal semidefinite relaxations. This forms the beginning of a broader certifiable-optimization capability in GTSAM. A new certifiable module adds lifted SDP problems and a Riemannian Staircase solver, with optional MOSEK integration and wrapping.

Hybrid and discrete inference

Hybrid inference received substantial implementation, wrapping, and documentation improvements. These include expanded hybrid documentation and notebooks, improvements to hybrid factors and inference, Python wrapping for DCSAM, and cleanup of the accompanying examples.

The discrete documentation and tutorials were also expanded, including a new discrete-series example tutorial.

Parallel multifrontal inference and performance

A major body of work introduces new linear and nonlinear multifrontal solvers, parallel clique processing, bottom-up clique merging, task and priority schedulers, and TBB-based separator updates.

Related performance work improves nonlinear graph error evaluation, Jacobian-factor operations, Levenberg–Marquardt elimination, covariance recovery, ISAM2 reordering, marginal caching, and batch-factor operations.

Navigation, filtering, and GNSS

Navigation gained new equivariant filtering infrastructure, group actions, EqVIO foundations and filtering, EKF reset support, extended-pose Lie groups, and four-legged state-estimation capabilities.

GNSS support now includes pseudorange, differential pseudorange, carrier-phase, RTK double-difference, PPP, lever-arm, and GNSS/IMU coupling factors. The release also adds a GlobalPositioner and improves trajectory alignment, IMU handling, and navigation documentation.

CUDA-accelerated bundle adjustment

This release introduces an experimental CUDA SFM bundle-adjustment optimizer and CUDA-backed GNC optimization. The CUDA GNC implementation uses the CUDA SFM Levenberg–Marquardt solver as its inner optimizer and demonstrated substantial speedups over the CPU implementation.

Geometry, robustness, and covariance recovery

Geometry additions include PowerLieGroup, variable-dimension product groups, extended poses, improved SL4, Cayley-chart Jacobians for Rot3, SphericalCamera bindings, and self-calibration support.

Robust estimation gained TLS loss functions, René Vidal’s TLS formulation, broader GNC factor support, and improvements to GNC trajectory alignment. Covariance recovery now uses Steiner-tree queries integrated into GaussianBayesTree and exposed through ISAM2.

Documentation, notebooks, and wrappers

Documentation was expanded across hybrid inference, basis functions, constrained optimization, navigation, marginals, and continuous-time Gaussian processes. Numerous Python examples were migrated to standardized notebooks.

Python and MATLAB support gained new wrappers, custom-factor support, numerical derivatives, copy-free matrix views, improved return policies, broader factor coverage, and updated wrapper-generation infrastructure.

Build and packaging improvements include production PyPI publishing, Python 3.14 wheels, faster and more reliable wheel builds, improved Windows Python support, modernized CMake and vcpkg integration, and reduced Boost dependencies.

New Contributors

Comprehensive Change List

Full Changelog: 4.3a1...4.3a2