One document matched: draft-stewart-avt-00.txt



     RTP Payload format for Shared Multicast Virtual Worlds (SMVW).

                        draft-stewart-avt-00.txt


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.


   Comments are solicited and should be addressed to the author and/or
   the audio/video transport working group's mailing list rem-
   conf@es.net.

                                Abstract

      This memo defines a method of encapsulating information for the
      creation of multicast shared virtual worlds, possibly consisting
      of an amalgamation of Multicast applications (for example, a VRML
      world, and Multicast Audio with proximity bounds).

















1 Introduction.



  The need for shared virtual worlds has been recognised for some years,
  particularly in the development of DIS/RTI/HLA by DARPA and the US
  DoD. At the same time VRML has emerged as an approach for the 3-D web
  viewer and in parallel a simple method to share such a virtual world
  has been developed with the VRML interchange protocol used by the VNet
  client-server pair. To progress this lite-weight approach to shared
  virtual worlds the shared multicast virtual world protocol (smvwp) is
  being proposed. The approach is seen as complementary to the dis-java-
  vrml and vrtp work in the Web 3D Consortium emphasising service to a
  relatively smaller community of participants and simplicity in
  supporting the amalgamation of multicast applications, for example
  shared VRML with avatars able to talk together via RAT.


  This memo defines a method for encapsulating smvwp information in RTP
  for the creation of multicast shared virtual worlds with the
  possibility of amalgamation with other multicast applications.




2 Discussion.

  There are two classes of data that must be interchanged over a network
  to allow for shared virtual worlds. These are:

  a) Time sensitive data

  b) informational data

  Time sensitive data will flow over RTP; informational data will flow
  over RTCP.

  When one moves in a shared world, others must see this movement, and
  they must know how to map an Avatar, and other services, to this
  movement.

  Thus, position/orientation packets must be sent in a timely manner.
  These packets contain position and orientation parameters (with
  standard VRML meanings) that identify the current location (at time of
  packet generation) of that Avatar.

  Interaction between Avatars can be seen by sending a "clicked" packet.













  The result of this clicked packet is defined by either the Avatars
  themselves, or by the world.

  An avatar can have gestures or other actions, definable and invokable
  by the originator of that Avatar. Such gestures may include facial
  expressions (laugh, smile, frown, etc) or other actions, for example,
  morphing from one shape to another.

  By either including a VRML Route command or an external program, it is
  possible to have a clicked event initiate avatar gestures. An example
  of this may be a button on a display case, that when clicked, changes
  the items in the display.

  Informational data consists of the Avatar info (a reference to a VRML
  file), standard RTCP data such as a CNAME, and special items, for
  instance, a "world" checksum to ensure that all avatars are playing in
  the same world.




3 Payload format definition

  The following outlines the packet types.

  3.1 Time Sensitive Data.

  3.1.1 Position

  Packet type:   1

  A position in x-y-z coordinates; the base  coordinates and references
  supplied by the base world.

       X axis (32 bit float)
       Y axis (32 bit float)
       Z axis (32 bit float)



  3.1.2 Orientation

  Packet type:   2

  An orientation change in x-y-z-angle; the base coordinates and
  references supplied by the base world.  NOTE: the angle is measured in
  radians, as per VRML spec.













       X axis (32 bit float)
       Y axis (32 bit float)
       Z axis (32 bit float)
       angle  (32 bit float)


  3.1.3 Clicked

  Packet type:   3

  This packet contains the SSRC of the object that was clicked on; the
  source of the action can be taken from the RTP payload header.

       Sequence number (32 bit unsigned integer)
       Dest SSRC (32 bit unsigned int)




  3.1.4 Interaction/Gestures

  Packet type:   4

  This packet contains avatar-dependent action information; and is
  generated from a source, and is broadcast to all members of the
  multicast session.

       Sequence number (32 bit unsigned integer)
       Action Information (stream of UTF-8 characters)


3.2 Informational Data.

  These are passed as APP fields in RTCP packets.


  3.2.1 Avatar Information

  Packet type:   ?

  This packet contains the scaling factor for an avatar, and the URL of
  an avatar to represent this SSRC.

       X Scaling (32 bit float)
       Y Scaling (32 bit float)
       Z Scaling (32 bit float)
       URL (UTF-8 String)













  3.2.2 World Checksum


  Packet type:   ?


  A 32 bit checksum to ensure that all players are playing in the same
  virtual world.

  Currently, no algorithm has been selected to generate this checksum.

       Checksum  (32 bit unsigned int)



  3.2.3 Proximity information


  Packet type:   ?

  This information distributes the "personal space" around the avatar,
  for use in non-VRML collisions, audio closeness, and other.

  There are two rings determined by these values, the "inner ring",
  where two entities are considered to be close, and an outer ring, to
  allow a graded approach.

  For instance, Audio would be at full volume when within the inner
  ring, and would fall off to zero from the edge of the inner ring to
  the outer ring.

       X inner axis   (32 bit float)
       Y inner axis   (32 bit float)
       Z inner axis   (32 bit float)
       X outer axis   (32 bit float)
       Y outer axis   (32 bit float)
       Z outer axis   (32 bit float)



  3.2.4 Amalgamation of tools info

  Packet type:   ?

  This allows grouping of different media sources that may be
  independent on the RTCP CNAME parameter.














  The owner of the resource is the SSRC in the originating RTP packet.

  Packets consist of groups of the following tuples:

       SSRC of tool (32 bit integer)
       Mcast address/port (network dependent)


4 example packets


  4.1, a Position update.

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |V=2|P|X| CC=0  |M|       PT    |          sequence number      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                   timestamp of initial frame                  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             synchronization source (SSRC) identifier          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | SVRML PT      |  Version      |     unused                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                     X axis  (32 bit float)                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                     Y axis  (32 bit float)                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                     Z axis  (32 bit float)                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



  Where:

  V, P, X, CC, M, PT, sequence number, Timestamp, and SSRC are defined
  in the RTP spec.


  SVRML is the Shared VRML Packet Type; this determines the remainder of
  the packet (see above)

  Version is the version of Shared Multicast Virtual World Protocol.

















5 Security considerations

  There are no additional security considerations beyond those noted for
  RTP [1], the RTP profile for audio/video conferences [2] and the RTP
  payload format for redundant audio [4].


6 Author's Addresses


   Dr. John L. Robinson
   john.robinson@crc.ca

   John A. Stewart
   john.stewart@crc.ca

   Communications Research Centre
   3701 Carling Avenue
   P.O. Box 11490, Station H
   Ottawa, Ontario
   Canada
   K2H 8S2

7 References.

  Web3D Consortium:
  http://www.web3d.org/


  The VRML Interchange Protocol: Vnet.
  http://ariadne.iz.net/~jeffs/vnet/


  VRTP and Web3d Working Group:
  http://www.stl.nps.navy.mil/dis-java-vrml/


  DIS/RTI/HLA:
  http://www.dmso.org/


  IEEE Standard for Information Technology:
    - Protocols for Distributed and Interactive Simulation
      IEEE std. 1278-1995











PAFTECH AB 2003-20262026-04-22 23:26:40