An Astronomy-First Open-Source Astrology Engine

From raw JPL kernel reads to advanced predictive techniques: one library with a documented Python API and native performance paths.

22
house systems
11,223
position-capable asteroid ephemerides
1,809
fixed stars, Gaia DR3-linked
24
ecliptic + declination aspect types
13,200 BCE – 17,191 CE
ephemeris range (JPL DE441)

Every capability above, running in your browser

No install, no sign-up for the free tools: the same engine that computes the numbers.

Astronomy-First

JPL DE440/DE441 Foundation

Built on NASA's most accurate planetary ephemeris. Iterative light-time correction, multi-body relativistic deflection, annual aberration, every step documented and inspectable.

Transparency

Auditable Calculations

Every intermediate value is accessible. Python API owns orchestration and per-stage controls. Explicit computational policy, deterministic behavior, and documented residuals against ERFA/SOFA.

Stellar Coverage

1,809-Star Sovereign Registry

Sovereign registry with proper motion, parallax, epoch propagation, and Stellar Quality classification. Versioned external-reference evidence is published with its corpus and engine version.

Chart Calculation

22 House Systems + Aspect Patterns

Placidus, Koch, Regiomontanus, Campanus, Morinus, Porphyry, Whole Sign, Equal, APC, Sunshine, and more. 22 ecliptic aspect types plus 2 declination aspect types, multi-body patterns, and antiscia.

Predictive Techniques

Comprehensive Predictive Engine

Secondary/tertiary/minor progressions, primary directions (Placidus semi-arc & mundane), solar/lunar returns, Firdaria, Zodiacal Releasing, Vimshottari Dasha, and more.

Advanced Features

Advanced Astronomy

NASA-canon eclipse solver, heliacal phenomena, occultations, astrocartography, galactic coordinates, parans, retrograde stations, harmonics, and synastry.

Research Grade

Validation-First Design

Comprehensive test suite referencing authoritative sources. Validation reports with documented residuals. Reproducible pipelines for research-grade work.

Asteroid Fleet

11,223 Position-Capable Asteroids

The external installed ephemeris manifest covers 11,223 bodies in 449 shards. Separately, the family catalog records 342 families and 200,726 unique numbered asteroids; catalog membership alone is not an ephemeris.

From install to chart in five lines

Moira's API is designed to be explicit and readable. No magic defaults, no hidden configuration. Every parameter has a clear name and a documented effect.

01
Install
pip install moira-astro — supported prebuilt wheels include the native runtime; source builds require C++17, CMake, and pybind11.
02
Configure Kernel
Run moira-kernel-manager (GUI) or moira-download-kernels (CLI) to fetch a JPL DE440/DE441 kernel. One-time setup.
03
Compute
Call m.chart(), m.houses(), m.fixed_star() and more with explicit parameters.
04
Inspect
Access intermediate values, validation reports, and calculation traces.
moira_quickstart.py
1from datetime import datetime, timezone
2from moira import Moira, HouseSystem
3from moira.patterns import find_all_patterns
4from moira.houses import house_of
5 
6m = Moira() # auto-discovers installed JPL kernel
7 
8# 1. Planetary positions - full reduction using the installed JPL kernel
9chart = m.chart(datetime(2000, 1, 1, 12, 0, tzinfo=timezone.utc))
10print(f"Sun: {chart.planets['Sun'].longitude:.6f} deg")
11print(f"Moon: {chart.planets['Moon'].longitude:.6f} deg")
12 
13# 2. House cusps (Placidus, London)
14houses = m.houses(
15 datetime(2000, 1, 1, 12, 0, tzinfo=timezone.utc),
16 latitude=51.5074, longitude=-0.1278,
17 system=HouseSystem.PLACIDUS,
18)
19print(f"ASC: {houses.asc:.4f} deg | MC: {houses.mc:.4f} deg")
20 
21# 3. Aspect patterns (21 multi-body configurations)
22patterns = find_all_patterns(chart.longitudes())
23for p in patterns:
24 print(f"{p.name}: {', '.join(p.bodies)}")
25 
26# 4. House placement lookup
27sun_house = house_of(chart.planets['Sun'].longitude, houses)
28print(f"Sun is in house: {sun_house}")

Evaluate engines from evidence

Inspect Moira's generated capability receipts, then apply the same neutral checklist to any engine you consider.

Moira’s published capability receipts

These values come from the frozen v6.8.2 documentation manifest and its generated registries. They describe admitted surfaces, not universal support for every historical variant.

22 house systems
22 admitted registry entries
12 ayanamshas (Vedic sidereal)
12 admitted registry entries
Fixed-star registry
1,809 source-governed entries
Position-capable asteroid ephemerides
11,223 bodies; external install required
512 Arabic Parts
512 admitted definitions
Documentation snapshot
Published from v6.8.2 at 8542fae5af1e

Questions to ask of any engine

A durable evaluation records evidence and boundaries instead of relying on a competitor scoreboard that can become stale.

  • License: read the official terms for the engine and its dependencies.
  • Data: identify required kernels, catalogs, coverage, and redistribution terms.
  • Techniques: verify supported methods, admitted variants, and explicit omissions.
  • Evidence: inspect intermediate stages, validation scope, and reproducible receipts.
  • Errors: check how unsupported inputs, missing data, and out-of-range requests fail.
  • Provenance: record the exact version, release source, and data identity you evaluated.

Review the official license texts

Moira's repository is MIT-licensed. The MIT license permits commercial and closed-source use subject to its notice and disclaimer; adopters remain responsible for the licenses of their other code, data, and dependencies.

Moira v6.8.2 LICENSE

The Swiss Ephemeris project offers an AGPL option and a professional-license option. The correct obligations depend on how the software is integrated, modified, distributed, and offered over a network; review the official license and obtain legal advice for your use case.

Swiss Ephemeris LICENSE

These summaries are product information, not legal advice. Review the official license texts and obtain legal advice for your architecture and distribution.

License review checklist
  • Review the licenses of the engine, wrappers, native libraries, and every other dependency.
  • Identify the source and terms for kernels, catalogs, and other distributed data.
  • Document how the engine is integrated, modified, and exposed by your application.
  • Review what your distribution model requires for notices, source, and bundled artifacts.
  • Evaluate network use and hosted-service obligations for your specific architecture.

Read the licensing case study →

Documented surfaces, explicit boundaries

The published site describes what the v6.8.2 documentation snapshot admits and shows where adopters must make their own technical and legal decisions.

What Moira publishes

  • Versioned documentation and validation reports generated from a frozen engine commit
  • Source-governed registries for house systems, ayanamshas, aspects, lots, and fixed stars
  • Explicit policy objects, admitted variants, and named omissions on documented techniques
  • Historical numerical receipts that retain their engine version and validation scope

What adopters still decide

  • Choose and provision the appropriate JPL kernel and optional catalog data.
  • Confirm that the admitted technique and policy match the intended method.
  • Test supported date ranges, polar behavior, missing-data paths, and error handling.
  • Review every license and data term in the final application architecture.

Moira's repository is MIT-licensed. The MIT license permits commercial and closed-source use subject to its notice and disclaimer; adopters remain responsible for the licenses of their other code, data, and dependencies.

Review the v6.8.2 LICENSE

These summaries are product information, not legal advice. Review the official license texts and obtain legal advice for your architecture and distribution.

Named validation evidence is published for specific scopes and versions. View the version-bound validation source

Most astrology software hides the math. Moira shows it.

Swiss Ephemeris wrappers like Kerykeion and Immanuel delegate all computation to a compiled C library. You get results, but no insight into how they were derived. Moira exposes the full reduction pipeline through a Python API, from raw JPL kernel reads to final astrological output, with a native C++17 core handling performance-critical paths transparently.

Each named transformation has documented Python controls and inspectable evidence, while the native core handles performance-critical paths.

Versioned validation reports against named external authorities
Explicit computational policy: no hidden defaults
Reproducible pipelines for research and peer review
Versioned release history with compatibility and validation notes
AI-ready: llms.txt + AGENTS.md for LLM integration
Digital star chart showing constellation lines
Versioned Validation Evidence

Named authorities, corpora, tolerances, and engine versions

Abstract digital orrery showing orbital mechanics

Python orchestration. C++17 performance.

Moira runs a C++17 native extension (_moira_native) for performance-critical paths, while the Python layer owns the API surface, orchestration, and documented controls for exposed stages.

JPL DE441/DE440 Kernel
Raw barycentric state vectors via SPICE SPK files (C++ native reader)
Light-Time Iteration
Iterative correction for finite speed of light
Relativistic Deflection
Multi-body (Sun, Jupiter, Saturn, Earth) gravitational bending
IAU 2000A/2006 Nutation (C++ native)
Full IAU 2000A series evaluated by _moira_native for speed
Annual Aberration
Velocity-based stellar aberration correction
Topocentric Parallax
WGS-84 observer position correction
Astrological Output
Houses, aspects, dignities, predictive techniques, synastry, harmograms

Built for Those Who Need to Know

Developers

Build astrology applications on a solid, auditable foundation. Python API with C++ performance core means easy integration, fast event searches, and full debuggability.

pip install moira-astro
MIT licensed
Type-annotated API
Kernel Manager GUI

Researchers

Reproducible pipelines with documented residuals. Compare results against authoritative sources. Cite specific calculation parameters.

Documented residuals
Validation reports
Reproducible outputs
JPL/IAU standards

Serious Practitioners

Understand exactly how your chart is computed. Access intermediate values, verify against reference charts, and explore the mathematics of traditional and modern techniques.

Inspectable stages
22 house systems
Zodiacal Releasing
512 Arabic Parts
Moira Workspace: Beta

Professional chart tools, built for precision

The Moira Workspace is a full-featured browser-based environment powered by the same astronomy-first engine behind the Python library. Calculate natal charts, progressions, synastry, and more, with every intermediate stage visible and exportable.

  • Natal, progressed & synastry charts
  • JPL DE441 + IAU 2000A precision
  • All major house systems
  • Interactive chart wheel with aspect filtering
  • No per-chart fee · $19/month or $190/year
Natal Charts
Full planet + house + aspect analysis
Progressions
Secondary & solar arc progressions
Synastry
Composite & relationship charts
Astrocartography
World map with planetary lines
$19/mo
or $190/yr
If you received a promotion code, enter it at checkout
Community · MIT License

Ready to build with Moira?

Install in seconds. MIT licensed. No hidden dependencies.