Release 4.3.0

GTSAM 4.3

GTSAM is a C++ library for inference and optimization with factor graphs, with Python and MATLAB interfaces. Version 4.3 extends continuous-time estimation, certifiable optimization, hybrid inference, satellite navigation, and GPU-accelerated optimization.

This overview describes selected contributions, their research collaborations, and resources for using the software. The release notes provide the full change list and contributor credits.

CUDA optimization

The experimental, opt-in CUDA backend provides GPU-accelerated Levenberg–Marquardt optimization. The general sparse path retains factor linearization on the CPU and performs the linear solve on the GPU; the specialized structure-from-motion path also moves linearization to the GPU. Available solver configurations include cuDSS and preconditioned conjugate gradients, with a dense Cholesky option for the reduced SfM Schur system.

To use CUDA from Python, compile GTSAM and its Python wrapper on a CUDA-equipped machine with both GTSAM_ENABLE_CUDA=ON and GTSAM_BUILD_PYTHON=ON. The standard 4.3.0 Python wheels do not include gtsam.cuda. See the CUDA Python build instructions for prerequisites, installation, and verification.

Ruogu Li implemented the CUDA backend, with contributions from Frank Dellaert. The benchmark article documents the hardware, solver configurations, and timing breakdowns.

CUDA speedups on an NVIDIA A100. Best general-path results: 2D pose graphs 3.64×, 3D pose graphs 4.70×, stereo SLAM 3.58×, BAL SfM 6.08×. GPU-resident dense-Schur SfM: 16 cameras 9.56×, 88 cameras 8.72×, 135 cameras 7.95×.
Reported complete-optimizer speedups from the CUDA benchmark article, including construction, device setup, and LM iterations on an NVIDIA A100. The upper group shows the best reported results across general-path benchmarks; the lower group shows three individual BAL problems against the best CPU path. Bars share a zero baseline and scale; 1× means CPU parity. These are benchmark-specific results, not universal speedups.

Continuous-time Gaussian processes

The Gaussian-process framework represents continuous-time trajectories using motion priors on factor graphs. White-noise-on-acceleration (WNOA) priors and interpolation support estimation between trajectory states, including poses on SE(3).

This work is a collaboration with the University of Toronto. Connor Holmes and Frank Dellaert contributed the GTSAM implementation; the accompanying research is by Connor Holmes, Sven Lilge, Zi Cong Guo, Frank Dellaert, and Timothy D. Barfoot.

Holmes et al. Smoothing Out the Edges: Continuous-Time Estimation with Gaussian Process Motion Priors on Factor Graphs, 2026.

Continuous-time factor graph and a three-dimensional trajectory showing estimated and interpolated poses with uncertainty ellipsoids.
Continuous-time trajectory estimation: factor-graph structure and interpolated SE(3) states with uncertainty. Figure from the Gaussian-process article; select the image for full resolution.

Constrained optimization

The constrained-optimization module supports linear, quadratic, and quadratically constrained quadratic problems, as well as nonlinear equality and inequality constraints. The examples describe problem construction, feasible sets, and solver use.

Frank Dellaert and Yetong Zhang describe the QP and QCQP implementation. The release notes also credit Zhexin Xu, Avinash Subramanian, and Fan Jiang across the constrained and certifiable optimization additions.

Quadratic objective contours, an equality constraint, an inequality boundary, and the constrained optimum.
Quadratic-program example showing objective contours, constraints, and the solution. Figure from the QP and QCQP article; see the QP notebook for the formulation.

Certifiable estimation

The certifiable module builds on the quadratically constrained quadratic programming (QCQP) framework, adding semidefinite-relaxation and Riemannian-staircase methods for estimation problems, including rotation averaging, pose-graph optimization, and landmark SLAM. These methods can establish global optimality when the relaxation and its certificate satisfy the required conditions.

The research includes collaborations with David M. Rosen and his team at Northeastern University, and with Frederike Dümbgen at Carnegie Mellon University. The papers below describe the Certifiable Factor Graph Optimization framework and complementary work on exploiting chordal sparsity.

Zhexin Xu, Nikolas R. Sanderson, Hanna Jiamei Zhang, and David M. Rosen. Certifiable Factor Graph Optimization, 2026.

Avinash Subramanian, Connor Holmes, Timothy D. Barfoot, Frank Dellaert, and Frederike Dümbgen. Exploiting Chordal Sparsity for Globally Optimal Estimation with Factor Graphs, 2026.

Six benchmark reconstructions for pose-graph optimization, landmark SLAM, and range-aided SLAM.
Benchmark problems used in Certifiable Factor Graph Optimization: pose-graph optimization, landmark SLAM, and range-aided SLAM. Figure from David Rosen’s framework article.

GNSS factors and ambiguity resolution

New satellite-navigation components include pseudorange, carrier-phase, and Doppler factors, together with integer-ambiguity-resolution utilities. They support GNSS estimation and integration with inertial measurements in a common factor graph.

These additions were a community effort involving Kosuke Inoue, Sammy Guo, Kathir Gounder, Morten Nissov, @scottiyio, and Varun Agrawal. Kosuke Inoue’s RTK-GNSS article provides an evaluation on urban driving data and links to the associated implementation.

Trajectory comparisons and position errors for three Tokyo driving sequences, distinguishing float and fixed GNSS solutions.
RTK-GNSS results on three Tokyo driving sequences. The plots distinguish float and fixed solutions; the 3D position-error color scale saturates at 0.5 m, so larger errors share the maximum color. Figure and evaluation details from Kosuke Inoue’s article.

Pose-graph initialization and refinement

FAST-Sync initializes group-synchronization problems on matrix Lie groups from relative measurements. It provides initial estimates for subsequent nonlinear refinement, including pose-graph optimization.

FAST-Sync is joint work by Shane Holmes, Yiran Luo, Firat Taxpulat, David M. Rosen, and Frank Dellaert.

Holmes et al. FAST-Sync: Fast Group Synchronization for Any Matrix Lie Group. IEEE Robotics and Automation Letters, 11(9):10377–10384, 2026.

A separate refinement improvement supplies exact Local Jacobians in BetweenFactor and PriorFactor when supported by the Lie-group traits. The w10000 benchmark compares refinement from identical initial values.

MIT pose-graph trajectories comparing spanning-tree initialization, FAST-Sync initialization, and nonlinear refinement.
MIT pose graph: spanning-tree initialization, FAST-Sync initialization, and nonlinear refinement. Figure from the FAST-Sync article.

Multifrontal linear solvers

The multifrontal solver uses packed storage and reusable symbolic structure for repeated linear solves. Its notebook explains elimination, factorization, and how to configure the solver within an optimization workflow.

The broader performance work in 4.3 includes contributions from Frank Dellaert, Fan Jiang, @tzvist, Ruogu Li, Jash Shah, and Varun Agrawal. The release notes distinguish these changes from CUDA and other solver additions.

Normal matrix H and upper Cholesky factor R for the notebook's four-variable Gaussian chain. H is tridiagonal and R is upper bidiagonal; nonzero entries are labeled.
The normal matrix and its upper Cholesky factor for the four-variable, unit-noise chain in the MultifrontalSolver notebook. Purple cells are nonzero; blank cells are zero. This numerical example illustrates sparse factorization, not a performance measurement of the new C++ solver. Notebook source.

Discrete–continuous inference

Hybrid factor graphs combine discrete hypotheses with continuous states. Version 4.3 extends hybrid elimination and incremental smoothing, with pruning to manage the number of hypotheses maintained during inference.

Varun Agrawal led the hybrid-inference work, with contributions from Frank Dellaert, Fan Jiang, @ywkim0606, and @arutkowski.

Varun Agrawal and Frank Dellaert. Variable Elimination in Hybrid Factor Graphs for Discrete-Continuous Inference & Estimation, 2026.

Hybrid Bayes tree for three-object data association: a root clique of discrete association variables has three continuous position conditionals as children.
A hybrid Bayes tree from the data-association tutorial. The root represents the joint discrete associations; each child represents a continuous position conditioned on its association. Reproduced from the 4.3.0 notebook figure.

Python notebooks and documentation

The 4.3 documentation includes 328 notebooks, including runnable examples and API guides, covering introductory factor graphs and the new modules. Some examples require optional dependencies or a custom build. Python-interface changes include a PEP 561 type marker and copy-aware APIs.

Porter Zach and the notebook authors expanded the documentation. Fan Jiang, @DLuminary, Varun Agrawal, and other contributors extended the language interfaces.

Plaza2 range-SLAM result comparing the initial odometry trajectory in dashed orange, the optimized path in black, and four landmarks as red stars.
Final figure from the Plaza2 range-SLAM notebook: initial odometry, optimized trajectory, and landmarks after batch optimization. Select the image for the interactive notebook. Notebook source at 4.3.0.

Acknowledgments

GTSAM 4.3 also includes substantial maintenance, testing, portability, packaging, and review work. In addition to the contributors named above, the release notes recognize sustained contributions from @talregev, @Gold856, José Luis Blanco, Akshay Krishnan, and many others.

The complete release notes and contributor list record this work in more detail. See also the project history and contributors. Source links on this page refer to the 4.3.0 release; the online guides and notebooks may continue to evolve.