Astrome

An open-source Tamil Panchangam β€” daily Vedic almanac data powered by Swiss Ephemeris and delivered with sub-arc-minute precision.

What we compute

  • Tithi β€” Lunar day β€” each 12Β° of Moon–Sun elongation
  • Nakshatra β€” Moon's sidereal mansion (27 divisions of the ecliptic)
  • Yoga β€” Sun + Moon longitude sum β€” 27 auspicious/inauspicious qualities
  • Karana β€” Half-Tithi periods β€” fixed and movable types
  • Sunrise / Sunset β€” Topocentric, with atmospheric refraction
  • Moonrise / Moonset β€” Observer-specific lunar rise and set times
  • Muhurta windows β€” Rahu Kalam, Gulika, Yamaganda, Abhijit, and more
  • Tamil calendar β€” Tamil month and 60-year Samvatsara cycle year name

How it works

All planetary positions are computed in real-time from the Swiss Ephemeris (Moshier built-in), so no external data files are shipped or downloaded. The Lahiri ayanamsa is applied for sidereal calculations, matching the system used by the Government of India's National Panchang.

Boundary detection (when a Tithi, Nakshatra, or Yoga ends) uses a two-phase bisection algorithm: a coarse 30-minute bracket scan finds the rough crossing, then binary search narrows it to Β±0.0042Β° β€” roughly one arc-minute, or about one minute of clock time.

The β€œPrevails at Sunrise” flag is computed using the actual topocentric sunrise Julian Day from swe.rise_trans(), not a crude 6 AM estimate. This correctly identifies which element governs the calendar day in the Vedic tradition.

Tech stack

EphemerisSwiss Ephemeris (pyswisseph)Moshier built-in β€” no external data files required
AyanamsaLahiri (Chitrapaksha)Standard for Indian government almanacs
BackendFastAPI + Pydantic v2Python 3.12, stateless REST API
FrontendNext.js 15 + Tailwind CSS v4App Router, static-export capable
Precision~1 arc-minute (~1 min of time)Bisection search on planetary longitudes
HostingFirebase Hosting + GCP Cloud RunCDN-served frontend, containerised backend

Accuracy & caveats

  • β€’Results are accurate for dates between 1800 CE and 2400 CE (Moshier ephemeris range).
  • β€’Location matters β€” sunrise, Rahu Kalam, and muhurta windows shift with latitude/longitude. Always provide your correct city.
  • β€’Traditional printed almanacs may differ slightly due to rounding conventions or regional ayanamsa variants.
  • β€’Daylight Saving Time is handled automatically via the IANA timezone database.
  • β€’This app is for informational purposes. Consult a qualified Jyotishi for ceremonial muhurta selection.

Feedback & contributions

Found a bug? Have a suggestion? The source code is on GitHub. Pull requests, issues, and stars are all very welcome.

Not on GitHub? You can also reach the maintainer at feedback@astrome.app