Inspiration
Bats can build a mental map of a room without seeing it. Humans close their eyes and immediately forget where the chair is.
That gap inspired Bat Hat: a wearable system that turns visual surroundings into sound. We wanted to explore whether computer vision could create a kind of artificial echolocation, giving users a clearer sense of what is nearby and where it is.
It is not meant to replace a white cane, guide dog, or mobility training. It is an extra layer of spatial awareness, because apparently having only five senses just wasn't cool enough.
What it does
Bat Hat uses two cameras mounted on a hat to capture a wide view of the environment.
The system is designed to: 1) detect nearby objects; 2) estimate their relative distance; 3) determine whether they are left, centre, or right; 4) increase the ping speed and volume as the object becomes more urgent.
Instead of repeatedly yelling “STOP THERE'S A CHAIR THERE” at the user like a deeply unhelpful passenger, Bat Hat uses sound to communicate location and proximity. Just like a bat!
The result is a live audio map of the space around the wearer.
How we built it
We built the system around a Raspberry Pi 5 running QNX. Our materials involve:
- two cameras for wider horizontal coverage
- QNX camera APIs for frame capture
- shared-memory ring buffers to pass frames between processes
- MiDaS for relative depth estimation
- an object-detection pipeline designed around YOLO labels
- a C++ audio manager that ranks obstacles by urgency, confidence, proximity, and position
- prerecorded object labels generated with ElevenLabs
- short WAV pings designed for directional audio through wired earbuds
- wired earbuds
- duct tape
- Legos
- a hat
Each detected obstacle is represented using: horizontal position, relative closeness, urgency, confidence
The audio manager then chooses the most closest object and schedules pings based on how close it is.
We also separated the audio logic from the playback backend, because debugging one giant camera-depth-audio monster at 4 a.m. sounded like a poor lifestyle choice.
Challenges we ran into
Latency was our biggest enemy. A warning that arrives after the user reaches the obstacle is less of a safety feature and more of a post-game recap. We had to keep camera capture, depth estimation, object detection, and audio responsive without letting one slow step hold up the entire pipeline.
Splitting and combining the two camera feeds was also harder than expected. Two cameras sound like “double the vision,” but they also mean twice the frames, mismatched boundaries, overlap, and a surprising amount of arguing over which camera owns the middle of the world.
MiDaS gave us relative depth, not a neat answer like “this chair is exactly 1.4 metres away.” We had to turn changing depth values into useful categories such as far, near, and urgent without pretending the model owned a measuring tape.
Finally, after testing the same radar ping for hours, we started hearing phantom pings even after the program stopped. Technically not a software bug. Psychologically, still part of the debugging experience.
Accomplishments that we're proud of
We are proud that Bat Hat became more than a funny idea involving a hat, two cameras, and a concerning number of wires.
We built a working foundation for a real-time system that brings together dual-camera capture, depth estimation, shared memory, object-priority logic, and audio feedback. Even when the full pipeline was not perfectly connected, each part was designed to fit into something larger instead of existing as a one-off demo.
Also, we are especially proud of the audio experience. The system does not try to narrate everything in sight. It uses directional pings to keep the user aware of where it is and how urgent it may be. This sounds simple now. It did not feel simple after hours of tuning the same ping until we could still hear it in complete silence.
More than anything, we are proud that we kept the idea grounded. Bat Hat is not a finished mobility device, and it is not something we would hand to someone tomorrow and pretend is ready. But we built enough to show that turning computer vision into a live audio map is possible, and that felt worth losing some sleep over.
What we learned
We learned that coffee at 3 a.m. is a very important drink and will get you through the trenches of coding.
We also learned that QNX is not just another platform to name-drop in a tech stack. Working with real-time processes, shared memory, hardware constraints, and painfully specific documentation taught us skills that will matter far beyond this hackathon.
Most importantly, Bat Hat started as a joke about giving someone Batman vision. Somewhere between the wires, camera bugs, and imaginary pings, it became an idea that could genuinely help people understand the space around them. That shift made the lack of sleep feel slightly more reasonable.
What's next for Bat Hat
Next, we want to complete the live connection between object detection, depth estimation, and QNX audio playback.
That includes:
- true stereo panning instead of only selecting a direction
- object tracking across frames
- smoother depth and urgency calculations
- support for multiple important obstacles without creating audio chaos
- bone-conduction or open-ear audio
- detection of stairs, curbs, and drop-offs
- a smaller and lighter hardware design
- supervised testing with blind and low-vision users
- feedback from orientation-and-mobility professionals
Long term, Bat Hat could move beyond the hat itself and become a spatial-audio layer for smart glasses, phones, or other more fashionable wearables.
Built With
- c++
- qnx

Log in or sign up for Devpost to join the conversation.