# ceres-solver/ceres-solver

A large scale non-linear optimization library

Repository: https://github.com/ceres-solver/ceres-solver
Canonical: https://ross.abutalabs.com/products/ceres-solver
Homepage: http://ceres-solver.org/
Language: C++
License: NOASSERTION
License Family: other
Topics: c-plus-plus, numerical-optimization, nonlinear-optimization-algorithms, nonlinear-programming, nonlinear-least-squares, bundle-adjustment, bfgs, levenberg-marquardt, gauss-newton, trust-region, computer-vision, structure-from-motion, l-bfgs, conjugate-gradient
Last push: 2026-08-19T16:02:05+00:00

## Health v2 (maintenance only)
Score: 76/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 35, longevity 100
- inputs: {"age_days": 4622, "days_push": 14, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4547, forks 1137 (observed 2026-08-28T04:08:53.265277+00:00)

## What it is
Ceres Solver is an open-source C++ library for modeling and solving large-scale non-linear optimization problems, including bounded non-linear least squares and general unconstrained optimization. It is a mature, performant library used in production at Google since 2010, featuring automatic differentiation, robust loss functions, manifold support, and multiple trust-region solvers.

## Use cases
- solve large non-linear least squares problems
- perform bundle adjustment for structure from motion
- fit curves with robust loss functions to handle outliers
- optimize parameters on manifolds like rotation matrices
- solve general unconstrained optimization problems
- use automatic differentiation instead of hand-coded derivatives

## When to choose
- you need a mature, production-tested C++ optimization library
- you are doing bundle adjustment or SLAM-style vision problems
- you want automatic, numeric, or analytic derivatives in any combination
- you need sparse solvers for very large problems

## When to avoid
- you need linear programming or constrained optimization beyond simple bounds
- you want a pure Python or high-level scripting solution
- your problem is small and a simpler solver suffices
- you cannot use C++17 or manage CMake/Eigen dependencies

## Facets
- artifact type: library
- maturity: stable
- function: math, machine-learning, computer-vision
- domain: computer-vision, mathematics, robotics
- platform: cpp, windows, cross-platform
- tags: nonlinear-least-squares, bundle-adjustment, trust-region, levenberg-marquardt, automatic-differentiation, optimization, algorithms, linux, macos, android

## Member repositories
- ceres-solver/ceres-solver (main) score 76

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:53.265277+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:20:06.130225+00:00, confidence not recorded.
  - readme: https://github.com/ceres-solver/ceres-solver (fetched 2026-08-28T04:08:53.265277+00:00, sha 5ac8d21abfdd)
  - homepage: http://ceres-solver.org/ (fetched 2026-08-29T09:05:44.882816+00:00, sha a999a8278373)
  - site_page: http://ceres-solver.org/features.html (fetched 2026-08-29T09:05:44.885264+00:00, sha 88e71ac527a0)
  - site_page: http://ceres-solver.org/installation.html (fetched 2026-08-29T09:05:44.887528+00:00, sha 0dd139fccf6e)
  - site_page: http://ceres-solver.org/faqs.html (fetched 2026-08-29T09:05:44.890359+00:00, sha a13d0cb75c6c)
- Data as of 2026-08-30T08:39:29.467469+00:00.
