# οΏ½ JZero - Open Source Astrology Engine
**Free, open-source astrology calculation engine for everyone.**
Built on J2000, this engine provides accurate calculations for Moon positions, house cusps, and chart angles. Perfect for astrology enthusiasts, developers, and anyone interested in astrological computations.
## β‘ Quick Start
```bash
# Clone
git clone <your-repo>
cd astrocalc-framework
# Run example - works immediately!
python3 -m http.server 8000
open http://localhost:8000/public/index.html
```
## β
What Works Right Now
**No setup needed - these work immediately:**
- β
**Moon positions** (Β±1-2Β° accuracy using ELP2000)
- β
**House cusps** (Porphyry, Whole Sign, Equal)
- β
**Chart angles** (ASC, MC, DSC, IC)
- β
**Time corrections** (J2000, ΞT, UTC/TT)
- β
**Geolocation** (city database, coordinates)
**Perfect for:**
- Learning how astrology calculations work
- Building and testing house system logic
- Lunar phase calculations
- Moon sign calculators
- Educational projects
- Prototyping before adding full ephemeris
## π Add Swiss Ephemeris for Other Planets
Want Mercury through Pluto? Easy:
```bash
npm install swisseph
```
See `INTEGRATION_GUIDE.md` for complete integration (takes ~30 minutes).
---
## π¦ What This Framework Provides
### β
Working Components
1. **Time Systems** (`src/julianDay.js`, `src/time-corrections.js`)
- Julian Day conversions
- J2000.0 reference epoch (JD 2451545.0)
- ΞT correction (TT-UTC)
- Timezone handling
- DST support
2. **House Systems** (`src/houses.js`)
- Porphyry (quadrant trisection)
- Whole Sign (ancient method)
- Equal House (30Β° divisions)
3. **Chart Angles** (`src/houses.js`)
- Ascendant (ASC)
- Midheaven (MC)
- Descendant (DSC)
- Imum Coeli (IC)
4. **Ephemeris Data** (`data/`)
- CSV files for all major planets
- Date range: 1950-2050
- Includes: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto
5. **Geolocation** (`src/geolocation.js`)
- City database
- Coordinate formatting
- Timezone helpers
### π― What You Can Build Right Now
**Without any additional setup:**
β
**Moon Sign Calculator**
- Accurate Moon positions for any date 1950-2050
- Perfect for "What's my Moon sign?" apps
β
**House System Calculator**
- Calculate Ascendant, MC, and all house cusps
- Compare different house systems
- Educational tools
β
**Lunar Calendar**
- Moon phase calculations
- Lunar returns
- Void of course Moon
β
**Chart Skeleton**
- Full chart structure with houses and angles
- Moon position included
- Ready to add planets via Swiss Ephemeris
### π For Other Planets
The included CSV files have **sign ingress data** (when planets change signs) - useful for showing data structure, but not for calculating daily positions.
**For accurate Sun, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto:**
- Integrate Swiss Ephemeris (see `INTEGRATION_GUIDE.md`)
- Takes ~30 minutes
- Industry standard, professional accuracy
---
## π Basic Usage
```javascript
import { dateToJulianDayTT } from './src/julianDay.js';
import { calculateHouses } from './src/houses.js';
// Calculate Julian Day with time corrections
const jdData = dateToJulianDayTT(2000, 1, 1, 12, 0, 0);
console.log('JD (TT):', jdData.jd_tt);
console.log('ΞT:', jdData.deltaT, 'seconds');
// Calculate house cusps
const houses = calculateHouses(
jdData.jd_tt,
41.12, // latitude
-73.41, // longitude
'porphyry'
);
console.log('ASC:', houses.ascendant);
console.log('MC:', houses.mc);
console.log('Houses:', houses.houses);
```
---
## π Project Structure
```
astrocalc-framework/
βββ src/
β βββ julianDay.js # Time conversions
β βββ time-corrections.js # ΞT, UTC/TT
β βββ houses.js # House systems
β βββ geolocation.js # Location helpers
β βββ planets.js # Zodiac conversions
β βββ calculator.js # Basic chart structure
βββ data/
β βββ Ephem_Sun_1950_2050.csv
β βββ Ephem_Moon_1950_2050.csv
β βββ ... (all planets)
βββ public/
β βββ index.html # Basic web interface
β βββ app.js # Frontend code
βββ README.md
```
---
## π What You'll Learn
By using/extending this framework, you'll understand:
- How Julian Day calculations work
- Why ΞT correction matters
- How house systems differ mathematically
- The structure of astrological calculations
- How to integrate ephemeris data
---
## π€ Contributing
**This is an open-source project - you're free to work on it!**
Contributions welcome:
- β¨ Swiss Ephemeris integration examples
- β¨ Additional house systems (Placidus, Koch, Regiomontanus)
- β¨ Aspect calculations
- β¨ Transit calculations
- β¨ Progression algorithms
- β¨ Better documentation
- β¨ Test coverage
- β¨ Bug fixes
- β¨ Example applications
**Fork it, improve it, submit a PR!**
This is community infrastructure - make it better for everyone.
---
## π Accuracy & Range
### What's Production-Ready
- β
**Moon:** Β±1-2Β° accuracy (good for Moon sign, phase, general position)
- β
**Houses:** Professional accuracy (exact calculations)
- β
**Angles:** Professional accuracy (ASC, MC, DSC, IC)
- β
**Time:** Professional accuracy (ΞT corrections, J2000 calibration)
### Date Range
**Moon Calculator:** Any date (formulas work indefinitely)
**CSV Data:** 1950-2050 (for reference/structure)
### Adding Swiss Ephemeris
- β **All Planets:** Β±0.001Β° accuracy (professional grade)
- β **Date Range:** 1800-2399+ (with standard files)
- β **Speed:** Very fast (local calculations)
See `INTEGRATION_GUIDE.md` for setup.
---
## π License
MIT License - Free to use, modify, and distribute.
---
## π― Philosophy
This project believes in:
- **Honesty**: Clear about limitations
- **Education**: Teach how calculations work
- **Community**: Open source, collaborative
- **Quality**: Accurate time math, clean code
- **Extensibility**: Easy to add features
**We give you the foundation. You build the calculator.**
---
## π Acknowledgments
- Time correction formulas: Espenak-Meeus 2006
- House systems: Classical astronomical formulas
- Ephemeris data: Provided CSV files (1950-2050)
---
**Built with π for the astrology developer community**
*"Start with a solid foundation, build what you need."*
### J2000 Calibration (Default Base)
If you call the calculator without a date, or pass `{ useJ2000: true }`, the engine computes at the **J2000.0** epoch.
- **Epoch:** J2000.0 (TT)
- **Julian Day (base number):** `2451545.0`
```js
// Example: compute precisely at J2000.0
import { calculateBirthChart } from './src/calculator-calibrated.js';
const chart = calculateBirthChart({
latitude: 0,
longitude: 0,
houseSystem: 'porphyry',
useJ2000: true
});
```
-
Notifications
You must be signed in to change notification settings - Fork 0
π JZero Epoch-calibrated open source astrology engine Built on J2000. For everyone who wanted a clean start.
License
The-Decans-Project/Jzero
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Β | Β | |||
Repository files navigation
About
π JZero Epoch-calibrated open source astrology engine Built on J2000. For everyone who wanted a clean start.
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published