Product Overview  Services  Showroom  Downloads 
OpenWorlds AppKit TM
Developer Libraries


Overview  Components  Versions  To Order 

The OpenWorlds AppKitTM Developer Libraries are our innovative C++ libraries that bring 3D graphics, animation, sound, and Web graphics support including VRML 2.0/97 and X3D support to your new or legacy application.  Whether or not you need Web-standards support, OpenWorlds can provide your graphics support.  OpenWorlds supports any rendering layer, including OpenGL, Optimizer, Performer, and others  Use OpenWorlds as your general 3D scene graph engine, and forget about worrying which rendering layer to choose.  Because switching rendering layers is as easy as switching our node libraries, you never will have to migrate your application to support a new rendering layer!

If you have an application which you want to add 3D graphics and animation to, OpenWorlds is for you.  Unlike other graphics libraries, OpenWorlds is designed to fit into any application.  You do not have to re-write your application on top of OpenWorlds; OpenWorlds integrates into your existing application!  You can either develop your own custom 3D application, bring Web 3D graphics support to your existing application, create your own VRML 2.0 browser as a Netscape plug-in.

The philosophy behind the design of OpenWorlds is this: an open library accessible by all, open to platforms, open to scripting languages, open to change. OpenWorlds is essentially a scene-graph execution engine which supports industry standard formats, whose purpose is to traverse a scene graph executing nodes and passing events. What the nodes in the graph are doesn't matter. They can be script nodes such as Javascript. They can be C++ built-in nodes. They can be nodes based on a proprietary rendering architecture written in C. They can use a high level rendering library like Performer, or use primitives inherent in a CAD system's API. However you want to implement built-in nodes or script nodes is up to you. If you want to mix Javascript and C++ built-in nodes, you can do that. You can even create nodes in the language of your choice!

And node implementation is not the only open area. OpenWorlds is designed to be modular, with interface classes for every area of functionality. In addition to the built-in and scripting node interfaces, there are database, GUI, parser, language, and other interfaces as well. OpenWorlds provides sample implementations and template code, but all of these features are customizable. Whether you have existing modules in your application which you prefer to use, or simply want to extend the sample code, OpenWorlds is amenable.

OpenWorlds handles nodes, both built-in and script nodes. It supports prototyping, inheritance, routes and event-passing. It supports all field types, the event cascade model, and the Javascript. It supports the VRML and X3D specifications, yet provides the ability to extend the specification if desired.