Published results reproduced with the engine¶
Each folder reproduces the headline results of one paper (or models one real beamline) with UltrafastEngine, and says plainly what agrees, what does not and why. Every folder has the paper's claims, our setup, plots with the published formula or numbers drawn on the same axes, a short commentary and a comparison table.
| folder | paper | topic | result | headline numbers: published vs ours |
|---|---|---|---|---|
| kane-1993-frog | Kane & Trebino, IEEE JQE 29, 571 (1993) | FROG: SD / PG / SHG traces | reproduced with the engine's self-diffraction gate and retrieval | chirp-rate slopes 4/3 (SD) and 2/3 (PG): 1.3333, 0.6667; SD retrieval sign right on 6 of 6 seeds (GDD within 4.2 % of +6247 fs²); SHG trace symmetric: 1e-15 |
| kida-2014-double-frog | Kida et al., Opt. Express 22, 2014 | double FROG: removing the time-direction ambiguity | partly reproduced (engine XFROG and multi-trace retrieval; the two-trace case differs) | double FROG finds the right time direction in 16 of 16 starts (paper 6 of 6; partly by construction); XFROG error ratio wrong vs right reference 2.06 (paper 1.8-2.5); two-trace retrieval lands in the twin in 13 of 16 starts; substrate GDD 18.2 vs 25.6 fs² (paper's path unspecified) |
| michelson-1887-ether-null | Michelson & Morley, Am. J. Sci. 34, 333 (1887) | Michelson interferometer readout | readout reproduced (the null is built in, so the check is circular) | 0.4 fringe for D = 11 m: 0.4000; equal arms: 0; white-light envelope to 2e-5 |
| perot-1899-multiple-beam-interference | Perot & Fabry, Astrophys. J. 9, 87 (1899) (the PDF supplied as 'Michelson 1892') | Fabry-Perot etalon fringes | reproduced | Airy coefficient 80: 80; coincidence period 311.9 / 14.56515 / 4.759901: 311.914 / 14.56515 / 4.759902 |
| treacy-1969-grating-pulse-compression | Treacy, IEEE JQE 5, 454 (1969) | grating-pair compressor | engine matches the paper's equations; four printed numbers do not | GDD, delay vs eqs. 7, 8: 1e-5; delay 0.58 ps/cm printed, eq. 5a and engine 0.610; optimum 10 cm printed, 9.51 cm; eq. 17 (TOD) 1.76x the exact value; angular dispersion per 100 Å 1.31e-2 vs ~2e-2 rad (scan reading) |
| shimizu-1967-cs2-broadening | Shimizu, Phys. Rev. Lett. 19, 1097 (1967) | SPM in liquid CS2 with delayed response | qualitatively reproduced (n2, intensity, τ not given: assumed); built-in CS2 cross-checked | fringe spacing grows to the extremity (1.02 of the stationary-phase formula); red side 0.72-0.95 (paper ~0.9); mean period 6.8 vs 10 ± 3 cm⁻¹; engine equals the paper's model to 6e-4 |
| liu-2013-ner-cs2-pulse-cleaner | Liu et al., 2013 | NER pulse cleaner in CS2 | reproduced for the model; cleaned width not | Eq. (1) maximum transmissivity 0.667 (paper ~0.66); contrast gain 3.9 vs 3.7 orders; optimum angle 32.5°; width 158 vs ~60 fs (CS2 GDD in the 1-D model); built-in CS2 gives 171 fs and a higher optimum (response values unverified) |
| schulte-2016-mpc-fused-silica | Schulte et al., Opt. Lett. 41, 4511 (2016) | multi-pass cell, fused-silica plate | reproduced (cell geometry assumed; launch beam from cellMode) |
bandwidth 13.6 / 14.2 / 17.2 nm vs 13.4 / 13.5 / 16.1 nm; autocorrelation 207 vs 200 fs; main peak 79 vs ~75 %; the 514 mm air-gap reading is unstable (50 nm, B = 135 rad) |
| kaur-2024-mpc-ner-xpw | Kaur et al., J. Phys. Photonics 6, 015001 (2024) | NER in a multi-pass cell (XPW not modelled) | partly reproduced (NER ceilings and XPW angle law; cell and B of the optimum do not match) | efficiency ceiling 57 / 68 % vs 58 / 69 %; pressure and B of the optimum differ (paper ~350 mbar, B ≈ 6); XPW angle law with built-in BaF2 (peak at 25.5° from [100] in a [011] cut = 64.5° from [01-1]); XPW efficiency 26-53 % vs 57-65 % depending on the assumed beam radius |
| ma-2018-single-shot-cross-correlator | Ma et al., 2018 | single-shot cross-correlator for contrast | instrument window and resolution reproduced; crystal physics and artefacts not simulated | window 32.4 / 37.6 ps/cm and resolution 0.53 / 0.79 / 1.05 ps (1 / 1.5 / 2 mm) equal eqs. 1-2 to 1e-6; BK7 ghost spacing 11.63 ps; replica II 3.7e-6 vs 2.7e-6, replicas I and III 0.5 and 0.95 decades above the paper (plate angle and coating unspecified) |
| maker-1962-dispersion-focusing-harmonics | Maker et al., Phys. Rev. Lett. 8, 21 (1962) | Maker fringes, focused SHG | partly reproduced | quartz fringe 13.71 vs 13.9 µm; KDP θ0 50.55° vs 52 ± 2°; d_eff follows sin 2φ at all 19 azimuths (ratio to the textbook form 1.0238 = sin(θ+ρ)/sinθ); focusing gain 0.54 of the 1/area law vs the paper's ×30 |
| dubietis-1992-chirped-pulse-parametric-amplification | Dubietis et al., Opt. Commun. 88, 437 (1992) | chirped-pulse parametric amplification in BBO | partly reproduced | 67 fs limit, 24x compression, 0.9 GW agree; OPA stage gain 6.9 at the 2° crossing (15.8 collinear); fibre width 264 vs 155 cm⁻¹, grating 202 vs 170 mm, compressed 129 vs 70 fs do not |
Each README says first whether the PDF could be read. Several are scans (Michelson-Morley, Perot-Fabry, Treacy, Shimizu): numbers
that could not be read are marked UNVERIFIED in paper.json and are soft checks. Where a paper does not give its inputs, the
README lists the assumption. The papers' own figures are never reproduced here; our plots carry the published numbers or formula.
Each README ends its comparison with a section How well the science matched: per quantity, whether it agrees and the most likely reason (inputs the paper does not give, a paper erratum, an engine limitation or an engine bug).
Run them¶
python3 python/tools/build_engine.py # the engine for Python
python3 build/paper_check.py # every folder, fast tier (minutes); exit 1 if a hard check fails
python3 build/paper_check.py kane --full # one folder, full tier
cd docs/papers/kane-1993-frog && python run.py --tier full --figures # rewrite its figures
The harness runs each folder's run.py, reads results/numbers.json and evaluates checks.json: number (a value within
a tolerance), ordering (a < b) and location (the maximum of a curve within a window). Checks on numbers that could not
be verified in the paper are soft: reported, never failing.
Add a paper¶
In Claude Code, /replicate <paper URL, DOI or title> runs the paper-replicator agent: it reads the paper, extracts the
inputs and headline numbers with their locations, builds the smallest faithful system, compares and writes the folder. By
hand, copy a folder and keep the layout:
docs/papers/<author>-<year>-<topic>/
paper.json citation, DOI, whether the full text was read, every reference number with its location
run.py builds and runs the system (Python API); writes results/numbers.json; figures with --figures
checks.json the comparison with the published numbers
figures/ our results with the published curve or numbers on the same axes (each under 300 kB)
README.md claims, setup, plots, commentary, comparison table, what does not reproduce
paperlib.py provides the command line (--tier, --figures), write_numbers and the figure style. Quote numbers with
their location; never copy a paper's text, figures or PDF.