A software system successfully located a hidden carbon monoxide detector within a 40cm radius by turning a collection of household devices—including iPads, a phone, a MacBook Pro, and a Surface Ultra—into a distributed microphone array. Developed by Simon Willison using an AI coding agent, the project demonstrates how acoustic triangulation can solve practical problems in cluttered environments without manual searching.
The Mechanism of Acoustic Triangulation
Beep Locator operates by coordinating multiple 'listeners' through a Python web server. Each listener, running in a mobile or desktop browser, records a 60-second buffer of audio and uses a Fast Fourier Transform (FFT) and a high-pass filter to detect potential beeps.
To align these recordings, the server triggers a short 'sync chirp' from the device with the lowest round-trip time. Every listener then uploads a small clip (roughly 0.6s to 0.8s) centered on that chirp, allowing the system to synchronize the audio data across different hardware clocks.
“It gave me the position of the beep to within about 40cm, then I dug through that specific pile of boxes and found an ancient carbon monoxide detector that desperately wanted its batteries replaced.”
— Locating the source of a mysterious beep with Claude
Calibration and Localization
Because mobile devices have varying clock drifts and audio latencies, the system uses a two-way sensing technique inspired by the 2007 'BeepBeep' paper. Devices play chirps to one another to establish their relative positions, which the user can then refine in a 'Rough mode' by dragging icons on a map.
Once calibrated, the system listens for the target frequency. When a beep is detected, the software calculates the time-difference-of-arrival (TDOA) across the array. It then uses a grid search and a Gauss-Newton algorithm to triangulate the most likely source, displaying the result as a shaded region on a 2D map.

The interface provides a visual representation of the triangulation results, showing the 40cm precision and the relative loudness of each microphone.
AI-Assisted Development and Real-Time Updates
The project was developed using Claude Code, which was tasked with interpreting the 'BeepBeep' research paper to build the core logic. A significant technical feature is the 'hot-swap' module system, which allows the server to push new JavaScript code to the listeners automatically.
This capability enabled the developer to iterate on the detection algorithms and UI features—such as a 'clapping mode' for testing and a 'repositioning' button—without needing to manually refresh or reconfigure each individual device in the room.
Practical Limits and Accuracy
While the system successfully narrowed the search area to a specific pile of boxes, its accuracy is influenced by the initial placement of the devices and the clarity of the audio. The software provides a 'loudness warmer/colder' indicator to help users understand which devices are closer to the source.
The system also identifies 'physically impossible' arrival times, which helps the user distinguish between the actual source and acoustic reflections or echoes. Further precision can be achieved by repositioning devices into areas the software suggests will 'tighten' the triangulated location.
What Hacker News readers are saying
- Alternative: One commenter suggested a simpler physical approach, proposing a binary search method by moving boxes between rooms to isolate the sound source. comment ↗
- Alternative: Another user pointed out that professional acoustic imaging cameras exist as a high-end hardware alternative for locating sounds. comment ↗
Summarized opinions from the Hacker News thread, not verified facts. Read the full discussion ↗