Re: [ogpx] URI schema for virtual world locations?

Meadhbh Hamrick <meadhbh.siobhan@gmail.com> Fri, 22 January 2010 19:13 UTC

Return-Path: <meadhbh.siobhan@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C893528C135 for <ogpx@core3.amsl.com>; Fri, 22 Jan 2010 11:13:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.766
X-Spam-Level:
X-Spam-Status: No, score=-3.766 tagged_above=-999 required=5 tests=[AWL=0.833, BAYES_00=-2.599, GB_I_INVITATION=-2]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0l0wvAbXPn8e for <ogpx@core3.amsl.com>; Fri, 22 Jan 2010 11:13:53 -0800 (PST)
Received: from mail-pw0-f50.google.com (mail-pw0-f50.google.com [209.85.160.50]) by core3.amsl.com (Postfix) with ESMTP id C641228C132 for <ogpx@ietf.org>; Fri, 22 Jan 2010 11:13:53 -0800 (PST)
Received: by pwi20 with SMTP id 20so1035306pwi.29 for <ogpx@ietf.org>; Fri, 22 Jan 2010 11:13:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=eOeHdwu6qGHPMcvzHTEvdVS4Hvn8VT1EaSbVdY+4bRg=; b=Urfd1xRKf+eGq9/oNu/Uhu5qBtBYnudWwtHeAg0lZftJddqvVEJu5O/GMrGUKC+MVj Uy0upqSoj9Q/wb3yoJHGBSBLAqmTMcDeeLJxcgt6YHmOPpUyakPH6t4vQ7PWgnkIWa+T 6qXnihPh83WxOSt0GcnsgjqOojZX+HCO4vhz8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=Sj7Jy2uWIZYfyms86/DQ+2uANHPXQjTW+/7q2qIPWm24JrxDlDzACmLHXgdV0xM+zk 5GaVq8ZoLTUV7YX4Qf7fWAC/bEGFYblk7kAmVKRINO+KaX1QAc0dTG83hCRWDZH75rzp yGKvJTlEgySZqLzyyhzAp+TNOQY1tWmvRH1Cc=
MIME-Version: 1.0
Received: by 10.115.133.25 with SMTP id k25mr2281286wan.134.1264187626317; Fri, 22 Jan 2010 11:13:46 -0800 (PST)
In-Reply-To: <f72742de1001220835s783eb958o11e5deac9b7ea9b4@mail.gmail.com>
References: <62BFE5680C037E4DA0B0A08946C0933DC4B2DC80@rrsmsx506.amr.corp.intel.com> <a768bcd91001211023h7e502394y9a65b399f1ee4b56@mail.gmail.com> <8FB8EE72-4938-4DA2-8134-6496DBF6ADE5@gmail.com> <b8ef0a221001211132i1a76b959k6f5768f15c5aa03c@mail.gmail.com> <BD24FA22-060C-44F8-8897-9D2808CC1769@gmail.com> <b8ef0a221001211310k11e87a57gda827e6dc2458c77@mail.gmail.com> <7765f2c61001220625h25580faexe0a20dca1f74a58b@mail.gmail.com> <0DF3EFDA-FDB3-45E4-91D1-051B1288E27C@bbn.com> <b8ef0a221001220802l4307cdc7m14b05426876afa66@mail.gmail.com> <f72742de1001220835s783eb958o11e5deac9b7ea9b4@mail.gmail.com>
Date: Fri, 22 Jan 2010 11:13:46 -0800
Message-ID: <b8ef0a221001221113o7a337fc1y45ec86d300140fa@mail.gmail.com>
From: Meadhbh Hamrick <meadhbh.siobhan@gmail.com>
To: Joshua Bell <josh@lindenlab.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: Re: [ogpx] URI schema for virtual world locations?
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jan 2010 19:13:55 -0000

cool. before leaving this topic though, i'd like to synthesize the
messages in this thread and try to make some assertions regarding the
problem domain of virtual world locations.

i think these are non-controversial.

1. we're discussing the representation of locations within the virtual
world as expressed in the protocol.

1.1. individual implementations may choose to define points in space
using a representational system of their choosing, but the protocol
will define at least one default representation that all systems
should comprehend.

1.2. "locations within the virtual world" are represented as points in
a multi-dimensional space. points are partitioned into "regions" for
administrative and/or performance reasons.

1.3. there may be two forms of location representation: absolute
position within the virtual world (as denoted by a single point in
space) or relative to the origin of a region.

1.4. the statement above (1.3) implies there is a public service
available to map between points in the absolute space of the virtual
world and points relative to a region.

2. representations of locations in a virtual world are used for at
least these purposes:

2.1. to define the origin and bounds of a region in a virtual world.

2.2. to define the location of an object in the virtual space.

2.3. to define the destination of a teleport request.

2.4. to define the destination of spatial chat / voice

3. "the" representation of locations in the virtual world should be
extensible to allow implementers and deployers the ability to add
experimental or implementation specific information to the locational
reference.

3.1. implementations that process location references should retain
location data they do not recognize. that is, an implementation that
receives a location reference including information it doesn't
understand, it should not discard that information. rather, it should
retain that information in case it must pass on that location
reference to an implementation that does recognize it.

4. the protocol must not REQUIRE a single service that maps between
points relative to the origin of the "world" and points relative to
the origin of an individual region.

On Fri, Jan 22, 2010 at 8:35 AM, Joshua Bell <josh@lindenlab.com> wrote:
> Agreed. When something needs to be specified, it should be done to enable
> interoperation between actual systems and can be implemented and proven by
> running code. If coordinates-within-regions are necessary to specify, x/y/z
> coordinates in meters with IEEE 754 64-bit floats appear to be completely
> sufficient for current systems.
> That said, I think part of the challenge for the VWRAP WG is to determine
> what can be left *unspecified* yet *not* get in the way of interop
> envisioned by this group. (Which is one of the topics I want to discuss at
> length in Anaheim). As an example, if there are places where data can be
> relayed between two endpoints by a third party without specification in the
> protocol itself, and the burden is on those endpoints to have out-of-band
> agreement on the format, that simplifies VWRAP and enables scenarios we
> hadn't thought of. (I'm not sure that's applicable to this example, just
> throwing it out.)
>
> On Fri, Jan 22, 2010 at 8:02 AM, Meadhbh Hamrick <meadhbh.siobhan@gmail.com>
> wrote:
>>
>> it's important because one of the functions of the protocol will be
>> for clients to inform servers where they wish their avatars to appear
>> in the virtual world. virtual objects will be moving as well, and
>> simulators will need to communicate with user agents the moral
>> equivalent of "box number 5 just moved to location <x,y,z>."
>>
>> VWRAP is a protocol for interaction between systems that have
>> characteristics similar to OpenSimulator and Second Life. Both systems
>> use meters in a rectangular coordinate system to describe position.
>>
>> There has been discussion in the past about supporting multiple
>> coordinate systems, but the implementers believed it would introduce
>> unneeded complexity. Requiring that ALL compliant systems support ALL
>> possible representational systems seemed like an invitation to
>> incompatibility.
>>
>> VWRAP does not mandate what coordinate system your implementation uses
>> internally, it only mandates what coordinate system you use to
>> communicate with other systems. If you wish to use polar coordinates
>> measured in femtoparsecs in your implementation, that is your
>> business. but when it's time to communicate with the outside world
>> (using VWRAP), you'll have translate into/out of meters in a
>> rectangular coordinate system.
>>
>> this is not because we're rectangular bigots, it's because many of us
>> believe that picking a single representational system will reduce
>> complexity of the protocol.
>>
>> -cheers
>> -meadhbh
>>
>> On Fri, Jan 22, 2010 at 7:22 AM, Richard L. Barnes <rbarnes@bbn.com>
>> wrote:
>> > It's not clear to me why the protocol needs to define coordinates,
>> > especially given that different servers might have different notions of
>> > place.  One server might think of space in terms of coordinates in
>> > meters,
>> > another in polar coordinates, another in terms of polygons that
>> > represent
>> > some construct known only to the server.
>> > So when we're talking about referring to points in space, it seems like
>> > it
>> > would make sense to have two parts: One piece of information that gets
>> > you
>> > to the right server, and one that tells the server what location is
>> > being
>> > referenced (in whatever frame it thinks in).
>> > To make an analogy, in the HTTP URI <http://example.com/this/is/a/path>,
>> > the
>> > authority part "example.com" gets you to the right server, and the
>> > meaning
>> > of the path component "this/is/a/path" is completely up to the server
>> > (it
>> > can be opaque to the user).
>> >
>> > --Richard
>> >
>> >
>> > On Jan 22, 2010, at 9:25 AM, Frans wrote:
>> >
>> > I like this idea too, makes a lot of sens. +1
>> >
>> > On Thu, Jan 21, 2010 at 10:10 PM, Meadhbh Hamrick
>> > <meadhbh.siobhan@gmail.com> wrote:
>> >>
>> >> hmm. i kinda like this idea.
>> >>
>> >> we may want to choose a rectangular coordinate system as the default.
>> >>
>> >> so yeah, maybe the mapping service is "the thing" that defines what
>> >> we're now alternately calling a virtual world, grid or instance. so we
>> >> could have a simple service like this that describes the grid:
>> >>
>> >> %% grid/info
>> >> << {
>> >>  grid_name : string,
>> >>  coordinates : string,
>> >>  map_service : uri
>> >> }
>> >>
>> >> and you could plug in values of "spherical" or "cylindrical" in the
>> >> coordinates entry, but have "rectangular" be the default. the
>> >> "map_service" URI could be the URI used to convert a region name +
>> >> point in space into a URI for requesting services like teleport, map
>> >> tiles, spatial chat, etc.
>> >>
>> >> so... for example... i could have a grid/info entry for SL's vaak test
>> >> grid at http://util.vaak.lindenlab.com/. when you did a HTTP GET on
>> >> it, you would get the blob:
>> >>
>> >> <?xml version="1.0"?>
>> >> <llsd>
>> >>  <map>
>> >>    <key>grid_name</key>
>> >>    <string>vaak</string>
>> >>    <key>map_service</key>
>> >>    <uri>http//util.vaak.lindenlab.com/services/map</uri>
>> >>  </map>
>> >> </llsd>
>> >>
>> >> the map service at http//util.vaak.lindenlab.com/services/map could be
>> >> queried to get information and/or caps to access locations. so you
>> >> could construct a service like:
>> >>
>> >> %% location/info
>> >> << {
>> >>  teleport_cap : uri,
>> >>  map_tile : uri,
>> >>  spatial_chat_cap : uri
>> >> }
>> >>
>> >> so when you did a get on
>> >>
>> >>
>> >> http//util.vaak.lindenlab.com/services/map?location_x=128&location_y=128&location_z=32&region_name=Ahern
>> >> you might get a response like:
>> >>
>> >> <?xml version="1.0"?>
>> >> <llsd>
>> >>  <map>
>> >>    <key>teleport_cap</key>
>> >>
>> >>
>> >>  <uri>http://sim1.vaak.lindenlab.com/c/0953E063-5B31-4B62-B218-A7C0CE1FC391</uri>
>> >>    <key>map_tile</key>
>> >>    <uri>http://s3.amazonaws.com/foo/bar/ahern.jpg</uri>
>> >>    <key>spatial_chat_cap</key>
>> >>
>> >>
>> >>  <uri>http://sim1.vaak.lindenlab.com/c/4AFA1BAF-4FAD-45A5-A683-6244BC81A660</uri>
>> >>  </map>
>> >> </llsd>
>> >>
>> >> and the teleport_cap would be the one that gets used if someone wanted
>> >> to teleport to the location.
>> >>
>> >> hope this makes sense.
>> >>
>> >> -cheers
>> >> -meadhbh
>> >>
>> >
>> > --
>> > Jeroen Frans
>> > Virtual World Technology Specialist.
>> > TheVesuviusGroup.com
>> > SL: Frans Charming
>> > _______________________________________________
>> > ogpx mailing list
>> > ogpx@ietf.org
>> > https://www.ietf.org/mailman/listinfo/ogpx
>> >
>> >
>> _______________________________________________
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
>
>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>
>