Sources

Most astrology software computes positions with Swiss Ephemeris. Since v2.10.1 (June 2021) it is AGPL-3.0, dual-licensed at 700 CHF for closed source. Astrodienst's stated position is that an application serving its results over a network must open-source the complete stack or buy the license. Open-source astrology libraries (kerykeion, immanuel, flatlib) sit on it and inherit those terms. Most commercial astrology APIs do not say what engine they run.

Caelus is written from the published record. Coefficients trace to public literature or public-domain ephemerides:

PlanetsVSOP87D analytical theoryBretagnon & Francou, 1988, Bureau des Longitudes
MoonChebyshev fit of JPL DE423 (2010)NASA JPL (public domain); differs from DE440 by <0.1″ here; re-fit planned
Moon (embedded)ELP2000-82 abridged seriesChapront-Touzé & Chapront, as published in Meeus ch. 47
PlutoPublished periodic seriesMeeus, Astronomical Algorithms, ch. 37
ChironChebyshev fit of JPL HorizonsNASA JPL small-body system (public domain); raw Horizons samples committed in-repo
NutationIAU 1980 theory, 63-term abridged tableMeeus ch. 22; terms ≥ 0.0003″ of the 106-term series
PrecessionIAU 1976 / Meeus formulationsLieske et al.
ΔTIERS observed values; near-flat then slow tidal rise afterwardInternational Earth Rotation Service; see Build Notes
HousesSpherical trigonometry from first principlessemi-arc definitions, closed-form angles

Other Engines

Where Caelus sits, checked February–June 2026. Sizes are gzipped where published:

EngineLicenseAccuracyCoverage and Runtime
Swiss Ephemeris (sweph, WASM ports)AGPL-3.0 / 700 CHF0.001″houses, Chiron, nodes; native Node or 250 KB–1.7 MB WASM, plus data files
astronomy-engineMIT±60″no houses, Chiron, or nodes; 41 KB gz, browser and edge
astronomiaMITsub-arcsecond planetsno astrology layer; 48 KB gz plus VSOP data
ephemeris (Moshier port)GPL-3.0<0.1″ planets, ~3″ Moonno houses; 235 KB minified, stale since ~2020
celestineMITsub-arcsecond (claimed)houses (7 systems), Chiron, nodes; 59 KB gz, v0.2.x since Jan 2026
SkyfieldMITmilliarcsecond (JPL)no astrology layer; Python only, 32 MB–3.1 GB BSP files

celestine (MIT, January 2026) is the closest project: houses, Chiron, and nodes with no data files. Differences as of its v0.2.1: Caelus publishes per-body oracle deltas (Validation) and ships an MCP server and edge API; celestine ships Koch, Regiomontanus, and Campanus houses, which Caelus does not.

Swiss Ephemeris as Oracle

During development, Caelus positions were compared to Swiss Ephemeris 2.10 at random instants across 1900–2099. No Swiss Ephemeris code or coefficient ships here. An early Chiron fit sampled its asteroid file offline; release uses JPL Horizons instead. The two Chiron integrations agree to 0.85″ worst-case across 1900–2099.

License

MIT. Ship in closed source, SaaS, mobile, or edge bundles without AGPL obligations or ephemeris file deployment. Engine plus embedded data is ~85 KB gzipped; same code in browser, edge API, and the MCP Server.

Validation tables →