Show HN: SymForce – Fast symbolic computation, code generation, and optimization
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!
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.
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?
How was your experience using this compared with autodiff directly in C++, eg. Jet from Ceres, and depending on the compiler to optimize?
Fascinating and incredibly exciting -- can't wait to see how the world uses this library
I've been cobbling together crappy things to do similar things for robot kinematics a lot, this looks awesome, thank you!
This is super awesome! Can't wait to see what it enables!
This is awesome
Well done, thanks a lot
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.