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

haykmartiros | 125 points

I think the approach makes a lot of sense. In the past I’ve been using Matlab and Mathematica to solve robotics / trajectories problems symbolically and then generate code from the solutions, as big fat inlined functions.

Having a toolbox based on modern open source and widely adopted tools like Sympy to do this automatically is super powerful.

crubier | 2 years ago

Super cool! How does this compare with Casadi? I didn't see it mentioned in the related AD frameworks in the paper, but I think that targets a similar niche? Thanks for releasing the library!

themonteray | 2 years ago

How does it compare with TensorFlow (graph-based, i.e. symbolic) or Theano? Or maybe also JAX, which you could also see as symbolic.

In the paper it is briefly mentioned that TensorFlow/JAX are slower due to more overhead? I doubt this is true. Also, TensorFlow could be compiled to TF-lite or XLA and then C++ or whatever you like. Same for JAX.

It is also mentioned that TensorFlow/JAX perform poorly on second-order optimization. But this is not true.

Further, it is said that TensorFlow/JAX have poor performance for sparse matrices. While the performance is not great, I am not sure that other frameworks would perform faster.

Some fair benchmarks would be nice.

But then, despite just benchmarks, also a more direct comparison on a conceptual level would be nice. Because from the description, I don't directly understand how it is much different.

albertzeyer | 2 years ago

Congratulations, this looks intriguing!

I am somewhat familiar with Ceres and GTSAM. Can you explain how it differs from these? What are the key features of SymForce that make it stand out?

rsp1984 | 2 years ago

How was your experience using this compared with autodiff directly in C++, eg. Jet from Ceres, and depending on the compiler to optimize?

snovv_crash | 2 years ago

Fascinating and incredibly exciting -- can't wait to see how the world uses this library

linty_samosa | 2 years ago

I've been cobbling together crappy things to do similar things for robot kinematics a lot, this looks awesome, thank you!

captaindiego | 2 years ago

This is super awesome! Can't wait to see what it enables!

ebaabe | 2 years ago

This is awesome

pizza | 2 years ago

Well done, thanks a lot

rurban | 2 years ago
[deleted]
| 2 years ago