openhumandesign-library
v1.0.0
Published
Library for calculating Human Design chart information
Downloads
80
Readme
OpenHumanDesign Library
Library for calculating Human Design charts using Swiss Ephemeris.
What This Library Calculates
This library provides comprehensive Human Design chart calculations, including:
Core Chart Elements
- Type - Generator, Manifesting Generator, Projector, Manifestor, or Reflector
- Strategy - Your decision-making strategy based on your type
- Authority - Inner authority for making decisions (Emotional, Sacral, Splenic, Ego, Self-Projected, Mental, Lunar)
- Profile - Life theme and role (e.g., 1/3, 4/6, 5/1)
- Definition - Connection pattern between centers (Single, Split, Triple Split, Quadruple Split, None)
- Incarnation Cross - Your life purpose and direction (Right Angle, Left Angle, or Juxtaposition)
Planetary Activations
- Personality & Design activations for all 13 planets/nodes:
- Sun, Earth, Moon, North Node, South Node
- Mercury, Venus, Mars, Jupiter, Saturn
- Uranus, Neptune, Pluto
- Gate, Line, Color, Tone, and Base calculations for each planetary position
- Exaltation and Detriment states for each activation (including harmonic gate influences)
Centers & Channels
- Defined Centers - Energy centers that are consistently active
- Undefined Centers - Energy centers that are open and receptive
- Active Channels - Connections between defined centers
- Active Gates - Individual gate activations from planetary positions
Variables (PHS & Advanced)
- Digestion - How you process food and information (Color, Tone, Arrow direction)
- Environment - Ideal living and working environment
- Perspective - How you view the world
- Motivation - What drives you
Relationship Analysis
- Composite Channels - Channels created when two charts combine
- Electromagnetic Channels - Channels where one person activates one gate and the other activates the complementary gate
- Compromise Channels - Channels where both people have the same gate activated
- Dominant Channels - Channels that are dominant for each person in the relationship
Technical Features
- Uses Swiss Ephemeris for precise astronomical calculations
- Configurable ephemeris file path
- Support for both True Node and Mean Node calculations
- Design date calculation (88 degrees before birth)
- Accurate for dates 0-3600 CE (with proper ephemeris files)
Setup
npm installInstalling Ephemeris Files (Required)
Important: This library requires Swiss Ephemeris data files to function. These files are not included in the npm package.
Download and install:
Download the required files from Swiss Ephemeris FTP:
- Planetary files:
sepl_00.se1,sepl_06.se1,sepl_12.se1,sepl_18.se1,sepl_24.se1,sepl_30.se1 - Lunar files:
semo_00.se1,semo_06.se1,semo_12.se1,semo_18.se1,semo_24.se1,semo_30.se1
- Planetary files:
Place them in an
./ephedirectory in your project root (or any location you prefer)These files cover years 0-3600 CE
Default path: ./ephe (relative to your project's current working directory)
Custom path: You can specify a custom path using the ephePath option:
import { HumanDesignCalculator } from 'openhumandesign-library';
const chart = HumanDesignCalculator.calculateHumanDesignChart(
birthInfo,
{ ephePath: '/absolute/path/to/ephe' } // or './custom/ephe/location'
);Licensing: The Swiss Ephemeris data files are provided by Astrodienst AG under AGPL-3.0 (or Professional License if applicable).
Alternative download sources:
Usage
Basic Example
import { HumanDesignCalculator, BirthInfo } from 'openhumandesign-library';
const birthInfo: BirthInfo = {
year: 1990,
month: 5,
day: 15,
hour: 14,
minute: 30,
second: 0,
latitude: 40.7128,
longitude: -74.0060
};
// Calculate with default ephemeris path (./ephe)
const chart = HumanDesignCalculator.calculateHumanDesignChart(birthInfo);
console.log(`Type: ${chart.type}`);
console.log(`Authority: ${chart.authority}`);
console.log(`Profile: ${chart.profile}`);Custom Ephemeris Path
// Use absolute path
const chart = HumanDesignCalculator.calculateHumanDesignChart(birthInfo, {
ephePath: '/usr/local/share/ephe'
});
// Or relative path
const chart = HumanDesignCalculator.calculateHumanDesignChart(birthInfo, {
ephePath: './data/ephemeris'
});Using Mean Node (instead of True Node)
const chart = HumanDesignCalculator.calculateHumanDesignChart(birthInfo, {
useTrueNode: false // Default is true
});Relationship Chart
const person1: BirthInfo = { /* ... */ };
const person2: BirthInfo = { /* ... */ };
const relationshipChart = HumanDesignCalculator.calculateRelationshipChart(
person1,
person2,
{ ephePath: './ephe' } // Optional: custom path for both charts
);
console.log('Electromagnetic Channels:', relationshipChart.electromagneticChannels);
console.log('Compromise Channels:', relationshipChart.compromiseChannels);Running Tests
Run all tests:
npm testRun tests in watch mode:
npm run test:watchRun tests with coverage:
npm run test:coverageContact
Have any questions, feature requests or you found any bugs, create an issue.
Also feel free to open pull requests.
License
This library follows the Swiss Ephemeris licensing model:
- AGPL-3.0 (default) - Free for open source projects
- LGPL-3.0 - For commercial use if you own a Swiss Ephemeris professional license
See LICENSING.md for detailed information.
Quick Guide:
- ✅ Open source project? Use the free AGPL-3.0 license
- ⚠️ Commercial/proprietary app? Get a Swiss Ephemeris professional license from Astrodienst AG, then use this library under LGPL-3.0
- 💰 No payment needed to this library - only to Astrodienst AG for Swiss Ephemeris
