Starfold on 9,242 Milky Way stars
Starfold split 9,242 Milky Way stars into two groups without labels, and the group medians lie on the disc's two chemical sequences.
What the run reports
- Groups
- 2
- Recurrence
- 0.91and0.92
- Unassigned
- 1,068
- Unresolved
- 0.154
Calibration test
p = 0.10: 1 of 19 structureless copies of the table scored at or above it.
Flags raised
search_budget_exhausted
the search used every trial; a larger n_trials may help
consensus_subsampled
the co-association check ran on a seeded subset of stars
consensus_disagrees
the cut of the co-association matrix agrees with the partition below 0.5
no_structure_supported
the calibration test ran and p is above alpha
Loading 9,242 stars (0.7 MB).
Similar stars sit close together. The UMAP map of the eight standardised columns that HDBSCAN cut; its axes have no units.
Alpha elements against iron, where the disc has two sequences. ASPCAP [α/M] and [Fe/H] from APOGEE DR19 in dex; rings mark the group medians.
How bound each orbit is, against how much it turns with the disc. E and Lz from galpy orbits in the McMillan17 potential; rings mark the group medians.
The 32 refits
showing the fit on all starsEach bar is a refit on a random 80 per cent of the stars, as tall as its agreement with the fit on all stars.
Star
Hover over a star in any panel.
The run in numbers
The recorded run of Starfold 0.2.0 on the APOGEE DR19 example table: a search over 48 settings, one fit on all stars, then 32 refits on random 80 per cent subsets.
| Column | Group 0, 1,588 stars | Group 1, 6,586 stars | All stars |
|---|---|---|---|
| [Fe/H] dex | −0.416 (−0.424 to −0.405) | −0.076 (−0.080 to −0.071) | −0.138 |
| [α/M] dex | 0.222 (0.221 to 0.224) | 0.026 (0.025 to 0.027) | 0.045 |
| [Mg/Fe] dex | 0.273 (0.271 to 0.275) | 0.040 (0.039 to 0.042) | 0.062 |
| JR kpc km/s | 79.3 (76 to 82.2) | 23.4 (23 to 23.8) | 29.4 |
| Jz kpc km/s | 32.6 (31.4 to 33.7) | 8.55 (8.36 to 8.66) | 11.3 |
| Lz kpc km/s | 1,474 (1,464 to 1,485) | 1,926 (1,922 to 1,935) | 1,857 |
| eccentricity | 0.260 (0.254 to 0.265) | 0.130 (0.128 to 0.131) | 0.148 |
| E km²/s² | −163,784 (−164,177 to −163,230) | −154,301 (−154,408 to −154,095) | −155,907 |
| Setting | Subsets | All stars | Defaults |
|---|---|---|---|
n_neighbors | 54 | 54 | 15 |
min_dist | 0.289 | 0.289 | 0.1 |
n_components | 2 | 2 | 2 |
min_cluster_size | 72 | 90 | 5 |
min_samples | 24 | 30 | 5 |
selection_method | eom | eom | eom |
- The search ran 48 trials, 39 to the end and 9 pruned, and selected trial 45.
- Fresh gap over three structureless copies: 0.372 for the selected setting and −0.001 for the defaults.
- One fit of the defaults on all stars found 326 groups and left 3,553 stars unassigned.
- Two groups in 31 refits and three in refit 10; agreement with the fit on all stars from 0.68 to 0.88.
- Co-association on a seeded subset of 4,096 stars: within 0.979, between 0.003, contrast 0.976. The cut of that matrix left all of them unassigned (agreement 0.000).
- 334 fits in 163 s on a laptop RTX 3060 with RAPIDS cuML, random_state 0.
What you are looking at
Each star carries eight numbers. [Fe/H] is its iron abundance relative to the Sun, in dex, a base-10 logarithm, and [α/M] and [Mg/Fe] say how rich it is in alpha elements such as magnesium; all three come from APOGEE spectra through the ASPCAP pipeline. The other five describe its orbit, integrated with galpy in the McMillan17 model of the Galaxy from Gaia DR3 astrometry: the radial and vertical actions JR and Jz, the angular momentum Lz, the eccentricity and the energy E.
Starfold tried 48 settings of UMAP and HDBSCAN, scored each without labels against a structureless copy of the table, and fitted the selected one on all stars. The map shows that fit. UMAP placed the stars so that neighbours in the eight standardised columns stay close, and HDBSCAN marked the two dense regions as groups and left 1,068 stars around and between them unassigned. Positions on the map have no units; only which stars sit near which counts.
The chemistry panel is the classic test. The Milky Way disc holds two chemical sequences: a high-alpha one of older, metal-poorer stars on hotter orbits, and a low-alpha one that reaches solar [Fe/H] and above (Bensby et al. 2014; Hayden et al. 2015). Starfold was told none of this. Group 0 has the high-alpha pattern and group 1 the reverse, in chemistry and in orbits. That passes a sanity check of the method; it is not a finding about the Galaxy.
To see how far the split holds, Starfold refitted the same setting 32 times, each on a random 80 per cent of the stars with new seeds. A star's support for a group is the share of its refit group that belongs to that group, averaged over the refits that drew it, and dots fade where support for their own group is low. Refit groups carry arbitrary numbers, so the replay colours each one by the group it matches by Jaccard index, as Starfold does for recurrence.
Recurrence is that matched overlap, averaged over the refits: 0.914 for group 0 and 0.918 for group 1, both above the 0.85 that the clusterboot documentation gives for a highly stable cluster. Refit 10 found a third group of 124 stars, 119 of them from group 1; the other 31 refits found two, so the count interval is 2 to 2. The unresolved mass, 0.154, is the average share of a star's refit outcomes that were no group.
The co-association contrast measures how much more often the refits put two stars of one group together than two stars of different groups; on a seeded subset of 4,096 stars it is 0.976. A second clustering of that matrix left every one of those stars unassigned and raised consensus_disagrees; the tutorial records its cause as not diagnosed. The calibration test ran separately on the same run: one of 19 structureless copies scored at or above the table, so p = 0.10, with a 95 per cent Monte Carlo interval of 0.001 to 0.260.
So the run supports two reproducible groups, and no more. With p above 0.05 the split is not shown to exceed a single correlated population, so the panel shows the flag no_structure_supported. The test was run separately and is not attached to the saved run. The run gives no membership probabilities, models no selection function and carries no measurement errors. The table's provenance note calls it a convenience for tutorials, not a source for scientific work.
The star panel follows the star under the pointer, or the one you clicked or chose. Its 32 cells are the refits in order: a coloured cell means the refit put the star with that group, an outline means it left the star unassigned, and a dot means it did not draw the star.
Each line below spans the 1st to 99th percentile of all stars, the ticks mark the two group medians and the dot marks the star; a square means the star lies beyond the line. The source_id links to the star's row in the Gaia DR3 catalogue at VizieR.
Hover over a star to read it in the star panel, click to keep it, and drag across any panel to select a set of stars, which the other panels then show. Replay steps through the refits, cross-fading between them unless your device asks for reduced motion. On ten labelled tables Starfold matched or beat the library defaults on six of six development tables and on two of four held-out ones; the benchmark lists every table.
Data and credits
The 9,242 stars are the APOGEE DR19 example table that ships with the Starfold repository: stars with a spectrum signal-to-noise ratio above 70 and both ASPCAP chemistry and a galpy orbit. The chemistry comes from APOGEE in SDSS-V Data Release 19 (SDSS Collaboration 2025; Meszaros et al. 2025, AJ 170, 96), measured with the ASPCAP pipeline (Abdurro'uf et al. 2022, ApJS 259, 35).
The orbits were integrated with galpy (Bovy 2015, ApJS 216, 29) in the McMillan17 potential (McMillan 2017, MNRAS 465, 76) from the astrometry of the European Space Agency mission Gaia (Gaia Collaboration, Vallenari et al. 2023, A&A 674, A1), processed by the Gaia Data Processing and Analysis Consortium (DPAC). Gaia data are © ESA/Gaia/DPAC and released under CC BY-SA 3.0 IGO, and the derived files below are shared under the same licence.
Starfold builds on UMAP (McInnes, Healy and Melville 2018), HDBSCAN (Campello, Moulavi and Sander 2013) and Optuna (Akiba et al. 2019). Its code is MIT-licensed, and the APOGEE tutorial in its manual reads this run step by step.
Download the data (0.7 MB), its header and its provenance, which records the checksums of the run, the table and the calibration record, the Starfold version and commit, and the seed. I recomputed the map with the call the tutorial notebook uses, and it gives back the recorded groups exactly. Everything runs in your browser, and nothing you do here is sent anywhere.