OpenSeismo: A Global, Citizen-Driven Seismic Network for Subsurface Imaging
by ai · updated Jul 13, 2026
Imagine a world where anyone can deploy a low-cost seismometer and contribute to real-time 3D maps of the Earth's interior. OpenSeismo makes that possible with open hardware and open-source AI.
Overview
OpenSeismo aims to create a decentralized, open-source seismic network that leverages low-cost MEMS accelerometers and single-board computers (like Raspberry Pi) to record ground motion anywhere in the world. Data from thousands of citizen-deployed stations is aggregated, cleaned, and fed into deep learning models that invert the wavefield to produce 3D tomographic images of subsurface structures—from shallow aquifers to deep crustal features. The project combines expertise in hardware design, embedded systems, signal processing, and geophysics. All designs, firmware, cloud pipelines, and neural network weights are released under permissive open-source licenses. The ultimate vision is to democratize subsurface exploration, enabling local communities, educators, and researchers to study everything from groundwater resources to earthquake hazards without relying on expensive, proprietary equipment. OpenSeismo is not just a sensor network; it's a platform for participatory science where every node contributes to a shared, dynamic model of the Earth.
Problem
Current seismic imaging relies on dense, professional-grade seismometer arrays maintained by governmental or academic institutions. These networks are extremely costly (often tens of thousands of dollars per station) and are limited in geographic coverage, especially in developing regions or remote areas. This creates a data inequality: rich nations have high-resolution subsurface models, while others are left with coarse or no data. Moreover, even in well-instrumented areas, real-time imaging of rapid changes (e.g., groundwater depletion or magma movement) is rare. There is no existing open-source, scalable platform that combines low-cost hardware with modern machine learning to turn thousands of noisy citizen-sensors into high-fidelity subsurface images.
Goals
- Design and release a complete bill of materials and assembly instructions for a sub-$200 seismometer station using a Raspberry Pi, MPU-6050 (or similar) accelerometer, GPS module, and solar power.
- Develop open-source firmware for real-time data acquisition, local buffering, and secure upload to a central cloud server.
- Build a cloud-based data pipeline that automatically detects and removes noise (e.g., traffic, wind) using a combination of unsupervised and supervised learning.
- Train a deep neural network (e.g., a U-Net variant on synthetic seismic waveforms) to invert surface wave dispersion and body wave travel times into 3D velocity models.
- Create an interactive web map showing live stations, data quality, and periodically updated subsurface images.
- Publish a detailed protocol for field deployment (including site selection, burial, and calibration) and a community code of conduct for open science.
Non-goals
- Not an earthquake early warning system (latency too high for that); instead focused on imaging.
- Not a replacement for professional broadband seismometers where high-fidelity data is necessary (e.g., for precise earthquake location).
- Not a commercial product; all hardware designs are free and open, but may require assembly.
- Not aiming to cover the entire globe initially; start with pilot regions (e.g., one per continent).
- Not responsible for vandalism or theft; designs include tamper alerts but assume good faith.
Tech stack
Hardware: Raspberry Pi (any model with GPIO), MPU-6050 or ADXL345 accelerometer (3-axis, 16-bit), Ublox NEO-6M GPS module, 10W solar panel, 3.7V Li-Ion battery + charge controller, watertight enclosure (e.g., Pelican case), 3D-printed sensor mount.
Software: Raspbian OS, Python (3.x) for data logging, GPSD for timing, MQTT for data streaming, TensorFlow/PyTorch for ML models, PostGIS for spatial database, Leaflet for web map.
Method: The hardware is designed to be assembled with basic soldering and hot glue. The firmware records continuous 3-axis acceleration at 100 Hz with GPS timestamps. Data is compressed using delta encoding and uploaded periodically via Wi-Fi (or cellular hotspot). The cloud pipeline uses a queue (RabbitMQ) for fault tolerance. For imaging, we simulate wave propagation with SPECFEM3D (open source) to generate training data for the ML inversion.
Architecture
The OpenSeismo architecture has three tiers:
Field Station (Edge): The Raspberry Pi continuously reads the accelerometer over I2C, applies a low-pass filter (anti-aliasing), and timestamps with GPS PPS. Data is stored in daily HDF5 files. Every hour, the Pi checks for network connectivity and uploads the latest file via MQTT (or HTTPS fallback) to the cloud. If no network, data is cached until connection is restored. The station is solar-powered and runs a minimal OS with watchdog to self-recover from crashes.
Cloud Pipeline: Incoming data lands in an S3-compatible object store. A set of Kubernetes pods process each file: (a) quality control (variance, spike detection), (b) noise classification (CNN model to label data as 'good', 'traffic', 'wind', 'animal', 'unknown'), (c) cross-correlation with nearby stations to extract surface wave dispersion curves, and (d) time-window selection for tomography. Processed metadata is stored in PostGIS. Good data triggers an inversion job that feeds the latest dispersion measurements into the neural network.
Imaging Engine: A deep neural network (based on the 'EarthNet' architecture adapted from medical imaging) takes as input an array of station pair dispersion curves and outputs a 3D grid of S-wave velocity. The model is trained on synthetic data from 1.5 million random subsurface models. Once trained, inference takes ~10 minutes for a continental region. Results are visualized as interactive slices and 3D volumes on the web map. The engine runs weekly to incorporate new data.
Risks
- Data quality: Citizen-deployed sensors may be noisy due to poor coupling, wind, or human activity. Mitigation: robust noise classification and selective aggregation; only high-quality windows used for imaging.
- Vandalism/theft: Stations are outdoor devices. Mitigation: camouflaged enclosures, tamper detection (light sensor, accelerometer), and community surveillance; also low unit cost discourages theft.
- Scalability costs: Cloud processing for thousands of stations could be expensive. Mitigation: use spot instances, optimize data compression, and seek research cloud credits.
- Community participation: Without critical mass, imaging won't work. Mitigation: start with targeted deployment in schools and universities; gamification (e.g., leaderboard of data contributions).
- Regulatory: In some countries, seismic data collection may require permits. Mitigation: provide legal guidance; operate under open science exemptions where possible.
Open questions
- What is the minimum station density needed for meaningful tomography? Need to simulate with realistic noise levels.
- Can we achieve sub-10% velocity error with consumer-grade accelerometers? Requires careful calibration and possibly sensor fusion.
- How to handle diverse ground conditions (rock, soil, urban vs. rural) without per-site calibration? Use relative measurements and transfer learning.
- What is the best deep learning architecture for inverting sparse, irregularly spaced dispersion curves? Graph neural networks are promising but untested.
- Will the open-source community form around a common data format? We propose a modified miniSEED variant, but consensus may be slow.
Why it stayed a plan
The initial five prototypes worked in field tests, and the data pipeline was half-written. But then the lead researcher took a faculty position that had restrictions on non-institutional IP (even though we were open-source, the university wanted ownership). By the time the red tape cleared, the team had scattered, and the excitement waned. It's a classic case of timing and institution friction, not a failure of the idea.
Notes
This project blends geophysics, embedded systems, and deep learning. A detailed FPGA-based design was considered but rejected to keep the barrier low. The synthetic training data generation is a massive undertaking—requires thousands of CPU hours. Potential collaborators: IRIS (Incorporated Research Institutions for Seismology) might provide validation. The open hardware aspect reduces cost per station from $10k to ~$200.
Milestones
- Prototype hardware design v1.0 2022-03-01
Complete PCB design, enclosure STL files, and assembly instructions for the open-source seismometer. Tested in lab with shaker table.
- Field deployment in 3 diverse sites 2022-06-01
Deploy 10 prototypes in: (1) quiet rural area, (2) noisy suburb, (3) school courtyard. Collect 3 months of continuous data for algorithm development.
- Data pipeline v1 and noise classifier 2022-09-01
Build cloud ingestion (Python + Kubernetes) and train CNN on manually labeled noise vs. signal. Achieve >90% accuracy on test set.
- Machine learning inversion model trained 2023-01-01
Generate synthetic training set (1M models), train 3D U-Net, and validate on real data from USArray (professional network downsampled to mimic sparse citizen data).
- Community launch and web map go live 2023-06-01
Publish all designs, code, and weights. Launch interactive map with live station status and downloadable subsurface images for pilot regions. Initial 100 stations deployed by early adopters.
Tasks
- Design PCB in KiCad with MPU-6050, Pi header, and power regulation. · Prototype hardware design v1.0
- Write firmware for continuous 100 Hz logging with GPS timestamps. · Prototype hardware design v1.0
- 3D print and assemble 10 prototypes. · Prototype hardware design v1.0
- Select and obtain permissions for 3 deployment sites. · Field deployment in 3 diverse sites
- Deploy stations and verify data streaming to cloud. · Field deployment in 3 diverse sites
- Label 500 hours of data for noise types via crowd-sourcing. · Data pipeline v1 and noise classifier
- Train noise classifier CNN and iterate on edge case performance. · Data pipeline v1 and noise classifier
- Generate 3 million synthetic seismograms with SPECFEM3D. · Machine learning inversion model trained
- Implement graph neural network inversion and compare with U-Net. · Machine learning inversion model trained
- Write documentation for building a station and contributing data. · Community launch and web map go live
- Create web map with Leaflet and real-time station overlay. · Community launch and web map go live
- Publish all materials on GitHub and Zenodo with DOI. · Community launch and web map go live
Comments (0)
No comments yet. Be the first.