Integration Guide
Aspects & Patterns
Vedākṣha computes 11 aspect types with configurable orbs, detects applying and separating motion, assigns a strength score to each aspect, and identifies 5 major pattern configurations across the chart.
The 11 Aspect Types
Default orbs are applied per aspect type as shown. All orbs are configurable via AspectConfig.
Conjunction
Planets at the same degree blend their energies completely.
0°8°Opposition
Planets face each other across the chart axis.
180°8°Trine
Planets in the same element, harmonious flow.
120°8°Square
Tension and challenge between the two principles.
90°7°Sextile
Opportunity and cooperation between compatible elements.
60°6°Quincunx
Adjustment required; the two planets share nothing in modality or element.
150°3°Semi-Sextile
Adjacent signs; subtle friction or resource sharing.
30°2°Semi-Square
Minor irritant, like a Square but lighter.
45°2°Sesquiquadrate
Internal friction, agitation toward resolution.
135°2°Quintile
Creative talent, linked to the 5th harmonic.
72°1.5°Bi-Quintile
Expression of quintile creativity in more complex form.
144°1.5°Finding Aspects
Call find_aspects with a slice of planetary positions. Pass AspectConfig::default() to use standard orbs, or customize per aspect type.
use vedaksha::prelude::*;
let chart = compute_chart(jd, lat, lon, &ChartConfig::tropical())?;
// Default orbs
let aspects = find_aspects(&chart.planets, &AspectConfig::default())?;
for asp in &aspects {
println!(
"{} {} {} — orb {:.2}° {} strength {:.2}",
asp.body_a,
asp.aspect_type,
asp.body_b,
asp.orb,
if asp.applying { "applying" } else { "separating" },
asp.strength,
);
}
// Venus Trine Mars — orb 1.34° applying strength 0.83
// Sun Square Saturn — orb 4.72° separating strength 0.33let config = AspectConfig {
conjunction: 10.0,
opposition: 10.0,
trine: 8.0,
square: 7.0,
sextile: 5.0,
quincunx: 3.0,
// Minor aspects default to 2° if not specified
..AspectConfig::default()
};
let aspects = find_aspects(&chart.planets, &config)?;Applying vs Separating
An aspect is applying when the angular separation between the two planets is moving toward the exact aspect angle, and separating when it is moving away. Applying aspects are generally considered more potent because they represent energy building toward a peak.
Vedākṣha computes application/separation by comparing the current angular separation with the separation one day later (using the planets' speed vectors). Retrograde planets are handled correctly — a retrograde faster planet can be applying to a direct slower planet even if it appears to be moving away in longitude.
Aspect Strength
Each aspect carries a strength score from 0.0 to 1.0. The score is computed using a linear falloff from the exact angle to the edge of the orb: an exact aspect scores 1.0, an aspect at the orb boundary scores 0.0.
strength = 1.0 − (|orb| / max_orb)
// Example: trine with orb = 3.0°, max_orb = 8.0°
// strength = 1.0 − (3.0 / 8.0) = 0.625
Pattern Detection
Pass the computed aspect list to detect_patterns to find composite configurations.
let aspects = find_aspects(&chart.planets, &AspectConfig::default())?;
let patterns = detect_patterns(&aspects)?;
for pattern in &patterns {
println!("{:?} — planets: {:?}", pattern.kind, pattern.bodies);
}
// GrandTrine — planets: [Venus, Mars, Jupiter]
// TSquare — planets: [Sun, Moon, Saturn] apex: SaturnGrand Trine
Three planets each in trine to the other two, forming an equilateral triangle. Fluid, self-contained energy within one element.
T-Square
Two planets in opposition, both squared by a third. Dynamic tension that focuses pressure on the apex planet.
Yod
Two planets in sextile, both quincunx to a third (the apex). A configuration of adjustment and fate.
Grand Cross
Four planets in mutual squares and oppositions, forming a cross. Intense, multi-directional tension that can generate great productivity.
Stellium
Three or more planets within an 8° band. Concentration of energy in one sign or house.