How different sky cultures impose different structures on the same stars.
Humans have looked at largely the same stellar field for thousands of years. They have not organized it in the same way.
SameSky treats cultural stellar groupings as alternative representations laid over a fixed astronomical field. It asks two deliberately separate questions:
- Perceptual segmentation: which stars are grouped together?
- Semantic projection: what kinds of things do people decide those groups are?
The first can be approached with geometry. The second cannot be reduced to geometry without losing the point.
SameSky begins with the stars held fixed. It then overlays multiple sky-culture traditions — initially Indian, Chinese, and Western — using machine-readable grouping definitions from Stellarium's sky-cultures project.
The project compares those human-made groupings against a deliberately culture-blind baseline that sees only:
- right ascension and declination,
- apparent magnitude,
- angular proximity.
If unrelated traditions repeatedly group a similar stellar region, the geometry may be perceptually salient. Where traditions diverge despite the same visual field, the interesting object is the representation itself.
Keep the stars fixed. Change the interpretation.
- downloads selected Stellarium sky-culture definitions at runtime;
- extracts Hipparcos star identifiers from constellation / asterism line paths;
- loads positions and magnitudes from the Hipparcos catalogue through Skyfield;
- computes within-group geometric features;
- compares grouping overlap across sky cultures using star-set and edge-set similarity;
- constructs a simple geometry-only connected-component baseline;
- exports a compact atlas JSON;
- provides a Streamlit explorer where the stars remain fixed while the cultural grouping overlay changes — or two readings can be overlaid at once;
- includes tests and GitHub Actions CI.
SameSky does not assume that a Western IAU constellation, a Chinese asterism, and an Indian nakshatra are culturally equivalent categories. They are compared here only as documented stellar grouping systems over a shared coordinate field.
This distinction matters. The project is interested in representation, not in flattening different traditions into one taxonomy.
Requires Python 3.11+.
python -m venv .venvActivate the environment, then:
pip install -e ".[app,dev]"
python scripts/build_data.py --cultures indian chinese western
streamlit run app.pyIn the explorer, pick a First reading, then enable Lay a second reading over it. Amber and dotted-blue paths distinguish documented overlays; their crossings and shared stars are invitations to compare, not claims that traditions are equivalent.
The first data build downloads the Hipparcos catalogue and the selected Stellarium index.json files. Generated upstream data are stored under data/raw/ and data/processed/ and are intentionally excluded from Git.
After building data:
python analysis/compare.pyThis prints per-culture counts, geometry summaries, and cross-culture overlap scores.
SameSky/
├── .github/workflows/ci.yml
├── analysis/
│ └── compare.py
├── data/
│ ├── README.md
│ └── semantic_labels.csv
├── docs/
│ ├── INTERPRETATION.md
│ ├── METHODOLOGY.md
│ └── ROADMAP.md
├── samesky/
│ ├── baseline.py
│ ├── catalog.py
│ ├── geometry.py
│ ├── models.py
│ ├── similarity.py
│ └── stellarium.py
├── scripts/
│ ├── build_data.py
│ └── make_semantic_template.py
├── tests/
├── app.py
├── pyproject.toml
└── README.md
For each documented stellar grouping, SameSky can calculate:
- number of unique stars;
- number of documented line edges;
- mean pairwise angular separation;
- maximum angular span;
- mean documented edge length;
- mean and range of apparent magnitude.
These are descriptive features, not claims about why a historical tradition formed a grouping.
For each grouping in culture A, SameSky finds the best matching grouping in culture B using Jaccard overlap on:
- member-star sets, and
- documented edge sets.
The code reports these matches rather than declaring two groupings "the same constellation." Similar geometry does not imply shared origin, shared meaning, or independent invention.
The baseline deliberately knows nothing about mythology, language, history, or cultural meaning. It:
- filters to stars brighter than a configurable magnitude threshold;
- connects stars separated by less than a configurable angular threshold;
- returns connected components as naive geometric groupings.
It is intentionally simple. Its purpose is to establish a transparent perceptual baseline, not to model human vision perfectly.
data/semantic_labels.csv is a manual-coding template for a later layer of the project. The initial categories are intentionally broad and should be revised after reading the source descriptions for each sky culture.
No LLM-generated semantic labels are used in the canonical analysis.
SameSky code is MIT-licensed. The project does not vendor Stellarium's sky-culture dataset or the Hipparcos catalogue into this repository. The build script downloads upstream sources locally. See data/README.md for provenance and licensing notes.
Primary upstream sources:
- Stellarium sky cultures:
Stellarium/stellarium-skycultures - Hipparcos Main Catalogue: ESA 1997, distributed through CDS/VizieR; loaded using Skyfield's Hipparcos helper
SameSky is an exploratory computational atlas, not evidence that any particular constellation tradition is caused by visual perception alone. Similarities can arise from shared history, transmission, common observational practices, or chance. Cultural divergence cannot be interpreted without historical scholarship.
The project therefore keeps its claims narrow:
Same stellar field. Measurably different human partitions.
MIT for the code in this repository. Upstream data retain their own terms and licenses.