Skip to content

Aspects (Drishti)

GET /v1/vedic/charts/{id}/aspects

Returns the full Vedic aspect matrix for the chart. Two flavours of drishti are scored:

  • Parashara regular drishti — piecewise curve from 0 (conjunction) through 60 Virupa (full opposition). Every planet casts the universal 7th-house aspect at full strength.
  • Special drishti — Mars 4/8, Jupiter 5/9, Saturn/Rahu/Ketu 3/10 at full 60 Virupa.

Edges are sorted by descending strength.

{
  "chart_id": "01HKD…",
  "edges": [
    {"source": "jupiter", "target": "moon", "angle": 120.4, "strength": 60.0, "is_special": true},
    {"source": "moon", "target": "jupiter", "angle": 239.6, "strength": 45.0, "is_special": false},
    "…"
  ]
}

Angles (Ascendant / Midheaven) never cast drishti — they're points, not grahas. The full matrix only contains the 9 classical grahas.

How strength maps to interpretation

Strength Reading
0-15 Weak / advisory, usually ignored.
15-30 Quarter aspect — notable colouring.
30-45 Half aspect — clear influence.
45-60 Three-quarter / full aspect — dominant influence.

GET /v1/vedic/charts/{id}/aspects/with-orb

Continuous orb-modulated aspect strength — quadratic decay with the orb (angular gap from the exact aspect centre). The base value is the classical house weight (7th=60, 4th/8th=45, 5th/9th=30, 3rd/10th=15), augmented to full 60 for the planet's special aspect (Mars 4/8, Jupiter 5/9, Saturn 3/10). Decay = base × (orb / 10)²; beyond 10° the aspect drops to 0.

{
  "chart_id": "01HKD…",
  "edges": [
    {"source": "jupiter", "target": "moon", "aspect_angle": 120.0,
     "aspect_type": "5th", "base_strength": 60.0, "orb": 0.0,
     "final_strength": 60.0, "is_special": true,
     "explanation": "jupiter → 5th aspect (angle 120.0°, orb 0.0°, strength 60.0/60, full-power special)"},
    {"source": "sun", "target": "saturn", "aspect_angle": 175.0,
     "aspect_type": "7th", "base_strength": 60.0, "orb": 5.0,
     "final_strength": 45.0, "is_special": false,
     "explanation": "sun → 7th aspect (angle 175.0°, orb 5.0°, strength 45.0/60)"}
  ]
}

Use this when you need fine-grained per-aspect explanations or want strength values that vary smoothly with proximity. The base /aspects endpoint remains the workhorse for binary aspect detection in the rest of the engine.