What is VWRAP?

In 2009 and 2010 I was involved in defining and implementing the Virtual Worlds Region Agent Protocol. I built a number of Node.JS services at Linden Lab, helped manage an IETF Working Group tasked with shepherding the protocol through the standardization process and even wrote a bunch of the specs myself. Virtual and Augmented reality has boarded the hype-train again so I figured it might be interesting to re-publish links to the old specs and blog posts that have since disappeared.

VWRAP was the name of the protocol and the IETF Working Group and was focused on supporting open, inter-operable, standards-based "Second Life-Like" virtual worlds. We weren't trying to create a protocol that was "all things to all people" and consequently lost a number of good potential contributors from Project Wonderland, There.Com and elsewhere. (Specifically, Second Life uses a model where the "ground truth" is owned by the server instead of the truth model being distributed among a number of peers.)

In an effort to try to explain what VWRAP was all about, I penned a number of blog posts. Let's start with this one: it's an overview of what VWRAP is and how it's intended to be used: What Is the Virtual Worlds Region Agent Protocol.

Once you're familiar with VWRAP's context, you may want to read a few of the specifications. At the very least, you should read the "Introduction and Goals" Internet Draft written my David Levine and myself. The "Abstract Type System" Internet Draft introduced the description of a hypothetical type system our protocol would depend on. It's not horribly complicated: integers, booleans, arrays and that kind of thing. It might be interesting as a model for specifying protocol type behaviour without depending on a particular language or processor architecture.

Once you've read and digested the Abstract Type System documentation, the "Trust Model and User Authentication" text can serve as an example of how to construct "VWRAP-Like Services" (as well as describing the trust model we expected second life-like worlds to use.) If the Abstract Type System documentation seems too dry, try reading the article "Abstract Type System? Hunh?" first. It's short and it might help you figure out what's going on with that specification.

This is a fair amount of technical documentation to consume; and it's all relatively foreign to the experience of most web developers. John Hurliman and I wrote an internet draft that describes how VWRAP / Second Life-Like services can be launched via downloading a specially formatted message with a particular MIME Type. The idea here is that end users' systems would be configured to launch a Second Life viewer upon receipt of this type of MIME message. This would act as a sort of authentication bridge between the web world and the Second Life virtual world.

Speaking of VWRAP Internet Drafts, you may want to review the VWRAP Working Group Charter and this blog post on "Notes on the History of the VWRAP Working Group." The history is a little convoluted, having gone through the names OGP and MMOX before settling on VWRAP.

The blog post What Does It Mean for a Virtual World to be "Second-Life-Like" describes briefly the three features of SL like worlds: the virtual world is persistent, things in the virtual world are persistent and there's only one of you. A more detailed list of things that make a world "Second Life-Like" is provided in What's In the Protocol?

VWRAP makes extensive use of Web Capabilities. If you're unfamiliar with this term, check out the article on "Capabilities."