Back to directory

SymForce

A symbolic computation and code-generation library for robotics that compiles symbolic math into fast C++ (or other target-language) code and provides a tangent-space nonlinear optimizer for problems such as SLAM, calibration and motion planning.

SymForce

SymForce combines the flexibility of symbolic mathematics, built on the SymPy API with geometric and camera types, Lie-group calculus and singularity handling, with a code generator that turns symbolic expressions into fast, branchless, dependency-light code for C++ or another target language. Its optimization library is a fast tangent-space nonlinear optimizer based on factor graphs, and generated functions plug directly into it as factors.

Because it computes tangent-space Jacobians automatically, it removes the need for handwritten, bug-prone derivatives, and its authors report yielding 10x speedups over standard autodiff by flattening computation and exploiting sparsity. It generates embedded-friendly, templated Eigen C++ code with zero dynamic memory allocation.

SymForce is developed and maintained by Skydio and used in production for tasks like SLAM, bundle adjustment, calibration and sparse nonlinear MPC in autonomous robots; it was published at RSS 2022 and installs via pip.

More in Libraries

See all 292
  • OpenDecision

    deepanwadhwa.github.io

    An open-source Python package that answers typed questions about application state or documents using a local natural-language-inference model, returning structured choice, score, yes/no or evidence-relation values instead of free text.

  • TradeCanvas

    bonguynvan.github.io

    A zero-dependency canvas charting engine for building TradingView-style trading charts in JavaScript, with 66 technical indicators, 24 drawing tools, 17 chart types, and real-time streaming.

  • 3d retro graphics

    3d-retro.com

    A free, CC0-licensed library of copy-paste retro 3D and demoscene graphics effects, such as plasma, raytracing, and voxel terrain, runnable as WebGL 1 or plain 2D canvas.