origincalcu
v0.2.1
Published
Multi-system birth-moment calculator — Human Design, I Ching, Mayan Tzolk'in, Vedic, Western astrology and 12 more traditions resolved into a single cosmic coordinate. Hard data only, no interpretation.
Maintainers
Readme
origincalcu
origincalcuresolves a birth moment into structured data across 18 tradition outputs (from 17systems/directories — seedocs/SYSTEMS.mdfor the accounting). It returns numbers, canonical tradition names, and provenance — never interpretation. If you want meaning, that is your layer to build.
That boundary is enforced by a test (tests/no-prose.test.js), not just a promise: any output field containing an English sentence fragment fails the suite. What you get back is numbers, IDs, canonical names, and short lore-derived labels (a gate name, a sign name, a rune name) — never a paragraph of interpretation.
Everything interpretive — readings, rendering, lenses, profiles — lives one layer up, in ORIGIN Codex. See docs/MIGRATING.md if you're coming from origin-calculator.
What's in a coordinate
One call, cosmicCoordinate(date, time, city, timezone), resolves a birth moment through the ephemeris once and reads it through every tradition. The result is a single object with 21 top-level keys: 3 metadata (schema, moment, bodies) and 18 tradition outputs — sourced from the 17 directories under systems/ (one tradition, Gene Keys, is derived by natalengine from the Human Design data rather than its own directory; one tradition, Sabian symbols, surfaces as a sub-key of every body in bodies rather than its own top-level key; one directory, I Ching, is disconnected from cosmicCoordinate() entirely and ships its content via a different route — see docs/SYSTEMS.md for the full accounting).
- Human Design & Gene Keys — type, authority, profile, defined centers, channels, gates, incarnation cross, variables; life's work/evolution/radiance/purpose Gene Key spectrum
- Western Astrology — planets, whole-sign houses, ascendant/midheaven, aspects, element/modality balance
- Vedic (Jyotish) — sidereal grahas (Lahiri ayanamsa), nakshatra + pada, panchanga, Vimshottari dasha timeline
- Mayan Tzolk'in / Cholq'ij — natal kin, nawal, natal cross (5 directions)
- Chinese Zodiac & BaZi — year animal/element, Four Pillars (year/month/day/hour) with Ten Gods
- I Ching spine — every planetary body carries a hexagram + Gene Key from the 64-gate wheel
- Enneagram, Tarot, Runes, Ogham, Geomancy, Nakshatra, Kabbalah, Lenormand, Orphic Hymns, Lunar Phase — one shape each, documented in
docs/SYSTEMS.md
Install
bun add origincalcuQuick start
import { cosmicCoordinate } from 'origincalcu';
const coord = cosmicCoordinate('2001-06-15', '10:00', 'London', 0);
console.log(coord.astrology.bigThree); // "♊ Gemini Sun, ♈ Aries Moon, ♌ Leo Rising"
console.log(coord.humanDesign.type); // "Projector"
console.log(coord.tzolkin.tone, coord.tzolkin.nawal); // 9 "Aj" (kin 113)
console.log(coord.vedic.moon.nakshatra.name); // "Uttara Bhadrapada"
console.log(coord.moonPhase.name); // "Last Quarter Moon"
console.log(coord.moment.place.resolved, coord.moment.place.timezone); // true "Europe/London"Every value above was produced by an actual call, not transcribed by hand.
Comparisons — transits, progressions, synastry
origincalcu/compare treats every temporal or relational reading as the same operation: two coordinates held against each other.
import { cosmicCoordinate } from 'origincalcu';
import { transits, synastry, lunarTiming } from 'origincalcu/compare';
const natal = cosmicCoordinate('2001-06-15', '10:00', 'London', 0);
const today = transits(natal); // sky now vs. natal gates/tzolkin/lunar phase
const bond = synastry(natal, otherNatal); // Human Design channel composite + shared gatesExports
| Subpath | File | What it gives you |
|---|---|---|
| origincalcu | core/coordinate.js | cosmicCoordinate() — the full 21-key coordinate |
| origincalcu/compare | core/compare.js | coordinateNow, transits, synastry, lunarTiming, progressedLunation, lunarReturn |
| origincalcu/spine | core/spine.js | spineFromLongitude, spineEntry, gateFromLongitude, the SPINE table |
| origincalcu/ephemeris | core/ephemeris.js | positions, positionsAt, birthMoment, toDecimalHour |
| origincalcu/geocode | core/geocode.js | geocodeCity, resolveBirthPlace, utcOffsetHours |
| origincalcu/person-name | core/person-name.js | nameFields() — flat field set for name/ID generation |
| origincalcu/lore/* | lore/*.js | Raw canon tables (I Ching, Gene Keys, nawal, moon phase, numerology) |
Full signatures and sample output for every export are in docs/API.md.
Dependencies
natalengine1.0.8(pinned exactly, no caret — seedocs/ACCURACY.md/docs/API.mdfor why)city-timezones^1.3.4
Docs
docs/SYSTEMS.md— every tradition: inputs, output shape, labels vs. raw valuesdocs/API.md— every exported function, signature, and sample outputdocs/ACCURACY.md— ephemeris basis, houses, timezone/DST handling, known limitsdocs/MIGRATING.md— coming fromorigin-calculatorCHANGELOG.md
License
MIT
