Published in: JavaScript

Was it just you or did the ground really shake? Your iPhone, iPad and most newer mobile phones can work as basic seismometers, the same instrument that is used to measure the magnitude of earthquakes and volcanoes. You don’t need to install any apps, just the built-in web browser would suffice.

OK, try this. Launch Google Chrome or the Safari browser on your mobile phone (or tablet) and then open this page. You should see a continuously moving waveform but if you slightly shake or tilt your mobile device, simulating seismic activity, the graph will capture these movements in real-time much like a seismograph.

The seismic intensity will vary depending on how vigorously (or slowly) you are shaking the phone (see the following screenshot) and will also change based on the orientation of the device. And you’ll be surprised to learn that this basic seismograph is written using simple JavaScript.

Most newer mobile devices have built-in accelerometers and gyroscopes and as you move the physical hardware, the changes in the orientation of the device and acceleration are detected by the browser which are then mapped into the seismograph.

The orientation and motion data are in turn captured by the HTML5 DeviceOrientation and DeviceMotion events of the browser. This works mostly on mobile devices but if you are using Google Chrome on the desktop, you can turn on the Accelerator option under Sensors inside Chrome Dev Tools to simulate motion.

Update: The code was originally published on isthisanearthquake.com in 2011 but the domain is no longer available. A mirror is located on ctrlq.org.