SciencesLoop Open to AI Engineer roles

Scientific ML T&E · governed synthetic benchmark

What survives when the gamma spectrum shifts?

Choose a model and a labeled-spectra budget, then compare in-envelope validation, a frozen compound shift, background false alarms, and unknown-isotope rejection. The point is not the prettiest score. It is the trade-off exposed when one threshold has to survive all four lanes.

Independent prototype · synthetic classifier benchmark · no hardware or field deployment

Training and evaluation spectra are synthesized with PyRIID from public GADRAS-derived seed signatures in Sandia's BALDR study. N42 files are used only for parsing and replay compatibility.

  1. 01Public seed signatures
  2. 02Synthesis + disjoint splits
  3. 03Five limited-data models
  4. 04Frozen shift + rejection tests
  5. 05N42 / API replay prototype

FIELDGAMMA / FORMAL-V1-20260825

Inspect the frozen result

Model settings and abstention thresholds were fixed before protected-test evaluation. These controls read saved results; they do not retrain anything.

HASH-BOUND
Model
Labeled spectra per isotope
In-envelope validation macro-F1
Frozen shifted-test macro-F1
Background false-alarm rate
OOD unknown-rejection rate
Validation
Compound shift
Background false alarm
Unknown-isotope rejection
T&E reading

Random Forest · 25-shot

Loading the hash-bound result…

RUN LEDGER

What this run left behind

60pre-registered fits
3random seeds
96,000prediction rows recomputed in R
1.11e−16maximum Python / R difference
10 / 10Python tests passing
76.1 sformal-run time

ANSI N42.42 / PUBLIC FIXTURE

N42 interoperability lane

My parser and SandiaSpecUtils agree on the same public Mn-56 fixture: channel counts, total counts, and live time match exactly, while calibrated energy edges agree within 0.0003 keV. That validates file interoperability on one fixture—not measured classifier performance.

  • 16,384 channels
  • 698,514 total counts
  • 1,800 s live time
  • ≤ 0.0003 keV edge difference