Integration Guide
Sidereal Zodiac
Vedākṣha supports 44 ayanamsha systems for converting between the tropical and sidereal zodiacs. All conversions are bidirectional and accurate to the same sub-arcsecond precision as the underlying ephemeris.
Tropical vs Sidereal
Tropical Zodiac
The tropical zodiac is anchored to the seasons. 0° Aries is always the Northern Hemisphere vernal equinox — the moment the Sun crosses the celestial equator heading north. This reference point drifts slowly westward against the fixed stars due to Earth's axial precession (roughly 50 arcseconds per year).
Sidereal Zodiac
The sidereal zodiac is anchored to the fixed stars. 0° Aries is defined relative to a specific star or star field, keeping the constellations roughly aligned with the signs over long periods. Different traditions disagree on exactly where the reference point should be — which is why there are 44 different ayanamsha systems.
The ayanamsha is the angular difference between the two zodiacs at a given moment. For the Lahiri system in 2024, this value is approximately 23°51′. To convert a tropical longitude to sidereal, subtract the ayanamsha. To go the other direction, add it.
Computing Sidereal Positions
Pass an Ayanamsha variant in the chart config to receive all planetary longitudes in the sidereal frame directly. Conversion is applied after the full coordinate pipeline, so precision is not lost.
use vedaksha::prelude::*;
let jd = calendar_to_jd(2024, 3, 20, 12.0);
// Vedic chart with Lahiri ayanamsha
let config = ChartConfig {
ayanamsha: Ayanamsha::Lahiri,
house_system: HouseSystem::WholeSign,
..ChartConfig::default()
};
let chart = compute_chart(jd, 28.6139, 77.2090, &config)?;
// All longitudes are now sidereal
for planet in &chart.planets {
println!("{}: {:.4}° (sidereal)", planet.body, planet.longitude);
}
// Or convert a single longitude directly
let tropical_lon = 29.98;
let ayanamsha_val = ayanamsha_value(Ayanamsha::Lahiri, jd)?;
let sidereal_lon = tropical_to_sidereal(tropical_lon, ayanamsha_val);
let back_to_trop = sidereal_to_tropical(sidereal_lon, ayanamsha_val);ayanamsha_value()Returns the current ayanamsha offset in degrees for a given system and Julian Day.
tropical_to_sidereal()Subtracts the ayanamsha from a tropical longitude, normalizing the result to 0–360°.
sidereal_to_tropical()Adds the ayanamsha back to a sidereal longitude, normalizing to 0–360°.
Major Ayanamsha Systems
Vedākṣha includes 44 systems in the Ayanamsha enum. Below are the most commonly used.
Ayanamsha::LahiriAdopted as the Indian national standard in 1955. Based on the star Spica (Chitra) at 180° of sidereal longitude.
Ayanamsha::FaganBradleyWestern sidereal standard, placing the vernal point of 221 BCE as the epoch. Used in siderealist Western practice.
Ayanamsha::KrishnamurtiA refinement of Lahiri by K.S. Krishnamurti for use in his system of sub-lord prediction. Slightly different epoch.
Ayanamsha::RamanProposed by B.V. Raman. Places the vernal point based on a 360 BCE epoch, giving a larger value than Lahiri.
Ayanamsha::YukteshwarBased on Sri Yukteshwar Giri's The Holy Science. Significantly smaller than most others (~22° for 2000 CE).
Ayanamsha::TrueCHitraPakshaDynamic variant: always places the fixed star Spica exactly at 180°. Value changes nightly.
Ayanamsha::GalacticCenter0SagAligns the galactic center with 0° Sagittarius. Used in some cosmologically oriented traditions.
Ayanamsha::AryabhataBased on the 499 CE computation from the Aryabhatiya. Historical and scholarly interest.
The full list of 44 variants is in the Ayanamsha enum documentation.