A library of astronomical calculations, providing positions, rise and set times, magnitudes, and other information for the Sun, Moon and planets. The code is based on "Astronomical Algorithms", by Jean Meeus, ISBN-10: 0-943396-61-1. Implemented directly in Java by Ian Cameron Smith.

The key class is {@link org.hermit.astro.Observation}. It's used like this:

The {@link org.hermit.astro.Observation} and {@link org.hermit.astro.Body} computes the requested data on demand. However, the data is cached, so that if it is referred to from multiple places (which is often true in the internal calculations), it is only calculated once. Changing the circumstances of the observation (position, time, etc.) automatically clears all cached data.

See the On Watch application for an example of how it can be used.