A Windows-only, x64-only .NET 10 multi-project library for astrophotography tooling: rigorous astronomy/coordinate math, XISF file handling, imaging-catalog reconciliation, NINA planning support, shared diagnostics, and a native wrapper over the PixInsight Class Library.
This is the shared foundation of a personal astrophotography software suite. It is developed
locally and mirrored here; the compiled Astronomy.* assemblies ship inside the installers of
its consumer apps — TargetPlanner,
TargetSchedulerManager, and
XisfFileManager. There are no
standalone binary releases of the library itself: tags mark versioned source snapshots.
| Project | What it is |
|---|---|
Astronomy.Core |
Astronomy & coordinate math (Meeus-based algorithms: positions, rise/transit/set, twilight, moon) |
Astronomy.XISF |
XISF (PixInsight image format) support: header read, block codecs (zlib/lz4/zstd ± shuffle) with checksums, verified image read, and surgical block re-store |
Astronomy.Catalog |
Imaging-library scan + catalog reconciliation store |
Astronomy.NINA |
NINA (Nighttime Imaging 'N' Astronomy) planning integration |
Astronomy.Diagnostics (+ .Windows, .WinForms, .WinUI) |
Layered logging / observation-capture stack: a platform-neutral core, the Windows capture backend, and per-framework diagnostic-dialog shells |
Astronomy.PCL + Astronomy.PCL.Native |
Managed P/Invoke wrapper + native C++ shim over the PixInsight Class Library (pixel-level XISF I/O) |
*.Tests, Astronomy.Contracts.Tests, Astronomy.Core.Benchmarks |
xUnit v3 test projects, the consumer-contract harness, and BenchmarkDotNet benchmarks |
Two tiers — most visitors only need the first.
Managed tier (self-sufficient). Everything except the PCL wrapper builds from a fresh clone with the .NET 10 SDK alone:
git clone https://github.com/Apoplectic1/Astronomy-Library Library
cd Library
dotnet build Astronomy.Core -c Release # any managed project builds this wayNote: dotnet build Astronomy.sln will not work — the solution is a mixed C++/C# graph
and the .NET CLI cannot load the C++ project. Build the full solution with Visual Studio (or
MSBuild.exe), x64 only — the solution declares no other configuration.
Native tier (Astronomy.PCL.Native). Requires the PixInsight Class Library, which is
deliberately not part of this repo. It lives in its own mirror —
github.com/Apoplectic1/PCL — and must be cloned inside
this repo's working tree, then built first:
git clone https://github.com/Apoplectic1/PCL PCL # from the Library directory
# then build PCL per its README (VS 18.x, v145 toolset, x64)This repo gitignores PCL/ entirely, so the two repos nest without interacting. Without the
nested clone, Astronomy.PCL.Native fails to build — that is documented behavior, not a
broken repo.
docs/ (dated engineering journal), NOTEBOOK.md (lab notebook), openspec/ (normative
specs + change records), archive/ (completed/superseded design records), and .claude/
(agent tooling) are the project's workshop — development history and machine-read working
docs, not user documentation. CONSUMERS.md is the library's public-contract datasheet.
MIT — this covers the code in this repository. The PixInsight Class Library material that the native tier builds against is separately governed by the PCL license (see below); MIT neither extends to nor shields it.
Astronomy.PCL.Native builds against and statically links the
PixInsight Class Library by Pleiades Astrophoto S.L.
Any product distributing Astronomy.PCL.Native.dll is based on software from the PixInsight
project, developed by Pleiades Astrophoto and its contributors
(https://pixinsight.com/).