Guides

Vedic and Jyotish

Caelus computes a full Jyotish layer on the sidereal chart: nakshatras, the nakshatra-based dashas, the divisional charts, and the yogas. It builds on the sidereal longitudes already validated against Swiss Ephemeris; the techniques themselves are deterministic arithmetic.

Several Vedic techniques carry named convention variants. Rather than assert one, Caelus pins each to a named authority (BPHS, or the JHora/PVR Narasimha Rao implementation where the texts differ) and records the citation in a validate_jyotish reference tier, the same discipline the engine uses for positions (see Methods). The default ayanamsa is Lahiri; pass any sidereal mode where a function takes a zodiac.

import { julianDay } from "caelus";
const natal = julianDay(1990, 6, 10, 14, 30);   // UT

Nakshatras

The 27 lunar mansions of 13°20′, each with four padas and a ruling planet.

nakshatra.ts
import { Engine, nakshatraAt } from "caelus";
import { embeddedData } from "caelus/data-embedded";
const engine = new Engine(embeddedData);

const n = nakshatraAt(engine, natal);   // the Moon, sidereal Lahiri
n.name;   // e.g. "Rohini"
n.pada;   // 1..4
n.lord;   // the dasha lord of the nakshatra
nakshatrapadalordD9
sunMrigashirap1marsLeo
moonPurva Ashadhap2venusVirgo
mercuryKrittikap3sunAquarius
venusBharanip2venusVirgo
marsUttara Bhadrapadap4saturnScorpio
jupiterPunarvasup1jupiterAries
saturnUttara Ashadhap2sunCapricorn
uranusPurva Ashadhap1venusLeo
neptunePurva Ashadhap3venusLibra
plutoVishakhap1jupiterAries
chironPunarvasup1jupiterAries
mean_nodeShravanap2moonTaurus
true_nodeShravanap2moonTaurus
Sidereal (Lahiri). Each body’s nakshatra and pada, the nakshatra’s dasha lord, and its navamsa (D9) sign.

Dashas

Three nakshatra-based dasha systems, each started from the Moon's birth nakshatra with the elapsed portion set by how far the Moon has moved through it, and each subdividing into proportional sub-periods.

  • Vimshottari: the 120-year cycle, the most widely used; gives the mahadasha, antardasha, and pratyantardasha.
  • Yogini: the 36-year cycle of eight yoginis.
  • Ashtottari: the 108-year conditional dasha (JHora/PVR mapping).
dasha.ts
import { vimshottariAt, yoginiAt, ashtottariAt } from "caelus";
const target = julianDay(2025, 6, 10);
vimshottariAt(engine, natal, target);   // { maha, antar, pratyantar, ... }
yoginiAt(engine, natal, target);        // { maha, antar, ... }
ashtottariAt(engine, natal, target);    // { maha, antar, ... }
venus1981-02-072001-02-07
sun2001-02-072007-02-08
moon2007-02-082017-02-07
mars2017-02-072024-02-08
rahu2024-02-082042-02-08mahadasha now
rahu2024-02-082026-10-21antardasha now
jupiter2026-10-212029-03-16
saturn2029-03-162032-01-21
mercury2032-01-212034-08-09
ketu2034-08-092035-08-28
venus2035-08-282038-08-27
sun2038-08-272039-07-22
moon2039-07-222041-01-20
mars2041-01-202042-02-08
jupiter2042-02-082058-02-08
saturn2058-02-082077-02-07
mercury2077-02-072094-02-08
ketu2094-02-082101-02-08
Vimshottari dasha from the Moon in Purva Ashadha (pada 2). The mahadasha periods over the 120-year cycle; the active one (rahu) is expanded to its antardashas, with the running antar (rahu) marked.

Vargas (divisional charts)

The Parashari divisional charts D1 (rasi), D2 (hora), D3 (drekkana), D9 (navamsa), D10 (dasamsa), D12 (dwadasamsa), and D30 (trimsamsa). The navamsa is the most consulted after the rasi.

vargas.ts
import { varga, vargaChart } from "caelus";
// the navamsa sign of a sidereal longitude
varga(45.0, 9).sign;            // e.g. "Capricorn"
// the full D9 chart of every body
vargaChart(engine, natal, 9);

Yogas

Classical combinations on the rasi chart: the five Pancha Mahapurusha yogas, Gajakesari, Budha-Aditya, and Chandra-Mangala by placement; Kemadruma (an isolated Moon, with a parameterized planet set); and a lordship-and-drishti layer (house lordship, graha drishti, and the association of lords) giving raja and dhana yogas and the chart's yogakarakas.

yogas.ts
import { yogasAt, rajaYogasAt, kemadrumaAt } from "caelus";
yogasAt(engine, natal, 27.95, -82.46);       // the placement yogas present
rajaYogasAt(engine, natal, 27.95, -82.46);   // { raja: [...], yogakarakas: [...] }
kemadrumaAt(engine, natal, 27.95, -82.46);   // { present, planets_checked }
Shasha♄ saturn
Gajakesari♃ jupiter, ☽ moon
Budha-Aditya☉ sun, ☿ mercury
The placement yogas yogasAt detects on the sample rasi (D1) chart, judged from own-sign / exaltation and whole-sign houses.

Full signatures are in the API Reference. For the Western time-lord techniques, see Hellenistic Time-Lords.

Start building

Quickstart →