Drag across the plots, or click an event, to move through time.
Upper: geometric moment released during the current year, coseismic plus afterslip, per unit fault area (ṁd, as in Figures 3–5), scaled to each year's maximum with a power-law colour stretch (|ṁ|0.3) so that slow afterslip stays visible next to coseismic slip. Lower: cumulative moment deficit md: loading since t = 0 minus release. Red is stored moment and blue is where recent ruptures released more than has since accumulated. Circles show the rupture extent of events in the current year.
Loading rate with the centroids of all events so far, sized by magnitude, as in Figures 8 and 10. Black discs number the first five M ≥ 7 events.
About this simulator
The simulator is a line-by-line TypeScript translation of the Python code used in the paper. It runs in a Web Worker, so nothing is sent to a server. The time loop, the moment-budget rate, the maximum-entropy location probabilities, the slip generator and the afterslip and aftershock kernels all follow the original. The random number generator is different from NumPy's, so a given seed does not reproduce the exact sequence shown in the paper, but ensembles agree statistically. Across 30 seeds the event counts, numbers of M ≥ 6 and M ≥ 7 events, recovered b-value, afterslip fraction and moment balance match the Python code within their sampling uncertainty. At a 1 km grid a 1,000-year sequence takes about 0.1 s; at the paper's 0.5 km grid it takes about 0.3 s.