Did it emerge, or did you put it in?
A harness that runs four controls against your own training script and prints the differential. Every control is owned in some field — this is tooling, not a method, so cite the owners. What it adds is the bundle: one plugin interface, all four controls, one verdict.
The four controls
Stateless generator
Does the same X come out of data with the physics removed?
Owners: Elsayed & Cunningham 2017; Touboul & Destexhe 2017; Hewitt & Liang 2019; Adebayo et al. 2018
Non-solution generator
Does data that violates the claimed law fit as well, with the violation reproduced?
Owners: Lipsitch–Tchetgen–Cohen 2010; Vafa et al. 2025; Krishnapriyan et al. 2021
Prior swap at fixed fit
How much of X moves when only the regulariser changes, at equal loss?
Owners: Rashomon sets (Breiman 2001; Fisher–Rudin–Dominici 2019); Kallioinen et al. 2023; Gruver et al. 2022
Family distance + conditioning
How far is X from any member of the claimed solution family vs. from its generator; is the parametrisation ill-conditioned?
Owners: Gutenkunst et al. 2007; Transtrum–Machta–Sethna 2010/11; Raue et al. 2009
Plugin interface
generators = {"real": f(seed)->data, "stateless": ..., "nonsolution": ...} # 'real' required
priors = {"paper": spec, "alternative": spec} # first = the paper's
def fit(data, prior, seed) -> (output, fit_quality) # lower fit_quality = better
def feature(output) -> np.ndarray # the summary of X
def family_distance(output) -> float # optional
def generator_distance(output, data) -> float # optional
condition_number = float | callable # optional
fit_tolerance = 0.25 # "equal fit" tolerance for C3python emergence_audit.py --plugin my_plugin.py --seeds 5 --out audit.json
It trains models, so it runs locally rather than in the browser.
Worked example · the AdS/deep-learning reproduction
The --demoflag audits a faithful reproduction of Hashimoto et al. (2018), where a network's layer weights are read as a bulk spacetime metric. Download the files below into one folder, keeping adsdl_plugin.py in a plugins/ subfolder, or fetch them in one go:
mkdir -p emergence-audit/plugins && cd emergence-audit
base=https://neurogenesys.ai/tools/emergence-audit
for f in emergence_audit.py adsdl_lib.py einstein_residual.py demo_adsdl_audit.json README.md plugins/adsdl_plugin.py; do
curl -fsSL "$base/$f" -o "$f"
done
pip install numpy torch
python emergence_audit.py --demo # 3 seeds, full recipe, ~4 minWhat the reference run found:
- C1 passes — data with the bulk removed give a different metric (7.1 seed SDs apart).
- C2 fails — non-solution data fit as well; the pipeline does not forbid the alternative.
- C3 fails— swapping the smoothness prior for an Einstein-residual prior at equal fit moves the metric toward the solution family: the moved part is the prior's, not the data's.
- C4 fails — the output is closer to another family member than to its generator, under a condition number of 3.4 × 10⁶.
Download
- emergence_audit.pythe harness · requires numpy
- plugins/adsdl_plugin.pydemo plugin · requires torch
- adsdl_lib.pyAdS/DL reproduction
- einstein_residual.pysolution-family distance
- demo_adsdl_audit.jsonreference output of --demo
- README.md
