Skip to content
@ElementAstro

ElementAstro

Open-source ecosystem for modern astronomy software — C++ libraries, cross-platform desktop & mobile apps for observers, researchers and telescope automation.

ElementAstro 🔭

当一群热爱化学的天文爱好者尝试创作软件时,会发生什么?也许是宇宙大爆炸吧。

What happens when a group of chemistry-loving developers try to build astronomy software? Maybe a Big Bang.

We build a modern, open-source ecosystem for astronomy — layered from foundational C++ infrastructure all the way up to cross-platform desktop and mobile applications. Every component is named after a chemical element, each playing a distinct role in the stack.


🧪 The Element Stack

Our projects form a coherent layered architecture. Each element family has a specific responsibility:

┌─────────────────────────────────────────────────────────────┐
│               UI & Visualization Layer                      │
│   Cobalt SkyMap · Cobalt Next · Cobalt Mobile               │
│   Cobalt FITS Viewer · Task Editor · Cobalt Guider Client   │
├─────────────────────────────────────────────────────────────┤
│               Telescope Control Layer                       │
│   Lithium (Core) · Lithium Next · Lithium Shell             │
│   Lithium Modules · Lithium Driver Libs                     │
├─────────────────────────────────────────────────────────────┤
│               Specialized Services Layer                    │
│   Sodium (Autoguiding) · Oxygen (Plate Solving)             │
│   Lithium Image (Calibration) · fitsjs-ng (FITS/JS)        │
├─────────────────────────────────────────────────────────────┤
│               Foundation Layer                              │
│   Atom — C++20/23 · 18+ Modules                            │
└─────────────────────────────────────────────────────────────┘

⚛️ Atom — The Foundation

Atom is the C++20/23 foundational library that powers the entire ecosystem. Every other project builds on it.

18+ modular domains, each independently usable:

Module Description
error / log Structured error handling and logging
async Coroutine-based async primitives, thread pools, lock-free queues
memory Memory pools, custom allocators, RAII utilities
image Astronomical image processing pipelines
io File I/O with FITS and SER format support
connection TCP/UDP networking, serial communication
algorithm Astronomical algorithms and numerical methods
search Index and search structures
secret Cryptography primitives
sysinfo CPU, GPU, disk, network introspection
web HTTP utilities and REST client
meta / type Compile-time reflection and type utilities

Also see AtomLibrary — curated third-party dependencies bundled for consistent builds across all projects.


🔋 Lithium — Telescope Control

The Lithium family is the core telescope control and observation sequencing engine.

Project Description
Lithium Core observation sequencing platform — connects and coordinates mounts, cameras, focusers, filterwheels, and dew heaters into automated imaging sequences
Lithium Next Next-generation rewrite with modernized architecture and improved performance
Lithium Shell CLI interface for headless/remote Lithium operation
LithiumModules Official plugin modules — telescope drivers, guider integrations, utility extensions
LithiumDriverLibs Low-level hardware driver libraries (cameras, mounts, peripherals)
LithiumLibrary Bundled third-party C++ dependencies for Lithium
LithiumCode VSCode extension for authoring Lithium observation sequences
Lithium Image Image calibration library — flat/dark/bias correction, chessboard calibration, AVX2/OpenMP optimizations

🌊 Cobalt — Visualization & Frontends

The Cobalt family provides all user-facing interfaces — web, desktop, and mobile.

Project Description
Cobalt SkyMap Desktop star map & observation planner — Stellarium engine, 9-tab astronomical calculator (ephemeris, phenomena, RTS, almanac…), ALPACA mount control, plate solving
Cobalt FITS Viewer Mobile FITS processor — 8 stretch algorithms, 16 colormaps, image stacking, RGB composition, astrometry.net integration, cloud backup (Google Drive / OneDrive / WebDAV)
Cobalt Next Next-generation web frontend for Lithium telescope control, replacing the Vue-based Cobalt
Cobalt Next Native Native desktop/mobile wrapper for Cobalt Next
Cobalt Mobile Mobile-optimized observation control interface
Cobalt Task Editor Visual sequence editor for creating and managing observation automation tasks
Cobalt Guider Client Remote guiding client — integrates with Sodium autoguiding service
Cobalt Forward Proxy and forwarding layer for Cobalt services
Cobalt Original Vue-based web client for Lithium (legacy)

🧂 Sodium — Autoguiding

Sodium is a lightweight autoguiding engine for telescope mounts — tracks guide stars and sends real-time correction signals to keep long exposures sharp. Integrates with Lithium via the Cobalt Guider Client.

C++


🌬️ Oxygen — Plate Solving

Oxygen is a next-generation astrometry and plate-solving engine. Given a FITS image, it determines the exact sky coordinates, rotation, and scale — enabling automated target acquisition and WCS calibration.

C


🔧 Supporting Tools

Project Description
fitsjs-ng Next-generation FITS parser for JavaScript/TypeScript — used by Cobalt FITS Viewer and all web-based FITS workflows
HEAL Hello ElementAstro Launcher — bootstraps and manages the ElementAstro toolchain; helps users install, configure, and launch multiple projects
TaskEditor Unified observation task and sequence editor across Lithium/Cobalt workflows
atom-web-ui Web UI for interacting with Atom library internals during development
quarcs-server-next Backend server providing data and API services to client applications
LightAPT Lightweight astronomy planning tool for scheduling and telescope automation

🤝 Contributing

All repositories are open-source and welcome contributions — whether it's a bug fix, a new telescope driver, or a UI improvement.

  • ⭐ Star a project you find useful
  • 💬 Open an issue with ideas or bug reports
  • 🔀 Fork and submit a PR

🔗 Links

Pinned Loading

  1. Lithium Lithium Public

    Open Astrophotography Terminal (Reborn)

    C++ 28 3

Repositories

Showing 10 of 34 repositories

Top languages

Loading…

Most used topics

Loading…