Playwright for GPS & sensors.
Simulate real-world GPS failures and sensor chaos against your mobile app — deterministically, scriptably, in CI.
$ sensorchaos run gnss/gulf-spoofing-2026 --device emulator-5554
Running scenario: Gulf Spoofing 2026
Device: emulator-5554 Driver: agent Duration: 120s
✓ Connected to agent on port 19847
✓ Scenario started
0s lat=25.197 lng=55.274 acc=5m sats=12
15s lat=25.201 lng=55.285 acc=5m sats=12 [drift+]
30s lat=25.251 lng=55.365 acc=5m sats=11 [spoof detected]
✓ Scenario complete — resilience score: 62/100 How it works
Three steps from install to resilience report.
Add the agent to your debug app
Android: wrap your application context. iOS: call SensorChaos.start() in your AppDelegate or @main struct. Both agents are debug-only — zero impact on release builds.
// Android
SensorChaos.wrap(base)
// iOS — AppDelegate or @main
SensorChaos.start() Run a scenario from the CLI
Pick one of the 14 built-in scenarios (8 GNSS + 6 multi-sensor) or write your own. The CLI connects to your device and replays the incident.
sensorchaos run gnss/gulf-spoofing-2026 Get a resilience report
After the scenario completes you receive a scored report showing how your app responded to each phase of the attack.
resilience score: 62/100
max position error: 8.4 km
signal loss events: 3 Built-in Scenarios
8 GNSS scenarios based on documented real-world interference events (all tiers) + 6 multi-sensor scenarios combining GPS, IMU, barometer, and Wi-Fi degradation (Team tier).
gnss/gulf-spoofing-2026
Gulf Spoofing 2026
Coordinated position spoofing in the Persian Gulf — shifts reported location by up to 30 km.
gnss/gulf-jamming-2026
Gulf Jamming 2026
Broadband L-band jamming causing total GPS signal loss over the Strait of Hormuz.
gnss/baltic-drift-2024
Baltic Drift 2024
Gradual position drift observed in Baltic shipping lanes — slow spoof ramp over 5 minutes.
gnss/baltic-jamming-2024
Baltic Jamming 2024
Intermittent jamming near the Finnish coast — repeated signal loss and recovery cycles.
gnss/urban-canyon
Urban Canyon
Dense multipath reflections in a city center causing accuracy degradation and jumpy positions.
gnss/tunnel-transit
Tunnel Transit
Complete GPS blackout through a 3-minute tunnel followed by cold-start reacquisition.
gnss/accuracy-lie
Accuracy Lie
Receiver reports high accuracy (5 m) while position error is actually 400+ metres.
gnss/flicker
GPS Flicker
Rapid availability oscillation — signal drops in and out every 8–15 seconds.
Built for location-critical apps
When GPS breaks in production the cost isn't a bug report — it's a missed delivery, a wrong pickup, or a failed geofence trigger.
📦
Delivery & logistics
GPS spoofing shifts your driver's reported position by tens of kilometres. Your app assigns the wrong delivery zone, geofences never fire, and ETAs are wrong — before a single line of app code is buggy.
Scenarios for delivery apps →🚗
Ride-hailing & mobility
Accuracy degradation in an urban canyon means pickups fail and surge zone boundaries shift. Simulate multipath reflections and signal loss before your driver app breaks on a real city block.
Browse GNSS scenarios →🗺
Fleet & navigation
Intermittent jamming causes position gaps that break ETA calculations and route reconstruction. Replay documented jamming events from the Baltic and Persian Gulf before they affect your fleet.
Scenarios for fleet apps →✈️
Drones & autonomy
GPS-denied environments aren't edge cases for drones and robots. Test sensor fusion resilience under coordinated jamming and spoofing — the attack signatures documented in active conflict zones.
Scenarios for autonomy →Simple pricing
Start with a 14-day free trial. No credit card required.
Ready to test your app's GPS resilience?
Start a 14-day free trial. No credit card required. Works with any Android app or iOS Simulator in minutes.
Start Free Trial