About
StellarSolver is a cross-platform, open-source astrometric plate-solving library designed for developers building astronomy applications. It combines the power of Astrometry.net for plate solving with SEP (SExtractor) for star extraction, packaging both into a self-contained internal library that requires no Python runtime, no Netpbm utilities, no external Astrometry.cfg configuration files, and no calls to external programs. The library was built to solve a long-standing portability problem in astronomy software: traditional plate solvers depend on Unix-centric toolchains that are difficult to ship on Windows or macOS. StellarSolver wraps the entire pipeline — star detection, index file access, and celestial coordinate matching — into a clean C++ API that developers can link directly into their application. Key capabilities include fully internal star extraction using the SEP library, Astrometry.net-based WCS (World Coordinate System) plate solving, multi-platform builds via CMake, a batch solver for processing multiple images, a built-in tester/demo application, and a command-line interface. All solver settings are managed programmatically, making it easy to integrate into GUI applications like KStars without any external dependencies or file-system configuration. StellarSolver is ideal for developers of planetarium software, astrophotography tools, telescope automation systems, and any application that needs to determine the celestial coordinates of an astronomical image on any major desktop operating system.
Key Features
- Internal Plate Solving: Performs full Astrometry.net-based astrometric plate solving entirely within the library — no external process calls needed.
- SEP-Based Star Extraction: Uses SEP (SExtractor as a Python library) for fast and accurate star detection and extraction directly from image data.
- True Cross-Platform Support: Natively supports macOS, Linux, and Windows via a CMake build system, with no reliance on Unix-only dependencies like Python or Netpbm.
- Zero External Dependencies at Runtime: Requires no Astrometry.cfg file, no Python runtime, and no Netpbm utilities — all settings are managed programmatically inside the library.
- Batch Solver & CLI: Includes a batch solver for processing multiple images and a command-line interface for scripted or automated astrometric workflows.
Use Cases
- Embedding astrometric plate solving into a cross-platform planetarium or astrophotography desktop application.
- Automatically determining the pointing coordinates of a telescope from a captured image without relying on a network service.
- Batch processing a folder of astrophotography images to annotate each with WCS celestial coordinate metadata.
- Building a Windows-native astronomy application that needs star extraction and plate solving without Unix tool dependencies.
- Integrating real-time plate solving into telescope automation or guiding software on macOS or Linux.
Pros
- No External Dependencies: Eliminates the need for Python, Netpbm, or external Astrometry.net processes, greatly simplifying deployment on all platforms.
- Truly Cross-Platform: One of very few astrometric solvers that works natively on macOS, Linux, and Windows without platform-specific workarounds.
- Active Open-Source Project: Licensed under GPL-3.0 with an active commit history, making it freely usable and auditable for astronomy application developers.
Cons
- Requires Astrometry.net Index Files: Users must separately download large Astrometry.net index files for plate solving to function, which can be several gigabytes.
- C++ Library — No Scripting Bindings: Designed as a C++ library with no official Python or other language bindings, limiting accessibility for non-C++ developers.
- Niche Use Case: Highly specialized for astronomy and astrophotography applications; not useful outside of celestial image analysis workflows.
Frequently Asked Questions
Plate solving is the process of determining the exact celestial coordinates (right ascension and declination) of objects in an astronomical image by matching detected stars against a known star catalog.
No. One of StellarSolver's core design goals is to operate without Python, Netpbm, or any external runtime dependencies, making it easy to bundle with desktop applications.
StellarSolver supports macOS, Linux, and Windows, and is built using CMake for cross-platform compatibility.
StellarSolver was originally developed for and is used by KStars, the open-source planetarium and astrophotography suite, as its internal plate-solving backend.
Yes. StellarSolver is released under the GPL-3.0 open-source license and is free to use, modify, and distribute under those terms.
