Find a Hidden Beep with Beep Locator

Use your devices to locate a hidden beep on a room map.

Introduction

30 Second Summary

A faint beep can turn a whole room into a guessing game. Walls and furniture make the source feel as if it moves whenever you move.

In this project, you will run your own fork of Beep Locator on your laptop. You will connect two more devices as listeners to map a hidden beep.

What You'll Build

Your finished app displays every listener on a room map, with an estimated marker settling near the hidden beep.

By the end of this project, you'll have:

  • A local Beep Locator app that opens in your browser from your own customised GitHub fork.
  • A multi-device listener map showing each device in its real position after it joins by QR code.
  • A sound location result that places a test clap near the correct corner. Your final screenshot shows the estimate settling near the hidden phone.
  • Secret Mission: An optional challenge to push your sound-location skills further.

Are there any prerequisites?

You need a laptop with Python, one phone, and ideally a spare phone or tablet. Every device must share the same Wi-Fi network.

Before We Start

Locating a hidden beep depends on comparing what several microphones hear. This setup step makes sure every listening point is ready before the room test begins.

Your laptop uses Git to download the project. Python runs its web server.

Your phone provides one extra microphone. A second microphone-enabled device provides another listening point on the same local network.

In this step, get ready to:
  • Confirm that Git and Python are available on your laptop.
  • Gather two additional microphone-enabled devices on the same local network.
  • Choose a room and prepare a repeating short beep.
Check your laptop tools

The next step downloads Beep Locator and starts its server. Checking your tools now keeps that first run focused on the app.

  • Press Cmd+Space on macOS or the Windows key on Windows to open system search.
  • Type the name of your terminal application into the search field.
  • Press Enter to open the terminal.
  • Check whether Git is available by running this command:
git --version

What does this command do?

The git --version command asks Git to print its installed version. A version line confirms that the terminal can find Git.

✔️ I see a Git version

That is the first tool ready. Your laptop can use Git in the next step.

ⓧ Git is unavailable

Git needs to be installed before the project can be downloaded. The installer may request permission to make changes to your laptop.

  • Visit the official Git installation page in your browser.
  • Choose the download for your operating system.
  • Run the downloaded installer with its default settings.
  • Approve the operating-system permission request if it appears.
  • Return to the terminal after the installation finishes.
  • Check the new Git installation by running this command:
git --version

What does this command confirm?

This runs the same version check after installation. A version line proves that Git is now available from your terminal.

You should now see a line beginning with git version.

Git still unavailable?

Close the terminal before opening it again. This gives the terminal a fresh chance to find the new installation.

If Git is still unavailable, help me check why my terminal cannot find Git.

  • Check whether Python is available by running this command:
python3 --version

What does this command do?

The python3 --version command asks the Python 3 interpreter to print its version. A version line confirms that the server can use Python in the next step.

✔️ I see a Python 3 version

Your laptop now has both command-line tools ready. Python can run the Beep Locator server.

ⓧ Python 3 is unavailable

Python 3 needs to be installed before the server can run. The installer may request permission to make changes to your laptop.

  • Visit the official Python downloads page in your browser.
  • Choose a current Python 3 installer for your operating system.
  • Run the downloaded installer with its default settings.
  • Approve the operating-system permission request if it appears.
  • Return to the terminal after the installation finishes.
  • Check the new Python installation by running this command:
python3 --version

What does this command confirm?

This repeats the Python 3 version check after installation. A version line proves that your terminal can now reach the interpreter.

You should now see a line beginning with Python 3.

Python 3 still unavailable?

Close the terminal before opening it again. A fresh terminal can detect the newly installed interpreter.

If the command still fails, help me check why my terminal cannot find Python 3.

  • Press Cmd+Space on macOS or the Windows key on Windows to reopen system search.
  • Type the name of your web browser into the search field.
  • Press Enter to open the browser.
  • Load the Python downloads page to confirm that the browser can reach the web.

You should see a page headed Download Python. Your laptop tools are ready for the project.

Gather your listening devices

Beep Locator needs separate microphones around the room. Your laptop acts as one listener while your phone plus one additional device provide the other viewpoints.

  • Open the network settings on your laptop.
  • Identify the local network currently connected to your laptop.
  • Record the connected network name here: your local network name.
  • Connect your phone to your local network name through its network settings.
  • Connect your second microphone-enabled device to your local network name through its network settings.

Why must the network match?

The laptop hosts the app inside your local network. Each additional device needs that same network path to join as a listener.

  • Record a few seconds of speech on your phone with its built-in recording app.
  • Play the phone recording through its speaker.

You should hear your recorded speech clearly. This confirms that the phone microphone can capture sound.

  • Record a few seconds of speech on your second device with its built-in recording app.
  • Play the second recording through its speaker.

You should hear the second recording clearly. Both additional microphones can now contribute to the location estimate.

  • Confirm with each device owner that you can grant browser microphone access during the project.
Prepare the room and beep

The final test needs a room that you can represent as a simple map. It also needs a short sound with enough silence between repeats for each beep to stand out.

  • Choose a room where you can spread the listening devices across separate positions.
  • Confirm that you have permission to run a short sound test in the room.
  • Prepare a short repeating beep on your phone with a timer or audio player.
  • Set the phone volume to a comfortable level.
  • Place the phone at the far side of the room for a quick sound check.

Before you press play, ask yourself whether the short beeps will sound separate enough to count from across the room.

  • Start the repeating beep on your phone.

You should hear distinct short beeps from across the room. Each beep should have a clear gap before the next one.

  • Stop the repeating beep after the sound check.

Can't hear distinct beeps?

  • Increase the phone volume by one small step if the beep is too quiet.
  • Choose a slower repeat setting if the beeps blend together.
  • Move the test to a quieter room if background noise covers the beep.

If the sound still blends into the room, help me prepare a clearer repeating beep test.

Your laptop tools, listening devices, local network, room, and beep source are ready. Next, you'll fork Beep Locator and start its web server on your laptop.

Run Your Beep Locator Fork

Beep Locator starts in someone else's repository. A fork gives you a GitHub copy that you control.

This step brings that copy onto your laptop. You will then run its Python web server and load the main screen.

In this step, get ready to:
  • Create your Beep Locator fork on GitHub.
  • Prepare the required tools and clone your fork.
  • Run the Python web server and load the main screen.
Fork the Beep Locator repository

A fork is your own copy of an open-source repository. Changes in your fork leave the original project untouched.

  • Open the Beep Locator repository in your browser.
  • Sign in to GitHub if prompted.
  • Click Fork in the top-right corner.
  • Select your GitHub account from the Owner menu.
  • Keep beep-locator in the Repository name field.
  • Click Create fork.

Your fork now lives in your GitHub account. That copy is ready for the small code change you will make later.

Prepare the tools and clone your fork

Beep Locator uses uv to prepare its Python environment. It uses Cloudflare Tunnel to provide the HTTPS connection that phone browsers need for microphone access.

  • Press Cmd+Space on macOS or the Windows key on Windows to open system search.
  • Type Terminal on macOS or PowerShell on Windows.
  • Press Enter to open the terminal.
  • Check whether uv is available by running this command:
uv --version

What does this command do?

This asks uv to print its installed version. A version number confirms that the command is ready.

✔️ I see a uv version

Your Python environment tool is ready. Continue to the next check.

ⓧ The command is not found

Install uv with its official standalone installer.

macOS

  • Install uv by running the official installer:
curl -LsSf https://astral.sh/uv/install.sh | sh
What does this installer do?

The script downloads the standalone uv installer from Astral. It also configures your shell to find the command.

  • Close the terminal after the installation finishes.
  • Reopen Terminal through system search.
  • Confirm the installation by running:
uv --version
What should I see?

The terminal prints the installed uv version. That output confirms your refreshed shell can find it.

Still cannot find uv?

Close every terminal window before opening a fresh one. This reloads the command path changed by the installer.

If the check still fails, help me check the uv installation path.

Windows

  • Install uv by running the official PowerShell installer:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
What does this installer do?

PowerShell downloads the standalone uv installer from Astral. The execution policy option permits this installer script to run.

  • Close PowerShell after the installation finishes.
  • Reopen PowerShell through system search.
  • Confirm the installation by running:
uv --version
What should I see?

PowerShell prints the installed uv version. That output confirms the command is available.

Still cannot find uv?

Close every PowerShell window before opening a fresh one. This reloads the command path changed by the installer.

If the check still fails, help me check the uv installation path.

  • Check whether cloudflared is available by running this command:
cloudflared --version

What does this command do?

This asks cloudflared to print its installed version. A version number confirms that Beep Locator can request its secure tunnel.

✔️ I see a cloudflared version

Your tunnel tool is ready. Beep Locator can now create the secure address used by listener devices.

ⓧ The command is not found

Install cloudflared using Cloudflare's official download method for your operating system.

macOS

  • Open the official cloudflared releases page in your browser.
  • Download cloudflared-arm64.pkg if your Mac uses Apple silicon.
  • Download cloudflared-amd64.pkg if your Mac uses an Intel processor.
  • Open the downloaded package from your Downloads folder.
  • Complete the installation prompts.
  • Reopen Terminal through system search.
  • Confirm the installation by running:
cloudflared --version
What should I see?

The terminal prints the installed cloudflared version. That output confirms the package installed correctly.

Package installed but command missing?

Confirm that you downloaded the package matching your Mac processor. Reinstall the matching package if the architectures differ.

If the check still fails, help me diagnose the cloudflared installation.

Windows

WinGet installs the Cloudflare tunnel client from the Windows package source. Accept the source terms if Windows asks for confirmation.

  • Install cloudflared by running:
winget install --id Cloudflare.cloudflared
What does this installer do?

WinGet downloads the Cloudflare package. It installs the cloudflared command on Windows.

  • Close PowerShell after the installation finishes.
  • Reopen PowerShell through system search.
  • Confirm the installation by running:
cloudflared --version
What should I see?

PowerShell prints the installed cloudflared version. That output confirms the tunnel client is available.

WinGet installation failed?

Use the Windows MSI from the official Cloudflare downloads page if WinGet is unavailable.

If the command remains unavailable, help me install cloudflared on Windows.

Why use an HTTPS tunnel?

Phone browsers require a secure connection before they expose microphone access to a web page. The tunnel gives Beep Locator an HTTPS address while its Python server continues running on your laptop.

Git creates a complete local copy of your fork. The copy includes the project files and the connection back to your GitHub repository.

  • Return to your Beep Locator fork in the browser.
  • Click Code above the file list.
  • Select HTTPS.
  • Copy the repository URL.
  • Record the copied URL here: https://github.com/your-github-username/beep-locator.
  • Move to your Desktop by running this command:
cd ~/Desktop

What does this command do?

This moves the terminal to your Desktop folder. Your local beep-locator folder will be easy to find there.

  • Clone your fork by running this command:
git clone [[FORK_URL="https://github.com/your-github-username/beep-locator"]]

What does this command do?

Git downloads your fork into a new beep-locator folder. The clone keeps your fork configured as its remote repository.

You will see Git download the repository files. The terminal returns to its prompt when the clone is complete.

Could not clone the fork?

Confirm that the account name in the copied URL matches your GitHub account. Also confirm that the URL ends with the beep-locator repository name.

If Git requests authentication or stops downloading, help me clone my Beep Locator fork.

  • Enter the cloned beep-locator folder by running:
cd beep-locator

What does this command do?

This makes the cloned repository your terminal's current folder. Commands you run next can use the project's files.

  • Verify that the clone points to your fork by running:
git remote -v

What should I see?

Git prints the remote repository configured as origin. Its URL should contain your GitHub account name and the beep-locator repository name.

Your fork is now on your laptop. The local copy is connected to the repository in your GitHub account.

Origin points to the original repository?

The clone command used the original repository URL instead of your fork URL. Remove that local clone and repeat the clone using the URL shown on your fork page.

If the URLs are hard to distinguish, help me identify the correct fork URL.

Launch Beep Locator

Beep Locator runs a Python server from the cloned repository. The server prints a coordinator URL for your laptop and a join URL for the other devices.

The first launch can pause while uv prepares the dependencies. Ongoing terminal activity means the setup is still progressing.

Before you run the server, what two links do you expect the terminal to provide?

  • Start the Beep Locator server with its tunnel by running:
uv run beep-locator serve --tunnel

What does this command do?

The command prepares the project's Python dependencies. It then starts the local web server and requests an HTTPS tunnel.

The terminal prints a coordinator URL and a join URL with a QR code. The coordinator URL contains an admin token, so keep it private.

  • Leave the terminal running so the server stays available.
  • Copy the coordinator URL printed in the terminal.
  • Return to your browser.
  • Paste the coordinator URL into the address bar.
  • Press Enter.

You will see the Beep Locator main screen with its room map. You will also see the QR code that other devices use to join.

Main screen not loading?

Confirm that the server terminal remains open. Look for terminal activity showing that the Python server and tunnel are still running.

Copy the coordinator URL again if the browser opened a different address. If the page still fails to load, help me diagnose the Beep Locator server.

Your fork is running from your laptop. Next, you will use the QR code to turn your phone and second device into listeners.

Join Your Listening Devices

Your Beep Locator server is already running on the laptop. The main screen is ready to coordinate remote listeners.

A microphone array needs separated listening points to compare when a sound arrives. This step joins your phone plus a second device to the same session.

In this step, get ready to:
  • Connect both listening devices to the same Wi-Fi network as your laptop.
  • Join each device by scanning the displayed QR code.
  • Confirm both listeners appear with working microphone status.
Prepare both devices

Each join link points back to the server running on your laptop. Keeping all three devices on the same Wi-Fi network gives the mobile browsers a path to that session.

  • Open the network settings on your phone.
  • Connect the phone to the Wi-Fi network currently used by your laptop.
  • Open the network settings on your second device.
  • Connect the second device to the Wi-Fi network currently used by your laptop.

Both devices now use the same network as the laptop. They can reach the current Beep Locator session through its join link.

Join your phone

The QR code carries the join link for the session already open on your laptop. Scanning it saves you from typing the address by hand.

Microphone access can feel sensitive. Beep Locator needs it to turn your phone into a listener for this session.

  • Find the QR code under Add a listener on the laptop screen.
  • Open the camera on your phone.
  • Point the phone camera at the QR code.
  • Tap the link prompt for the Beep Locator join page.
  • Tap Start listening on the phone.
  • Choose the browser option that grants microphone access.
  • Return your attention to the laptop browser from earlier.

Your first listener is in. You will see one device row with a working microphone status.

Phone not appearing?

  • Confirm the phone still uses the same Wi-Fi network as the laptop.
  • Keep the listener page open in the foreground.
  • Allow microphone access through the browser's site permissions if the status shows a blocked microphone.

Help me connect my phone to the Beep Locator session.

Complete the listener pair

The second device follows the same join path. Its own row on the laptop proves that the server can distinguish another microphone.

  • Open the camera on your second device.
  • Point the second device's camera at the QR code on the laptop screen.
  • Tap the link prompt for the Beep Locator join page.
  • Tap Start listening on the second device.
  • Choose the browser option that grants microphone access.
  • Leave the listener page open in the foreground.

Before you check the laptop, how many listener rows do you expect to see in the Devices section?

  • Return to the laptop browser from earlier.
  • Find the Devices section.
  • Count the connected listener rows.

You have the listening pair online. The Devices section now shows two microphone-ready listeners.

Only one listener listed?

  • Return to the missing device's listener page.
  • Select Start listening if the setup button is still visible.
  • Allow microphone access if the browser asks again.

Help me find why only one listener appears.

Your listener pair is connected. Next, you will use rough mode to place both devices where they sit in the room.

Place Devices on the Room Map

Your phone and second device are connected to Beep Locator. The room map now needs to match where those microphones actually sit.

Automatic positioning can be unreliable in a real room. Rough mode lets you place each listener icon manually.

In this step, get ready to:
  • Match each listener icon to its physical device.
  • Turn on rough mode.
  • Place every listener icon in its approximate room position.
Orient the room map

A rough layout depends on relative positions. Room landmarks give every icon a consistent reference point.

  • Switch back to the Beep Locator main screen from earlier.
  • Match each displayed listener icon to its physical device using the shown name or colour.
  • Choose one wall to represent the top edge of the map.

Why use rough mode?

Automatic positioning can drift when sound reflects around a room. Rough mode uses the room landmarks you can already see.

Approximate placement is enough for the map to reflect the shape of your listener setup. You do not need to measure exact distances.

Activate rough mode
  • Select rough mode on the main screen.

The rough mode control should show an active state. The listener icons are now ready to move.

  • Drag each displayed listener icon to its approximate physical position.
  • Refine the gaps between icons to mirror the distances between devices.

You should see the listener icons spread across the map. Their arrangement should resemble the devices around your room.

Can't move a listener icon?

  • Select rough mode again before dragging the icon.
  • Confirm the matching listener still appears as connected on the main screen.

Help me work out why a listener icon will not move in rough mode.

Verify the room map

Before you check, consider whether someone could identify each physical listener from the icon positions alone.

  • Compare each listener icon with the physical position of its device.
  • Drag any misplaced icon closer to its matching room landmark.
  • Count the listener icons on the map.

You should see rough mode active. Every displayed listener icon should sit near its real position.

The number of icons should still match the connected listeners. You've now grounded the digital map in the real room.

Your listeners now sit in the right places on the map. Next up, you'll use clap mode to test whether an estimated sound lands near you.

Test the Map with a Clap

Your rough room map now matches where each listener is sitting. That gives Beep Locator a physical layout for interpreting the sounds those devices hear.

A clap from one corner gives you a known starting point. The estimated marker shows whether the room map can place that sound near its source.

In this step, get ready to:
  • Switch the main screen from rough mode to clap mode.
  • Create a test sound from a known room corner.
  • Confirm the estimated position appears near that corner.
Check the room layout

The listener positions give the app its reference points. Keeping the devices aligned with their icons makes the clap result easier to interpret.

  • Confirm the phone still appears as a listener on the laptop main screen.
  • Confirm the second device still appears as a listener on the laptop main screen.
  • Confirm each physical device still sits near the location shown by its listener icon.
  • Choose one corner of the mapped room for the clap test.
Use a sharp sound for calibration

Clap mode uses a short sound to test the location estimate. Your chosen corner gives you a reference point for judging the result.

  • Select clap mode on the laptop main screen.
  • Confirm the rough room layout remains visible on the map.

What is sound localization?

Sound localization is the process of estimating where a sound began. Beep Locator displays that estimate as a position on the room map.

The corner gives you a known reference. An estimate near that corner shows that your listener layout can place a real sound.

Run the corner test

Before you clap, picture where you expect the estimated position to appear on the map.

  • Stand in your chosen room corner.
  • Make one clear clap.
  • Watch the laptop map until it displays an estimated sound position.

You should see the estimated position land near the corner where you clapped. A small offset can happen in an echoey room.

You've proved that the map can turn a sound from a known spot into a location estimate. That gives you a baseline for the hidden beep test.

Estimate far from the corner?

  • Confirm every listener still appears connected on the main screen.
  • Return any moved device to the physical position shown by its listener icon.
  • Repeat the clap after nearby music or conversation has stopped.

Help me troubleshoot a clap estimate that lands far from the corner.

Your known-location test worked. Next, you'll hide a phone playing a repeating beep and use the map to find an unknown sound source.

Locate the Hidden Beep

Your clap test proved that the listener layout can place a sharp sound near the correct corner. The next challenge is locating a source when you cannot see its position.

Beep Locator compares detections from the listeners on your rough room map. A repeating beep gives the app several chances to settle on one area.

In this step, get ready to:
  • Prepare a hidden phone to play a short repeating beep.
  • Let Beep Locator settle on an estimated map position.
  • Capture a screenshot showing the settled estimate.
Prepare the hidden sound source

The source phone creates the signal that each listener hears from a different position. The test stays comparable while the mapped listeners remain where you placed them.

  • Keep every mapped listener device in its current physical position.
  • Choose a phone that is separate from the mapped listeners.
  • Choose a short beep on the phone you will hide.
  • Set the beep to repeat continuously.
  • Start playback on the phone.
  • Place the playing phone out of sight inside the mapped room.

Your target is ready. The room now contains a repeating sound for Beep Locator to locate.

Run the hidden-beep test

Each repeat gives Beep Locator another detection to compare. Echoes can make early estimates wander across the map.

  • Switch back to the Beep Locator main screen in your laptop browser.
  • Use the mode control to leave clap mode.
  • Confirm that every listener still appears in its rough-map position.

Before you start listening, which part of the room map do you expect the estimate to favor?

  • Start listening from the main screen.
  • Keep the room quiet while the hidden phone continues beeping.
  • Wait until the estimated source position stops making large jumps.

You should see the estimated source position converge on one area of the room map. A strong result lands within roughly one metre of the hidden phone.

Estimate Still Jumping?

Echoes or a moved listener can scatter detections across the map.

  • Confirm that every listener remains connected to the session.
  • Return any shifted listener to its mapped physical position.
  • Repeat the test after reducing nearby voices or other sounds.

Help me troubleshoot a drifting Beep Locator estimate.

Capture the settled map

A screenshot preserves the final estimate before you reveal the source. It also gives you a baseline for the comparison in the next step.

  • Leave the settled room map visible in your laptop browser.
  • Press Shift-Command-4 (macOS) or Windows logo key + Shift + S (Windows) to open a region capture.
  • Drag over the entire room map to capture the listener positions plus the estimated source marker.
  • Confirm that the image has been saved.
  • Reveal the hidden phone.
  • Compare its position with the marker in your screenshot.

A successful result places the estimate within roughly one metre of the hidden phone. Echoes may increase the gap in reflective rooms.

That is the hunt complete. Your screenshot preserves where Beep Locator placed the hidden phone.

You now have a baseline result from the unmodified app. Next, you'll use a coding agent to make one small change before repeating the beep test.

Tune Your Fork and Compare Results

Your first hidden-beep result gives you a baseline. That saved map shows how the current Beep Locator settings interpret the room.

Now you will make one controlled change with an AI coding agent. Running the same test again lets you judge the change from evidence.

In this step, get ready to:
  • Ask a coding agent to adjust one sound-detection setting.
  • Run the modified fork through the existing listener session.
  • Compare the new hidden-beep estimate with your original screenshot.
Choose one threshold to tune

A detection threshold decides when a sound qualifies as a possible beep. Changing one value at a time keeps your comparison focused.

What does a detection threshold control?

A lower threshold can make the detector react to quieter sounds. It can also admit more room noise.

A higher threshold filters more noise. It can miss a quiet beep.

  • Start the coding agent you use for local projects.
  • Target the cloned Beep Locator repository using your agent's folder selector or terminal launch flow.
  • Ask the agent to inspect the repository's sound-detection logic.
  • Ask the agent to identify one numeric threshold that decides whether a sound counts as a detection.
  • Ask the agent to explain the threshold's current value.
  • Ask the agent to predict the effect of a small adjustment on your repeating beep.

Keep the experiment controlled

Changing one threshold gives you a clear before-and-after comparison. Unrelated edits would make the result difficult to interpret.

  • Tell the agent to change only the selected threshold.
  • Review any permission request before the agent edits files.
  • Approve the edit only when its scope contains one threshold change.
  • Review the final file changes for unrelated edits.

Did the agent change too much?

  • Revert the agent's edit if it changes multiple settings or unrelated files.
  • Repeat your request with a strict one-value limit.

Help me review whether my coding agent made one focused threshold change.

Restart the modified server

The running Python server process loaded the earlier source. Restarting it makes the modified fork available to every browser in the session.

  • Return to the terminal panel that is running the Beep Locator server.
  • Stop the running process by pressing Ctrl+C.
  • Press the Up Arrow key to restore the previous server command.
  • Press Enter to restart the server.

You will see the terminal begin serving Beep Locator again. This confirms that the modified fork is running.

  • Return to the Beep Locator main screen in the laptop browser.
  • Refresh the laptop browser.
  • Refresh the joined listener page on your phone.
  • Refresh the joined listener page on the second device.

Each refreshed browser now loads the latest version served by your fork. The listeners may take a moment to reconnect.

  • Confirm that the phone appears as a listener on the main screen.
  • Confirm that the second device appears as a listener on the main screen.
  • Confirm that every listener icon remains in its previous rough room position.

Did a listener disappear?

  • Scan the QR code from the refreshed main screen with any missing device.
  • Confirm that microphone access remains enabled in the device browser.
  • Return to Rough mode if an icon needs to be dragged back to its previous position.

Help me reconnect a Beep Locator listener after restarting the local server.

Repeat the hidden-beep test

A fair comparison keeps the room setup constant. The threshold change should be the only meaningful difference between your two tests.

  • Keep the laptop in its original physical position.
  • Keep each listener device in its original physical position.
  • Keep the hidden phone in the same spot used for the first test.
  • Confirm that the hidden phone is still playing the short beep on repeat.

Before you start listening, do you expect the adjusted threshold to move the estimate closer to the hidden phone?

  • Start listening using the same control from your first hidden-beep test.

The estimated marker can move while sound samples arrive. That motion shows that the result is still settling.

  • Wait until the estimated marker stops making major moves.

You will see the modified fork settle on an estimated source position. This is the result to compare with your baseline.

  • Save a screenshot of the updated map using the same method as before.
  • Display the updated result beside your original screenshot.
  • Compare each estimated position with the hidden phone's actual position.

How should you judge the change?

  • A closer estimate suggests that the adjustment helped in this room.
  • A similar estimate suggests that the adjustment had little visible effect.
  • A farther estimate suggests poorer location accuracy.
  • A less stable marker suggests greater sensitivity to room noise.

That is a strong finish. Your modified fork now has a second estimate you can compare with the original result.

Secret mission

Test the Locator's Repeatability

Run the same hidden-beep test three times without moving anything. Then move the source across the room to see whether the estimate follows.

Clean Up Your Resources

Clean Up Your Resources

Beep Locator ran entirely on hardware you already own, so there are no ongoing costs. The remote fork remains in your Git account as your project record.

Resources you used:

  • Active Python web server hosting the listener session.
  • Microphone permission on your phone.
  • Microphone permission on your second listener device.
  • Modified local clone of the Beep Locator repository.
  • Saved screenshot of the original hidden-beep estimate.

Keep everything running

No cleanup action is needed. Choose this if you are still comparing beep estimates or adjusting your fork.

  • Keep the Python web server running in the terminal panel from earlier.
  • Keep the Beep Locator main screen open on your laptop.
  • Keep the listener page open on your phone.
  • Keep the listener page open on your second device.
  • Confirm that both listeners still appear on the rough room map.

Your modified local clone remains ready for another test. Your original screenshot stays available for comparison.

Pause - I'll come back to this later

Shut down the live session to free your devices. Keep the local clone so you can restart the experiment later.

  • Return to the terminal panel that is running the Python web server.
  • Stop the running server using the terminal control for interrupting its current process.
  • Refresh the Beep Locator main screen to confirm that it can no longer connect to the local server.
  • Close the listener page on your phone.
  • Close the listener page on your second device.
  • Close the Beep Locator main screen on your laptop.

That closes the live listener session without removing your work. Your modified clone remains ready for the next experiment.

Microphone Access Can Stay

Keep microphone permission enabled if you plan to return soon. Your browser may ask for access again if you remove it.

Delete - I don't want to use this again

Remove the local project files after shutting down the listener session. Your remote fork remains in your Git account as a record of the project.

Local Deletion Is Permanent

Emptying the deleted-items location removes the modified clone from your laptop. It also removes the original screenshot if you delete that file.

  • Return to the terminal panel that is running the Python web server.
  • Stop the running server using the terminal control for interrupting its current process.
  • Refresh the Beep Locator main screen to confirm that it can no longer connect to the local server.
  • Close the Beep Locator main screen on your laptop.
  • Remove the local files by following the instructions for your laptop:

macOS

  • Use Finder to locate the folder containing your modified cloned Beep Locator repository.
  • Move the cloned repository folder to the trash.
  • Locate the saved screenshot of the original hidden-beep estimate.
  • Move the screenshot to the trash.
  • Empty the trash to complete the local deletion.

Finder should no longer show the local repository or the original screenshot in their previous locations.

Windows

  • Use File Explorer to locate the folder containing your modified cloned Beep Locator repository.
  • Move the cloned repository folder to the recycle bin.
  • Locate the saved screenshot of the original hidden-beep estimate.
  • Move the screenshot to the recycle bin.
  • Empty the recycle bin to complete the local deletion.

File Explorer should no longer show the local repository or the original screenshot in their previous locations.

Microphone permission can remain active after the pages close. Remove that permission if you do not plan to use the listeners again.

  • Return to the listener page from earlier on your phone.
  • Open the browser controls for the current site.
  • Remove microphone permission for the current site.
  • Repeat the permission removal on your second listener device.
  • Close the listener page on your phone.
  • Close the listener page on your second device.

Your local Beep Locator session is now cleared. Both listener devices have released their microphone access.

Nice Work!

Nice Work!

You found the sound! Your modified Beep Locator fork used three listeners to map a hidden repeating beep.

What you learned:

  • Created a multi-device listening session by joining your phone plus a second device through a QR code. Placed every listener on a rough room map.
  • Tested sound positioning with clap mode. Confirmed that the estimated position landed near the corner where you clapped.
  • Located a hidden repeating beep after the map settled. Saved the original estimate as a screenshot. Asked a coding agent to adjust your fork. Repeated the test to compare the new result.
  • Secret Mission: Took on an optional challenge to push your sound-location skills further.

Ready to quiz yourself?