Posts Tagged ‘HTML 5’
ARG: Augmented Reality Google
This is all Lachlan Hardy‘s fault. He told me that I couldn’t come to WebJam 10 unless I presented. And, because I was a bozo and didn’t get a ticket within four hours after they were announced, well, I reckoned I was out of luck.
Unless I presented.
At the start of last week I gave Vodafone and Apple a whole bunch of money to upgrade my wimpy 8GB iPhone 3G to a supercharged, ‘roid-raged 32GB iPhone 3GS. The reasons for this upgrade were many and varied, but mostly centered on one thing: AR.
From my earliest days doing research into virtual reality (way back in 1990), I knew the best way to use the virtual world was to marry it intimately to the real world. Hence WebEarth, which I coded up in a weekend in 1996. Since then, Google Earth has come along to steal my thunder (heh), and we’ve seen a lot of other apps visualize and virtualize the real. But, just in the past few months – since the release of high-powered Android phones and iPhone 3GS – we’ve started to see some real, handheld AR apps, like RobotVision and Wikitude.
Both of them suck.
I say this out of love: they’re both technical tour-de-forces, but neither were designed by anyone who knows anything about UI/UX. The fact that you look like a complete wanker when you’re using AR should have been the first tip off. The fact that half the time you can’t trigger the AR content – because it’s too small, too far, too jiggly, too something – should have been another.
The concept of AR is fantastic. The execution is flawed. It’s time to step back and do a re-think.
ARG is my version of a rethought Augmented Reality application. It is entirely text-based. (Yes, that may seem perverse coming from someone who spent a decade working in virtual reality, but there it is.) It’s not just mere perversion – I’m making a point: you can visualize your AR data however you please, and it need not be visualized through a camera. We’ve confused augmented reality with overlaid reality. We need to separate these two until they can get their interface issues sorted out. Right now, and for the rest of us, there’s the simplicity and versatility of text.
In a hundred lines of JavaScript and HTML, ARG uses the new whiz-bang HTML 5 Geolocation API to access to coordinates of the device’s location, then passes them along to a Google Local search, displays the results, and repeats the process every minute. That’s all it does — and why it only requires a hundred lines of code. (Download the code by right-clicking here.)
I’m doing a Google Local search on everything – literally. My search term is ‘*’. The thing I learned immediately is that search results are not returned by proximity, but rather by relevance, which is a very different metric. Objects further away show up higher in the list because they’re (presumably) more important.
I understand why Google does this, but it’s broken. When you give Google precise coordinates, it should rank its responses proximally: closer items have a higher priority than items further away. Otherwise, well, what’s the point? You haven’t actually sorted anything – or, at best, kinda-sorta sorted them. Really, you’ve handed me a pile of results that you’ve ranked according to some thoroughly opaque standard of relevance. Not very helpful. Google will need to be fixing that, because (drum roll) the next big phase of the Web is now here, the one we can finally call Web 3.0: the geolocative Web.
The world is the database of itself. That database needs to be mirrored, in its dynamic entirety, online. Right now, we’ve barely started to populate that database. We’ve got a few buildings in there, and some streets, but very little of the material stuff of our lives. A lot of that stuff doesn’t move around very much, or only moves around in a very limited proximity: all of that belongs in this database. The things that move around, those need to go into this database too, and we need to develop ways for those moving things to report where they are to keep that database up-to-date. And we need to have information in depth on every one of these things. Not just what Amazon or IMDB or Wikipedia might tell us, but what we want to tell ourselves. Every bit of our stuff, located in space, has its own tag cloud associated with it – though we’ve yet to make that explicit. It’s time to begin. It’s time to build the web of the real.
***
Just a few practical notes:
- ARG has been tested and runs fine under iPhone OS 3.0+, Firefox 3.5+, Google Chrome for Windows, and on Firefox 3.0+ and MSIE 6+ if they have Google Gears installed. There is no support for Safari 4.x at present (weirdly), though Safari 3.x with Gears should work. If it says “FAKE” in the coordinate readout, it isn’t working. Finally, ARG should work on Android phones, but in an initial test it failed. I may have fixed that, but I haven’t had time (or a phone) for testing. Let me know.
- Make sure to include the file gears_init.js in whatever directory you’re serving ARG from. That’s a required Google Gears initialization file. You can get it here.
- Sometimes the geolocation query fails on Firefox 3.5, particularly when ARG is first starting up. I have no idea why this happens.
- ARG has a companion, Feen, which runs a search on “coffee”. It returns results which are more location-specific than a general query.
- My very few slides from the WebJam presentation can be found here.
