Inspiration
Imagine hearing your child start a story at the dinner table. You’re in the living room, one doorway away. You know where you want to go, but your hand can’t reliably move your wheelchair’s joystick. By the time someone is free to steer you there, the story is over.
That possibility inspired Wayhome. We kept coming back to how much independence depends on timing. Joining dinner, leaving a noisy room, or returning to your desk are everyday decisions. We wanted to explore a way for a rider with limited hand control to make those trips on their own schedule.
What it does
Wayhome lets a rider who can deliberately open and close their eyes choose a destination in a simulated home. The system reads two options aloud. The rider keeps their eyes open to skip an option, closes them to select it, and reopens them for the next choice.
To get from the TV to the dining table, for example, the rider selects the upper half of the house, the right side, and then the table. They can confirm the trip or choose again. Once they confirm, the simulated chair handles the turns and parks at the destination. It stays there until the rider is ready. Starting another trip takes a deliberate four-second eye closure.
How we built it
We used a g.tec Core-8, an eight-channel EEG headset that streams brain activity over Bluetooth. A local Python program uses g.Pype to receive the signal and NumPy to measure power in the alpha band, around 8–13 Hz. During calibration, the rider follows two rounds of eyes-open and eyes-closed cues. The software identifies the electrode that shows the clearest repeatable increase in alpha power when that rider closes their eyes.
We built the interface in TypeScript and the 3D home in Three.js. A binary decision tree turns one repeatable signal into a choice among eight destinations across four rooms. Each destination has a parking spot and an approach direction, so choosing “dining table” tells the simulator where to stop and which way to face.
We had a headset and a hackathon deadline, but no physical power wheelchair to test. Building the 3D home let us connect live EEG to the interface and test the routes between every pair of stops.
Challenges we ran into
Our first approach asked the rider to look at one of two targets flashing at different frequencies. The targets were hard to focus on individually, and our readings didn’t consistently distinguish them. We spaced the targets farther apart, enlarged them, and tested slower frequencies. The turning point came when we watched the live EEG while opening and closing our eyes. That change was easier to distinguish in our testing, so we redesigned the interaction around it.
We also had to decide what an uncertain signal should do. A loose electrode could produce a large swing. A single long eye closure could otherwise select an option and accidentally advance through the next menu. We made the system pause when signal quality drops, keep the rider’s place, and require them to reopen their eyes before another selection.
Accomplishments that we're proud of
We connected a live EEG headset to a working simulator and built the interaction beyond the first successful selection. The rider can skip an offer, choose a stop, reconsider it, confirm the route, arrive, and start another trip through the same interface.
We’re especially proud of a test where nothing moved. Using simulated EEG, we interrupted a selection, restored the signal, and checked that an unfinished eye closure could not trigger the chair. We also verified that a short closure after arrival left the chair parked. Those quiet moments mattered just as much to us as seeing the chair drive through a doorway.
What we learned
Watching the live signal taught us when to change course. We had spent time refining the flashing targets because we assumed the headset needed to distinguish two commands. Once we found one response we could repeat, we realized the spoken menu could supply the choices. The same eye closure could select a room, a table, or “choose again,” depending on what the rider heard.
We learned to ask a different question when testing each feature: Can the rider let this choice pass? That question shaped the confirmation step, the recovery behavior, and the longer hold at arrival.
What's next for Wayhome
Our next step is to test the interaction with wheelchair users. We want to learn which trips they would choose, how comfortable repeated eye closures feel, how often unintended selections happen, and whether they can start a trip when they want to. Those are questions the simulator alone can’t answer.
For a physical version, we’d map the home with the rider and pair the system with a power chair fitted to their seating needs. We’d measure doorways, footrest clearance, and turning space, then verify each approach with the actual chair. An onboard controller would need to locate the chair, detect obstacles, and support an independent stop and manual override.
The rider would decide what each destination means. “Dining table” could mean their usual place beside their child, facing the rest of the family. That’s the level of choice we want Wayhome to offer.