What are the alternatives to VRML?
There are a variety of proprietary alternatives to VRML available for use over the Internet. Perhaps the best known at the moment is Superscape’s SVR format. Worlds created in this format can be seen on the Virtual World Wide Web accessed via Superscape’s site: vwww.com. Using a combination of its own geometry description language and Superscape Command Language (SCL) for controlling behaviors, this format achieves levels of behavior, physical dynamics and interface control currently beyond the capacities of VRML.
MEME is an acronym for Multitasking Extensible Messaging Environment. It manages objects in 3D space by use of an object tree to position objects relative to one another in a hierarchy. Operations upon objects are called tasks and control the size, position, movement or animation of the objects, bringing life to the scene. Objects can be simple or compound and have associated task code to control their behavior. A compound object is just a collection of simple objects and task code. A module contains compiled MEME code for an object and its behaviors and can be dynamically loaded or unloaded from a scene. Unloading an object frees the rendering engine from drawing the simple objects within it. Modules communicate by sending and receiving messages, similar to VRML routes. A cyberspace deck module acts as a guard for security on each user’s machine, only allowing passage to certain classes of messages to modules running on the local host, and controls the interface by which the user interacts with the virtual world.
Although MEME lets you see the results of adding new objects or functionality to a world in real-time, you need to be able to program in Forth to do so. MEME’s author, Marc de Groot, claims “Forth’s malleable syntax gives VR programmers a unique opportunity to experiment with the form ? as well as the content ? of their code.”
Adding to both the difficulty and possibilities of using MEME is the fact that it is many things other than a scene description language and scripting language. It is, in a sense, an operating system because it manages the resources of the machine it’s running on: CPU time, memory, storage and peripheral devices all come under its control. It is also an interactive development environment because of the way MEME allows foreground coding to affect background virtual world processes (real-time updating). This is an increasingly common and in-demand feature of graphics design applications these days, although the lack of a GUI with MEME makes it unfriendly to everyone but programmers. The MEME language is a stack-based interpreted language, so it can be used in the real-time way described above, then compiled to a faster-running byte-code version for final use.
The multi-tasking mechanism uses polite rather than preemptive multi-tasking to have greater control over how much processing is done for each object before the next frame is rendered. A programmer can interrupt the multitasking as required via access to the data structures associated with it. MEME’s thread scheduler may even be more efficient than that in the underlying operating system. Marc de Groot says, “My goal in building MEME was both to create a software architecture that works well for networked VR, and a system that can run on as wide a variety of hardware platforms as possible.” He would like to see a standard for Internet VR that can support a single large universe viewable by anyone, from a kid on a console to an engineer on a workstation. Features that make MEME a contender for such a role are its small memory footprint, which executes efficiently so that low-end machines can benefit from running it, and its ability to take advantage of features found only in high-end machines (such as hardware acceleration). With its universally executable code, generic messaging interface and multi-user infrastructure, MEME may make you wish it were as ubiquitous as VRML.
To see how MEME performs, you can download its viewer from the Immersive Systems Web site (www.immersive.com). It runs on all flavors of Windows and comes with a copy of Renderware, designed to interface with OpenGL or Direct3D. MEME works with both Netscape Navigator and Microsoft Internet Explorer. A Q&A and range of white papers, giving additional information on how to work with it for programming, are available on the Immersive Systems site.
Lots of new features and usability enhancements are on the way, so if you like the idea of MEME, check the Web site frequently for new features. Soon, I’ll look at more of the alternatives.