Inspiration
An EOG engineer told us every site runs different software, and she only finds out a sensor died when its data stops coming. At 3am a failed pump means a tank filling toward shutdown, and someone has to decide fast: call a truck, shut in a well, or let it trip.
What it does
You point Avon at any site's data folder (EOG's network.json, ops.json and telemetry.csv) and it lists every problem happening right now: failed pumps, worn pumps and pipeline leaks. We don't change any code between sites. For each failed pump it shows when the tank hits shutdown, the cheapest fix, and why the other options lose. In EOG's opening example, one truck costs $905, shutting in one well late costs $1,958, and doing nothing costs $5,016.
Avon also checks every tank level against physics (water in minus water out) and flags sensors that are dead, drifting or lying, with the evidence spelled out: "Physics says +9.1 pts/h. Sensor says 0." EOG's real data has no broken sensors, so in the demo a judge's phone injects the faults and every one is labeled SIMULATED.
If a sensor might be lying because someone is inside the network, the team moves the case to the Darkroom. That's an incident room on an isolated local network with a tamper-evident, hash-chained log. Delete a log entry and every screen shows ROLLBACK DETECTED.
How we built it
Next.js and TypeScript, with a self-hosted SpacetimeDB backend. We're moving the detection and planning engine into reducers so every screen subscribes to the same live tables. We prototyped the detector and the cost planner in Python first and checked them against EOG's answer keys. The detector found 23 of 23 labeled events with 0 false alarms on the full week, and the planner matched the reference plan in 20 of 20 cases. We're three first-time hackers and we built this with AI coding agents.
Status
This is our initial draft. We're finishing the console, the Darkroom screens and the SpacetimeDB wiring tonight, and we'll update this page with what we actually verify.
Built With
- next.js
- python
- react
- spacetimedb
- typescript