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.
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.