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.