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.
Tags: API, ARG, Augmented Reality, Geolocation, Google, HTML, HTML 5, JavaScript, RobotVision, Wikitude
This entry was posted on Tuesday, October 6th, 2009 at 3:28 pm and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

October 7th, 2009 at 12:59 pm
I could ride you for this not actually being an AR application at all. You probably need to look more closely at the definition of AR.
Instead I’ll offer some advice. The 5th series Nokias also have a GPS location API in JS. I’m not sure if it runs on web pages or just within the Web Run Time (WRT) environment but you might want to try adding support for that.
http://wiki.forum.nokia.com/index.php/Using_built-in_GPS_and_JavaScript_to_display_your_current_position_on_Google_Maps
In fact that makes me wonder whether anyone has built a generic js library to abstract all the various geo location API calls.
October 7th, 2009 at 3:33 pm
AR is not a visualization technique. It is a way of marrying cyberspace to the real world. (I reckon my own expertise in virtual reality gives me the right to stake out a position.) Were the data density high enough, you’d be hard pressed to tell ARG from any other AR application, save that my visualization is textual. But the data density is about 100x too low, right now, for this to be obvious.
That must be fixed.
October 7th, 2009 at 9:15 pm
Indeed it must be fixed, but it won’t be fixed by Truelocal or Sensis or any of the legacy local search databases. Too much cruft left over from their origins in the data-scarce C20th.
It’ll be fixed when you make this a read-write app, Mark
And yes, this is AR if we want to say it is. I’m doing my doctorate in this shit (which is to say, I’ve been thinking really really hard about it, more than mortal humans ought to, and I can bore you silly talking about the distinction between space, place, location, locus, context, site and situation; real, virtual, mixed and augmented realities; spatial and informational dimensions; visualization and conceptualisation until you just give in and cry ‘alright, only please stop talking’), and I say it is, so there.
October 7th, 2009 at 11:29 pm
Mark, Interesting. How does this differ from apps like Around Me which already exist on the iPod – or even BrightKite for that Matter? And How the hell does it know where I am when I’m using a MBP, which as far as I know has NO LOCATIOn enabling at all – unless it is getting it from the ADSL connection or the Wifi ROuter…or both?
Cheers…and don’t be worried about @linensuave
Gavin
October 8th, 2009 at 8:28 am
Gavin -
It isn’t fundamentally different from AroundMe or BrightKite or even Google Maps, except that it considers the problem in reverse: it tries to describe the world around you by proximity, rather than showing you placed into a map of the world.
I am not claiming some breakthrough new invention, rather an technique which I’m freely sharing with everyone so that we can all begin to think about getting the real world into cyberspace as rapidly as possible.
As for the location of your MBP, Google has set up some sort of operation with ISPs so that it can do relatively accurate geolocation. Not all ISPs play the game, but it does seem to be accurate to within a few ks. Not bad, really.
October 8th, 2009 at 9:01 am
Spot on Mark. I nod my head in full agreement to your point about how the augmenting reality is not all about creating overlays.
I was only checking out another iPhone app, GraffitiGeo, which draws on the idea of writing some graffiti on virtual walls near objects of interest. I like the promise of this kind of approach where we completely dispense with the yellow pages kind of ‘owned’ list of data collection to one that is user generated, recent, geo tagged and dynamic.
October 8th, 2009 at 11:58 am
Interesting stuff, Mark.
Some technical things to consider:
). This shows the limitations at present when the only means of identification of location is an IP address
- my Sydney-based workplace operates from behind a firewall based in Canberra, judging by the results of “Feen” (Pialligo is a long way from Darling Harbour
- ARG works as expected on the iPhone but if I go to Feen, all it does is serve up the feen.png image. I’m not sure how that works. Directory structure something to do with it maybe?
When my studies are finished for the year, I’ll have to spend a bit of time looking at the code and see if this mere mortal brain can make heads or tails of it.
FWIW, I’m with you on the concept that AR is more about the additional information rather than how it is visualised. Although by the same token, would a recorded tour of an art gallery exhibit also be a form of AR? eg you rent the audio player or download a podcast that means you can hear the history of the various items as you wander around.
Actually, a better option might be RFID enabled devices that can measure your proximity to various items and present options as to what you would like to listen to. Sounds tailor made for a 3-4″ touchscreen with bluetooth capabilities now that I think about it …
October 8th, 2009 at 8:36 pm
Yes, I’d say an audio tour of an art gallery in much the same way as a keyboard with a SHIFT key is a multitouch user interface (c/f Bill Buxton).
May 19th, 2010 at 12:52 pm
Every solution breeds new problems.