Show HN: SymForce – Fast symbolic computation, code generation, and optimization

  • Posted 2 years ago by haykmartiros
  • 125 points
https://github.com/symforce-org/symforce
Author here. I’m unreasonably excited to share this library that we’re open-sourcing today — our team has been building it for five years and these ideas have been a passion of mine for fifteen.

SymForce is a library that makes it easy to code a problem once in Python with an augmented SymPy API (backed by C++), experiment with it symbolically, generate optimized code in C++ or any backend language, and then run highly efficient nonlinear optimization problems based on the original problem definition. This workflow elegantly solves a wide variety of tasks in robotics and related domains, and can speed up common tasks by an order of magnitude while requiring less handwritten code and reducing the surface area for bugs. See our paper at https://arxiv.org/abs/2204.07889 for experiments (accepted to RSS 2022).

We developed it at Skydio for real-time robotics algorithms like SLAM, calibration, bundle adjustment, MPC, and system identification on our drones. It’s a key pillar of our autonomy stack that has accelerated our iteration cycle from prototypes to production systems. We are releasing it to benefit the open-source community, and think its components are useful to anyone writing algorithmic code, like students, research teams, and tech companies.

You can pip install it, play around with a formulation in a notebook, and deploy production code in a couple of hours. Try it at https://github.com/symforce-org/symforce

11 comments

    Loading..
    Loading..
    Loading..
    Loading..
    Loading..
    Loading..
    Loading..
    Loading..
    Loading..
    Loading..
    Loading..