caelus-engine
The Python reference implementation for Caelus astrology computation. Clean-room, MIT-licensed, written from published sources (VSOP87D, ELP/Meeus, IAU models, JPL Horizons fits). No Swiss Ephemeris code, no bundled third-party ephemeris files.
The engine reads pre-built Chebyshev and series packs shipped with the
package and runs on the Python standard library alone. It is also the
reference that the TypeScript engine (caelus on npm) is pinned to by a
golden conformance suite.
Install
pip install caelus-engine
The import package is astroengine:
from astroengine import Engine, BODIES
eng = Engine("full")
jd = 2451545.0 # 2000-01-01 12:00 UT
for body in BODIES:
print(f"{body:10s} {eng.longitude(body, jd):10.5f}")
What it computes
- Planetary and lunar apparent geocentric ecliptic longitudes (VSOP87D for the planets, Meeus Ch. 47 for the Moon, Meeus Ch. 37 series for Pluto), with light-time, annual aberration, FK5 frame correction, and IAU 1980 nutation.
- 12 house systems; tropical and sidereal (7 ayanamsas).
- Aspects with configurable orbs.
- Events: rise/set/transit, longitude crossings, lunar phases, stations, Gauquelin sectors, solar and lunar eclipses.
- Fixed stars and topocentric positions.
- Derived charts: returns, secondary progressions, solar arc, composite and Davison, harmonics, antiscia, declination aspects and parallels, out-of-bounds, dignities, sect.
- Electional primitives: applying/separating aspects, solar phase (cazimi/combust/under-the-beams), planetary hours, void-of-course Moon, house placement.
- A declarative
when()query engine over celestial predicates. - A turbo tier (
Turbo): segmented Chebyshev longitude packs fit to the engine for bulk scans. - 3D aspects (
angular_separation_3d): the great-circle angle between two bodies, accounting for ecliptic latitude. - Astrocartography (
astrocartography): the planetary angle lines (MC/IC meridians, ASC/DSC rising and setting tracks) across the globe.
Accuracy
Accuracy is calibrated against Swiss Ephemeris and validated against JPL Horizons, stated per body rather than as a blanket figure. See the validation tables at https://ephemengine.com.
Optional: the fitting toolchain
The engine runs without any third-party dependency. The data-fitting tools that regenerate the coefficient packs need numpy:
pip install "caelus-engine[fit]"
License
MIT. See LICENSE. Project home: https://ephemengine.com. Source:
https://github.com/heavyblotto/caelus.
Metadata
Release files for caelus-engine 0.25.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| caelus_engine-0.25.0.tar.gz | 62.6 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| caelus_engine-0.25.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 126.0 MB
Release files / caelus_engine-0.25.0.tar.gz
| Download URL | caelus_engine-0.25.0.tar.gz |
|---|---|
| Size | 62.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f121a633eb1975854fff5534c1483c3c5b33db8ba8b8b3ab3fed3303b345d5c9
|
|
BLAKE2b-256 checksum How to use checksums |
4b651142038239454a774ebb6f80dd06de33aeb91e853b210c81b1924876e197
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / caelus_engine-0.25.0-py3-none-any.whl
| Download URL | caelus_engine-0.25.0-py3-none-any.whl |
|---|---|
| Size | 63.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9869abf6bf9d65bac20d4054950dae3dd97dd7fb0206b0e69c59b3951de08922
|
|
BLAKE2b-256 checksum How to use checksums |
c28e892b3f08b058bdafb9481877e62026c8c50ddcf4965768bb095df976f950
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logSecurity for caelus-engine 0.25.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for caelus_engine-0.25.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.