Wednesday, April 7, 2010

notes on the history of the VWRAP working group

after my last post about VWRAP, a couple people pinged me asking about it's history. here is a quick narrative of how VWRAP came to be and where it might be headed next.

the effort to establish the VWRAP working group has been ongoing for about a year, and it has a surprisingly rich history for an effort that's been ongoing for that short of a period of time. our group is certainly not the first attempt to develop interoperable virtual worlds standards; that's been going on for quite a while.

VWRAP recent history begins with an interoperability test sponsored by IBM and Linden Lab in the summer of 2008. using ideas that had been discussed in the Second Life(tm) architecture working group, several users were able to teleport their avatars from Linden-owned to systems owned by third parties.

there were significant limitations however. avatar appearance was inconsistent across regions and cross-grid access to inventory was more or less nonexistent. but as a first step, it showed that cross-grid teleports were possible.

interested users can find documentation of the protocol used by these early interop trials on the Second Life(tm) wiki:
later that year we entered a time of economic uncertainty. virtual world interoperability did not seem to contribute to the bottom line, and there were significant near-term opportunity costs. "let's type up a report on our experiences, publish our final OGP drafts and focus on less risky things for a few months before coming back to it." we were in the process of mothballing the interop effort when things took an interesting turn.

inside the lab, we knew the UDP-based legacy SL protocol had some serious scalability problems; we wanted to move more services to LLSD over HTTP. most of our work serialized LLSD messages as XML documents and sent them over the internet. as part of our "wrapping up" process, we figured we should register the MIME types we used for LLSD. this was the motivation for the original "LLSD Abstract Type System" draft published in early 2009.

at around this same time, the bidirectional http effort inside the IETF was heating up and mark lentczner was asked to submit a draft and a presentation on "Reverse HTTP" which was based on previous work at the lab with donovan preston.

originally intended to be small, stand-alone drafts with a limited scope, we began the task of publishing an informational RFC for the purpose of registering the LLSD MIME types.

starting a virtual worlds working group in the IETF was not a new idea. the SWMP mailing list had been setup in 2007 to discuss the idea. it eventually failed to result in a working group for reasons that are too complicated to discuss here. there was considerable resistance to the idea, but around this time, david lavine at IBM started asking "what's next with interop?" david and suzy deffeyes had invested a fair amount of effort in the 2008 interop trail, so it was a reasonable question.

the more we talked about it, the more it seemed like a good idea. in early 2009, mark lentczner and i lobbied inside the lab for the idea while david and suzy pushed the idea inside IBM. the IETF does not officially recognize corporate members, people who show up at IETF meetings represent themselves. but if a working group was ever to be formed, but none of us felt comfortable pushing the idea without the support of our management.

we eventually produced an argument for interop good enough to garner support inside IBM and linden, so in january of 2009, david lavine of IBM and i approached the IETF informally with a proposal to sponsor the work of developing a virtual worlds interoperability prototype. at the time, we had hoped to develop a protocol that would work for a broad range of virtual experiences.

IETF process calls for a "Birds of a Feather" or BoF meeting to be held to see if there is sufficient interest to justify creation of an official working group. on march 24th, 2009 the "MMOX BoF" was held at the 74th IETF meeting in San Francisco, CA.

it did not go as well as we had hoped, but it didn't go as bad as we feared it could.

we were unable to reach consensus for "broad interoperability." we would not be able to, as david lavine once hoped, "meet with your raiding party in the sims online, teleport over to world of warcraft(tm), slay a dragon and then teleport to a pub in Second Life(tm) to celebrate."

but we did discover that there were enough people at Linden Lab and in the OpenSimulator community that were interested in cross-world interoperability. the IETF allowed us to redefine our scope and hold a second BoF session. on july 28th, 2009, the "OGPX BoF" was held to discuss the scope of the work (OGPX standing for "Open Grid Protocol X".) this meeting went well and following some discussion on the ogpx@ietf.org mailing list, we were able to agree to a group charter.

in the IETF, a working group charter defines what the group is supposed to be working on and what documents it proposes to produce. you can view the current charter for the group at http://www.ietf.org/dyn/wg/charter/vwrap-charter . along the way, a number of people objected to the name "OGP" or "Open Grid Protocol" as they felt it implied the objective of the protocol was to manage cloud or grid based systems. many alternate names were proposed (including my favorites Open Virtual EnviRonments (OVER) and Agent BackbOne for Virtual Environments (ABOVE).)

eventually settled on the name "VWRAP: Virtual Worlds Region Agent Protocol."

as an aside, after changing the name from OGPX to VWRAP, we forgot to change the name of the mailing list until very recently. the current mailing list is vwrap@ietf.org, though there has been significant discussion on ogpx@ieft.org and mmox@ietf.org.

on march 23rd, 2010, the working group held it's first official face to face meeting in Anaheim, California. it was a mixed reality event with approximately 15-20 people being present in incarnate reality and 50 avatars attending in the virtual world.

the work continues on the vwrap mailing list, and anyone with an interest in virtual worlds interoperability is encouraged to participate.

Friday, April 2, 2010

did i forget to mention? you can hire me.

As some people are aware, I left Linden Research in February of this year. I had intended to join a startup in the bay area. but when that plan fell through, I started taking on short term contracts to pay the bills 'til something more permanent came along. As it turns out, there seems to be a lot of contracting work out there, so I'll probably stay a consultant for the near term.

However, some contracting opportunities match my background better than others. So I figured I would take a moment to mention I'm a seasoned software engineering professional with experience as an engineering manager, software architect and software developer. I am a subject matter expert on virtual worlds, mobile hardware development and implementing Public Key Infrastructures and their related cryptographic algorithms. I am an able communicator, having presented at conferences and written internet drafts, software documentation and technology white papers.

If you are looking for a software developer or agile development leader, look at my LinkedIn profile for an example of some projects I've been involved with or drop me a line at OhMeadhbh@gmail.com.


what's the Virtual World Region Agent Protocol ?

i recently had the pleasure of talking with Maria Korolov at HypergridBusiness.Com. she was interested in understanding the differences between Hypergrid and VWRAP. (who knows, maybe there will be a story about it in the near future?) but this sort of got me thinking, there are very few places an interested non-specialist can go to learn about VWRAP, it's goals and approach to virtual worlds. this blog post is an effort to fill that gap.

what is VWRAP?

the Virtual World Region Agent Protocol (aka VWRAP) is an application layer wire protocol used to create "interoperable virtual experiences." it is also the name of the working group inside the Internet Engineering Task Force (IETF) developing the protocol.

okay... so that's a mouthful; let's break it down.

a "wire protocol" is a set of conventions and standards describing data flowing over a network. HTTP for instance, or SMTP are both wire protocols; they describe the format of messages web browsers or email clients generate. a protocol doesn't equal an implementation. the apache web server, for instance, implements the HTTP protocol, but does not define it. so it is with VWRAP virtual worlds: the protocol lists what data is exchanged in between systems cooperating to "create" the virtual world. VWRAP is expected to be implemented by server software at Linden Lab, the OpenSimulator project and SimianGrid (formerly Cable Beach.)

we say that it's an "application layer protocol" because it makes use of familiar net protocols for moving information around. that is, VWRAP messages are carried by HTTP and (possibly) RTP, the protocols responsible for the web and VoIP.

and what's an "interoperable virtual experience?" this just means that virtual world viewers can use VWRAP protocols to simulate a virtual world shared by multiple participants. i like to say "virtual experiences" these days as i've been involved in some pretty heated debates as to what the term "virtual world" means.

so VWRAP is a protocol and a community of people working to build systems that let users have a "Second Lifelike" experience, but in an "open" virtual world. that is, you can have an experience that looks like second life, but does not require your virtual locations or virtual belongings to be hosted by machines owned by Linden Lab.

why is VWRAP not like Hypergrid or OpenWonderland or Croquet or ... ?

there are several virtual worlds out there ranging from the game-like World of Warcraft(tm) to the open-ended Second Life(tm). Some are open source projects like Croquet, RealXtend, OpenWonderland or OpenSimulator. Others are commercial services like ReactionGrid or cooperatives like OSGrid.

VWRAP is not an implementation or (like Hypergrid) an extension to an existing implementation. it is an open protocol, developed by a community of interested parties with the intent that anyone can choose to implement it. so VWRAP will not be a new product, but likely a new feature to existing implementations and services that will make it easier for them to communicate with each other. (though there are sure to be "sample implementations" of the VWRAP specifications.)

VWRAP is "Second Lifelike" in that it assumes a virtual world somewhat like Second Life(tm) or one created with OpenSimulator. World of Warcraft(tm), Croquet and OpenWonderland use protocols that are significantly different from the ones for Second Lifelike worlds. and the way they think avatars will interact is a little different. it's not impossible for these systems to use VWRAP, but they're not what VWRAP was intended to support. (though there may be ways for these systems to use pieces of VWRAP. more on this later.)

another important feature about VWRAP: some people will consider it incomplete. the people behind VWRAP chose to NOT standardize certain features of virtual worlds. VWRAP does not include standards relating to ecommerce or "game script" like linden dollars. nor does it describe standards for virtual land ownership like Second Life's parcels and estates.

it does, however, make it easy to define new services and to extend existing services. so it should be pretty easy to extend Linden Lab's Snowglobe viewer (and other open source viewers) to support different, world-specific ecommerce and land ownership features. so you may not get to use linden dollars on OSGrid, but if a region owner wants to support something else, it should be pretty easy for the viewer developers to code to it.

in other words, virtual worlds users should find the software they use get a little more robust and should see new features emerge a little faster.

so to recap: VWRAP is a set of protocols, not an implementation. VWRAP protocols are expected to not only be the basis for new products, but also to be added to existing systems as extensions.

what is the IETF and why is it important to this discussion?

the internet engineering task force (IETF) is a "standards development organization" which focuses on internet protocols. it is well known for being the professional forum where TCP/IP (a very popular networking technology) and SMTP (the standard email protocol) were developed. the IETF is not a commercial organization; it's more like a non-profit or NGO. it's stated goal is to improve people's lives by making network equipment and software work together.

an interesting feature of the IETF is that when protocols are developed under it's auspices, they're considered "open" and "public." that is, there is no charge to implement them. you don't have to sign non-disclosure agreements and you don't have to pay money to download them. membership in the working groups that define standards is open to the public; anyone can participate. when Linden and IBM approached the IETF saying they wanted to develop a "next generation" protocol as an IETF activity, they were explicitly agreeing to public commentary and participation in the process.

that being said, there are some intellectual property issues. specifically, there is a patent held by IBM that may or may not have bearing on the implementation of VWRAP services. the IETF process requires participants to disclose any known patents related to the work. this allows developers to decide if they want to participate or agree to make a standard that may be covered by software patents. in this case, IBM filed the requisite disclosure and has offered VWRAP developers a blanket license to use their intellectual property for the purpose of implementing the VWRAP standard(s). i am not a lawyer, however. you should get competent legal authority to verify what i just wrote.

how will we know if we've succeeded?

there's been a little confusion about what we're trying to do with VWRAP. we're not trying to compete with Hypergrid or Croquet or OpenWonderland. rather, we're trying to define the protocol for services that anyone could implement, even 2d web services.

we'll know we've succeeded when after publishing our specifications, users can log into virtual worlds using their twitter or wikimedia account credentials. or if they're able to use the wikimedia commons as an asset server. or if they can teleport between OSGrid and Second Life(tm).

how can you help?

the VWRAP working group is made up predominantly of implementers. that is, people who write software are disproportionately represented. we need more input from people who deploy virtual worlds and from people who live in them. most of the discussions will be highly technical in nature, and that might be intimidating to some.

but it is an open process; everyone is welcome to listen to the discussion. as long as you're not abusive to other list participants, you are welcome to post comments or questions. keep in mind that the answers may not be exactly what you want to hear, and questions should be focused on the technology (and not Linden or OSGrid policy.) but as technology developers, we need to know what your use cases are.

the mailing list for this group is vwrap@ietf.org . a good place to start is by reading the "intro and goals" internet draft.

i hope this answers a few questions about the VWRAP protocol and working group. feel free to email me at OhMeadhbh@gmail.com with questions.

Friday, March 19, 2010

infinity linden has left the building

As many of you know, over the past year I've been working for Linden Research on virtual worlds interoperability. Specifically, I've been working with the IETF to establish working groups to develop open virtual world interoperability. I've also been writing internet drafts and supporting third party developers who are implementing the VWRAP specifications.

But recently, I left the lab. The decision was amicable and mutual. Normally the departure of an employee at my level wouldn't really be news, but since I was one of the public Lindens participating in the VWRAP working group, I figured it was worth mentioning it.

It does not mean the lab has abandoned it's work on interoperability; only that it will be done by a different team. I am continuing to participate in the Virtual World Region Agent Protocol working group at the IETF and will likely author or contribute to further internet drafts.

I'm happy to talk to anyone regarding generic virtual world architecture issues, but clearly specific questions regarding Second Life(tm) and Linden's future plans for VWRAP should be directed to the lab.

Friday, February 12, 2010

the meta-angel

we're now at a point where there's a chance that "consciousness" will move beyond neuro-organic containers. to be sure, consciousness as we know it is a complex emergent feature of the interplay between the hardware of human physiology and the firmware of billions of years of behavioral evolution. current experiments in artificial intelligence are making good use of research in neuro-biology. we're only going to learn more about the interaction between the human consciousness program and the biocomputer on which it runs. i have faith that within our lifetimes we may begin to see neuro-cognitive protheses that repair some forms of brain damage or enhance the cognitive abilities of their users.

it's not difficult to imagine a device whose synthetic axons link carbon-based neurons and silicon systems. if you could connect a few thousand or tens of thousands of these synthetic axons to the human brain, you could begin to carry neurological signals over radio, fibre or copper data networks. with further research, we may uncover how to modulate these signals to present information these networks provide to the human consciousness.

taking this even further, if we developed a model of the human brain and it's interaction with consciousness, perhaps we could develop a brain simulator that is programmed by sending millions of synthetic axons into the human brain. at this point, your consciousness would exist in both places: inside your head, and inside the artificial system. it seems to me that you would be a hybrid being at that point. the big question is what happens when you cut the cord linking the two? would the massively parallel program running in the artificial brain be truly conscious? would it really be you?

we're now at the cusp where we can begin to expand consciousness into a new, slightly more abstract domain. psychologists have suggested the subjective experience of the self, by the wetware running inside your head is limited. the "you" that you think you are is a tiny fraction of what's going on; that's the idea of the subconscious, there's this huge reservoir of perceptual and cognitive processing that you just don't see. so you say the thing in the box isn't the real you? so what? neither are you.

Tuesday, January 5, 2010

An Open Letter to the Honorable Vaughn Walker

Dear Sir,

When they beat me in jr. high school because I was queer, I didn't really complain. I accepted that this was the price of being openly different from the norm.

When they screamed death threats at me at early pride parade(s), I didn't complain much. I accepted that some people condemn me, and the best path to acceptance was to live a virtuous life.

When my congregation turned their backs on me, refused me communion, and asked that I not return, I didn't complain. My god tells me to love unconditionally the divine nature in all living things. I know they'll eventually come around and understand this concept.

I now live in California and there's a chance I might be given the same privileges as straight people. The police here treat me with respect, as do county and state services. I am raising a child here and the schools accept me for what I am: a concerned parent of a second grader.

I don't have to tell anyone involved in the courts that legal decisions are made by way of compelling, logical arguments. But sometimes logic of the law yields to the feeling of the people. Justice and equanimity and equality are all difficult to describe without allowing the heart to inform the mind. A thousand logical arguments could be crafted to explain why same-sex marriage should be forbidden. But at the end of the day, keeping me from marrying my beloved is just plain wrong. It is morally wrong to give privileges to some, but not others.

The law cannot keep me from loving those whom I will, but the marriage contract as it stands now in California ensures I will never get what straight Californians get: the opportunity to live my life married to the person I love passionately; just like everyone else.

Sincerely,
Meadhbh Hamrick

Sunday, November 29, 2009

sending love via twitter

so my day job is working for linden research (aka lindenlab.com.) we make a host of virtual world related products and services under the second life brand name. our community is equal parts vibrant, quirky and insanely brilliant. so are our developers.

one of the things that philip rosedale (our founder) was very much into was the idea of emergent social structures. second life is many things, and i'm pretty sure it's role as a test tube for experimental emergent social structures of vibrant, quirky and insanely brilliant people was intentional.

one of the tools we have internally is the "love machine." philip described it thusly in the interview at inc.com:

"The Love Machine allows anyone who works here as a Linden employee to send anyone else a brief note that says "Thank you for doing this for me." There is a little webpage where you can go to send an e-mail, and then you get a little e-mail that says "Love From Philip" in the subject and it's got text in it. Now, you think, what's the big deal about that? Well, all of that stuff goes into a database. Your review carries that. Everybody is sending love to each other. It creates a positive collaborative environment." --from "How I Did It: Philip Rosedale, CEO, Linden Lab"


there's no requirement to send love to your co-workers, but you can't opt out of the system. if someone wants to send you love, then dang nabbit, it's love you'll get. once you get a few bits of love, it's pretty easy to see what it's all about. if you do something good for someone, they send you love. you get small bits of encouragement that your work has impact in the company. and the little things add up over time...

"love" also serves to smooth the rough edges of sometimes stressful interpersonal communication. more than once i've been involved in animated technical discussions. from the outside they might look like work-related arguments. if you've been on the receiving end of critique of your ideas by technically brilliant people you respect, you know it can be emotionally draining. but anyone who's worked in tech knows that eventually, confrontations occur. i've found that intense discussions are more palatable when you trust that there's respect for the person, even when the person's ideas are taking flak. sending love is one of the ways we remind people internally that, "yes. even though i waved my arms in the discussion, it was still a valuable discussion, and i respect YOU." so the love machine is sometimes used as a salve for bruised egos.

but "love" in this context doesn't need a tool. you can send love via email, SMS, facebook or twitter. i use twitter a lot lately, which is why you'll frequently see me tweet things like "LOVE @soandso for something or other". this is my way of sending love via twitter.

give it a try sometime. send love to someone who's done right by you. it might just brighten someone's day.