We're working on an app for Australia's National Portrait Gallery at the moment.
iBeacons are magical. They offer the promise of telepathy. Walk through the gallery door and your phone alerts you to launch the app. Launch it and it shows you relevant information about the art work that you're admiring, and you didn't need to browse through any menu or search interface to find the information! Somehow the app just knew what you wanted.
It isn't magic. It's actually quite simple. iBeacons are simply small radio transmitters that broadcast a unique identifier. Your iPhone knows when it's within range of a given iBeacon. If you know where that beacon is and what artworks are near by then you can code your app to display information about those works when in range of that beacon. Sounds great. And it is. Mostly.
It gets a little more complicated though. The scenario above assumes many things. It assumes you've got an iBeacon near each art work that you'd like to provide information about. It assumes you can reliably determine which beacon you're closest to based on the strength of the radio signal you're receiving and it assumes that the artwork you're standing closest to is the one you're interested in finding out more about.
It turns out none of these assumptions hold true all the time. And herein lies the design challenge when working with iBeacons. The promise is that proximity to an iBeacon provides additional context so that the app can determine your intent. However, it's important to keep in mind that most of the time we're using this additional context to guess what your intent is. That's the point. We're trying to make a good enough guess about what you want so you don't need to explicitly tell us.
'The 'formula' looks a bit like this:
context + assumptions = intent
When this works, it's fantastic. The best situations are the ones where you don't even notice it happening. For example, when I'm listening to something on my iPhone through my car's bluetooth speakers and I arrive at my destination. I'll plug my headphones in to my iPhone before getting out of the car and the audio will continue playing uninterrupted. If I don't plug my headphones in, the audio stops when I turn off the car. This is exactly what I want. My iPhone has detected headphones and correctly inferred from this additional context that I must want to keep listening. However, I'm sure we can all think of situations when software has failed to guess our intent because it's reading too much in to the limited context available to it.
"It looks like you're writing a letter"...
So the key is to try to maximise the contextual information that is available and to minimise the assumptions.
The 'formula' for our gallery app looks a bit like this:
context (what you are near) + assumptions (that you're interested in something near you) = intent (you want to know the story behind a given work)
Let's look at each of these elements separately.
How reliably can we determine which art works you are near? Well, it's complicated. It may be tempting to put an iBeacon near every work of art. It turns out that doesn't work so well. The more beacons you have in close proximity, the more likely you are to receive similar strength radio signals from multiple beacons. This makes it hard to accurately determine which beacon (and art work) that you're actually closest to as the radio signals tend to fluctuate. So given a gallery space a bit like the one in figure one, what's the best we can hope to do?
Well, in this specific example, the internal wall works well. It helps to shield radio signals and gives us a better change of reliably determining which half of the space you're in. That improves the contextual information that is available. It also serves to divide the space in to two distinct zones. You can't see the art works in the other half of the space as the internal wall blocks your line of sight. This reduces the assumptions we need to make. Chances are that you're interested in finding information about an art work on the same side of the internal wall as you.
In our testing, we got great results from placing two directional iBeacons on either side of the internal wall with their antennas pointing away from each other. We could consistently detect the strongest signal from the beacon on the same side of the wall as us. As soon as we walked past the wall, the strongest signal came from the other beacon.
It was so consistent that we could imagine a user interface that only showed the art works in the half of the space you were standing in that would instantaneously switch to show the works on the other side of the room as you passed the internal wall.
However, there are other considerations when installing beacons in gallery spaces. Whilst beacons are small and can be quite neutral in appearance you may prefer to install them in places where they're less likely to be seen. For us this means not installing them on the internal walls but on the external walls instead.
This means that we can't isolate the signals from each beacon as well. There's now a 'zone of uncertainty' where you can detect similar strength signals from both beacons.
This is fine. But it means we've got less reliable context about where you are and we need to modify our assumptions about your intent accordingly. With this configuration having a user interface that only shows you works on the side of the room we think you're on may not be such a good idea. Because if you're standing near the middle of the room we might guess wrong. Even more importantly, the idea of instantaneously switching between showing you one set of works and another won't work in this scenario as we're likely to get fluctuating signals whilst you're in the 'zone of uncertainty'. You may be standing completely still and due to the nature of how radio signals fluctuate we might keep switching from one set of content to the next. This would be a terrible experience as it is likely that the work you're interested in will be on the screen at one moment and gone the next. As we're less certain about where you are (and therefore what you're likely to be interested in) the user interface should accommodate this uncertainty. Perhaps all the works on both sides of the wall could be visible and greater prominence given to those that we think you're closest to (by varying the colour, opacity, size or position). If we can smooth out the changes in beacon signal strength (by averaging) and animate the changes in the prominence of art works shown in the app it might provide a nice transition. However we'll still need to be careful if we decide to use size or position to draw attention to the works we think you're most interested in. Both of these could cause items to move around on the screen. If this happens too quickly it might lead to a situation where something moves just as you're about to tap on it (if the signal from a given beacon suddenly drops).
After extensive testing in different gallery spaces at the National Portrait Gallery we determined that we can usually tell which part of a gallery space you're in but there are 'zones of uncertainty' in some of the spaces where we are less certain. Any user interface will need to accommodate this uncertainty and show works from both the zone we think you're in and from another zone you might be in. We can always tell which gallery space you're in, but may not be as sure where you are within that space. Furthermore the transition between spaces won't always be clearly delineated and immediate. There are likely to be times when the signals gradually transition (with a degree of fluctuation) as you move from one area to another.
A separate issue is the assumptions we make from the context that is available to us. In the gallery space shown in the previous examples it is pretty obvious which art works you're likely to be interested in if we're able to determine which half of the space you're in. However, not all gallery spaces are organised like this.
Consider this space. Figure 4 shows the same space with three different scenarios. In each case we know precisely where you are, but we don't know what your intent is. In scenario A you might want to know about the works closest to you. In scenario B you might want to know about the works you can see (which aren't necessarily the ones closest to you). In this space there's a large work on the far side of the room that may have drawn your attention. Finally, in scenario C you might be interested in a a work that you can't see at all. Perhaps someone told you that there's a great portrait in Gallery 6 so you've walked in and launched the app to find out more, not knowing it is on the far side of an internal wall.
Whilst we need to design a user experience that makes it easy to find information about the works we think you're most likely to be interested in, we shouldn't try to be too clever. Our best guess about which works you're interested in may not be right as our assumptions could be wrong.