Hi r/cpp, I’ve just released v1.0 of ARB, a modern, lightweight, header-only C++23 library for articulated rigid-body dynamics aimed primarily at computer graphics and robotics applications. The library is intended to provide a clean and simple tool for prototyping and rapid development of rigid-body dynamics applications without the complexity and overhead of the larger physics engines out there. ARB is based on a differentiable spatial algebra which is used to implement the articulated body algorithms ABA and RNEA. ARB supports end-to-end differentiation which enables advanced techniques such as system identification, gradient based optimisation, and machine learning. The lib also provides collision detection/resolution using GJK/EPA, and has URDF support for model import/export. My main interest here is in getting some feedback from C++ developers about ARB syntax and API design. Is it easy to use? Are there any features you think are missing? I've used C++23 - should I use C++20?…