Museum Exhibit Accessibility Aid

Walk up to an exhibit at Discovery World; your phone notices, and the exhibit starts explaining itself at the right level, in the right language.

2nd Place — Hacksgiving 2024 (Team Yarrvis)

Problem

Museum placards are written for one imaginary visitor. A nine-year-old, a visually impaired adult, and a Spanish-speaking tourist all get the same wall of text — and museum accessibility staff can't hand-tailor every exhibit for every guest. Discovery World's Hacksgiving 2024 theme asked for exactly this: use technology to make exhibits work harder for every kind of visitor.

Architecture

  • Presence sensing (hardware): ESP32 Bluetooth-low-energy beacons mounted at exhibits broadcast their identity; the visitor's phone resolves which exhibit is nearby from signal strength — no beacons to scan, no QR codes to hunt.
  • Context service (AhaAPI): a backend maps beacon events to exhibit metadata and the visitor's profile: age band, native language, and accessibility needs.
  • LLM agents + vector database: exhibit content is retrieved with RAG from an embedding-indexed corpus, then a generation agent rewrites it on demand — simplifying for a child, translating, or producing audio-described text for screen readers — grounded so it never invents facts about the exhibit.
  • Mobile client: reacts to proximity transitions and presents adapted content conversationally.
ESP32 beacons BLE at each exhibit Mobile app proximity + profile AhaAPI backend exhibit metadata LLM + RAG vector DB · agents Visitor adapted text/audio
Beacon → phone → context API → retrieval-augmented generation → the visitor.

Outcome

Built in ~36 hours and awarded 2nd place out of the Hacksgiving field. The demo showed the same exhibit placard rendered three ways — kid-level English, Spanish, and a screen-reader-friendly description — switching live as the visitor profile changed. It was also my first production-grade use of RAG with agent orchestration, a pattern I've built on professionally ever since.