The VML project is a pair of file formats, one XML based human readable and editable text, the other a cross-platform packed binary IFF format. The project also includes C++ API's for reading, writing, and interfacing to the formats, and will include demo applications, exporters, and tool frameworks.
Why? The effort to create a simple 3d file format isn't too significant, but as you start to build needed tools around that format (such as stripification, simplification, CLOD preprocessing, or self-occlusion mapping such as spherical harmonic coefficient generation), the quantity of code locked to that format and the time involved therein becomes very significant. That effort also becomes captive to that format, and as formats evolve it becomes necessary to burn valuable time to rework growing numbers of sophisticated tools.
VML is an attempt to create an open 3d file format sufficiently flexible to facilitate high-end content, while maintaining both human editability and binary efficiency. It also seeks to create a platform for generic, reusable tools. It is our hope that a community of tool creators will adopt and extend this work, making it possible for many tool programmers to stop reinventing the same wheels…
This documentation was written to help tool creators understand the design decisions involved in VML. As such, it progressively introduces concepts.