Study · IllustrisTNG and SIMBA in CAMELS
Can two simulated universes be made to agree on every galaxy property at once?
In plain words
After the best possible retuning of each code's four dials, IllustrisTNG and SIMBA are still 4.8 noise units apart over all properties at once.
One noise unit is how much two runs of the same code differ by chance. TNG and SIMBA stay 4.8 units apart after retuning, which is far more than chance. Two properties stay apart at every dial setting we tried: the share of galaxies with a black hole (about 0.50 apart even at the best settings), and the gas metallicity (0.07 dex apart at best: beyond run-to-run scatter, but small in absolute terms). Six properties can be matched: the stellar mass function, the quenched fraction, black hole mass, galaxy size, gas fraction, and the total stars and star formation. Three are borderline. The best settings sit at the edge of the dials' range, where the emulators are least tested. This is about these two codes at CAMELS resolution, not simulations in general.
Abstract
For IllustrisTNG and SIMBA in the CAMELS experiment (169 binned galaxy-population outputs in 35 blocks, z = 0 to 4), retuning four parameters per code leaves the two 4.8 noise units apart on all observables at once (6.3 at the fiducial parameters; 1 is the scatter between two seeds). Both codes are read with the same catalogue definitions. The joint verdict is structural. Fitted one family at a time, 2 of 11 stay structural (black hole occupation and gas metallicity), 6 become removable (black hole mass, stellar mass function, stellar half-mass radius, gas fraction, quenched fraction and stellar mass and SFR density) and 3 are unresolved (stellar-to-halo mass ratio, stellar metallicity and star-forming main sequence). The joint distance is classed irreducible.
- Status
- Pre-registered · result
- Protocol
- PROTOCOL-joint-reachability.md
- Analysis
- ANALYSIS-joint-reachability.md
- Calibration
- POWER-joint-reachability.md
- Try it
- The dials page
- Explained
- How the two codes plant black holes
- Dataset
- v0.24.0
Limits in brief. Two codes at CAMELS resolution, read from subhaloes, with no observation entering. A noise unit is strict (0.04 to 0.18 dex depending on the property), so "structural" means beyond the scatter between two seeds, not physically large; the table of gaps in dex and fractions in §4 gives the size. The best joint setting sits at the edge of the parameter box, where the emulators are least certain. That the two codes differ is consistent with what the CAMELS papers already report: this study adds a size per property and a rule written before the result, and claims no first (related work).
Question
The cosmic star formation study found that the cosmic star formation history alone cannot separate IllustrisTNG from SIMBA: retuning four feedback parameters brings the two within the scatter between seeds. One observable constrains few combinations of four parameters. Real calibrations use many observables at once, and two models that agree on one can disagree on another.
For a code, the reachable set is every galaxy-population summary its four parameters can produce. The structural distance between two codes is the distance between their reachable sets, in units of the noise that is left when everything else is fixed (1 is the standard deviation of the difference between one run of each). Both codes were run in the same boxes at the same resolution and are read from catalogues made by the same Subfind code with the same field definitions, so no aperture, IMF or resolution difference enters. What remains is the difference between the codes: their subgrid models, and also their hydrodynamic solvers, star formation algorithms, yields and wind treatment.
Five questions, each with a rule fixed in advance: is the distance for all observables with one parameter pair per code structural (J1); which observables are structural even when fitted alone (J2); how much does insisting on one parameter pair cost (J3); which observables carry the separation (J4); and does it change with redshift (J5).
Data
- Simulations
- 2,054 CAMELS simulations in 25 Mpc/h boxes (256³ dark matter particles plus 256³ gas elements): per code, 1,000 Latin-hypercube simulations (four feedback factors and two cosmological parameters, a different seed each) and 27 seeds at the fiducial parameters. The feedback factors of the two codes are not the same physical quantities.
- Observables
- Binned summaries of each simulation's Subfind catalogue at z = 0, 0.95, 2.15, 3 and 4 (
data/ensembles/camels-galaxies.json). The observables are the stellar mass function, quenched fraction, specific SFR of star-forming galaxies, black hole mass and occupation, gas and stellar metallicity, half-mass radius and gas fraction, all in bins of 0.25 dex in stellar mass from 109 M☉. The others are the stellar-to-halo mass ratio of centrals, the halo mass function (a negative control) and the stellar mass and SFR densities. 186 of 530 outputs are eligible, in 39 blocks; few bins survive at z ≥ 3. - Noise
- The standard deviation of the 27 cosmic-variance seeds of each code plus the emulators' cross-validation error (median seed noise 0.038 (IllustrisTNG) and 0.035 (SIMBA)); every output is divided by it, and every block of outputs gets the same weight.
Result
J1 · All observables at once
With one parameter pair per code, IllustrisTNG and SIMBA stay 4.77 noise units apart over 169 outputs in 35 blocks (11 families at z = 0.0, 0.95, 2.15, 3.0, 4.0): the half-sample median of the distance with the emulators' error at the minimiser removed (5th to 95th percentile 4.64 to 4.86; uncorrected median 4.84); on all simulations 4.82 corrected, 4.85 uncorrected, 6.35 at the fiducial parameters. Same-code controls: at most 0.00 corrected. A distance of 1 is the standard deviation of the difference between one run of each code. With the search range cut to 75% of the half-width the joint verdict is structural. By the rule fixed in advance (amendment A1) the joint verdict is structural. Largest shares of the squared distance: bhocc at z = 2.15 (28%); mzr at z = 2.15 (13%); bhocc at z = 0.95 (10%).
Where the squared joint distance comes from (at the minimising pair; share of the weighted sum of squares, and the rms difference of the block in noise units). The joint distance is a root mean over blocks, so one block far off can leave it small:
| Block | outputs | share | rms difference |
|---|---|---|---|
| Black hole occupation at z = 2.15 | 3 | 28.1% | 15.20 |
| Gas metallicity at fixed M* at z = 2.15 | 3 | 13.4% | 10.49 |
| Black hole occupation at z = 0.95 | 6 | 10.0% | 9.08 |
| Gas metallicity at fixed M* at z = 0.95 | 6 | 8.9% | 8.56 |
| Stellar half-mass radius at z = 2.15 | 3 | 8.0% | 8.11 |
| Gas fraction at fixed M* at z = 2.15 | 3 | 5.8% | 6.90 |
| Black hole occupation at z = 0 | 7 | 5.3% | 6.63 |
| Star-forming main sequence at z = 2.15 | 3 | 3.0% | 4.95 |
| Gas metallicity at fixed M* at z = 0 | 6 | 2.7% | 4.72 |
| Stellar metallicity at fixed M* at z = 0.95 | 6 | 2.0% | 4.01 |
J2 · Each observable alone
Fitted alone, 2 of 11 families are structural: black hole occupation, gas metallicity at fixed M*; 6 are removable: stellar mass function, quenched fraction, black hole mass at fixed M*, stellar half-mass radius at fixed M*, gas fraction at fixed M*, stellar mass and SFR density; 3 are unresolved: star-forming main sequence, stellar metallicity at fixed M*, stellar-to-halo mass ratio.
| Observable | blocks | at fiducial | retuned | half-sample 5–95% | control p95 | verdict | at 75% range |
|---|---|---|---|---|---|---|---|
| Black hole occupation | 3 | 11.85 | 9.45 | 8.85 – 9.73 | 0.00 | structural | structural |
| Gas metallicity at fixed M* | 3 | 12.37 | 1.69 | 1.20 – 1.82 | 0.00 | structural | structural |
| Stellar-to-halo mass ratio | 3 | 4.20 | 1.49 | 0.93 – 1.55 | 0.00 | unresolved | structural |
| Stellar metallicity at fixed M* | 3 | 11.10 | 1.10 | 0.74 – 1.18 | 0.00 | unresolved | structural |
| Star-forming main sequence | 3 | 1.87 | 1.00 | 0.00 – 1.02 | 0.00 | unresolved | unresolved |
| Black hole mass at fixed M* | 2 | 1.68 | 0.76 | 0.00 – 0.82 | 0.00 | removable | removable |
| Stellar mass function | 4 | 0.92 | 0.60 | 0.42 – 0.62 | 0.00 | removable | removable |
| Stellar half-mass radius | 3 | 4.80 | 0.45 | 0.00 – 0.77 | 0.00 | removable | structural |
| Gas fraction at fixed M* | 3 | 1.58 | 0.07 | 0.00 – 0.59 | 0.00 | removable | removable |
| Quenched fraction | 3 | 0.56 | 0.00 | 0.00 – 0.00 | 0.00 | removable | removable |
| Stellar mass and SFR density | 5 | 1.42 | 0.00 | 0.00 – 0.28 | 0.00 | removable | removable |
| All observables | 35 | 6.35 | 4.82 | 4.64 – 4.86 | 0.00 | structural | structural |
J3 · The cost of agreeing
With one parameter pair for everything the squared distance is 2.82 times what it would be if every family were tuned separately (half-sample 5th to 95th 2.60 to 3.08); for two halves of one code, which is what noise and the extra parameters alone give, the same ratio is 2.04 (95th percentile 2.74). The structural joint distance is classed irreducible within the CAMELS ranges (at least one family is structural even alone).
J4 · What separates the codes
In forward selection the families come in the order bhocc, mzr, size, bhms, fgas, shmr, zstar, sfms, qf, gsmf, rho; the first prefix that is structural has 1 family (bhocc, D = 9.49). That is the same as J2 for that family.
| step | added | D | half-sample 5–95% | verdict |
|---|---|---|---|---|
| 1 | Black hole occupation | 9.49 | 8.87 – 9.73 | structural |
| 2 | Gas metallicity at fixed M* | 8.28 | 7.94 – 8.27 | structural |
| 3 | Stellar half-mass radius | 8.36 | 8.12 – 8.39 | structural |
| 4 | Black hole mass at fixed M* | 7.70 | 7.44 – 7.65 | structural |
| 5 | Gas fraction at fixed M* | 7.13 | 6.97 – 7.16 | structural |
| 6 | Stellar-to-halo mass ratio | 6.56 | 6.38 – 6.58 | structural |
| 7 | Stellar metallicity at fixed M* | 6.24 | 6.06 – 6.23 | structural |
| 8 | Star-forming main sequence | 5.93 | 5.74 – 5.91 | structural |
| 9 | Quenched fraction | 5.58 | 5.40 – 5.57 | structural |
| 10 | Stellar mass function | 5.22 | 5.05 – 5.21 | structural |
| 11 | Stellar mass and SFR density | 4.85 | 4.68 – 4.85 | structural |
Joint distance without each family (point estimate, half-sample median, verdict):
| Left out | D | median | verdict |
|---|---|---|---|
| Stellar mass function | 5.12 | 5.05 | structural |
| Quenched fraction | 5.07 | 4.99 | structural |
| Star-forming main sequence | 4.98 | 4.91 | structural |
| Black hole mass at fixed M* | 4.94 | 4.86 | structural |
| Black hole occupation | 3.75 | 3.70 | structural |
| Gas metallicity at fixed M* | 4.26 | 4.15 | structural |
| Stellar metallicity at fixed M* | 4.92 | 4.86 | structural |
| Stellar half-mass radius | 4.75 | 4.69 | structural |
| Gas fraction at fixed M* | 4.89 | 4.83 | structural |
| Stellar-to-halo mass ratio | 5.02 | 4.95 | structural |
| Stellar mass and SFR density | 5.22 | 5.15 | structural |
J5 · Redshift
| z | outputs | at fiducial | retuned | half-sample 5–95% | verdict |
|---|---|---|---|---|---|
| 0 | 68 | 4.51 | 2.95 | 2.53 – 3.07 | structural |
| 0.95 | 61 | 6.16 | 4.26 | 3.99 – 4.28 | structural |
| 2.15 | 32 | 8.75 | 6.90 | 6.61 – 6.96 | structural |
What the dials do
Change of each family's outputs (rms over the family's blocks, in noise units) when one dial moves across its whole range at the others' fiducial values. Descriptive; the dials of the two codes are not the same physical quantity.
| Observable | IllustrisTNG | SIMBA | ||||||
|---|---|---|---|---|---|---|---|---|
| A_SN1 | A_AGN1 | A_SN2 | A_AGN2 | A_SN1 | A_AGN1 | A_SN2 | A_AGN2 | |
| Stellar mass function | 7.9 | 0.4 | 2.1 | 0.4 | 6.6 | 0.8 | 2.1 | 0.4 |
| Quenched fraction | 1.5 | 0.8 | 2.4 | 0.5 | 1.6 | 0.9 | 1.0 | 0.8 |
| Star-forming main sequence | 0.8 | 0.4 | 5.4 | 0.3 | 5.7 | 2.2 | 4.0 | 0.8 |
| Black hole mass at fixed M* | 3.1 | 0.5 | 5.4 | 0.2 | 1.4 | 2.3 | 1.8 | 0.2 |
| Black hole occupation | 1.9 | 0.4 | 0.4 | 0.5 | 0.8 | 0.9 | 0.7 | 0.2 |
| Gas metallicity at fixed M* | 10.5 | 0.3 | 6.7 | 0.3 | 14.7 | 1.5 | 3.7 | 0.8 |
| Stellar metallicity at fixed M* | 12.3 | 0.4 | 6.1 | 0.3 | 20.9 | 3.8 | 4.8 | 0.4 |
| Stellar half-mass radius | 8.0 | 0.6 | 4.7 | 0.3 | 5.7 | 1.3 | 1.4 | 0.4 |
| Gas fraction at fixed M* | 6.9 | 0.5 | 7.9 | 0.3 | 11.8 | 1.0 | 2.3 | 0.7 |
| Stellar-to-halo mass ratio | 25.7 | 0.3 | 5.2 | 0.3 | 16.1 | 1.7 | 7.4 | 0.5 |
| Stellar mass and SFR density | 11.8 | 0.8 | 6.2 | 0.7 | 4.4 | 2.6 | 3.9 | 2.0 |
Reading
What retuning does. 6 of the 11 families come within the margin of agreement when the four parameters of each code are tuned for that family alone: black hole mass, stellar mass function, stellar half-mass radius, gas fraction, quenched fraction and stellar mass and SFR density. Among them are the stellar mass function, the quenched fraction and the stellar mass and SFR density, the quantities that galaxy-formation models are usually calibrated on, so agreement on those says little about whether two codes are alike (the cosmic star formation study reached the same conclusion for the star formation history).
What it does not. Black hole occupation (11.8 at the fiducial parameters, 9.4 after retuning) and gas metallicity (12.4 at the fiducial parameters, 1.7 after retuning) stay beyond the margin however the dials are set within the CAMELS ranges, so they are what separates these two codes by construction rather than by calibration. Stellar-to-halo mass ratio, stellar metallicity and star-forming main sequence are unresolved, at the margin. With the search kept to 75% of the parameter range the verdict changes for stellar-to-halo mass ratio (unresolved to structural), stellar metallicity (unresolved to structural) and stellar half-mass radius (removable to structural): agreement there leans on the edge of the design, where the emulators are least constrained.
Not one observable. Leaving out any single family leaves the joint distance between 3.7 and 5.2 noise units; without the black hole occupation and mass, whose difference is a seeding choice that no dial changes, it is 3.8 (point estimate, all simulations). The separation is therefore spread over many observables and not carried by one.
The cost of one parameter pair. Requiring one parameter pair for all families instead of one per family multiplies the squared distance by 2.82 (half-sample median); two halves of one code give 2.04 (95th percentile 2.74), which is what noise and the extra freedom alone produce. By the rule fixed in advance the ratio does not exceed the null, so the data do not show that the families conflict beyond what is expected; what keeps the codes apart is the families that are structural by themselves.
Redshift. The retuned distance is 2.8 at z = 0 (68 outputs), 4.2 at z = 0.95 (61 outputs), 6.9 at z = 2.15 (32 outputs), increasing with redshift; at higher redshift fewer and only more massive bins have enough galaxies in the 25 Mpc/h boxes, so the trend is a statement about those bins.
What tells these codes apart. The observables that separate the two codes are those that stay apart after retuning: here black hole occupation and gas metallicity, and with less margin stellar-to-halo mass ratio, stellar metallicity and star-forming main sequence. The conventional calibration targets do not. The dials page evaluates the emulators behind these distances in the browser, so any dial setting can be tried against every observable at once.
What this is not. A statement about two simulation codes at CAMELS resolution and in Subfind subhaloes, not about the Universe: no comparison with observations enters, and an observable that retuning cannot reconcile between two codes is not thereby a better or worse test of either.
The distances in the units of the observables
A noise unit is not the same size for every observable. The table gives, for each family, how large one noise unit is (the rms of the noise scale over its outputs) and the rms difference between the two codes' emulated outputs (equal weight per block) at the fiducial parameters, at the best setting for that family alone and at the best joint setting. Descriptive: read from the emulators at the minimisers of the registered analysis; it is not part of the registered result. The joint setting trades families against each other, so a family is usually further apart there than at its own best.
| Observable | unit | one noise unit | at fiducial | best, alone | best, joint |
|---|---|---|---|---|---|
| Stellar mass function | dex | 0.15 | 0.11 | 0.08 | 0.19 |
| Quenched fraction | in fraction | 0.08 | 0.06 | 0.02 | 0.04 |
| Star-forming main sequence | dex | 0.14 | 0.18 | 0.11 | 0.27 |
| Black hole mass at fixed M* | dex | 0.18 | 0.24 | 0.14 | 0.49 |
| Black hole occupation | in fraction | 0.07 | 0.64 | 0.50 | 0.60 |
| Gas metallicity at fixed M* | dex | 0.05 | 0.47 | 0.07 | 0.32 |
| Stellar metallicity at fixed M* | dex | 0.04 | 0.38 | 0.04 | 0.12 |
| Stellar half-mass radius | dex | 0.04 | 0.20 | 0.04 | 0.23 |
| Gas fraction at fixed M* | in fraction | 0.05 | 0.06 | 0.02 | 0.12 |
| Stellar-to-halo mass ratio | dex | 0.07 | 0.24 | 0.10 | 0.15 |
| Stellar mass and SFR density | dex | 0.12 | 0.12 | 0.03 | 0.09 |
Validation
Validations. All five hold.
| Check | Result | Required | Holds |
|---|---|---|---|
| V1 emulator cross-validation error over seed noise, share of outputs at most 1.5 | 0.89 (IllustrisTNG), 0.86 (SIMBA) | ≥ 0.8 each | yes |
| V2 negative control: the halo mass function is reachable | removable (between 0.00, controls ≤ 0.00) | removable | yes |
| V3 catalogue SFR density minus the star formation log's, median (dex); z = 0.95 and 2.15 (z = 0 is an average over 0 < z < 0.2 and is reported only) | IllustrisTNG: z = 0: -0.091, z = 0.95: 0.000, z = 2.15: 0.000, z = 3: 0.000; SIMBA: z = 0: -0.089, z = 0.95: 0.004, z = 2.15: -0.001, z = 3: -0.005 | |·| ≤ 0.1 | yes |
| V4 stellar mass in subhaloes over the mass formed (median) | 0.592 and 0.606 | 0.45 – 0.75 | yes |
| V5 distance with 4 and 8 random starts | 4.848 and 4.848 (0.0%) | < 5% | yes |
Sensitivity analyses (point distance of all observables; none was used to choose):
| Analysis | D | verdict |
|---|---|---|
| Polynomial degree 2 for all outputs | 4.79 | |
| Polynomial degree 3 for all outputs | 4.85 | |
| Narrower cosmology weighting (0.35) | 4.77 | |
| Wider cosmology weighting (0.8) | 4.82 | |
| Noise scale without the emulators' error | 5.94 | |
| Noise floor 0.01 | 4.85 | |
| Noise floor 0.05 | 4.11 | |
| Margin 2 instead of 1 | 4.77 | structural |
| Only z = 0 and 0.95 | 3.78 | |
| Without black hole occupation | 3.74 | |
| Without black hole occupation and mass | 3.77 | |
| Without the stellar mass and SFR densities | 5.22 | |
| Without the two lowest stellar-mass bins of every block | 2.49 |
Deviations from the protocol:
- none
Checks made after the run
These were made once, after the registered result existed, and reported whatever they gave. None is part of the registered result and none changes a verdict. They are the checks a sceptical reader would ask for first. The decisions that went into the headline, and what happened when each was changed, are in CHOICES-joint-reachability; objections and answers in SCEPTIC.
| Check | Result | Details |
|---|---|---|
| A second, independently written search for the same distance | 4.85 against the registered 4.85 | ROBUSTNESS-joint-reachability |
| A different kind of emulator (kernel ridge instead of polynomials) | 4.91 | ROBUSTNESS-joint-reachability |
| Other weightings and subsets of the outputs | 3.8 to 5.4 | CHOICES-joint-reachability |
| A third code, Astrid, on the 97 outputs all three codes have | TNG – SIMBA 3.9, TNG – Astrid 1.5, SIMBA – Astrid 3.4; black hole occupation separates SIMBA from both others (TNG – SIMBA 8.9, SIMBA – Astrid 2.0, TNG – Astrid 0.01) | ANALYSIS-third-code |
| Each code tuned to 25 observed curves | at least one code gets within one noise unit of 20 of them (mostly mass functions and quenched fractions, about 0.2 dex or less, which four dials can fit easily); neither does for stellar mass function (1 of 15 curves, the better code 3.9 noise units away); specific star formation rate (1 of 3 curves, the better code 4.4 noise units away); black hole mass (2 of 2 curves, the better code 2.5 to 3.6 noise units away); stellar metallicity (1 of 1 curve, the better code 1.6 noise units away). Few bins per curve, and observed and simulated curves are defined differently, so this is not a test of either code | ANALYSIS-tune-to-observations |
| Emulators at the minimum: the 15 simulations nearest each code's minimising setting, held out and predicted | held-out error 0.73 (TNG) and 0.74 (SIMBA) noise units, against 0.82 and 0.81 for random simulations: no worse in that corner. The nearest simulations are not at the minimum (0.45 and 0.67 away in dial coordinates), and no simulation has been run there | ANALYSIS-minimiser-check |
Limits
- Two codes, and more than subgrid form. The result is about this pair, not about structural uncertainty in general; what separates them includes the hydrodynamic solver, the star formation algorithm and the yields, not only the feedback prescriptions. Black hole occupation and mass compare seeding prescriptions (a discrete model choice that no dial changes), so a structural verdict there is expected by construction (what that means, with the sources quoted); the sensitivity analyses give the result without them.
- CAMELS resolution. 25 Mpc/h boxes, 256³ elements: few galaxies above 1011 M☉, a mass limit of 109 M☉, almost nothing at z ≥ 3; star formation and black hole growth depend on resolution in both codes.
- The reachable set depends on the prior, and the minimiser sits at its edge. The four factors span the ranges the CAMELS team chose, not the ranges the code authors would accept; the search reaches the corners of the design, where the emulators are least constrained and noisier than their cross-validation error says. The distances are therefore corrected for the emulators' variance at the minimiser (estimated in every split), and the verdicts with the range cut to 75% are reported.
- The distance depends on the observables and weights. Equal weight per block; the margin of 1 is the scatter between two seeds, a unit and not a physical tolerance. Per-family distances are in the table so that other weights can be read off.
- Subfind subhaloes are not galaxies on the sky. No aperture, selection or survey effect is modelled; that is what makes the comparison clean and also what keeps it from being an observational test.
Reproduce
python3 scripts/ingest_camels_galaxies.py # about 35 minutes; range reads of the public catalogues (needs fsspec, aiohttp) python3 scripts/analyze_joint_reachability.py # about 15 minutes; writes data/analysis/joint-reachability.json and the report python3 scripts/power_joint_reachability.py # calibration on synthetic worlds python3 scripts/test_joint_reachability.py # machinery tests and the stale-output check python3 scripts/export_retune_data.py # the emulators of the dials page node scripts/build-site.mjs # regenerates this page from the JSON