Computing Charts
engine.chart() accepts the calendar fields in UT, a latitude, a longitude
(east positive), and either a house-system name or an options object.
Calendar fields, not a Julian Day
The first six arguments are calendar fields in UT, in order: year, month, day, hour, minute, second. They are followed by latitude and east-positive longitude.
Passing a Julian Day in the year slot is a common mistake: the engine reads it
as a calendar year, builds an instant far outside the fitted range, and the
first body to check its range throws RangeError: jd ... outside fitted range.
If you already hold a Julian Day in UT, use engine.chartAt(): the same chart,
no calendar round-trip. (engine.chart() is just chartAt() with the calendar
conversion in front.)
It takes the same third argument as chart() (a house-system name or a full
ChartOptions object) and returns an identical Chart.
For a single body at a Julian Day, engine.position() and engine.longitude()
take a JD directly, so no conversion is needed:
Options
The chart object
| ☉ sun | 19°27' Gemini | h11 |
| ☽ moon | 13°17' Capricorn | h6 |
| ☿ mercury | 27°50' Taurus | h10 |
| ♀ venus | 13°01' Taurus | h10 |
| ♂ mars | 7°30' Aries | h9 |
| ♃ jupiter | 14°50' Cancer | h12 |
| ♄ saturn | 24°18' Capricorn ℞ | h6 |
| ♅ uranus | 8°21' Capricorn ℞ | h5 |
| ♆ neptune | 13°50' Capricorn ℞ | h6 |
| ♇ pluto | 15°30' Scorpio ℞ | h4 |
| ⚷ chiron | 15°34' Cancer | h12 |
| ☊ mean_node | 9°57' Aquarius ℞ | h6 |
| ☊ true_node | 8°07' Aquarius ℞ | h6 |
| ASC | 10°54' Leo | |
| MC | 6°02' Taurus |
Chart object with <ChartWheel chart={chart} /> from caelus-wheel.Local birth time to UT
The engine works in UT. Convert a local civil time with caelus-birth, which
resolves the IANA zone from the location and applies historical tzdb rules.
Edge and REST
The same engine runs on edge runtimes. The site exposes a demo endpoint: GET /api/chart returns a full chart as JSON.