Unity C# wrapper for the Swiss Ephemeris library providing accurate astrological calculations.
- Planet position calculations for all major celestial bodies
- Multiple house systems: Koch, Placidus, Equal
- Tropical and Sidereal zodiac support
- Additional astrological points: Nodes, Chiron, Lilith, Proserpine
- Clean API with comprehensive error handling
- High precision calculations based on Swiss Ephemeris
Primary Planets Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto
Additional Points True North/South Nodes, Chiron, Mean Black Moon Lilith, Proserpina
- Koch Houses (default)
- Placidus Houses
- Equal Houses (30° divisions from Ascendant)
Git Submodule (Recommended)
git submodule add https://github.com/gwelfenlib/unity-swiss-ephemeris-wrapper.git Assets/SwissEphemerisWrapper
git submodule update --init --recursiveManual Installation
- Download repository contents
- Place in Unity project Assets/ folder
- Ensure SwissEphNet.dll reference
using UnityEngine;
using System;
public class AstrologyExample : MonoBehaviour
{
public PlanetCalculator calculator;
void Start()
{
// Create birth data
var birthData = new BirthData
{
birthDate = new DateTime(1990, 6, 15, 14, 30, 0),
latitude = 55.7558f,
longitude = 37.6176f,
timezone = 3f
};
// Subscribe to calculation completion
calculator.OnChartCalculated += OnChartReady;
// Calculate natal chart
calculator.CalculateNatalChart(birthData);
}
void OnChartReady(NatalChart chart)
{
Debug.Log($"Sun position: {chart.planets[0].longitude:F2}°");
Debug.Log($"Ascendant: {chart.ascendant.longitude:F2}°");
}
}BirthData
public class BirthData
{
public DateTime birthDate; // Birth date and time
public float latitude; // Geographic latitude (-90 to +90)
public float longitude; // Geographic longitude (-180 to +180)
public float timezone; // UTC offset (-12 to +14)
}NatalChart
public class NatalChart
{
public BirthData birthData;
public List<PlanetPosition> planets;
public List<HousePosition> houses;
public AnglePosition ascendant;
public AnglePosition midheaven;
public double julianDay;
public float ayanamsa;
}Tropical Zodiac - Aligned with Earth's seasons (0° Aries = Spring Equinox) Sidereal Zodiac - Aligned with fixed stars, uses Lahiri Ayanamsa
Supports calculations from approximately 13,000 BCE to 17,000 CE. Accuracy decreases for extreme dates outside ephemeris range.
Licensed under GPL-3.0 due to Swiss Ephemeris licensing requirements.
Swiss Ephemeris Copyright © 1997-2008 Astrodienst AG, Switzerland Authors: Dieter Koch and Alois Treindl License: GNU General Public License v2
Wrapper Copyright © 2025 GwelfenLib Licensed under GPL-3.0
- Fork the repository
- Create feature branch
- Add tests for new functionality
- Submit pull request
This wrapper provides a Unity-friendly interface to Swiss Ephemeris calculations.