A Physics-First Fractal Correction Engine for Earthquake Simulation, Ground-Motion Prediction, and Early Warning
Abstract
A Physics-First Fractal Correction Engine for Earthquake Simulation, Ground-Motion Prediction, and Early Warning Author: Adam L. McEvoy Date: June 2026 Keywords: Fractal Correction Engine, earthquake simulation, ground-motion prediction, rupture directivity, isochrone theory, BSSA14, NGA-West2, finite-fault source, ETAS aftershocks, Coulomb stress, earthquake early warning, closed-loop estimation Abstract I present a complete, physics-first earthquake modelling system built around the Fractal Correction Engine (FCE) — a domain-agnostic, closed-loop estimator that decomposes a system into independently evolving parts, advances each on its own physical baseline, and re-anchors a part only when a discrete event acts on it. I apply the FCE to the entire life cycle of an earthquake: rupture nucleation and propagation, finite-fault radiation and directivity, body- and surface-wave propagation, basin and site response, the aftershock sequence, static stress transfer, the seismic cycle, real-time early warning, and source reconstruction. The system is implemented as the earthquake_fce Python package, deliberately separated into a baseline ground-motion model that never sees a correction, the FCE physics components, and an independent evaluation layer, so that any claimed improvement can be measured against the baseline and against null controls. The whole pipeline is reproducible from an 86-test suite. The baseline is the Boore–Stewart–Seyhan–Atkinson (2014) ground-motion prediction equation (BSSA14), reproduced bit-for-bit from a reference implementation. Using natural-log residuals as the primary metric — the metric appropriate to log-normally distributed ground motion — I show two results. First, a negative result: two corrections often credited with value, basin-edge wave interference and a fractal distance correction, add nothing beyond a trivial scalar recalibration; the interference correction is statistically indistinguishable from a random field, and the fractal correction's apparent gain exists only in mean absolute percentage error (MAPE), not in log space. Second, a positive result: rupture directivity is a genuine, generalizing correction. Tested against null controls, across spectral period, and across seven dip-slip earthquakes by leave-one-event-out cross-validation, directivity behaves exactly as isochrone theory predicts — its skill peaks near a one-second period and concentrates near the fault. A directivity predictor assembled entirely from first principles (eikonal rupture times, isochrone velocity, the Aki–Richards radiation pattern, and the rupture-length amplitude integral) matches and exceeds the published Spudich–Chiou isochrone directivity predictor (IDPv4) on real data using a single self-calibrated coefficient. Finally, an end-to-end simulation composes all eleven parts into one causal earthquake timeline: an M6.8 strike-slip event with a 12.6 s rupture, a +0.169 MPa Coulomb stress promotion beyond the rupture tip, 313 forecast aftershocks in 30 days, and an early-warning magnitude estimate of 6.79 against a true 6.80, issued ~7 s after origin. 1. Introduction 1.1 The ground-motion problem Empirical ground-motion prediction equations (GMPEs) map an earthquake's magnitude, source-to-site distance, and site condition to a ground-motion intensity measure such as peak ground acceleration (PGA) or 5%-damped spectral acceleration SA(T)SA(T). They are accurate on average, but by construction they treat the earthquake as a point and the path as a smooth average. They therefore do not capture the directional, near-source, and finite-fault effects that dominate the largest residuals — exactly the effects that matter most for engineering design and for early warning. The Next Generation Attenuation (NGA-West2) project produced a suite of calibrated GMPEs for shallow crustal earthquakes in active tectonic regions. Among them, the Boore–Stewart–Seyhan–Atkinson (2014) model — hereafter BSSA14 — is widely used for its well-constrained functional form. Despite their empirical robustness, GMPEs share three structural limitations: they average over azimuth (ignoring directionality), they omit or only crudely proxy wave physics (basin effects, interference, rupture directivity), and they carry large unmodelled aleatory variability (σln≈0.5σln≈0.5, a factor-of-1.7 scatter). 1.2 The question this work asks This work asks a sharp question: can a physics-first correction engine add real value on top of a well-calibrated GMPE, and if so, which physics actually matters? The vehicle is the Fractal Correction Engine. The discipline is rigorous evaluation: every claimed improvement is tested against null controls and against held-out earthquakes, in the metric appropriate to log-normally distributed ground motion. The result is a clean separation between corrections that survive scrutiny (rupture directivity) and corrections that do not (basin interference, fractal distance correction) — and a demonstration that the gap between a simple kinematic proxy and the state-of-the-art empirical directivity model is missing physics in the predictor, not unobtainable empirical constants. 1.3 What this paper covers I describe (i) what the FCE is and why it is more than bookkeeping; (ii) how the FCE decomposes an entire earthquake into eleven independently evolving parts composed by an event-driven scheduler; (iii) the mathematics of the baseline GMPE and of every FCE component, with emphasis on the source and directivity physics; (iv) the evaluation methodology and its null controls; (v) the complete set of findings from the latest run of the system, including the negative results, the directivity validation, and an end-to-end earthquake simulation; and (vi) the software and its reproducibility. 2. The Fractal Correction Engine 2.1 What the FCE is The FCE is not a single model; it is an execution architecture for prediction under perturbation. Its core idea is that a complicated system is a composition of independently evolving parts, each of which follows a smooth, deterministic baseline between the discrete events that perturb it. The FCE tracks one instance per part, predicts each part forward along its baseline, and re-anchors a part only when an event acts on it. Every part is described through the same eight-slot interface: Slot Meaning State the variables defining one point on the part's path Baseline the unperturbed generator — the "free" path law Curvature what locally bends the path (a field, gradient, or metric) Perturbations events that re-anchor the path: trigger, update Invariants conserved quantities that anchor and sanity-check the prediction Superposition how two paths combine — the interference rule Observables what is actually measured — the feedback channel Coupling how one part's perturbations enter another part Three properties make the FCE more than bookkeeping: One instance per part, composed at interactions. The number of FCE instances equals the number of independently evolving parts; instances exchange state only at coupling events, not continuously. A closed loop, not an open one. A forecast is provisional until an observation corrects it. Each cycle is predict → compare → correct: the residual between forecast and observation drives both correction and, when persistent and structured, deeper decomposition. The residual is a signal. A residual near zero means the model is complete; a growing residual signals an unmodelled perturbation; a residual that returns with the same structure after re-anchoring says decompose further — grow the tree of FCE instances downward. When a subtree is calm for several steps, the FCE prunes it back upward. 2.2 Perturbation classes and the reversibility gradient Each perturbation belongs to one of a small set of classes that determine how the path bends and whether the change is reversible. The classes used in this work are: class 1 (smooth secular loading, reversible), class 2 (a discrete switch-on or trigger), class 3 (a boundary reflection / refraction / mode conversion), class 4 (dissipative attenuation), class 6 (an irreversible identity change — a "wall"), and class 7 (resonant alignment). An earthquake spans the full reversibility gradient: interseismic loading (class 1, reversible) gives way to coseismic rupture (class 6, irreversible) and postseismic relaxation (class 4, dissipative). Backward prediction through a class-6 wall — for example through liquefaction, where the soil loses rigidity — is reconstruction-only, not a simple time reversal. 2.3 How the FCE applies to an earthquake An earthquake is a layered stack of three engine types: a trajectory engine — the rupture front, the aftershock point process, the Coulomb stress field, the seismic cycle; a wave engine — subsource radiation, body waves, surface waves, basin interference, the site column; a statistical / irreversible engine — the loading–rupture–relaxation cycle, attenuation, and liquefaction. I decompose the earthquake into the eleven parts of Table 1, each an FCE instance with its own baseline, curvature, perturbations, and invariants, composed by an event-driven scheduler (§4). Table 1. FCE decomposition of an earthquake. # Part Engine Baseline Re-anchoring perturbations 1 Rupture front trajectory radial spread at Vr (eikonal) asperities, barriers, branching 2 Subsource radiation wave per-patch phasor sum patch switch-on; directivity alignment 3 Body waves (P, S) wave eikonal ray interface reflection / mode conversion 4 Surface waves wave dispersive ray basin entry; resonance 5 Basin interference wave edge-reflection phasor sum edge reflections 6 Site / soil column wave + statistical 1-D SH resonance nonlinearity; liquefaction (class-6 wall) 7 Aftershock sequence trajectory Omori–Utsu decay each event (ETAS branching) 8 Coulomb stress trajectory coupling static elastic transfer a fault slips 9 Earthqua
Publication details
- Journal / source
- Zenodo (CERN European Organization for Nuclear Research)
- Publication date
- 29 June 2026
- Language
- EN