Company History  Mission  Technology  Management  Careers 


Contents:

OpenWorlds™ Philosophy (or "A Web 3D Manifesto")

OpenWorlds & X3D...

OpenWorlds has been instrumental in advancing X3D, the next-generation open standard for Web 3D graphics. Supporting X3D gives many advantages for a company.

  • Foremost, even if your product uses a proprietary format, supporting X3D instantly gives you access to more tools, content, and compatability with other applications, all will minimal effort. You even get the best of both worlds, your own format PLUS industry compatibility!
  • Your product will benefit by having a competetive marketing advantage by being able to claim "X3D Compatabile!", and this will additionally provide an easy path to leverage industry-wide developments in X3D.
  • There are significant commercial and open-source movements for advancing X3D. This provides a path for your application not having to "reinvent the wheel" everytime new advances in the industry are made.
  • X3D content is modular and reusable, saving development time and money.
  • X3D leverages VRML content, exporting, and tools. Packages exporting VRML such as 3DSMax already are X3D compatible.
  • X3D supports optional XML encodings for tight integration with other Web technologies.
  • X3D support also provides a path for MPEG-4 support. X3D-1 is the basis for MPEG-4's 3D rendering.
OpenWorlds is a leading company in the advancement and integration of X3D beyond Web 3D.

History of Web 3D

The Virtual Reality Modeling Language (VRML) is a file format for describing interactive 3D objects and worlds. It is designed to be used on the Internet, intranets, and local client systems. VRML is also intended to be a universal interchange format for integrated 3D graphics and multimedia. It may be used in variety of application areas such as engineering and scientific visualization, multimedia presentations, entertainment and educational games and titles, web pages, and shared virtual worlds.

-VRML Specification ISO/IEC DIS 14772-1 Introduction

The Virtual Reality Modeling Language (VRML) is a standard language for describing interactive 3-D objects and worlds delivered across the Internet.

-VRML Repository web page

Since VRML originated as the first graphical language for the Web, it and other Web 3D formats have garnered the latter quote's very narrow application, despite the stated purpose of the specification. Web 3D graphics are viewed as primarily graphics scene descriptions, with additional scripting capabilites thrown in. They are typically viewed in the context of a web-browser, and solely within that context, whereas connection to existing sytems is extremely limited. Recently, a host of proprietary Web 3D solutions have emerged. These too suffer from many of the same limitations of VRML and carry the additional burden of having their users locked into proprietary file formats, proprietary rendering layers, single Operating Systems, and limited interaction, extensibility, and customization capabilities.

The big picture...X3D

OpenWorlds' view of Web 3D and multimedia is different; we view standards-based formats such as X3D and VRML not only as a powerful tool for graphics interchange and exchange, but foremost as an extensible scripting languages which, almost incidently, handles graphics scenes. This is not to say that the graphics aspects of aren't important; rather it is to say that the graphics aspects are inherent in the scripting notions. These advanced scripting capabilities are enables a developer to make a sophisiticated E-learning application rather than just a simple 3D object viewer. People want to do more than simply view and rotate a 3D object; people want objects that look, sound, and behave like real-world objects.

OpenWorlds views standards-based Web 3D graphics as a tool whose roots are in browser technologies, but whose promise lies in being a medium of exchange for all graphics and simulation applications. Adding these capabilities to an existing E-learning system not only brings in the ability to import new geometry, but also incorporates the ability to run simulations, play audio and movies, and provide a personalized experience for the user.

OpenWorlds has played a key role in helping to create the next-generation standard for Web-based 3D: X3D. X3D is eXtensible 3D. X3D is compatible with VRML content and tools, yet has the ability to expand far beyond what was possible with VRML. X3D has a component architecture which permits new features and advancements to quickly be plugged into an X3D application. With this ability, content modules can be created and reused. Content can easily be updated with new features quickly and easily, usually with only a few lines in the content file changed. For example, to add shadows and reflections to existing content requires only a 3 additional lines to the content file, yet gives the content a much richer look.

Open wide...wider...

Because we are compatible with industry standards, we feel that the implementation should be open to all. And by implementation, we feel these standards should be able to slip into any application without having to rewrite the graphics layer, limit the GUI or controls, or change to look and feel of the system in any way. And by no means should the system have to connect to a Web browser just to use Web 3D and multimedia graphics.

This is the philosophy behind the design of OpenWorlds: an open library accessible by all, open to platforms, open to scripting languages, open to change. OpenWorlds is essentially a 3D and multimedia scene-graph execution engine, whose purpose is to traverse a scene graph executing nodes and passing events. What the nodes in the graph are...it doesn't matter. They can be JavaScript nodes. They can be C++ built-in nodes using OpenGL. They can be built-in nodes based on a proprietary rendering architecture written in C. They can use a high level rendering library like Performer or Optimizer, or use primitives inherent in a CAD system's API. However the developer wants to implement built-in nodes or script nodes is up to him/her. If a developer wants to mix JavaScript and C++ built-in nodes, he can do that. He can even create nodes in the language of his 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 source code, yet 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.

Is OpenWorlds for you?

OpenWorlds is not everything, or for everyone. If you just need a small, simple 3D viewer, there are plenty of very good proprietary ones available. However, if you are looking to bring 3D and multimedia into an existing application without rewriting your application, OpenWorlds is for you. If you are looking to make a sophisticated immersive, interactive, and itelligent Web 3D application, OpenWorlds is for you. If you are looking to have reusable content across several E-training applications, for example, OpenWorlds is for you. If you are looking to have scripting in various languages to make your content intelligent and reactive, OpenWorlds is especially for you. Even if you are just looking for a way of adding easy scripting capabilities to an existing application, OpenWorlds is the system for you.

OpenWorlds takes care of the hard parts of Web 3D and multimedia. OpenWorlds handles nodes, both built-in and script nodes. It supports prototyping, inheritence, routes and event-passing. It supports industry standard formats such as VRML and X3D, but permits extensions beyond these formats. OpenWorlds can support any rendering layer, and we currently have support for OpenGL, OpenGL Optimizer, Performer, and coming soon, DirectX.

main menu
OpenWorlds Architecture

OpenWorlds is an innovative toolkit that brings industry standards Web 3D and multimedia support to your application. You can either develop your own new interactive 3D application, bring immersive multimedia support to your existing legacy application, or just use our software as a plug-in to your favorite browser.

OpenWorlds is extremely open. You can use our core system on any platform. You can write your own built-in nodes. You can swap most of the support features that we provide with your application of choice. The core system does all the difficult aspects of 3D like parsing, routing, time cascading, etc.

It is an open system that can be extended to any platform. The highlights of OpenWorlds toolkit are:

  • Script Interface
  • This interface can be used to add any scripting language (with which there is a known direct or indirect C++ interface), and use that language in your VRML script. Currently we provide C++ and JavaScript APIs.

  • Built-in Node Interface
  • Another highlight is that OpenWorlds is not based on any particular rendering system. Depending on the platform used, developers/users can plug-in the rendering system of their choice! Currently we provide Perfomer, OpenGL, and Optimizer for the SGI and OpenGL and Optimizer for the Windows platforms, with cross-platform support coming soon. For more details about this refer to the appropriate section below.

  • Custom Extensions
  • OpenWorlds provides the ability to have custom extensions, including libraries of behaviors, advanced rendering extensions, and the ability to quickly add any VR hardware device.

  • GUI Interface
  • Similarly users can choose their own GUI toolkit. We provide sample MFC, Console, and Tcl/Tk based GUI front-ends.

  • Template source code
  • We provide you with sample code and templates for most of the external systems (like languages, GUI, geometry, etc.). Developers/users can use these templates and customize OpenWorlds very easily.

main menu
OpenWorlds Subsystems

The following sections discuss about the various subsytems of OpenWorlds:

  • OpenParse - OpenWorlds Parsers
  • OpenWorlds supports various file formats. It comes complete with a full VRML 97 parser, and supports XML-based X3D parsing as well. Parsers read files and write the scene graph to the database using the database API functions. In addition, our Inline node enables non-web 3D CAD formats to be natively read in and used in your Web 3D animations and worlds! Openworlds is the only Web 3D software which supports this.

  • OpenScene - OpenWorlds Scene Database
  • OpenWorlds has a scene database that acts as a communication router between the VRML Parser and the RTSM, and as a storage system for the scene graph. The scene graph holds the data for all nodes independent of what language the nodes are written in. The scene database has a full API to dynamically create or modify the scene graph and connect to any application.

  • OpenRun - OpenWorlds Run-Time Simulation Manager
  • The Run-Time Simulation Manager (RTSM) is the core of the OpenWorlds system. It maintains all of the data needed to represent a VRML world including prototypes, nodes and routes, and manages the running of the VRML 2.0 execution model.

    The design of the RTSM is based around our C++ script API, making OpenWorlds script-centric aprroach possible. This combined with the RTSM's abstract language interface allows builtin nodes to be implemented in a number of ways in any language supported by OpenWorlds.

  • OpenCPP and OpenJS - OpenWorlds' C++ and JavaScript APIs
  • OpenWorlds is a C++ system. It provides a language interface layer that will make it easy for developers/users to add their own language support, so that they can write scripts in that language.

    Currently OpenWorlds has complete JavaScript (ECMAScript) Script node support. Developers/Users can write scripts in Javascript. It has been developed based on the industry specifications.

  • OwDev - OpenWorlds' Custom Extensions
  • OpenWorlds has full extension capabilities by dynamically adding new nodes (features) on the fly at run-time. These extensions include complex behaviors, advanced rendering features, and hardware support. New behaviors such as gravity or dynamics calculations can be added to any existing world. Advanced rendering featues such as shadows and mirrors can bring added realism to existing content. VR devices can quickly and easily be added through node extensions, including Spaceball, Flock of Birds, Head Tracker, etc. The output of these nodes can be routed to any Transform node, thereby controlling the position of any figure or the rotation of any joint.

  • OpenWorlds' Built-in Nodes
  • As mentioned above, a major feature of OpenWorlds is its script level implementation of builtin nodes. This allows one to make an implementation of a builtin node in any supported language using the external facilities of their choice. For instance, nodes dealing with graphics rendering like the geometry, shape and transform nodes could be implemented using any available graphics API. This prevents applications using OpenWorlds from ever becoming obsolete, since new, better rendering technologies can easily be swapped in without rewriting your application.

  • OpenView - OpenWorlds' GUI Front-end
  • OpenWorlds comes with sample GUI front-ends. This is available in full source code so that you can customize or create your own look and feel.

main menu
Availability

The following are some of the tentative dates for release of OpenWorlds.

OpenWorlds Version 2.0 : Available now.

OpenWorlds Version 2.5 : available April 30, 2001.

 

For details contact : info@openworlds.com

Updated : April 30, 2001
main menu