An exoplanet database and tracker with procedural visualisations.
Tadmor pulls the latest data from the NASA Exoplanet Archive — currently 6,000+ confirmed planets plus TESS / Kepler / K2 candidates — and renders each one as a 3D globe built procedurally from its measured parameters. The same physical inputs that drive the classifier (mass, radius, temperature, host spectral type, atmospheric composition, orbital geometry) drive the look of the planet, its host star, and the orbital diagram. Nothing is a photograph.
- Catalog — browse the full planet list with search, multi-axis filters (composition, temperature, mass class, host spectral type, discovery method, data completeness), and sort. Per-planet 2D icons sketch the body at a glance.
- Candidates — separate tabs for confirmed planets, TESS / Kepler / K2 candidates, and false positives, with dispositions kept up to date by the sync.
- Bookmarks — save any planet; the catalog row gets a gold-edge highlight and a saved-only filter is one tap away. The app snapshots the planet's parameters at bookmark time.
- Update tracking — when a bookmarked planet's catalog parameters change after a sync (a refined mass measurement, a new temperature, a disposition flip), the card shows an "n updated" badge and the updated fields are diffed against the snapshot.
- Background sync — WorkManager periodically pulls the latest data from the NASA Exoplanet Archive so the local catalog stays current without manual refresh.
- System view — every planet around a host star on a single page, with the host's spectral / luminosity context, an orbital diagram, and a system planet strip.
- Star map — a 3D point cloud of every catalogued host star, sized and tinted by spectral type and luminosity; tap a star to enter its system.
- Planet detail — a full-screen procedural 3D globe. Terrestrial worlds get composition-driven surface bakes with terrain, craters, polar caps, oceans, and lava; gas and ice giants get banded cloud decks with storm vortices and ring systems; everything is lit through a ray-marched atmosphere with per-planet Rayleigh / Mie / ozone / fog scattering. Brown dwarf and white dwarf host stars get their own surface and limb treatments distinct from main-sequence stars.
- Android (minSdk 26, targetSdk 35) + Kotlin
- Jetpack Compose for UI, with a custom design system (Jost typeface, no Material Design components)
- OpenGL ES 3.0 for all 3D rendering
- Room (local catalog cache) + OkHttp (TAP API client) + WorkManager (background sync)
- Hilt for DI
Architecture is MVVM + Clean across three Gradle modules: app (presentation), domain (pure Kotlin), data.
./gradlew assembleDebugOr open the project in Android Studio Iguana or later. No additional setup beyond a standard Android SDK install.
All exoplanet, star, and candidate data come from the NASA Exoplanet Archive. Tables used: pscomppars, stellarhosts, toi, koi, k2pandc.
A small curated list supplements the NASA tables with notable radial-velocity and imaging candidates (and famous refuted planets) that NASA's transit-survey candidate tables don't carry — Proxima Cen c, the JWST alf Cen A b candidate, Gliese 581 g, "Vulcan", and friends. It syncs from this repository, so it can be updated without an app release; each entry cites its discovery and refutation papers inline.
CHANGELOG.md— per-release additions, changes, and fixesSPEC.md— feature specificationDESIGN.md— design system (colours, typography, spacing, components)DECISIONS.md— phase-by-phase log of architecture and rendering decisionsCLAUDE.md— coding rules and contributing notes
Tadmor was 100% vibe coded — every line of source was written by Claude (Anthropic's AI assistant) under direction and iteration from me. I designed the app, drove every architectural and visual decision, and tested every change on-device, but I did not hand-write the code myself.
Apache 2.0 — see LICENSE.















0 comments
log in to comment.