
Tsunami Wave Propagation

Originally centered on the prime meridian, this edit reorients A.K Johnston’s 1852
geological map by splicing its edges into a North Pacific–centric view.
See the original map at the David Rumsey Map Collection.
A Real-Time Journey Across the Pacific
On Tuesday July 29th 2025, as Hawaii’s tsunami alert became a warning I found myself glued to tide station data pages attempting to get a sense of what might be coming our way from the Kamchatka Peninsula earthquake.
Though across the Pacific, this tsunamigenic earthquake was the sixth most powerful recorded by seismometers and strongest in over a decade. It was both preceded by and lead to volcanic eruptions, and local tsunami impacts.

(Fig 1, Lockridge, 1990)

Fortunately, impacts in the islands were minimal. So instead of diving into disaster response I dove into visualizing the recent wave propagation. After staring into the single station data for some time, I wanted to build something that would show the propagation at multiple sites simultaneously, a sort of oscilloscope across space-time.
The result is tsunami.supersistence.org, an interactive dashboard that animates ~24 hours of tsunami wave propagation using data from NOAA monitoring stations.
You can “watch” as waves travel from the earthquake epicenter across 5,000 kilometers to the island chain. The animation panels show the same same data in a few different views, station locations, wave deltas (observed – predicted wave height) vs distance in said oscilloscope-style display, and individual station records as well.
Built from NOAA CO-OPS API data for actual water level measurements, the 1-minute time resolution across 7 monitoring stations covers the path to and through the islands.
The Technical Journey
Each natural hazard presents its own challenges with prediction. For tsunami the complex relationship between earthquake (or other initiating event), bathymetry, tides, and coastal geography make prediction of the size of wave and scale of potential impact difficult.
The project started with the oscilloscope-style visualization, with the map view and individual station records added for spatial and temporal context, respectively. Initially built with server-side callbacks, the production site encountered performance issues: rapid, successive animation requests overwhelmed the server, resulting in rate-limited responses, skipped frames, and choppy playback.
The wave data created waves of callbacks that began interfering with one another, a behavior shaped by the server’s network topology, its bathymetry, if you will.

The “bathymetry” effects intensified with the visible parts of the visualization itself, its coastal zone, where the turbulence finally surfaced.
I had made a tsunami.
Just as undersea and coastal topography shape real tsunami waves, the architecture of the server and visualization charts, with their routing paths, callback chains, and display flow, contributed to a kind of compounding digital wave interference. The digital disturbance was the result of an interplay between backend architecture and frontend design.
To solve this, the architecture shifted to a client-side model. Animation frames are now pre-processed into JSON, loaded once, and rendered locally in the browser allowing smooth, uninterrupted playback.

Too remind a bit of the drama of the experience, the clock starts once the data loads. Play/pause button and speed controls allow for some user interaction.
While clearly drifted far from my field, some future geospatial analysis could seek patterns on time lag between origin and arrival and wave interactions with costal features.
Try It Out!
Visit tsunami.supersistence.org to watch the waves.
For the technicaly inclined the code is open source on GitHub.
I’ll be indexing these little (often vibe coded) web app projects on the soon updated Maps page.