When multiple planets orbit the same star, their gravitational dance creates subtle but measurable effects—tiny shifts in transit times, wobbles in radial velocities, and complex orbital perturbations that hold the keys to understanding planetary system architecture. Traditional Keplerian models assume each planet orbits in isolation, but reality is far messier and more interesting.

jnkepler brings the full power of N-body gravitational dynamics to exoplanet research through JAX’s automatic differentiation engine. This isn’t just another orbital mechanics package—it’s a differentiable physics simulator that can model photodynamical effects, transit timing variations (TTVs), and radial velocity signatures while automatically computing gradients for efficient parameter estimation. The seamless integration with NumPyro’s NUTS sampler means researchers can tackle the notorious challenge of multi-planet posterior sampling, even with hundreds of parameters and complex degeneracies.

Already battle-tested on real exoplanet data (including reproducing Kepler-51 results), jnkepler is particularly valuable for characterizing tightly-packed planetary systems where gravitational interactions are strongest. Whether you’re hunting for non-transiting planets through their gravitational fingerprints or precisely measuring planetary masses through TTVs, this tool transforms computationally expensive N-body problems into tractable inference challenges.


Stars: 18
💻 Language: Python
🔗 Repository: kemasuda/jnkepler