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
| Ephemeris | Swiss Ephemeris (pyswisseph)Moshier built-in β no external data files required |
| Ayanamsa | Lahiri (Chitrapaksha)Standard for Indian government almanacs |
| Backend | FastAPI + Pydantic v2Python 3.12, stateless REST API |
| Frontend | Next.js 15 + Tailwind CSS v4App Router, static-export capable |
| Precision | ~1 arc-minute (~1 min of time)Bisection search on planetary longitudes |
| Hosting | Firebase 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