# symforce-org/symforce

Fast symbolic computation, code generation, and nonlinear optimization for robotics

Repository: https://github.com/symforce-org/symforce
Canonical: https://ross.abutalabs.com/products/symforce
Homepage: https://symforce.org
Language: C++
License: Apache-2.0
License Family: permissive
Topics: robotics, python, cpp, code-generation, optimization, symbolic-computation, slam, computer-vision, motion-planning, structure-from-motion, autonomous-vehicles
Last push: 2026-08-19T17:42:26+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 86, longevity 100
- inputs: {"age_days": 1701, "days_push": 14, "days_rel": 14, "gap_med": 79, "n_releases_24m": 4}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1636, forks 177 (observed 2026-08-28T04:05:14.636194+00:00)

## What it is
SymForce is a Python/C++ library for fast symbolic computation, code generation, and tangent-space nonlinear optimization aimed at robotics applications. It combines a SymPy-based symbolic toolkit with Lie group calculus, a code generator targeting C++/CUDA/Python, and a factor-graph-based optimizer used in production for SLAM, bundle adjustment, calibration, and MPC.

## Use cases
- generate fast C++ code for camera and geometry residuals
- compute tangent-space Jacobians automatically for SLAM factors
- solve bundle adjustment and structure-from-motion problems
- implement sparse nonlinear MPC for autonomous robots
- perform camera calibration with symbolic models
- build factor-graph state estimation for robot localization
- prototype optimization problems in Python and deploy to C++

## When to choose
- you need real-time nonlinear optimization for robotics with auto-generated derivatives
- you want symbolic modeling with rigorous Lie group and camera geometry types
- you need branchless, dependency-light generated code in C++ or other target languages
- you work on SLAM, calibration, or motion planning at scale

## When to avoid
- you need a general-purpose CAS without robotics focus
- your optimization problems are not expressible as factor graphs
- you need a pure-Python solution with no codegen step
- you require mature support for languages beyond the provided backends

## Facets
- artifact type: library
- maturity: active
- function: machine-learning, compiler, math, simulation
- domain: robotics, computer-vision, autonomous-vehicles, developer-tools
- platform: python, cpp, cross-platform
- tags: symbolic-computation, lie-groups, nonlinear-optimization, factor-graphs, slam, bundle-adjustment, state-estimation, motion-planning, jacobians, codegen, code-generation, algorithms, linux, macos

## Member repositories
- symforce-org/symforce (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:14.636194+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-30T03:46:59.181501+00:00, confidence not recorded.
  - readme: https://github.com/symforce-org/symforce (fetched 2026-08-28T04:05:14.636194+00:00, sha 2ecd6d9f5bd2)
  - homepage: https://symforce.org (fetched 2026-08-29T11:19:57.465903+00:00, sha aeeedf512639)
- Data as of 2026-08-30T08:39:29.467469+00:00.
