My presentation from Augmented Reality Event 2010 - bringing real time communications, an open federated standard, powerful game dynamics, and semantic search to augmented reality experiences with the XMPP extensions of Wave Federation Protocol.
AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mobile Social Communications
AR Wave: Federation, Game Dynamics and Mobile Social Communication @tishshute http://www.ugotrade.com are2010, Wednesday, June 2nd, 2010
AR Wave assisted by developers from around the world developed out of a design for an open augmented reality network by Thomas Wrobel. For more details or to join this effort please visit: http://groups.google.com/group/ARWave http://www.arwave.org Many thanks to core ARwave developers: Davide Carnovale, @need2revolt, Markus Strickler, @kusako, & Thomas Wrobel and Sophia Parafina @spara, OpenGeo.
AR Wave: proof of concept #1 http:// arwave.org/pages/Videos.php
ER - Evolutionary Reality From the Desktop, to the Magic Lens, to AR Glasses, to Hummingbird Nano Air Vehicles. The Unified Augmented View "Augmented Reality is the zero click interface" (Anselm Hook)
Traditional web demands browsing, but for phones or future HMD systems, this system of constantly switching and loading pages becomes impractical. Bruce Branit's World Builder - a vision of immersive AR
Right now we have a broadcast model for AR in which only a few platforms operating as walled gardens distribute geolocated data using stovepipes and non real time protocols.
Can we avoid the Social Network Wars for AR and the problems of having user's data controlled by very few big players?
The Twitter Rebellion of 2010 (@ianb) "Discussion is not whether to launch an open federated standard," says one source, "but when." ( Forbes.com )
ARWave: An Open Federated Standards Based Network ARWave: provides a way for the private, public and social exchange of data, without relying on a single company's server.
Federation also facilitates the curation of data streams into one view to create interesting AR experiences.
AR Wave is END to END Open Just like HTML over HTTP This means .. *Anyone can make content *Anyone can make a browser *Anyone can run a server * Like e-mail, Wave allows numerous different users to communicate all on independent servers and still be assured that only those people invited see shared data. * AR using Wave will allow the end-users freedom to create their own content, and collaboratively edit it with friends.
Any browser could make use of a ARWave API to add UGC or realtime social functionality to their app. Wave C/S Protocol
AR browsers and AR Wave Get connected! This will allow you to get realtime social functionality and some UGC without worrying about servers or user accounts.
The blip is a structure that allow easy transmission of geotagged data of any sort. Whether the data is 2D or 3D, static or animated, it can still be transmitted quite simply in the blip. ARBlip "version1" One of our goals is to support as many different data formats and clients as possible. To make demos we are building a client and adapting an Open3D game engine. http://www.jpct.net/
Basic Browser Abilities: a) To allow users to connect to and open one or more specific waves using their device. b) To allow users to see these messages and models from any and all Waves they have open correctly positioned. c) To allow anyone to write messages in mid-air, storing real world location as well as the message content as a Blip within a Wave.
For example, to support Kamra there are several options including: The Kamra Browser from Georgia Tech (formerly Polaris) <ul><li>embed Kamra markup directly in the blips for more advanced object manipulation </li></ul><ul><li>create a web proxy server (would slow things up though) </li></ul><ul><li>c) Kamra to support ARWave and their own data format. </li></ul>
Smart iPad circa 1945 Bush's Memex machine (Life Magazine, November 19, 1945) There's nearly always someone who thought of it before you, but often it's "an idea before it's time". How can AR manage and make use of vast systems of information?
To use SPARQL we need to adapt wave servers for an http end point (probably not too hard has been done with other XMPP servers). But by having meta data in a semantic format we will keep that possibility open. ARWave and Linked Data Basic Sparql pattern
A simple base for semantics in AR Wave is just to use annotations to blips prefixed by "meta" to indicate its purely for describing the data and not for placing or changing it. (ie "meta_author: Thomas", "meta_colour: green" etc). The semantic data chained together would allow for powerful search queries
Waves can also have bots added to them that are free to manipulate the Blip data. This native functionality to WFP allows real time game dynamics, and to publish interaction and behavior in a distributed environment, not in one propriety game. Wave and Game Dynamics
Operational Transform and AR Games Wave Federation Protocol is a powerful implementation of OT. * It solves many real time multi-user issues and can enable AR Game development. * Any number of servers worldwide can share the same persistent and constantly synching world - no need for logging into separate "realms," and "worlds." * Simple games require less investment since many elements are already there. * More complex games potentially benefit even more by taking advantage of easy end user access as a strategic selling mechanism. e.g. viewers can try your game out with a single click - no separate download.
Top 10 augmented reality demos that will revolutionize video games - Ori Inbar, Ogmento
AR Wave a server<>server standard for the exchange of geolocated data between individuals or groups. In summary: four reasons why to use Wave to geolocate content. 1. Wave is a federated decentralized system. 2. Wave is a system that aggregates content into a list of streams of information for the user. 3. Wave allows the real-time moving and updating of content. 4. Scalable.
Our API roadmap * Design principle to store data necessary for geolocation on any wave servers (done - This is the "ARBlip spec") * Create simple code to read/write this data into and out of any wave server supporting a client server protocol. (Json or Protobuffer) * Translate and publish demonstration code for multiple platforms. * Discuss and get feedback from community on ARBlip spec, alter and refine specification based on the feedback. * Publish and document API making it as easy as possible for people to implement WFP functionality into their clients.
If you have questions and would like to know more see ARWave.org Contact me: [email_address] @tishshute 1646 753 0539
Wave Protocol Interface Reads/Write AR data to blips in a wave. Each blip contains the data necessary to place one object at real world co-ordinates. This object would normally be a link to a 3d mesh, but could also be text (facing plane), sound, or other arbitrary data of value at that point. Small data, such as text, could be handled inline in the blip, while larger data could be handled with a http link to a server, or a IP: Portnumber for temporary data from a clients device. Http hosted 3D Content The blips can link to remote data hosted on websites. This data could be a KML file, or something more elaborate like ARML, or Layar, or the new Kamra data format world. File Server When an AR blip indicates a file needs to be downloaded, this downloads and caches it to a directory which the renderer can access. When the user posts a model, this file server can host it ready for the other clients to connect and download. The Wave provider themselves might provide attachment space within the wave. GUI This interface allows the user to log on/off any channel, as well as posting a message in mid-air at the current coordinates. Later versions could allow moving/editing and 3D modeling, with the ARBlips in the wave being updated in near-realtime to reflect changes. Renderer Taking long/lat/alt etc specified by the Protocol Interface (and possibly meshes downloaded by the fileserver). It overlays the objects in the field of view in the correct position. The renderer will also place meshes aligned to real world objects where such associations have been specified by the protocol. This could be a simple marker-based alignment or more sophisticated markerless solutions such as Total Immersions D'Fusion technology. Location Precision Users current GPS co-ordinates and direction taken from the device they are using. This data should get progressively more accurate as technology improves, e.g. a software-based solution using pointclouds of cities. Or Kamra's Geo spots which I think are pre-determined spots on the ground that you could stand on and thus guarantee perfect AR from that spot.
Options for supporting Kamra: Basically it is possible from two angles. Either we make some sort of ARWave &quot;web server&quot; which is akin to having a webmail solution. That would be very hard for us now. It would be at least as hard as constructing Googles HTML5 Wave GUI, and we saw how much trouble they had getting that stable. Essentially we would need to do that, but rather then formatting the output for a html5 display, we would need to output to Blair’s format. Totally possible, but just very hard, let alone for such a small team! What’s more realistic is supplying them an API, which they could use to display Wave's as well as their own format. That would still take awhile, but as that’s
A memex is a device in which an individual stores all his books, records, and communications, and which is mechanized so that it may be consulted with exceeding speed and flexibility. It is an enlarged intimate supplement to his memory.&quot; - Vannevar Bush
Basically key/value pairs describing the data. Such as &quot;Author : Tish Shute&quot; or &quot;Colour : Green&quot;. The object is already implied as its what's being linked too. Thus you wouldn't need whole triples (which are the standard base of semantic data). Because semantic data can be chained together, this would make very powerful search queries possible.
The main advantages of using a OT system like Wave for games is twofold; 1. For making simple games it takes far less investment as all that is required is basic bot-coding. You dont even have to run your own server if you dont want, provided theres a Bot-supporting server or something like Google App Engine you can use for your game code. Wave takes care of accounts, transfer of information and the progation of changes over the rest of the infrastructure. 2. If you want to make a more advanced game (something like WoW or Secondlife), theres still some big advantages to using Wave. You can build your own custom-server to handel complex game events and actions, but by conforming to the WFP standard for server<>server interaction, you allow anyone to both view or join your game with little to no effort required. When user's can just view or try your game with a single click, you stand a lot more chance of getting them hooked on it. Having to signup, login, and potentialy download a client is often far too much effort for people that just want to try something quickly. With OT you can even create multiple servers worldwide with a persistant and constantly sycning world between them...all with no extra effort on your part. This means a faster experience for the end user, while still having a consistant game world for the user. (No need for separate &quot;worlds&quot; for the user to login too due to server load restrictions) You could even make your game support user generated content, or overlap with other game worlds...if you wish. This is just a handfull of advantages really. OT is what makes multiuser (or multiplayer) interaction possible. In Networked games you have a scene graph that is kept in sync between the clients by sending changes of it's nodes states between the clients (or between the clients a a centralized server). In Wave OT does this for the nodes of an XML document (aka a wave). The catch is that requirements for document editing and requirements for game scene graphs are somewhat different. For example regarding real time requirements vs. correctness. e.g, the way Googles's OT implementation works, a client cannot send out a new change before the last change has been acknowledged. This is because OT has to guarantee consistency which isn't that important in a gaming scenario. Also of course thee scene graph example is rather simplified. Modern network games are a lot more sophisticated than that :) But the scope of Wave is much broader that game design, so a specialized AR Game Engine will most likely be able to offer more in terms of performance and possible gaming scenarios.