1. What was verified¶
Every row is backed by a committed test and a regenerated figure whose measured value is shown against the tested tolerance (no self-consistency-only checks).
Module | Page | Tests | Figures | Key anchor(s) | Date |
|---|---|---|---|---|---|
profiles/Plummer | 20 | 5 | exact; speed law; | 2026-06-08 | |
profiles/King | 32 | 5 | vs King 1966 Table II (Δ≤0.002); density vs DF oracle (1e-10) | 2026-06-08 | |
profiles/EFF | 23 | 5 | slope ; Plummer (exact); | 2026-06-08 | |
kinematics/Michie | 12 | 5 | vs DF moment oracle; isotropic King limit (2.7e-3) | 2026-06-08 | |
kinematics/rotation + OM anisotropy | 10 | 5 | (exact); OM exact | 2026-06-08 | |
substructure/CW04 Q + azimuthal | 14 | 8 | CW04 2004 Table 1 (3D0/1/2); –Q anti-correlation | 2026-06-08 | |
diagnostics/Λ_MSR + segregation | 8 + 13 + 27 | 9 | Λ_MSR vs analytic ground truth; energy-sorted generator; differentiable observables (soft Λ_MSR / radial / Σ–m) vs exact soft→hard limit + Fisher identifiability | 2026-06-09 | |
cluster/two-component | ✅ | 1 | per-component mass + dynamical-state recovery | 2026-06-08 |
All four velocity DFs are true equilibria with no external virial rescale (unscaled : Plummer 0.50, King 0.505, EFF 0.502, Michie 0.501; 100% bound), and every released structural parameter () passes an autodiff-vs-finite-difference gradient check (agreement 10-6–10-11).
2. Scientific trustworthiness¶
Verification rests on three independent legs:
Physics-anchored tests — each asserts a quantitative match to an analytic result, an independent oracle, or a published table — never self-consistency.
Independent oracles where no closed form exists (King density via direct velocity integral; Michie via DF 2nd moments) — these catch implementation bugs a self-referential test cannot.
Paper-grounding against held PDFs (King 1966; Cartwright & Whitworth 2004; Merritt 1985; Elson, Fall & Freeman 1987), not memory.
A useful trust grading:
Tier | Meaning | Examples |
|---|---|---|
A — exact/analytic | matches a closed form to ~machine precision | Plummer , EFF & Plummer, rotation , OM , all gradients |
B — published anchor | reproduces a published table within stated tolerance | King vs Table II; CW04 Q vs Table 1 |
C — approximate / finite-N | statistically anchored or a documented surrogate | Monte-Carlo /dispersions (±0.02–0.04); differentiable |
Limits stated honestly (not papered over)¶
Limitation | Status |
|---|---|
EFF sharp truncation () is ~5–8% sub-virial | intrinsic to truncating an empirical (non-DF) profile; use King for a strict lowered-DF equilibrium, or mild EFF truncation. Documented on the page. |
Michie is suppressed below pure Osipkov-Merritt | real physics (lowering term breaks ); validated vs the DF’s own moment oracle, not textbook OM. |
| faithful in the substructure regime it is used for; gradient is a kNN soft-surrogate (median AD-FD 0.9%, cell-boundary worst-case ~20%). |
King scalar not differentiable (argmax crossing) | deferred + documented; the profile shape in is differentiable. |
No LIMEPY cross-validation | by design — validated against the original papers, not the external package. |
Inference loop not validated end-to-end on data | gradients verified at the IC / forward-model level; structural-parameter recovery on real/mock observations is the research program, not a shipped result. |
Bottom line: trustworthy for production ICs and a methods paper. Not a claim that the differentiable-inference pipeline is validated end-to-end against data.
3. Implementation completeness¶
Layer | State |
|---|---|
Validated (publication tier: unit + integration + validation + figures) | Plummer, King, EFF, Michie; matched isotropic DFs + OM anisotropy + Michie anisotropy + rotation; CW04 Q + azimuthal variation; Λ_MSR + energy-sorted segregation; two-component clusters; imf-statistics (25 tests + 5 figures, 2026-06-08); binary-imf (24 orbital tests + 5 figures incl. the regenerated “confidently wrong” recovery, 2026-06-08); environment-imf (Marks+2012/Jeřábková IGIMF: new validation tier of 12 published-table tests + 5 figures, 2026-06-08); analytical |
Released, tested, not yet figure-validated ⚠️ | (none — analytical-test-cases figure-validated 2026-06-09; see the validated row). |
Released, unit-tested only ⚠️ | (none — tidal-truncation hardened-and-validated 2026-06-09: new |
Experimental (repo-only, not in the wheel) 🔬 |
|
Deferred / not implemented ⏳ 🚧 | differentiable King (IFT, plan written); unified differentiable lowered-model family (Wilson/Woolley/multi-mass); multi-mass equipartition; self-consistent rotating equilibria. |
4. What it lets us model¶
The architecture is compositional and differentiable end-to-end: any
SpatialProfile pairs with any VelocityDF, plus IMF, binaries, anisotropy,
rotation, and substructure diagnostics — flowing into gravax (dynamics) and fluxax
(photometry). You can generate, as differentiable initial conditions:
Equilibrium clusters of chosen concentration (Plummer / King / EFF ) in true virial balance;
radially anisotropic clusters (Michie self-consistent, or OM via ) and rotating clusters (solid-body or differential);
realistic stellar populations — IMF-sampled masses with a faithful binary population (Moe & Di Stefano –– coupling), split across components;
tidally truncated clusters tied to a Jacobi radius;
and quantify substructure (Q, azimuthal variation, mass segregation) on any of them.
5. Example science questions¶
Scoped to the validated, differentiable capability:
Structural inference — jointly infer from projected density + kinematics by HMC, with calibrated uncertainties.
Anisotropy-vs-rotation degeneracy — two distinct anisotropy routes (exact-OM stretch vs suppressed self-consistent Michie) + rotation transforms: can projected data distinguish radial anisotropy from rotation?
Primordial vs dynamical substructure — generate clumpy/smooth ICs, quantify with the validated Q / azimuthal metrics, evolve in gravax: how fast does measurable substructure erase, and does mass segregation build dynamically vs primordially?
Binary imprint on the IMF — with the Moe & Di Stefano engine + binary-aware likelihood: how biased is a single-star IMF fit with unresolved binaries, and at what is it “confidently wrong”?
Tidal-field coupling (once is differentiable — see roadmap) — can a population of cluster limiting radii constrain the Galactic potential?
6. Improvement recommendations¶
¶ | Recommendation | Why / payoff |
|---|---|---|
R1 | Differentiable King (Approach B / implicit function theorem) | unlocks tidal-field inference (science Q5); plan already written, ~15–20 LOC + a 6th gradient panel. |
R2 | Figure-validate IMF / binary / analytical (61 tests already pass) | closes the three ⚠️ released gaps; |
R3 ✅ | Tidal-truncation validation tier — DONE 2026-06-09 |
|
R4 |
| removes the concentrated-regime over-read and smooths the gradient cell-boundary noise. |
R5 | EFF sharp-truncation: optional virial rescale or more prominent guidance | lets users get a virial IC without silently inheriting the ~5–8% sub-virial offset. |
R6 | End-to-end inference validation (SBC-style recovery on mocks through gravax/fluxax) | this is the real outstanding gap: gradients are verified at the IC level, not against data. |
R7 | Retrofit a Measured column onto the older figured pages (two-component; mass-segregation done 2026-06-09) | consistency with the new pages’ tolerance/measured convention. |
7. Remaining modules to validate + plot¶
Released, tested, missing only figures/pages (do these next):
✅ imf-statistics — DONE 2026-06-08: recovered slopes (sample MLE), PDF/CDF coverage + KS,
mean_mass()vs 200k log-grid ref (with the linear-grid failure mode), and inference-layer gradient validation (5 figures,scripts/validate_imfs.py).✅ binary-imf — DONE 2026-06-08: Kepler/orbit oracles, Moe+17 q-distribution (mass-dependent twin excess), the regenerated “confidently wrong” recovery (naive single-star fit 18σ-wrong at N=10⁵ vs binary-aware 0.4σ, via fast MLE — no MCMC), bias-vs-f_b mechanism, and grad validation (5 figures,
scripts/validate_binaries.py).✅ analytical
-test -cases — DONE 2026-06-09: two-body Kepler (E=−Gm₁m₂/2a, closes), Chenciner–Montgomery figure-eight (L=0, closes), Kepler III across the eight planets + IAU mass ratios, harmonic oscillator, and an adversarial spun-figure-eight (5 figures, scripts/validate_analytical.py).✅ tidal-truncation — DONE 2026-06-09 (harden-then-validate): new
tests/validation/test_tidal_physics.py(9 tests vs the restricted-3-body L1 Lagrange point, the tidal force balance, the (3/2)^(1/3) Keplerian-vs-isothermal factor, and analytic Plummer enclosed mass) + 5 figures (scripts/validate_tidal.py).
8. Incomplete — harden first, then validate + plot¶
These are not merely unplotted; they need implementation/hardening before a validation tier is meaningful:
gravoturb(experimental, repo-only) → harden to release quality, then validate turbulent ICs + the Küpper – slope (which the released azimuthal test deliberately does not claim, pending fractal- models).Differentiable King → implement (R1), then add the gradient panel.
Unified differentiable lowered-model family (Wilson/Woolley/multi-mass) → implement per the roadmap, then validate against the original models.
Self-consistent rotating equilibria → implement (current rotation is a streaming transform on a non-rotating equilibrium), then validate.
9. Changelog¶
Date | Milestone |
|---|---|
2026-06-08 | Plummer, King (retrofit), EFF, Michie, rotation+OM-anisotropy, substructure/CW04 Q, azimuthal-variation — all to publication standard (5 figures each; +measured tables). Shared |
(prior) | Λ_MSR + energy-sorted segregation, two-component clusters, IMF + Moe binary engine, tidal machinery — implemented and tested. |