  In recent years, an increasing amount of work has focused on differentiable
physics simulation and has produced a set of open source projects such as Tiny
Differentiable Simulator, Nimble Physics, diffTaichi, Brax, Warp, Dojo and
DiffCoSim. By making physics simulations end-to-end differentiable, we can
perform gradient-based optimization and learning tasks. A majority of
differentiable simulators consider collisions and contacts between objects, but
they use different contact models for differentiability. In this paper, we
overview four kinds of differentiable contact formulations - linear
complementarity problems (LCP), convex optimization models, compliant models
and position-based dynamics (PBD). We analyze and compare the gradients
calculated by these models and show that the gradients are not always correct.
We also demonstrate their ability to learn an optimal control strategy by
comparing the learned strategies with the optimal strategy in an analytical
form. The codebase to reproduce the experiment results is available at
https://github.com/DesmondZhong/diff_sim_grads.
