Fingerprint Classification of Regular Black Hole Models via the Joint Exterior–Interior ISCO Invariant and Kerr–Hayward Precision Forecasts
Stephen Nagy — Independent Research, Cleveland, Ohio — 2026
BHCodex classifies regular black hole models through a jointly computed exterior–interior ISCO invariant fingerprint. For each spherically symmetric regular metric, it computes:
- K_norm(u) — the ISCO orbital frequency normalized to the Schwarzschild baseline
- C_norm(u) — the interior volume growth constant from the VIG framework, normalized to Schwarzschild
The joint curve (K_norm(u), C_norm(u)) is anchored at the shared Schwarzschild point (1,1) and traces a model-specific path as the regularization parameter u increases toward extremality. This is the fingerprint.
The framework also extends to rotating spacetimes via the Kerr–Hayward metric, computing the required observational precision σ_K(a*, u) needed to detect regularization at any spin and mass scale.
| Result | Value | Layer |
|---|---|---|
| Fingerprint Slope Theorem | α_n = −4ⁿ/(2n²−n+1), independent of coefficient c | A |
| Hayward slope (n=4) | −256/29 ≈ −8.828 | A |
| Bardeen / Simpson–Visser slope (n=3) | −4.000 (first-order equivalent) | A |
| Dymnikova exterior signature | K_norm = 1.000000 across full scanned range | A (numerical) |
| Kerr–Hayward sensitivity amplification | ~74× from a*=0 to a*=0.99 | A |
| EHT current (5%) detection threshold | a* ≳ 0.99, u ≳ 0.046 | B |
| ngEHT (1%) detection threshold | a* ≥ 0.90 | B |
| LISA/EMRI (0.1%) detection threshold | a* ≥ 0.50, u ≥ 0.007 at a*=0.99 | B |
Layer A = computed geometric results from metric functions.
Layer B = observational interpretation requiring instrument precision assignments.
git clone https://github.com/SNagy3/BHCodex.git
cd BHCodex
pip install -r requirements.txt
# === Full pipeline (ISCO + VIG fingerprint atlas) ===
# Works from repo root — uses package import for capital BHCodex/ folder
python -m BHCodex.bhcodex_run_all \
--catalog Catalog/bhcodex_master_catalog.csv \
--output results/bhcodex_v1 \
--n 400
# === Kerr–Hayward atlas ===
python -m BHCodex.bhcodex_kerr_atlas \
--catalog Catalog/bhcodex_master_catalog.csv \
--output results/bhcodex_kerr \
--n 200
# === Precision forecast surface ===
python -m BHCodex.bhcodex_precision_forecast \
--atlas results/bhcodex_kerr/bhcodex_kerr_kerr_atlas.csv \
--output results/bhcodex_kerrBHCodex/
├── README.md
├── LICENSE
├── requirements.txt
├── CITATION.cff
│
├── BHcodex/ # Core pipeline
│ ├── bhcodex_models.py # Metric functions + MODELS registry
│ ├── bhcodex_build_atlas.py # ISCO + VIG scanner, dual anchor gate
│ ├── bhcodex_compare.py # Pairwise fingerprint separation
│ ├── bhcodex_project_catalog.py # Catalog projection onto atlas
│ ├── bhcodex_run_all.py # Full pipeline CLI
│ ├── bhcodex_kerr_atlas.py # Kerr–Hayward exterior atlas
│ ├── bhcodex_kerr_residual.py # u upper limits from catalog
│ └── bhcodex_precision_forecast.py # σ_K required-precision surface
│
├── Catalog/ # Data outputs
│ ├── bhcodex_master_catalog.csv # 49-object cross-scale survey
│ ├── bhcodex_v1_atlas.csv # 4-model fingerprint atlas (804 rows)
│ ├── bhcodex_v1_compare_pairs.csv
│ ├── bhcodex_v1_catalog_projection.csv
│ ├── bhcodex_v1_anomaly_log.csv
│ ├── bhcodex_v1_claim_ledger_stub.csv
│ ├── bhcodex_v1_manifest.csv
│ ├── bhcodex_kerr_kerr_atlas.csv # Kerr–Hayward atlas (707 rows, 7 spins)
│ ├── bhcodex_kerr_atlas.csv
│ ├── bhcodex_kerr_falsifiability.csv
│ ├── bhcodex_kerr_precision_surface.csv
│ └── bhcodex_kerr_u_constraints.csv
│
├── Figures/ # All publication figures
│ ├── bhcodex_v1_fingerprint.png
│ ├── bhcodex_v1_both_invariants.png
│ ├── bhcodex_v1_compare_figure.png
│ ├── bhcodex_v1_catalog_figure.png
│ ├── bhcodex_kerr_K_vs_u.png
│ ├── bhcodex_kerr_K_vs_spin.png
│ ├── bhcodex_kerr_kerr_K_vs_u.png
│ ├── bhcodex_kerr_kerr_K_vs_spin.png
│ ├── bhcodex_kerr_spin_K_atlas.png
│ ├── bhcodex_kerr_precision_surface.png
│ ├── bhcodex_kerr_precision_crosssections.png
│ ├── bhcodex_kerr_falsifiability.png
│ └── bhcodex_kerr_u_constraints_figure.png
│
└── Paper/ # Submission package
├── bhcodex_paper_final.tex # PRD revtex4-2 source
├── bhcodex.bib # 17 BibTeX entries
└── bhcodex_paper_final.pdf # Compiled draft
The joint curve (K_norm(u), C_norm(u)) for all four models:
Hayward (n=4, slope ≈ −8.828) and Bardeen (n=3, slope = −4) are clearly separated. Bardeen and Simpson–Visser overlap at small u (identical first-order slope, different at O(u⁴)). Dymnikova traces a vertical segment — K_norm ≡ 1 across the full scanned range.
Required K_norm fractional precision to detect Kerr–Hayward regularization at 1σ:
Darker = easier to detect. Instrument horizon lines: EHT 5% (red), ngEHT 1% (blue dashed), LISA/EMRI 0.1% (green dotted).
Metric functions f(r,u) for Hayward, Bardeen, Dymnikova, and Simpson–Visser. The MODELS registry contains extremal parameters, slope theorem values, and plot styling for each model.
Scans each model over its physically allowed deformation range. Computes K_norm(u) via ISCO minimization and C_norm(u) via interior critical-point optimization. Implements the dual Schwarzschild anchor gate — halts if either invariant deviates from 1 at u=0 beyond tolerance.
Pairwise fingerprint separation on a shared K_norm grid using PCHIP interpolation. Computes max|ΔC|, RMS ΔC, and signed area for each non-degenerate pair.
Kerr–Hayward exterior atlas over (u, a*) parameter space. Dual anchor gate verifies standard Kerr recovery at u=0 for all seven spin slices to < 3×10⁻⁸ relative error.
Computes the required-precision surface σ_K^req(a*, u) = ΔK_norm(a*, u) / [N · K_norm(a*, 0)]. Generates the falsifiability table and three publication figures.
numpy>=1.24
scipy>=1.10
pandas>=2.0
matplotlib>=3.7
If you use BHCodex in your research, please cite:
@article{Nagy2026BHCodex,
author = {Nagy, Stephen},
title = {Fingerprint Classification of Regular Black Hole Models
via the Joint Exterior--Interior {ISCO} Invariant
and {Kerr--Hayward} Precision Forecasts},
year = {2026},
}
@misc{Nagy2026BHCodexSoftware,
author = {Nagy, Stephen},
title = {{BHCodex} v1.0: Fingerprint classification of
regular black hole models},
year = {2026},
doi = {10.5281/zenodo.19152410},
url = {https://github.com/SNagy3/BHCodex}
}This work builds on:
- BHRuler v2.1 — cross-scale black hole survey: SNagy3/BHRuler, DOI: 10.5281/zenodo.18894798
- VIG-Framework v5 — interior volume growth: SNagy3/VIG-Framework
MIT License. See LICENSE.
Stephen Nagy — Independent Researcher, Cleveland, Ohio
GitHub: @SNagy3

