Infomaniacs Home

Virtual Reality - Virtually Here
By Linda and Erick Von Schweber

Virtual Reality Software
"The Authors' Cut":
Excerpts from and additions to the story originally published in PC Magazine Issue #5, March 14, 1995

To develop a VR application, you need the best tools for the program you want to build. Here we take a look at development products that provide 6DOF navigation with real-time rendering within a world. Unless otherwise noted, all testing was conducted on a 90-MHz Pentium-based Hewlett-Packard Vectra XU5/90C with 32MB RAM and a Matrox MGA Impression Plus PCI graphics accelerator.

Virtus VR and Virtus WalkThrough Pro
VREAM's VRCreator
Sense8's WorldToolKit
NeTpower's Open Inventor
Autodesk's Cyberspace Developer Kit
Superscape's VRT


Virtus VR and Virtus WalkThrough Pro

If you want a basic VR package, either for a fly-through application or just for getting your feet wet in VR, then these products are for you. Using Virtus WalkThrough Pro's Windows-based graphical interface, you can point and click your way to a world of your own. Mind you, there are limits: There is no facility to import objects, and there is no sound. The textures are only 256 colors, you can't communicate with other Windows applications, and objects can't respond to your input. The current Windows version won't let you import Video for Windows or QuickTime movies as surface textures.

If your needs are limited to creating and exploring a model of a house, building, or manufacturing or distribution facility, this product is a good match. The Windows point-and-click development environment lets you keep one window open with a design view window (with a view from the front, top, side, or bottom) along with another window in which you can fly through the 3D, rendered view (the walk window) of the world you are building. Toolbar icons are used for most everything. You pick a shape, position and size it in the design view window, and use an icon to connect it to another shape if you want a doorway between them. You can use another icon to draw doors and windows onto walls. The interface is not totally intuitive but it does present an accessible approach to 3D design. Creating furniture or other objects is tedious at best, but Virtus ships outstanding object libraries.

There is everything you need for offices, homes, kitchens, bathrooms, and the like. We created a building of four connected hexagram rooms in a few minutes, and we loaded furniture for offices, sitting areas, and a bathrooom. We were able to apply wallpaper, install carpet, and change the colors and fabrics of furniture. Even creating doorways, roofs, and stairways is a breeze. We could walk around the world at any time during this construction process.

By deploying Virtus WalkThrough Pro in this development mode rather than in a runtime, you have partially reactive VR. You can work with a client to reconfigure the world, walk around it, and change it some more. The only problem here is cost--you need the full product. You can freely distribute fly-through-only worlds using the Virtus player on PCs, Macs, and PowerMacs. The Virtus player ships with Pro but not with Virtus VR; you can get it free from the company or download it from on-line services.

We built most of a four room building with a 486/66 HP Vectra. Performance was quite good until we crashed the system with an excess of textures. The same file ran fine on the Pentium. We tested the shipping version of Virtus WalkThrough Pro 2.0 ($495). Virtus VR ($99) offers fewer tools--and only drag-and-drop manipulation--to create and modify worlds but can use all the galleries.

If basic VR is what you're after, requiring only a standard computer and desiring no special peripherals (Virtus only supports a mouse), the Virtus products should be on your shopping list.

Return to Software Reports Table of Contents


VRCreator

If you haven't seen VREAM's VRCreator in a while, take another look. Sporting a new graphical interface (in Windows) and improved shading and textures thanks to RenderMorphics rendering, VRCreator takes the high functionality that's been a trademark of VREAM and makes it very usable. We looked at a pre-release version of VRCreator, Version 2.0, and although it had only some of the finished product's features, it impressed us.

Using point and click, we created objects from a rich set of primatives, extrusion, and lathing options. Then we easily sized and positioned them, assigned textures, and modified lighting. You will also be able to import .DXF files and .3DS files (possibly including animation files). Most impressive is the Link feature, which is used to connect objects, actions, and reactions. You open a Link dialog box, select an object or objects to link, select a condition, choose the object that will respond, select the response, and save the link. Simulating devices was never this easy.

For compatibility with past versions, VREAM has retained its original scripting language. Though a boon to early adopters of VREAM's former DOS product, this language lacks the object orientation its new interface implies.

How well does this new version exploit the strengths of Windows? It will support DDE, MCI, OLE; .WAV and MIDI files; and possibly Video for Windows. Should the company achieve all this in a $495 product, it will have brought multimedia into the third dimension. If you want VR power without the hassle of a toolkit, VRCreator is the product to get.

Return to Software Reports Table of Contents


WorldToolKit

Sense8's WorldToolKit lets you do anything in VR. WorldToolKit development tools run on many platforms, from DOS and Windows in all its variants to Unix on Sun, HP, IBM, DEC, and SGI.

Sense8 supports nearly every VR interface device, including headmounts, trackers, 6DOF input devices, 3D sound controllers, and the all-important graphics accelerators. Documentation is extensive and the company routinely configures systems and offers full consulting and contract development. Sadly, WorldToolKit's interface and architecture are starting to show signs of age.

WorldToolKit consists of a library of C functions. You build your virtual world by writing code to call WorldToolKit functions. The development environment differs according to platform; for instance, in Windows NT you do development from within Visual C++. These function calls are used to initialize a world; import, size, or move an object; define behavior; add sensors to accept user input and detect user motion; and locate the user's viewpoint. This is all done in code. You then compile and link. Sense8 is to be commended on the fact that its function library is object-oriented. It does not, however, deliver all the productivity advantages of true object-oriented programming.

We examined WorldToolKit running on DOS, Windows 3.1, Windows NT 3.5, and two demos produced with an pre-release version of WorldToolKit, Version 2.1 for Windows NT accelerated by a pre-release Evans and Sutherland Freedom Graphics PCI board. One of the accelerated demos featured a completely textured environment with many objects moving and flying through the environment. We were able to move through the space at anywhere from 8 to 13 frames per second. This is impressive, as we have seen other vendors' systems crash just loading highly textured worlds.

Sense8's documentation deserves a special mention. Tips and tricks are found throughout the user and reference manuals, and a hardware section familiarizes the reader with the full range of supported devices. Numerous demo apps are shipped with the product with complete source code. Studying these programs will tell you how to link your virtual world to spreadsheet data in real time, provide the basics of implementing collision detection (to prevent the user from navigating through a wall), tell you how to animate objects in your world, and provide links between multiple worlds so the user can portal between them.

Sense8 has another product coming: an object-oriented graphical IDE program for power users. It will use Visual Basic as a scripting language so that, even while immersed, you can define or change an object's behavior dynamically by dragging Visual Basic code onto it.

If being prepared for all the possibilities is important for your application and organization, and programming talent is available, WorldToolKit is the world builder for you.

Return to Software Reports Table of Contents


Open Inventor

Open Inventor, the newest kid on the PC block, is licensed by Silicon Graphics Inc. (SGI) to a number of companies who are supporting it across several platforms. One licensee, NeTpower, released Open Inventor for Windows NT in the fall of 1994, and new ports should be shipping as you read this from Template Graphics Systems (TGS) and Portable Graphics. In 1995, ports of Open Inventor will span all desktop operating systems.

Open Inventor is an attempt to redefine the realm of interactive 3D graphics. While Open Inventor is a C++ toolkit which is used from within Microsoft's Visual C++ in Windows NT, it adds its own interface wizard to Visual C++. The wizard adds menu items and icons to your programs, extending their functionality. It also provides object manipulators, which add wireframes around any object (in the runtime environment) and let the end-user reshape, resize, and reposition any object in the world.

At Open Inventor's heart is an object-oriented database called a scene graph, an elegant structure that stores the information for creating an animated, interactive 3D world. Such information includes objects and their attributes, lighting, cameras, engines that provide motion and calculation, manipulators, events, shapes, and actions. Related to this database is a new file format, with the extension .IV, called the Open Inventor Interchange Format. It lets you send interactive 3D worlds across a LAN or around the Internet and run on dissimilar computers.

The NeTpower port of Open Inventor is flexible enough to support simulation, visualization, and VR. Once you understand the structure of the scene graph database, creating an application is as simple as writing a C++ program to populate the scene graph. You execute your program, it loads the database into memory, and your world is operational. No other program we looked at could even begin to approach the great design of this model. Inventor also provides an OpenGL rendering solution, as do workstation level modeling and animation programs, to produce remarkably great-looking graphics. Besides running this on our test bed we tried it out on an Intergraph TD-4, where it performed very well.

Although the NeTpower port ran without a hitch, it lacks a visual scene editor, a graphical window in which you interactively build your scene graph before refining it with C++. The Template Graphics port is expected to include this feature and a file format conversion utility, also lacking in the NeTpower port, to import and export non-.IV files.

The documentation shipped by NeTpower is almost non-existent. Programmers must instead rely on two texts on Open Inventor written by Josie Wernecke, a member of the SGI development team. The SGI books (available at computer bookstores) are great as tutorials but not as reference manuals. Also, the NetPower NT port has Windows-specific features that SGI books don't address.

The product has some limitations. Global behaviors are not in the Inventor model: You must either make them local to objects or look to another product. We are also not convinced that enough support exists for morphing of objects.

What's clear, though, is that because it is a highly portable and flexible standard, Open Inventor is soon to be the talk of the VR town.

(We believe Inventor scene graphs and the .IV file format will become the graphics world's equivalent of SQL relational databases. Consider how RDBMS have revolutionized information processing and you begin to see the impact this new standard will have. Open Inventor is very much a "live" project at SGI. We spoke with Rikk Carey, the father of Inventor, who told us how his progeny is now entering its 2nd phase of development. The goal: to take 3D from a niche tool to a ubiquitous technology. No 3D desktops for him. He sees nothing short of a visual workplace spanning the office, the university, and with the internet the entire global community. This is Open Inventor's mission.
How's it doing so far? As of Fall '94 Open Inventor had two to three thousand licensed developers and 10 thousand university licenses. Ports of Open Inventor will, this year, span "all" of Microsoft's Windows implementations, PowerMac OS, OS/2, IBM's RS/6000, Sun, DEC Unix, HP Unix, and of course SGI Irix. And licensees will benefit from SGI's continuing R&D on Open Inventor. No less, And George Lucas's Industrial Light and Magic uses Open Inventor as the hub of their 3D graphics and animation system. Pretty impressive for a 5 year old. Open Inventor's heritage dates back to 1989, the result of an R&D project at Silicon Graphics.)

Return to Software Reports Table of Contents


Cyberspace Developer Kit

Autodesk's Cyberspace Developer Kit (CDK), Version 2.0, is a C++ toolkit providing C++ classes that you can make instances of in your programs. You develop in Windows NT and can execute in both NT and Windows 3.1 with the Win32s and WinG extensions. You work in Microsoft's Visual C++, writing code; Autodesk has not added any wizards or other interface tools.

CDK can do some incredible things, but this power comes at a great cost. Application development is challenging, so be prepared to write a lot of code. Just setting up the environment to render a static object requires pages of programming.

CDK is distinguished by its support for physics. Whether you need mass, gravity, springs, friction, or collisions, CDK provides a powerful set of primitives. To simulate additional Newtonian physics, you have workable support for matrix and vector algebra. The package is very useful to the game developer who wants to create super-realistic motions of solid bodies in space.

Also of note is CDK's support for importing an animation produced in 3D Studio and running it in your virtual world as you navigate and interact. This is a great feature, since producing complex animations in a VR environment is typically not an easy task. In practice, the animation tended to slow down during navigation through our VR world, but generally we remained impressed.

Compared with the other toolkits we examined, CDK offers limited cross-platform support--basically Windows 3.1 and Windows NT. Nevertheless, if you love to program, and you can exploit CDK's strengths in physics and animation, as well as its flexible architecture, this may be the VR toolkit for you.

Return to Software Reports Table of Contents


Superscape VRT

The demos that come with Superscape VRT comprise a virtual doctoral program in VR interactivity. We explored Superscape VRT 3.6 for DOS (look for a Windows version in August, 1995). It's a standalone system, containing world and object creating and editing tools, the company's procedural SCL language, a bitmap editor for textures, a sound editor for .WAV files, and, most amazingly, a built-in key-frame editor for producing animations and morphs. Also unique are the ability to specify ground, sky, and horizon colors, and the inclusion of a ground/floor that you never fall off and can edit easily.

The interface suffers from the DOS-based GUI, however. Strange--it just feels old even though you're creating VR. The graphics tools are basic, the objects shipped are lacking in style, and you may have trouble importing most .DXF files. Most troubling, however, is the lighting methodology. You actually have to assign color variants for an object when its colors are lit and for when its colors are not lit. The result is a very flat, limited visual quality.

Superscape does achieve impressive graphics performance on 486-based PCs if you have a graphics card with excellent DOS performance. Interaction is Superscape VRT's strong suit. Without programming, you can assign behaviors such as actions, rotations, gravity, and elasticity to objects. We built a room and placed a ball in it, and then it was easy to set things up so when a user moved the ball it would begin to rotate, bounce all around the room, and slowly lose its bounce.

You can also use the keyframe editor to produce a bouncing ball, complete with "squash" effects, and run the animation whenever someone touches the ball. Add some conditional SCL programming, and you have a very flexible set of options for building interactive worlds.

If you want a DOS product that doesn't require programming, Superscape VRT is the only choice. The $3,995 product is robust and field-tested, relatively easy to use, and backed by creative people experienced in virtual world design and building.

Copyright © 1995 Ziff-Davis Publishing Company

Return to Software Reports Table of Contents


To Contact the authors send mail to info@infomaniacs.com
Infomaniacs home is www.infomaniacs.com

Updated Jan 28, 1998