An open-source astronomy SDK and Android sky viewer, built on top of SuperNOVAS for the calculation layer.
The catalog covers the main solar-system bodies right now. If you're reading this later, that list has probably grown.
App code should go through the
apimodule, not into engine internals. That boundary is intentional.
| Module | What it does |
|---|---|
api |
Public SDK contracts - the surface callers should use |
engine |
Positioning, validation, coordinate math |
native |
JNI bridge to SuperNOVAS (C++) |
sky-observatory |
Android app - rendering, camera, touch input |
location |
Fused location provider integration |
benchmark |
Performance tests |
sample-test |
Demo / integration smoke-test app |
EngineInitializer.register();
AstroSdk.initialize();
AstroEngine engine = AstroSdk.getEngine();
PositionResult result = engine.calculatePosition(target, observer, time);That's it. Everything else - provider setup, native loading, object graph wiring - happens behind the SDK boundary.
./gradlew :sky-observatory:assembleDebug
./gradlew test
./gradlew :api:test :engine:test :native:testThe repo is a standard Android multi-module Gradle project. Each module
has its own build.gradle.kts, unit tests live under src/test/java,
and the native code lives in native/src/main/cpp/.
See CONTRIBUTING.md. Short version: keep PRs small,
keep app code on the api surface, and don't duplicate math that
already lives in the native layer.
Apache 2.0 - see LICENSE.