Contents
Project overview#
Astrolore is a Python package that bridges real astronomy with science fiction. Given any astrophysical object — by name or sky coordinates — it finds the nearest object in its curated sci-fi catalog and tells you where it appears across film, TV, and literature.
What it does#
Resolves any object name via the CDS Sesame name resolver (Simbad/NED), or accepts raw RA/DEC coordinates directly
Searches a catalog of ~80 real astronomical objects referenced in science fiction and finds the one with the smallest angular separation from your input
Returns lore — which franchises reference it and what role it plays in those universes
Plots a full-sky Aitoff map showing your object, the nearest sci-fi source, and the rest of the catalog
Opens Aladin Sky Atlas centered on the nearest sci-fi object so you can observe it in real survey imagery
Demo#
| Search by name | Search by coordinates |
![]() |
![]() |
| Full sky map | View in Aladin |
![]() |
![]() |
Sci-fi catalog#
The catalog covers ~80 real objects referenced across:
Franchise |
Franchise |
|---|---|
Star Trek (TOS, TNG, DS9, VOY, TAS) |
Dune |
The Expanse |
Foundation |
Mass Effect |
Halo |
Babylon 5 |
Ender’s Game |
Contact |
Project Hail Mary |
Rick and Morty |
Stargate SG-1 |
The Hitchhiker’s Guide to the Galaxy |
Classic sci-fi short fiction |
Objects range from nearby stars (Proxima Centauri, Wolf 359, Barnard’s Star) to galaxies (Andromeda, Pinwheel) and nebulae (Crab Nebula, Helix Nebula).
Installation#
pip install astrolore
Dependencies: pandas · astropy · numpy · matplotlib · pywebview · Pillow
tkinteris bundled with most Python distributions. On Linux you may needsudo apt-get install python3-tk.
Usage#
GUI#
from astrolore import gui
gui.main_gui().start_gui()
Programmatic API#
from astrolore.dataset import astrolore_dataset
ds = astrolore_dataset()
# Search by name (resolved via Simbad/NED)
closest = ds.find_closest_object(name="Betelgeuse")
print(ds.output_lore(closest))
# Search by coordinates (ICRS sexagesimal)
closest = ds.find_closest_object(coords=("5h55m10.3s", "7d24m25.4s"))
print(ds.output_lore(closest))
# Generate and save the full-sky map
fig, ax = ds.get_catalog_map()
fig.savefig("skymap.png", dpi=150, bbox_inches="tight")
Documentation#
Full API reference: arnablahiry.github.io/software/astrolore



