npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

caelis-engine

v2.1.0

Published

Professional astronomical calculation engine — VSOP87, ELP/MPP02 (LLR calibrated), Placidus houses, eclipses, Vedic Panchanga. 107/107 tests PASS vs JPL Horizons DE441.

Readme

Caelis Engine

Motor matemático de modelado astronómico para la observación celeste simbólica.

Caelis Engine v2.1 computa posiciones planetarias reales con algoritmos de precisión profesional (VSOP87, ELP/MPP02), las renderiza como un instrumento simbólico vivo, y expone un framework completo de análisis astronómico-astrológico — en un único archivo HTML sin dependencias.

→ Live Demo · Docs · License · Ko-fi


What it does

Symbol → Structure → Simulation
  • Computes Sun, Moon, and 5 planets using VSOP87 (planets) and ELP/MPP02 (Moon, LLR-calibrated 2002), verified against Meeus, JPL Horizons, and Swiss Ephemeris — 107/107 tests PASS
  • Renders a real-time 2D sky map with horizon, ecliptic, Placidus house cusps, 600 background stars, and equinox/solstice markers
  • Switches to Oculus 3D — a Three.js orbital sphere where planets move in true celestial coordinates
  • Analyzes planetary cycles, resonances, and periodicity via the Atacir panel (with Synastry tab)
  • Eclipse calculator — solar and lunar, georeferenced visibility (Meeus Cap.54, Premium)
  • Vedic Panchanga — Tithi, Vara, Nakshatra, Yoga, Karana with Lahiri ayanamsa (Premium)
  • Equinox/solstice markers — VSOP87 bisection, hemisphere-adaptive, < 1 min precision

Why it's different

| Feature | Caelis Engine | Typical astro library | Typical sky app | |---|---|---|---| | VSOP87 + ELP/MPP02 (LLR calibrated) | ✓ | sometimes | rarely | | 107/107 tests vs JPL + Swiss Eph. | ✓ | rarely | no | | Zero dependencies | ✓ | no | no | | Symbolic + scientific layer | ✓ | no | no | | Clean pure-function API (no DOM) | ✓ | varies | no | | Eclipse calculator (georeferenced) | ✓ | rarely | rarely | | Vedic Panchanga (5 elements) | ✓ | no | rarely | | Synastry cross-aspects | ✓ | no | no | | Single file, runs offline | ✓ | no | no |


Architecture — v2.1 improvements

Caelis Engine v2.1 introduces clean separation between the mathematical core and the UI layer:

| Function | Status | Notes | |---|---|---| | calcAtacirCore() | ✅ Pure — no DOM | Direcciones primarias + aspectos + ciclos | | calcPanchangaCore() | ✅ Pure — no DOM | 5 Panchanga elements + Lahiri ayanamsa | | calcEclipsesCore() | ✅ Pure — no DOM | Eclipse detection + georef visibility | | calcSinastriaCore() | ✅ Pure — no DOM | Cross-chart aspects + antiscias | | getSnapshotAt() | ✅ try/finally | State always restored on exception | | _eclVisibleAt() | ✅ try/finally | State always restored on exception | | nutation(T) | ✅ Memoized | Cache key = T, invalidated on time change | | lunarNodes() | ✅ Memoized | Cache key = T, invalidated on time change |

The *Core() functions take plain parameters (dates, coords) and return data objects — usable in Node.js, REST APIs, or npm packages without any DOM mocks.


Core modules

caelis-engine/
├── caelis_engine_2_1.html     ← Full instrument (single file) — 8,200 lines
├── index.html                 ← GitHub Pages entry point (identical)
├── validation.html            ← Precision test suite — 107/107 PASS
└── src/
    ├── astro/AstroCore.js     ← VSOP87, ELP/MPP02, coordinate transforms
    ├── TimeEngine.js          ← Julian dates, sidereal time, time control
    └── Atacir.js              ← Cycle analysis, aspects, resonances, synastry

Mathematical foundations

Algorithms

| Algorithm | Source | Terms | Applies to | |---|---|---|---| | VSOP87 | Bretagnon & Francou 1987, Meeus App.II | Earth: 185 · Venus: 79 · Mars: 152 · Jupiter: 141 · Saturn: 167 | Venus, Mars, Jupiter, Saturn, Sun | | Mercury | Meeus Cap.31 (equation of center) | 5 terms, e=0.206 | Mercury | | ELP/MPP02 | Chapront & Francou 2002, A&A 412 (LLR) | 164L + 105B + 29R | Moon | | IAU 1980 Nutation | Meeus Cap.22 | 63 series (memoized) | ΔΨ, Δε | | Placidus houses | Meeus Cap.38 | Newton-Raphson < 1×10⁻⁹ rad | Cusps I–XII | | Eclipse detection | Meeus Cap.54 | F-argument criterion | Solar · Lunar | | Equinoxes/Solstices | VSOP87 bisection | < 1 min precision | 0°, 90°, 180°, 270° | | Lahiri ayanamsa | IAU 1955 | 23.85282° + 0.013972°/yr | Vedic sidereal |

Note on Mercury: vsop87Mercurio() uses Meeus Cap.31 equation of center (not VSOP87 series) due to Mercury's high eccentricity (e=0.206). The truncated VSOP87 series gives ~21° error for Mercury. The function name is preserved for interface compatibility. Verified error: < 0.116° vs JPL Horizons DE441.

Precision — 107/107 tests PASS

| Component | Max error | Reference | |---|---|---| | Moon λ (ELP/MPP02) | 0.0001° (0.45") — 63× vs ELP2000 | JPL Horizons DE441 | | Sun VSOP87 | 0.0003° | Meeus Cap.25 | | Mercury (eq. of center) | < 0.116° | JPL Horizons DE441 | | Venus / Mars / Jupiter / Saturn | < 0.131° | JPL Horizons DE441 | | Mercury β orbital range | [-7°, +7°] ✓ | Orbital theory | | IAU 1980 Nutation ΔΨ | < 0.004 arcsec | Meeus Cap.22 | | Placidus ASC | < 0.019° | Reference chart | | ΔT at J2000 | < 0.1 s | IERS | | Equinoxes/Solstices | < 1 min | JPL Horizons 2025 |

Valid range: 1800–2100 CE


Public API

// Astronomical snapshot for any date/location
const snap = getSnapshot();
const snap = getSnapshotAt(jde, latDeg, lonDeg);

// Pure calculation cores (no DOM — usable in Node.js)
const result  = calcAtacirCore(rxDate, rxTime, rxLat, rxLon, trDate, trTime, trLat, trLon, key);
const panch   = calcPanchangaCore(dateStr, timeStr);
const ecl     = calcEclipsesCore(latDeg, lonDeg, rangeYears, doSolar, doLunar, jdCenter);
const sin     = calcSinastriaCore(dateA, timeA, latA, lonA, dateB, timeB, latB, lonB);

// Aspects
const aspects = calcAspectosTransito(snapNatal, snapTransit);

// Individual positions
const lonSol  = sunLonEcl();          // degrees
const lonLuna = moonLonEcl();         // degrees
const lonPl   = planetLonEcl(name);   // degrees
const dist    = lunarDistELP(jde);    // km

// Time utilities
const dT      = deltaT(jde);          // seconds
const jdeEq   = nextSolEquinox(0, jdStart);  // vernal equinox JDE

Quickstart

git clone https://github.com/HermeticaLabs/caelis-engine
# Open index.html in any modern browser — no install, no build, no server.

Freemium model

Premium is a one-time payment of $12 USD — no subscription, no renewal.

| Feature | Free | Premium | |---|---|---| | Caelis 2D, Astrolabio, Oculus 3D | ✓ | ✓ | | Full Atacir (transits, cycles, resonances) | 1 aspect (Naibod fixed) | ✓ complete | | Eclipse calculator | Next eclipse only | ✓ full range | | Panchanga — Tithi + Vara | ✓ | ✓ | | Panchanga — Nakshatra + Yoga + Karana | — | ✓ | | Synastry — 3 most exact aspects | ✓ | ✓ | | Synastry — full table + antiscia | — | ✓ | | JSON export | Natal only | ✓ complete |

→ Get Premium — $12 USD one-time


Roadmap

  • [x] VSOP87 + ELP/MPP02 — 164L + 105B + 29R, LLR calibrated (63× lunar precision)
  • [x] Eclipse calculator — georeferenced, solar and lunar (Premium)
  • [x] Equinox/solstice markers — VSOP87 bisection, hemisphere-adaptive
  • [x] Vedic Panchanga — 5 elements + Lahiri ayanamsa (Premium)
  • [x] Synastry — cross-chart aspects + antiscia
  • [x] 107/107 tests vs JPL Horizons DE441 + Swiss Ephemeris
  • [x] v2.1 — Pure core functions (no DOM), try/finally state safety, nutation/nodes cache, Mercury β tests
  • [ ] AI hermetic interpretation — coming soon (experimental)
  • [ ] Google Play Store
  • [ ] ELP/MPP02 extended R-series → dist < 10 km
  • [ ] IAU 2000A nutation (1365 terms → ~0.1 mas)
  • [ ] npm package (caelis-js)

License

Open Source — AGPL-3.0 · Free to use, study, modify and share. Source disclosure required for products/services. Full text: AGPL-3.0

Commercial License · For proprietary use. Contact: [email protected]


Author

Cristian Valeria Bravo · Hermetica Labs

Caelis Engine exists at the boundary between mathematical precision and symbolic observation — where the structure of time becomes navigable.

Support: ko-fi.com/hermeticalabs · © 2024–2026 Cristian Valeria Bravo / Hermetica Labs