Skip to content

SNagy3/BHCodex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BHCodex

Fingerprint Classification of Regular Black Hole Models via the Joint Exterior–Interior ISCO Invariant and Kerr–Hayward Precision Forecasts

DOI License: MIT Python 3.9+

Stephen Nagy — Independent Research, Cleveland, Ohio — 2026


What this is

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.


Key results

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.


Quickstart

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_kerr

Repository structure

BHCodex/
├── 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 fingerprint diagram

The joint curve (K_norm(u), C_norm(u)) for all four models:

Fingerprint diagram

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.

The precision surface

Required K_norm fractional precision to detect Kerr–Hayward regularization at 1σ:

Precision surface

Darker = easier to detect. Instrument horizon lines: EHT 5% (red), ngEHT 1% (blue dashed), LISA/EMRI 0.1% (green dotted).


Modules

bhcodex_models.py

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.

bhcodex_build_atlas.py

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.

bhcodex_compare.py

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.

bhcodex_kerr_atlas.py

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.

bhcodex_precision_forecast.py

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.


Dependencies

numpy>=1.24
scipy>=1.10
pandas>=2.0
matplotlib>=3.7

Citation

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:


License

MIT License. See LICENSE.


Contact

Stephen Nagy — Independent Researcher, Cleveland, Ohio
GitHub: @SNagy3

About

Fingerprint atlas and precision forecasts for regular black hole models via the joint exterior–interior ISCO invariant and Kerr–Hayward extension

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors