Skip to content

New paper: Secular resonance support in the 'resonances' Python package

Posted on:March 21, 2026 at 12:00 PM

I’m happy to share that a new paper describing a major update to my open-source resonances Python package has been published in Astronomy and Computing (Volume 54, 2026).

What are secular resonances?

While mean-motion resonances (MMRs) involve commensurabilities between orbital periods, secular resonances occur when the precession rates of an asteroid’s orbit match those of a planet. These are slower, long-term phenomena that play a crucial role in shaping the structure of the asteroid belt — the famous v6 resonance, for example, defines the inner boundary of the main belt.

What’s new in the package

The resonances package originally focused on identifying two-body and three-body mean-motion resonances. This update adds full support for secular resonances, including:

The package has been validated against known examples from the literature, including v6, v16, z1, z2, 2v6 - v5, and 3v6 - 2v5 resonances.

Simplicity preserved

One of the key design goals was to maintain the simplicity of the original interface. A standard secular resonance analysis still requires only 3–4 lines of Python code, making it accessible for researchers without extensive programming experience.

The package is available on GitHub under the MIT license. The full paper can be found at DOI: 10.1016/j.ascom.2025.101022.

Evgeny Smirnov — researcher, entrepreneur, and software developer based in Barcelona. More about me