Inspiration

Geothermal energy is growing fast near Milford, Utah. The teams working there track tiny earthquakes with sensors deep underground. Everyone else, like a county official, a reporter, or someone who lives nearby, only gets the public earthquake catalog. On September 10 that catalog listed 43 quakes. We wanted to find out how much the public seismic network was actually picking up that never made the list.

What it does

Hidden Quakes takes one day of free public seismometer data and finds the small quakes hiding in it.

  • The public catalog lists 43 events. From the same public data we found 654 candidate events.
  • We recover all 43 of the known ones.
  • 32 events pass our strictest quality bar, and 14 of those aren't in the public catalog.

Open the site and press Space. The ground turns see-through and 654 candidate events light up underground. Press H to jump to one the public catalog doesn't have, and you can see the actual seismograms behind it. It was picked up by 23 stations, and on each one the neural network's P and S wave marks line up with where the physics says they should be. Press G for a guided tour. You can also download the whole catalog or share a link to any event.

How we built it

  • A neural network called PhaseNet reads raw seismograms from about 24 public stations and marks every P and S wave it hears.
  • We group those marks across stations and locate each event in 3D with our own locator, using the published velocity model for the site.
  • Each event gets a quality grade, calibrated against the 43 known quakes.
  • We also trained our own model this weekend, which we call the Scramble test. We scrambled every station's clock to create 1,880 fake decoy events, then trained a classifier to tell real events from decoys. On data it had never seen it scored an AUC of 0.99, and every event on the site shows its score.
  • The website is built with Next.js and React Three Fiber, with real terrain and the borehole sensors drawn at their true depth.

How we know it's not noise

  • It finds all 43 known quakes.
  • We scrambled every station's timing 20 times. Each time the pipeline found about 94 random events, and none of them passed our strict bar.
  • A classic detector called STA/LTA, run on the same data, produced zero strict events.

Challenges

  • Depth is hard to pin down with only a few stations. We tested our locator on fake quakes placed under the real station layout, and in the best case it gets depth within about 59 meters.
  • Borehole sensors hundreds of meters underground record very differently from surface stations, so each type needed its own processing.
  • We wanted to stay honest, so every number on the site comes straight from the data, and we call them candidate events instead of confirmed earthquakes.

Accomplishments that we're proud of

  • Going from raw public data to a tested earthquake catalog in one weekend
  • The reveal, where 43 events turn into 654 in about five seconds
  • Training our own model that holds up on data it has never seen

What we learned

The neural network hears waves one station at a time. Most of the work was everything after that: grouping the marks into events, locating them, and deciding which ones to trust.

What's next

We want to run it on more sites and more days, add a live mode that updates every 10 minutes, and sharpen the locations of the best events.

Built by the four of us over the weekend, with AI coding assistants helping write the code. Everything uses public data and published models.

Built With

Share this project:

Updates

Submission history