The data

This map runs on open catalogs, and what we built from them is open too. We filtered, re-projected, and re-baked that source data into the files below. These files are what the map actually loads, offered here directly rather than left buried in a network tab. Take them.

Coordinates are unit-sphere Cartesian (x,y,z) computed once from J2000 RA/Dec, so nothing downstream has to redo the trigonometry. Each file carries a metadata block recording its source and bake date. See Sources & Credits for who made the underlying measurements. That page is the attribution these licenses require and worth reading before you reuse anything.

Released under CC BY-SA 4.0

Use them for anything, including commercially. Credit the original catalogs, note that you changed them if you did, and pass them on under the same license.

Every star that is naked-eye visible under a dark sky (to magnitude 6.5) plus every star needed to complete a constellation figure. Carries position, magnitude, B−V colour index, and a proper name where one exists.

961 KB · 8,922 stars · CC BY-SA 4.0 · from HYG v41

The 88 modern constellations as drawable line segments. Stellarium ships these as polylines; here they are expanded into discrete star-to-star pairs keyed by Hipparcos number, which is the shape most renderers actually want.

43 KB · 88 constellations, 695 segments · CC BY-SA 4.0 · from Stellarium

The named stars (such as Sirius, Betelgeuse, Polaris) as catalog entries rather than points of light, with Bayer designations and catalog numbers resolved. Positions ride the main star file verbatim, so the two can never disagree.

95 KB · 355 stars · CC BY-SA 4.0 · from HYG v41

Galaxies, nebulae and star clusters to magnitude 13, plus the bright nebulae that carry no meaningful magnitude at all. Includes surface brightness and our own derived estimates of what a small smart telescope can actually resolve and frame.

1.4 MB · 3,234 objects · CC BY-SA 4.0 · from OpenNGC

Available under CDS terms

These are not Creative Commons, and we can’t place them under one. They derive from the Strasbourg astronomical data centre, which makes its catalogs free for scientific and educational use but not for commercial use. That restriction travels with the files. If you reuse them, cite Sharpless (1959) or Lynds (1965) as applicable, and acknowledge SIMBAD and VizieR as described on the credits page.

Sharpless HII regions are the hydrogen clouds where stars form. Many of them prime astrophotography targets that carry no NGC number. Coordinates precessed from the catalog’s original B1950 frame to J2000, and de-duplicated against OpenNGC so the same nebula never appears twice.

139 KB · 261 objects · CDS terms, non-commercial · from Sharpless 1959 + SIMBAD

The faint, wide, diffuse nebulae Beverly Lynds catalogued from the Palomar plates in 1965 — the ones with no NGC, IC or Sharpless number of their own, which is most of them. Precessed from B1950, de-duplicated against both catalogs above, and filtered to objects at least half a degree across. Her 1–6 brightness grade rides along as data; we do not filter on it, because modern sensors reach things her plates could not.

283 KB · 515 objects · CDS terms, non-commercial · from Lynds 1965

Released under the MIT license

This one derives from no survey, so it inherits no obligation from one. It is our own work, offered under the MIT license alongside the build tool that produced it — commercial use included. Keep the copyright notice and it is yours.

Targets entered by hand because the catalog naming them was never published as a machine-readable table. Currently just the Propeller Nebula, which every astrophotographer knows as Simeis 57 and no downloadable table carries. Small, and honest about it: each entry records where every value came from and flags which are estimates rather than measurements.

2 KB · 1 object · MIT · hand-entered, no survey source

How we made it: Uranometria

The catalogs above are not hand-edited. They are baked by Uranometria, a small open-source build tool we wrote for exactly this job: point it at a survey, declare what you want kept, and get back a normalized JSON catalog a renderer can load with no further processing. It is named for Bayer’s 1603 star atlas, whose designations still turn up in the labels it produces.

Raw survey data is not built for browsers. It arrives as 120,000-row CSVs, fixed-width files from 1959, and live database queries, in several different coordinate conventions. Uranometria does that reconciling once, at build time, so the map does none of it at runtime.

What it actually does

  • Fetches and caches every source — HYG, Stellarium, OpenNGC, the Sharpless and Lynds catalogs via VizieR, and SIMBAD — into a local directory. No survey data is committed to the repository.
  • Filters to what a sky map needs: naked-eye stars to magnitude 6.5, deep-sky objects to magnitude 13, plus the bright nebulae that carry no meaningful magnitude at all.
  • Normalizes the shapes that differ between surveys: constellation polylines become discrete star-to-star segments, the Sharpless and Lynds coordinates are precessed from B1950 to J2000, and every object gains unit-sphere x,y,z computed once from its RA and Dec.
  • Cross-references catalogs against each other, so a nebula with a Sharpless number, an NGC number and a Lynds number appears once rather than three times. The handful of overlaps the match cannot resolve on position alone are settled by a hand-authored curation file that is committed — as are the few targets, like the Propeller, that no machine-readable catalog carries at all.
  • Writes the seven JSON files offered above, each with a metadata block recording its source and bake date.

The whole thing is one command, npm run parse, and has zero runtime dependencies — plain Node ESM, with the standard library doing the decompression and a small CSV splitter doing the rest. Every tunable lives in a single config file: the magnitude cutoffs, the output filenames, the telescope optics behind our resolvability estimates.

Why you can trust the numbers

Every source file is pinned by checksum, and verified both when downloaded and again when read. If an upstream catalog changes underneath us, the build stops and says so instead of quietly rebaking different data. Someone then has to look at what changed and decide.

Each parser also checks its own work before writing anything. Known objects are spot-checked against their published values — Sirius, Vega, Andromeda, the Crab Nebula — while range and unit-sphere properties are asserted across every single row, and catalogs that depend on one another are checked for agreement. Any failure exits non-zero, so a bad bake never reaches the map.

The code is MIT. The data is not.

Uranometria itself is MIT licensed — take it, fork it, point it at surveys we never touched. What it produces is a different matter: those catalogs inherit the licenses of the surveys they came from, which is why the files above are split into a CC BY-SA group, two files under non-commercial CDS terms, and one small hand-entered file that inherits nothing because it derives from no survey at all. Running the tool yourself does not launder any of that. The repository’s LICENSE.md maps each output to its obligations.