Blender homepage link
header graphic
 

VML

"VML" is the name of a simple XML-based file format used for saving and loading Verse data for offline, typically disk-based, storage. VML captures the entire Verse data model, everything the server knows about each node is stored.

Having such a format, with related tools to do the saving and loading, is useful since it allows you to quickly start a fresh server and populate it with whatever content you would like it to have.

Example

Here is a short example of what a VML file can look like:

<?xml version="1.0"?>
<vml version="1.0">
 <node-object id="n0" name="object">
  <transform>
   <position>0.000000 0.000000 0.000000</position>
   <rotation>0.000000 0.000000 0.000000 1.000000</rotation>
   <scale>1.000000 1.000000 1.000000</scale>
  </transform>
 </node-object>
</vml>

This is just an empty object node, with no links to other nodes. In a typical rendering environment, it would be invisible. To make it more interesting, it would have to link to other nodes (geometry, for instsance).


Formally Specified

The VML format is formally specified, using a standard W3C XML Schema. The schema is available below, although this is probably not a canonical location so please don't embed it in VML files. The link can be used to drive validators such as this one. The most recent version should be mirrored here, but its real home is in CVS.

Currently this schema lacks support for audio streams; only buffers are supported. Support for audio is also totally missing from the save tool, while the loader can load buffers. This means that the only way to load buffers through VML right now is to create the files offline, and then feed them to the loader. You cannot save them out again with our tools. These shortcomings will be addressed as soon as possible, sorry for any inconvenience.

vml.xsd   34 K

Tools

There are two tools that use the VML format, currently: a loader and a saver. They are both released under open source licenses as with most our tools, and are available from CVS where they reside in the "vml" module.

Status

The table below summarizes the status of the VML support, in the schema as well as in the loader and saver tools.

Node Schema Loader Saver 
Object Full Support Full Support Full Support 
Geometry Bones Missing Bones Missing Bones Untested 
Material Full Support Full Support Full Support 
Bitmap Full Support Full Support Full Support 
Curve Full Support Full Support Full Support 
Text Full Support Full Support Full Support 
Audio Streams Missing Streams Missing No Support