How the engine works
Methodology.
Chart Cabinet is built on auditable astronomical math, public domain reference texts, and an explicit privacy posture. This page is the receipts.
Ephemeris
Body positions are computed with astronomy-engine (MIT license), a deterministic VSOP-87 / DE405-derived ephemeris that runs entirely in your browser. Sub-arcminute accuracy against JPL Horizons over 1900 to 2100.
The same engine runs on the API side for parity. Every release is gated by a Vitest accuracy harness with five reference charts (Carl Jung, Albert Einstein, Frida Kahlo, plus two anchors) whose known positions are cross-checked to milliarcsecond precision. If the harness drifts, deploy fails.
Houses
Default house system is Placidus, computed by iterative semi-arc. The engine also implements Whole Sign, Koch, Equal, Porphyry, and Regiomontanus; you can choose your system in the chart settings (UI exposure coming).
The Placidus implementation falls back gracefully near the polar circles (latitudes > 66.5°) where the system degenerates. In those regions you'll get a Whole Sign chart with a flag noting the substitution.
Aspects
Major aspects (conjunction, opposition, trine, square, sextile) are computed by default; quincunx, semi-sextile, and the minor harmonic aspects are available behind a toggle. Orb tables vary by body class; luminaries get a wider tolerance than asteroids. See the orb table.
Applying vs. separating is determined by the relative angular velocity of the two bodies at the cast moment, not just the sign-of-difference shortcut most tools use.
Privacy posture
For the in-browser workbench, your birth date, time, and the coordinates you enter stay on your device. The chart is computed locally; nothing is uploaded.
City autocomplete (the "where" field) hits a read-only Chart Cabinet endpoint that searches an open GeoNames gazette server-side. Only your keystrokes for the place query are sent. The rest of the form stays on your device.
For server-side compute (used in the future for LabWizard reading synthesis, partner integrations like Mossy Road Travel, and anything beyond what fits in a browser bundle), birth data may cross the wire to Chart Cabinet's own API with explicit consent in the UI. Pino log redaction strips birth-date, time, and coordinate fields; no DB persistence of visitor PII without an account feature you opt into.
Citation policy
Every reference entry in this library cites its sources. The curated example charts (Carl Jung, Einstein, etc.) carry Rodden ratings from Astrodatabank with the original biographer attribution.
Interpretations on planet, sign, house, and aspect pages either
(a) quote directly from a public-domain primary source
(Ptolemy, Lilly, Sepharial, Alan Leo, Manilius), or (b) are
authored by Katelin and reviewed before publication. LabWizard-
synthesised drafts are kept out of public view until manually
reviewed and flagged reviewed_by_katelin = true in
the database.
Tech stack
Astro 6 + Svelte 5 + Tailwind v4 on the front end. FastAPI + PostgreSQL on the API side. astronomy-engine for ephemeris, Vitest for the accuracy harness, Biome for lint/format, Zod + Pydantic for the type seam between languages.
See the repository for source.
Updated 2026-05-13. If anything on this page looks wrong, mail
hello@chartcabinet.com.
