How the VastWorlds platform works

Introduction

VastPark's VastWorlds platform takes a very web-like approach in solving the problems around delivery of immersive spaces (virtual worlds!).

In the above image you may notice some similarities to what occurs when visiting a website. The user interacts with an HTML renderer (ie: Firefox) which downloads HTML from an HTML host (ie: Apache), the HTML is parsed and the media fetched from wherever it resides.

In general terms, the foundations of the web can be thought of as the following:

  • HTML for describing the structure of a web document
  • HTTP for transmitting information
  • Apache/IIS/etc for serving HTML
  • IE/Firefox/Opera/etc for rendering HTML
  • Dreamweaver/Notepad/etc for authoring HTML
  • An FTP client or equivalent for publishing HTML and media to a server

The foundations of VastWorlds:

You'll notice many similarities between the way the web works and the way VastWorlds works. Probably the most important part of all of this is the HTML equivalent, IMML.

* While Apache, IIS or any other web server can be used to host IMML, multi-user interaction requires VastPark Server Application to manage the data connections. It is plausible a module for Apache/IIS could be written which does this.

Scene description: IMML

During early prototypes, VastPark used a binary form of scene description which was not human readable or writable. While this worked fine when developing in a WYSIWYG environment like the Creator, there were a number of flaws to this approach:

  1. The designer needed to be constantly updated to support changes in the scene description
  2. Making a small change to the scene took a lot of time
  3. Standardizing on a binary format was unlikely
  4. Web developers are used to human readable markup

With the above in mind, we set out to create a generic specification for interacting with various forms of media (early on, IMML stood for Interactive Media Markup Language) and ended up with the Immersive Media Markup Language, or IMML, one of the foundations of VastPark.

What can IMML do?

IMML can't cook you dinner or do the dishes, but it is versatile when it comes to describing immersive media and by extension, virtual worlds. It can describe everything from a game of chess to a detailed virtual world.

Something which may seem controversial is the omittance of the term avatar from IMML. That's right, there is no such thing as an avatar in IMML.

Rather than having a predefined notion of what an immersive space might look like, we chose to stay generic while using common concepts such as a world with avatars for one of the use cases.

An avatar in VastWorlds is the combination of:

  • A Model element to represent
  • A Plugin or Script element to manage the user input and avatar behavior
  • A Network element nested in the Model, with the Owner attribute assigned appropriately

Why was it done this way? Flexibility and the desire to avoid artificial limitations to creativity!

Now that we have an idea how IMML assists us deliver the description of an immersive space, we can move on to the second area of interest which is content acquisition and it's companion spec, Metaforik. You can find out more about IMML in the Working with IMML section.

Indirect referencing of content: Metaforik

Metaforik is another light-weight, XML specification that has two primary components:

  1. The idea of media as a concept
  2. A link between the concept and potentially many assets which represent that concept

VastWorlds encourages, but is not limited to, the use of Metaforik for links to content.

Consider the following scenario:

  • A modeller at the fictitious K9Publishing has created a 3D model of a dog
  • The modeller wants to allow everyone to find and use this dog
  • K9Publishing have their own servers for asset storage

Step 1: Upload the model to storage

Step 2: Create an entry in the Metaforik index

This entry is known as an Item.

In this scenario, the Item describes the concept of the dog and has one Asset with a direct link to the location of the model. The metadata related to the item is now available in search requests.

Once the content is indexed, it's accessed like this:

Step 1: Request content from index

This returns an Item which can contain a number of nested Asset elements.

Step 2: Process Item to discover correct Asset

Selecting the correct Asset is the responsibility of the client application and is done using the attributes available at the Asset level, including TargetDevice and TargetPlatform.

Step 3: Download the asset from the selected Asset's Source attribute

Benefits of being Metaforik

By publishing your assets to the Metaforik index, you gain the following benefits:

  • Group level access permissions at both Item and Asset level. Assets can be discoverable or private to your group
  • Customizable asset availability, StartDate and EndDate that indicate the valid time-frame for an Item to be available
  • More fluid coding, IMML referencing Metaforik Items can be written once and run anywhere. Assets for each platform can be linked to the same Item and the client makes the decision which Asset to consume.
  • Association of metadata, such as author, license, tags and description
  • Convenience around updating assets, no hard-links to asset file-names means less chance of breaking an existing link to that asset

Further Reading

See the Developer section of the wiki for further information.

Metaforik-Subsequent-Asset-Request_small.png (3.4 kB) Craig Presti, 03/15/2011 01:41 pm

Metaforik-Get-Item_small.png (5 kB) Craig Presti, 03/15/2011 01:41 pm

Metaforik-Put-Item_small.png (4.7 kB) Craig Presti, 03/15/2011 01:41 pm

Metaforik-Put-Asset-To-Storage_small.png (3.3 kB) Craig Presti, 03/15/2011 01:41 pm

VastPark-User-Level-Overview_small.png (10.5 kB) Craig Presti, 03/15/2011 01:41 pm