IMU (Remote)

Pair a phone to stream its inertial measurement unit. Accelerometer, gyroscope, and magnetometer readings are sent over a WebRTC data channel and plotted live below.

Enter the 4-digit code shown on the host laptop to use this phone as its sensor.

Pair your phone

Code — — — —

Generating session…

On your phone, open sensingstudio.org/imu-remote and enter this code.

Join a session

Enter the 4-digit code from the host laptop:

Accelerometer (m/s²)

Waiting for phone…

Gyroscope (°/s)

Waiting for phone…

Magnetometer (μT)

Waiting for phone…

A true magnetometer feed requires Android with the Generic Sensor API; on iOS the only available channel is compass heading, shown here as a single trace.

Tilt: complementary filter (°)

The accelerometer reads the gravity vector, so it gives clean tilt at rest but is corrupted by linear motion. The gyroscope reads angular rate, smooth and responsive but its integral drifts. A complementary filter trusts the gyro at short timescales and the accel at long ones: θ = α · (θprev + ω · Δt) + (1 − α) · θaccel.

GYRO ω angular rate °/s θprev + ω · Δt integrate — true θ smooth · drifts over time × α ≈ 0.98 ACCEL ax,ay,az gravity vector m/s² atan2(a) → θaccel — true θ noisy · anchored to truth ×(1−α) ≈ 0.02 + θ smooth + anchored feedback: θ becomes θprev on the next sample

Slide α toward 1 to favour the gyro (smooth, drifty); toward 0 to favour the accel (jittery, no drift).

0.980

Pitch (rotation around phone X — tilting top edge up/down)

Waiting for phone…

Roll (rotation around phone Y — tilting left/right edge down)

Waiting for phone…

Try shaking the phone in place — the accel trace jumps around while gyro stays calm. Now hold it steady at an angle for a while — the gyro trace slowly walks away from truth while accel stays anchored. The complementary trace stays both smooth and anchored.

Orientation (°, from DeviceOrientationEvent)

α (yaw / Z)

β (pitch / X)

γ (roll / Y)

Waiting for phone…

3D box

Waiting for phone…
Move your phone to rotate the box. Recenter sets the current pose as the new identity.

Racing

Press Start to drive…
Lap 0 Time 0:00.00 Best OFF TRACK

Hold the phone roughly in front of you and tilt it like a steering wheel. Stay on the grey strip for full speed; leave it and you slow down. Cross the chequered line at the bottom to record a lap.

Display

5.0 s
— Hz

Sensor Mode

This phone streams its IMU readings to the laptop. Tap Start, grant motion access, and keep the screen on.

Status

Tap Start to enable sensors and connect.

iOS will prompt for motion permission. Some browsers expose the magnetometer only over HTTPS.