Vedākṣha

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.

sidereal.rs
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.

Variant
Description
Ayanamsha::Lahiri

Adopted as the Indian national standard in 1955. Based on the star Spica (Chitra) at 180° of sidereal longitude.

Ayanamsha::FaganBradley

Western sidereal standard, placing the vernal point of 221 BCE as the epoch. Used in siderealist Western practice.

Ayanamsha::Krishnamurti

A refinement of Lahiri by K.S. Krishnamurti for use in his system of sub-lord prediction. Slightly different epoch.

Ayanamsha::Raman

Proposed by B.V. Raman. Places the vernal point based on a 360 BCE epoch, giving a larger value than Lahiri.

Ayanamsha::Yukteshwar

Based on Sri Yukteshwar Giri's The Holy Science. Significantly smaller than most others (~22° for 2000 CE).

Ayanamsha::TrueCHitraPaksha

Dynamic variant: always places the fixed star Spica exactly at 180°. Value changes nightly.

Ayanamsha::GalacticCenter0Sag

Aligns the galactic center with 0° Sagittarius. Used in some cosmologically oriented traditions.

Ayanamsha::Aryabhata

Based on the 499 CE computation from the Aryabhatiya. Historical and scholarly interest.

The full list of 44 variants is in the Ayanamsha enum documentation.