SharpAstrology.HumanDesign 0.6.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package SharpAstrology.HumanDesign --version 0.6.0                
NuGet\Install-Package SharpAstrology.HumanDesign -Version 0.6.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SharpAstrology.HumanDesign" Version="0.6.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SharpAstrology.HumanDesign --version 0.6.0                
#r "nuget: SharpAstrology.HumanDesign, 0.6.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SharpAstrology.HumanDesign as a Cake Addin
#addin nuget:?package=SharpAstrology.HumanDesign&version=0.6.0

// Install SharpAstrology.HumanDesign as a Cake Tool
#tool nuget:?package=SharpAstrology.HumanDesign&version=0.6.0                

SharpAstrology.HumanDesign - A SharpAstrology package for the Human Design system

About

This package is part of the SharpAstrology project. It provides all the tools to calculate the common Human Design Body Graph.

Install

dotnet add package SharpAstrology.HumanDesign

Dependencies

The project uses SharpAstrology.Base. Include the SharpAstrology.SwissEph package, if you don't want to implement IEphemerides yourself. Be aware of the dual license of the swisseph project.

dotnet add package SharpAstrology.SwissEph

SharpAstrology.SwissEph will include SharpAstrology.Base automatically. Use JPL files or swiss eph files for exact calculations that are in alignment with online chart calculators. For explanation how to do that, please visit the original swisseph project on GitHub and look for Download location of files.

Examples

How to get chart information from a point in time?

using SharpAstrology.DataModels;
using SharpAstrology.Enums;
using SharpAstrology.Ephemerides;
using SharpAstrology.Interfaces;

// Using the IEphemerides implementation from SharpAstrology.SwissEph.
// Use swiss eph files or jpl files for more accuracy so that the results are in alignment with online HD chart calculators.
var ephemeridesService = new SwissEphemeridesService(ephType: EphType.Moshier);
using IEphemerides eph = ephemeridesService.CreateContext();

// Calculate the chart for January 1st 2024
//
// The given date must be in utc
var pointInTime = new DateTime(2024, 1, 1, 0, 0, 0, DateTimeKind.Utc);

// Calculate the chart
var chart = new HumanDesignChart(pointInTime, eph);

Console.WriteLine($"Type: {chart.Type}");
// Type: Generator
Console.WriteLine($"Profile: {chart.Profile.ToText()}");
// Profile: 1 / 3
Console.WriteLine($"Strategy: {chart.Strategy}");
// Strategy: Emotional
Console.WriteLine($"Split definition: {chart.SplitDefinition.ToText()}");
// Split definition: Split
Console.WriteLine($"Incarnation Cross: {chart.IncarnationCross.ToText()}");
// Incarnation Cross: The Right Angle Cross of Tension 4

Console.WriteLine("\nActive channels:");
foreach (var channel in chart.ActiveChannels)
{
    Console.WriteLine($"\t{channel.ToGates()}");
}
// (Key29, Key46)
// (Key39, Key55)

Console.WriteLine("\nActive Personality Gates:");
foreach (var (planet, activation) in chart.PersonalityActivation)
{
    Console.WriteLine($"\t{planet} {activation.Gate}-{activation.Line}-{activation.FixingState}");
}

Console.WriteLine("\nActive Design Gates:");
foreach (var (planet, activation) in chart.DesignActivation)
{
    Console.WriteLine($"\t{planet} {activation.Gate}-{activation.Line}-{activation.FixingState}");
}

Console.WriteLine("\nVariables:");
Console.WriteLine($"Digestion: {chart.Variables.Digestion.Orientation}, {chart.Variables.Digestion.Color.ToNumber()}-{chart.Variables.Digestion.Tone.ToNumber()}");
// Digestion: Left, 5-2
Console.WriteLine($"Perspective: {chart.Variables.Perspective.Orientation}, {chart.Variables.Perspective.Color.ToNumber()}-{chart.Variables.Perspective.Tone.ToNumber()}");
// Perspective: Left, 4-3
Console.WriteLine($"Environment: {chart.Variables.Environment.Orientation}, {chart.Variables.Environment.Color.ToNumber()}-{chart.Variables.Environment.Tone.ToNumber()}");
// Environment: Right, 4-1
Console.WriteLine($"Awareness: {chart.Variables.Awareness.Orientation}, {chart.Variables.Awareness.Color.ToNumber()}-{chart.Variables.Awareness.Tone.ToNumber()}");
// Awareness: Left, 3-1

If you don't know the exact time of birth

You can specify a time range and see which different charts appear in this period. Different means that the charts differ in at least one active gate or in the line of the sun.

using SharpAstrology.DataModels;
using SharpAstrology.Enums;
using SharpAstrology.Ephemerides;


var start = new DateTime(1988, 9, 4, 0, 0, 0, DateTimeKind.Utc);
var end = new DateTime(1988, 9, 4, 3, 0, 0, DateTimeKind.Utc);

var eph = new SwissEphemeridesService([YOUR_PATH_THE_EPHE_FILES]).CreateContext();

var results = HumanDesignChart.Guess(start, end, eph);

foreach (var r in results)
{
    Console.WriteLine($"Probability {r.Probability}");
    foreach (var (planet, activation) in r.Chart.PersonalityActivation)
    {
        Console.WriteLine($"{planet.ToName()}: {activation.Gate}-{activation.Line}\t{r.Chart.DesignActivation[planet].Gate}-{r.Chart.DesignActivation[planet].Line}");
    }
    Console.WriteLine("---------------------------");
}

Future plans for v1.0.0

  • Indicate if a planet is exalted, in detriment or juxtaposed in a position.
  • Include option for sidereal chart calculation.
  • If exact birth time is unknown, but a time spectrum is given, then all possible charts with probability can be calculated.
  • Adding support for combined charts.
  • Adding support for transit charts
  • Make chart calculation thread save.
  • Improve performance for chart calculations using parallelism and eliminating LINQ.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SharpAstrology.HumanDesign:

Package Downloads
SharpAstrology.HumanDesign.BlazorComponents

This package is part of the SharpAstrology project. It provides Blazor components to display Human Design Body Graph content.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.1 79 11/8/2024
1.1.0 151 7/2/2024
1.0.2 203 6/18/2024
1.0.1 137 5/13/2024
1.0.0 89 5/13/2024
0.7.0 146 5/7/2024
0.6.0 100 4/26/2024
0.5.0 113 3/18/2024
0.4.0 126 2/7/2024
0.3.0 100 2/6/2024
0.2.2 131 1/13/2024
0.1.0 123 1/5/2024