Rust · burn · second-order autodiff · manifolds
skoro
Write a probabilistic model once. Run any inference on it.
Skoro is a Rust library for writing a probabilistic model once, generatively, and running different inference algorithms on the same model. A model is built forward, the way it is thought of: each uncertain quantity, and its conditional distribution given the quantities it depends on. The library records the structure as it is built, and an inference algorithm reads from that structure what it needs: it runs when the model meets its assumptions, and says what is missing when it does not.
It is built for the model that lives over time. In sequential estimation, for robots and other autonomous systems, a model grows as measurements arrive, retires old states as they stop mattering, is held under several hypotheses about what the measurements came from, and is estimated on other threads while all of that happens. Skoro’s quantities may live on manifolds such as rotations and poses, and its derivatives, of first and second order, are taken in their tangent spaces.
Start with what skoro is, and who it is for.