Virtual Reality (Archive 1995-1998)

VR Evangelism

The Grand Vision as of 1995

Introducing 3D

Print Media

The Story that Started it
All "Virtual Reality - Virtually Here"

Real-time 3D Tools & Accelerators

CyberSpaceShip Adventures

Exploring the Multimedium

Maximum Impact

Future Pavilion Visions



3D Interfaces

Computing Fabrics & 3D





Escape from VRML Island
By Erick Von Schweber
Co-chair, VRML Enterprise Technology Working Group
Senior Scientist, Infomaniacs

Note: This is a full text version of a presentation originally delivered to the VRML Consortium Enterprise Technology Working Group on July 22nd 1998 at the Peabody Hotel in Orlando Florida during SIGGRAPH 98.

SQL3D Explained
SQL3D Cafe
A conversational introduction
Escape from VRML Island
White Paper presented at the VRML Enterprise Technology Working Group, SIGGRAPH 98
Life on VRML Island’s getting tough – time to relocate to the mainland

VRML has developed as an island community with few ties to the Information Technology mainland. VRML currently lives inside a file and is dependent on VRML-specific applications for authoring and viewing, isolating VRML from mainstream users and developers. We submit that VRML should relocate to the mainland and live inside industry standard databases as a fully supported complex data type and be supportable wherever other contemporary data types are supported.

Far from suggesting that VRML be abandoned, we recommend that the VRML Island community pack-up, set sail for the mainland, and integrate themselves into the mainstream.

What’s needed is:

(1) Compatibility of VRML, as a complex data type, with suitably extended SQL (relational and object relational) and ODMG (pure object) database management systems, meaning that VRML can live inside these databases just as alphanumeric, image, audio, video, and spatial data do presently.

(2) Support for integrated VRML in all categories of development tools: programmatic IDEs for Java, C++, VB, etc.; application and database development packages and 4GLs; authoring tools; reporting packages, data mining, data analysis and decision support tools; monitoring and management environments, etc..

(3) Browser independence – VRML content renders in Fahrenheit, Java3D, XML, and other viewers, and ultimately, VRML becomes "Browser Free".

This is not a radical departure for VRML.

Rather, it is the evolution of VRML in alignment with contemporary IT practices, standards, and architectures.

The remainder of this paper is presented across six sections.

The first section, A guided tour of mainland history and attractions, motivates the journey by surveying the many virtues of the IT mainland that have evolved over time and compares and contrasts these with VRML’s progression and it’s nearest neighbors.

The second section, How the HTML Island community is relocating, looks toward a neighboring island community as a point of reference and observes how they have performed their own relocation and integration into the mainland.

The primary contention of this paper is then precisely stated in section three, VRML must be redeployed for the mainland.

General recommendations for moving in this direction are then offered in section four, Suggested preparations for relocating to the mainland.

This is followed by a specific proposal in section five to accomplish the stated mission, SQL3D - The Ship for the Trip.

Section six, Enabling a new vision for the future, summarizes the paper and extends the vision of cyberspace that motivated VRML to begin with.

Table of Contents

I. A guided tour of mainland history and attractions

Virtue 1: Data Independence

Virtue 2: Concurrency

Virtue 3: Distributed Processing

Virtue 4: Distributed Data

Virtue 5: Universality

The Final Virtue: Users and developers – lots of them!

II. How the HTML Island community is relocating

III. VRML must be redeployed for the mainland

IV. Suggested preparations for relocating to the mainland

V. SQL3D - The Ship for the Trip

What is SQL3D?

SQL3D Origins and Future

SQL3D Architecture

The Big Picture

VI. Enabling a new vision of the future

I. A guided tour of mainland history and attractions

The Information Technology mainland has been evolving in earnest since the 1960’s and its roots can easily be traced back another 20 years previous to that. During this half-century or so, IT and Data Processing, as it was called in the early days, evolved in many directions simultaneously, several of them intertwined. Each direction brought new benefits, greater ease of use, more power, reduced cost, additional users – eclipsing the technologies, architectures, and systems that had come before.

The result are 5 major attractions or virtues. Together, these virtues, and their evolution, form a reference frame against which we can assess where VRML is today and where it needs to go tomorrow to enter mainstream Information Technology.

Virtue 1: Data Independence

Data independence concerns the level of abstraction that users and developers must understand and address when they interact with data. Back in ancient times (circa 1965) users were forced to confront the details of physical devices to find and modify data, addressing specific positions on 9-track tape and specific segments on magnetic drums.

The concept of a "file" virtualized these hardware devices – one could request a file by name and the operating system or file manager would handle the idiosyncratic hardware, shielding the user from these details. System managers could then restructure or replace the physical device so long as they maintained the file and remapped its relationship to the hardware. Files, as virtual data devices, provided a measure of independence between the physical devices and the users. This is called physical device independence.

When we defragment a hard disk today we’re not concerned that our documents and spreadsheets will get jumbled, a virtue attributable to physical device independence. As IT matured the file concept grew into the concept of a database which tracked inter-relationships between multiple files.

Although freed from device-specific details, users now had to concern themselves with the physical structure of databases and the organization of data within them. Ted Codd’s relational model of data virtualized the concept of a physical database into a logical database, providing users, developers, and administrators with a new kind of data independence – physical data independence.

Users no longer were required to know the location of a datum within a database – position was in fact undefined – they merely would request data by means of its attributes or logical identifier, called a key. Managers could reorganize the physical layout of data within the database management system without impacting users or programs. Users were still required to understand the logical properties of data and logical relationships in order to address and use the data, but this too may change as we enter the next era of data independence – logical data independence.

Data Independence - Interface to data is independent of physical devices and physical representations

Virtue1 - Data Independence

What has all this got to do with VRML? Quite a bit! VRML is not the first step for virtual reality, just its current incarnation. Only several years ago creating a virtual world meant writing a complex program in C which would make function calls to specific physical devices for obtaining input from sensors and gloves and then rendering views of the virtual world for specific output devices such as HMDs (Head Mounted Displays).

Part of the goal of VRML (more specifically a goal of IRIS Inventor and Open Inventor upon which VRML was based) was to insulate the VR developer from these device-specific details, hoping in time to have VRML browsers that supported stereoscopic viewing, 6DOF input devices, HMDs, even CAVEs. Though support for these have not appeared in commercial product releases (except for Inventor), VRML itself successfully divorced the representation of a 3D world from the devices used to view and interact with it, providing the VR developer with physical device independence.

But as we have just seen, the mainland has taken this notion of data independence much farther, a path that VRML could easily follow. It’s interesting to note that VRML’s contemporaries, such as HTML, are no farther along the data independence path.

Though not commonly understood or appreciated, data independence makes systems far easier to use and to manage and is an absolute requirement of mainland technology. VRML still has time to move ahead and provide users and developers with physical data independence.

Before moving on to the next attraction we should note in passing how data processing delivered data independence, for the same techniques may be useful as we look to instill VRML with greater data independence. The key was the move away from physical representations towards more logical representations operating at a higher level of abstraction. Standard file formats for storing data and their associated physical access methods (e.g., ISAM and VSAM) gave way to industry standard logical interfaces (e.g., SQL), making the underlying file formats irrelevant. Ask yourself who today concerns themselves with directly addressing a DB2 or an Oracle data file. Just about no one, because we’ve graduated to accessing all data through a logical interface.

In the modern world of data independence it’s not the file format that must be standardized but the logical level interface language!

Virtue 2: Concurrency

The next attraction we’ll consider is concurrency, meaning the capacity for multiple users and/or programs to be reading and writing data simultaneously without conflict or anomaly. In traditional data processing this began with the development of batch processing and scheduled job control, leading to time sharing where multiple users shared a processor and its peripherals "apparently" at the same time. Contemporary multiprocessor systems spread the user load not just over time, as is done with time sharing, but also over space – across processors.

Concurrency - Multiple users access and update data in a scaleable fashion without conflict

Virtue2 - Concurrency

Where is VRML, and for that matter HTML, in this progression? The VRML97 standard is strictly single user, single process, meaning that two users viewing the same VRML world share absolutely no state – a change in one copy of the world, via navigation or interaction, has no effect on any other copy. This places VRML97 at square one along the concurrency evolution timeline. Two VRML related efforts do provide some measure of concurrency, however.

The recently submitted recommended practice for VRML to database connectivity provides a first step towards concurrency, but it should be mentioned that concurrency is not its primary aim. In this submission, steered by Oracle, a VRML scene initially can acquire some of its state from row and column data stored in a relational database. While useful, in and of itself this provides no concurrency since two or more users acquire identical state information initially when each downloads a copy of a given VRML world based on database values.

However, the Oracle submission goes further. If an update is made to a database column from which a VRML world derives attribute information, say the position of a sphere, then that update is propagated to each running copy of the VRML world, meaning that the change is made concurrently to each users’ copy in memory and each user sees the sphere at the new position. Currently this is unidirectional – the server can propagate changes to the browser but the browser cannot make changes to the server.

The Living Worlds (LW) proposal takes a larger step towards concurrency. Each LW browser still maintains a copy of the VRML scene, but changes to the position and orientation of selected scene objects (primarily avatar representations of concurrent users) are propagated to a multi-user server, a MUtech in Living Worlds parlance, that then forwards these to other LW browsers. In this way users become aware of the other users concurrently within a VRML world and their changing whereabouts and behaviors.

Where does this model of concurrency fit in the evolution of mainland concurrency? Early networked PC database systems, notably Ashton Tate’s DBase, used a network server’s file i/o to forward a network copy of database files to each local user, relying on the server’s file locking to prevent two users from making changes to the same file at the same time. This "networked" database approach placed severe limits on file size, number of users, and quickly led to contention problems. Fortunately, client/server databases made the PC scene in short order, displacing this ad hoc architecture into oblivion. LW avoids these issues only by severely restricting the changes that can concurrently be made.

HTML makes no concessions to concurrency whatsoever, although plug-ins and Java applets have extended HTML browsers into the arena of multi-user chat for some time.

Concurrency is an important mainland attraction. Single user systems on the mainland are practically unheard of. Besides, if we want lots of users using VRML it would help to directly support lots of users with VRML.

Virtue 3: Distributed Processing

The third mainland attraction we encounter is easily the most commonly known, for its evolution broke through the glass walls of the mainframe culture, producing client/server computing more than a decade ago and responsible today for ushering in the era of network computing -- 3-tier and n-tier architectures.

The basis of distributed processing is an efficient and effective partitioning of a task or function into parts that can be distributed to independent threads, processes, or processors. In the first era all functions were handled by monolithic programs. For example, a single Cobol routine would handle data management on specific devices, manipulation of the data via user requests translated into programs, and data presentation as printed reports. In time these functions of data management, manipulation and logic, and presentation were partitioned into separate processes, though typically executed on the same uniprocessor.

Data management was distributed by client/server architecture to a server process while distributing data manipulation logic and presentation to client processes, thereby better exploiting the processing cycles idly sitting by on corporate desktops. Today’s n-tier architectures maintain data presentation on the client where a GUI is best suited to the task but re-centralize application logic for data manipulation back to a server, in this case an application server, thereby better exploiting multiprocessor servers and easing systems management and software deployment – the network computing movement. Management of data remains on a back-end database server or legacy system as it does in the client/server scheme.

Distributed Processing - Partition application by function and distribute these to where they work best

Virtue 3 - Distributed Processing

In passing we note that data independence and distributed processing co-evolved, for partitioning data management apart from presentation and application logic enabled file managers and DBMSes to arise, laying the groundwork for the shift from physical to logical representation that provides data independence. The two go hand-in-hand.

It must be emphatically stated that VRML is not client/server. Only by redefining client/server (redefining in an Orwellian sense) to mean file server can VRML even begin to be claimed to be client/server. In reality, a VRML browser is a monolithic application that just happens to obtain it files from a distributed file system affectionately known as the Web. The architecture of VRML browsers makes no use of partitioning – every VRML browser is an island.

The same cannot be said of HTML as it is deployed en mass. Though inelegant and clunky, HTML, first by way of CGI and Perl and today through JavaScript and Java applets has partially entered the client/server era, and with CORBA and Java RMI, HTML now plays even in the n-tier era. As HTML’s heir, XML inherently partitions data structure from data presentation, presaging the client/server web.

With regard to distributed processing, the VRML Island community is left behind in XML’s wake. This is unfortunate as distributed processing is the prevailing architectural paradigm of mainland systems. If VRML wants to play on the mainland it’s got to become distributed and leave its monolithic architecture where it belongs – in the past.

Virtue 4: Distributed Data

Perhaps the least understood of the mainland’s attractions and certainly the least exploited is data distribution. Least understood because it means more than the ability to easily move and relocate data – data distribution implies a level of transparency, where data can be relocated without functionally impacting users and programs that interact with the data. As such, data distribution implies an extended form of physical data independence – independence from the physical location of data. Notice that this does not claim that users and programs will see no performance impact from data distribution. On the contrary, distributing data is sure to improve one user’s observed performance at the cost of another’s. Performance impact, yes. Functional impact, no.

Distributed data with replication is the latest trend. Here, performance sensitive data is replicated to provide a local copy to multiple groups of users who are geographically distributed. In the most advanced implementation, known as multi-master replication, any copy of the replicated data can be updated and the changes then automatically propagated to all other copies. Less advanced implementations require all changes be made on a single copy of the data, the master replicate, or they forbid updates to replicated data altogether.

Distributed Data - Distribute data physically while preserving the appearance that the data remains local

Virtue 4 - Distributed Data

The greatest limitation to distributed data today is the lack of heterogeneity. ALL the tables must live in DBMSes from the same vendor to accomplish the distribution in the diagram above, with the employee table distributed across two sites and the managers table replicated at both sites. This will change in time.

By some stretch of the imagination VRML could be said to offer some measure of data distribution, providing transparency through the use of URNs rather than URLs, but this is rudimentary compared with distributed data as it is discussed in distributed database circles. HTML fares no better.

Transparent data distribution with multi-master replication becomes essential as we build 3D worlds of limitless size and detail (scaleable worlds) and support multiple users within such worlds – size and ownership issues will dictate that the worlds are distributed, ease of use will require location transparency, and performance will mandate replication.

Virtue 5: Universality

As mainland technology evolved, vendors of key components, such as database management systems, wanted to be all things to all customers. Handle multimedia data in addition to alphanumeric – no problem. Manage data integrity and security within the database – we can do that. Absorb application logic as triggers and stored procedures – we can do that too! Manage complex data types in addition to simple values – why didn’t you say so?

Universality - All required facilities and formats are supported by a coherent system image

Virtue5 - Universality

VRML fares surprisingly well in many of these areas. As the manager of 3D space VRML integrates images, audio, and video, only lagging in its support for efficiently handling alphanumeric data. VRML’s event model and script node provide a mechanism for creating cascades of events and triggering procedures, though lacking an abstracting method for building and using behavioral components.

In these regards HTML looks positively anachronistic, an ad hoc assemblage of fixes and patches to handle the ever expanding demands of users, rather than a developed architecture.

As VRML approaches full support for the previous 4 mainland virtues universality will likely emerge for free. Work must be continued, however, on the media integration front and with robust support for live alphanumeric data within VRML scenes.

The Final Virtue: Users and developers – lots of them!

Taken together, these five attractions of the mainland have produced systems supporting more data accessible by more users thereby attracting more developers – exactly what VRML needs! One can ask if these mainland virtues are indeed applicable to VRML. From the preceding survey it is clear that VRML, as well as HTML and XML, are on the roadmap of IT, and all have a long way to go before they become enterprise-class.

VRML is clearly a presentation technology, and should provide 3D presentation of data, supporting all the virtues of contemporary IT and forsaking none. Would insurance companies have jumped on multimedia several years ago if they couldn’t insure integrity and security of that new data? Not likely! So VRML, as a presentation technology, must support the needs of the mainland IT community, and this means interoperating with systems that exhibit the 5 virtues we’ve just surveyed.

Beyond presentation, VRML is about managing 3D and even 4D data (3D + time), something that IT is just beginning to discern on the horizon as it explores geospatial data and its utility. Ultimately, mainland IT will need robust support for, and management of, 3D and 4D data. But to play in this space VRML must subscribe to the 5 virtues and deliver them to a degree comparable with contemporary IT products and systems.

We’ve seen that partitioning both processing and data are key enablers to achieving the 5 virtues, as is moving from physical representations and interfaces to logical ones. Now that we’ve surveyed the many benefits of relocating to the mainland and have a general notion of how to achieve them it’s time to check out our nearest neighbor, HTML Island, and see how they’ve progressed on a very similar journey.

II. How the HTML Island community is relocating

In the course of our survey of mainland attractions we’ve seen how the HTML Island community has been gradually migrating to the mainland. To begin with HTML Island was a lot closer to the mainland than VRML Island, in that HTML’s data is primarily alphanumeric, the same as in mainland documents and databases, easing the path to interoperability.

In pursuit of these connections the HTML Island community first deployed ad hoc bridges – CGI, Perl, JavaScript, and ActiveX - initial steps in passing data between the mainland and HTML Island. Though pestered with scalability problems these links enabled the mainland to find value in HTML as a presentation and interface vehicle.

The rise of Java then established an island subcommunity of commuters, programs that could move between the mainland and HTML Island. Then with CORBA and Java RMI came the ability to form strong ties between Java applets commuting to HTML Island and traditional enterprise processing running on the mainland – HTML entered the era of distributed processing with partial client/server and n-tier support.

The next step for HTML looks to be a near full embrace of mainland IT – XML (eXtensible Markup Language). XML defines two essential partitions necessary to integrate into the mainland community. First, "information presentation" is partitioned from "information structure", making it possible to manage XML data on a server and distribute XML presentation to a client. Second, XML partitions content into units smaller than pages, called elements in XML, which can be accessed individually and assembled into pages dynamically. Taken together, these two partitioning schemes make XML content amenable to traditional data processing techniques and architectures, a necessary step to achieving the 5 virtues of the mainland.

Is this really what XML advocates are thinking, managing XML as elements in databases rather than as documents in operating system files? The following quotes from Simon St. Laurent's book, XML A Primer, 1998, remove just about any doubt.

p.279 XPointers
This use of the ID value makes it very easy to subdivide a document into more manageable chunks with well-structured elements...This makes it easy to excerpt other documents using links--a feature known in other systems, notably Ted Nelson's Xanadu, as transclusion...For this to work really well, file structures will need to change to avoid making the processing application load the entire document rather than just the desired chunk. The file system itself would have to be an XML processor (perhaps even an object database), storing XML documents as elements rather than as a single file that must be parsed sequentially. [Emphasis added.]
p.303 XML Servers
The solution to all these problems is simple, even though it will take considerable work to implement: servers need to be able to distribute chunks as well as files.
p.304 Although still complex, carrying a steep learning curve, object-relational databases are capable of handling precisely these kinds of requests efficiently. Object-relational databases provide hierarchical (i.e., they correspond neatly to XML's nested elements) that can be retrieved, searched, and processed quite easily...Inso, a participant in the XSL proposal and DOM working group, uses an object-relational database as the foundation for its Dynabase HTML site management tool, for example.

It’s clear from these passages that Simon St. Laurent thinks XML content should reside as elements in mainland databases and systems. But then how do these XML elements, living in databases, get reassembled into wholes that XML browsers can view? Simon continues.

p.307 Anatomy of a Browser
Our all-powerful parser serves to create only an initial state for the browser, after which the element tree it creates may be modified, reorganized, or even rebuilt.

To my mind, this gets us damn close to having the XML data at the client, the element tree, living in a client-side database or client object data cache, where XML elements can be inserted, updated, queried, deleted, and generally reorganized. The DOM (Document Object Model) provides an API into the XML element tree, portending the future existence of such a client-side object data cache. Simon is probably limited, though, in thinking that the XML parser would create an "initial state" – why parse a page into elements for the initial state when these too can be selected from their back-end database residence. Either way, how does the browser-as-client present each element type that it may fetch from some mainland database?

p.312 Breaking Down the Browser
In this scenario, the browser is reduced to a communications engine and a parser, along with a framework that allows different applications to communicate and modify the element tree...In this possible browser future, the presentation and interface aspects of the browser would be taken over by other applications (even miniapplications) that process elements. They would have their own presentation and interface structures, which the "browser" might continue to coordinate...In this model, much of the functionality that used to be in the browser is distributed across applications devoted to the processing of particular elements. They can all share a parser, a communications engine, and the same element tree, but the browser as a unit is unnecessary. The parser, engines, and element tree interface become browser services, rather than a distinct unit.

Simon St. Laurent illustrates this architectural transformation in browsers with the diagrams below. First we see the basic browser structure of today with its monolithic presentation engine.

St. Laurent's Basic Browser Structure

Next we see Simon St. Laurent’s depiction of where browsers could be headed. Notice the miniapplications, as he calls them, that handle the presentation of specific element types in the element tree.

St. Laurent's Possible Browser Architecture

By Simon St. Laurent’s analysis, the concept of an XML browser itself may disappear, replaced by an open framework for clients that provide parsing, data management, and communication services, and into which content-specific presentation/interface applications would dynamically link. Simon’s architecture is very good as far as it goes, but we can update this architecture quite easily to bring it in alignment with current IT practice. Take the icon for the Element Trees and rotate it counterclockwise 90 degrees – you’ve got the element trees now in a local database. Take the parser and make it an import/load facility for the database. Expand the Communications engine into a full fledged Object Request Broker. And if desired, drop the whole thing into a Java VM sandbox as shown next.

Infomaniacs' Reconcieved Browser Architecture

In such a browser future could VRML be one of these content types, living in databases? And what would that mean for the future of VRML browsers? Would they disappear, replaced by VRML rendering and interface mini-applications that link into XML client frameworks? This would certainly pave the wave for VRML to become "browser free". We’ll return to these questions later. What we need to do now is clearly state what VRML must become to integrate into the IT mainland community and thereby offer its many attractions.

III. VRML must be redeployed for the mainland

We’ve identified a handful of key concepts from our general survey of mainland IT’s march forward as well as HTML’s move to the mainland. For VRML to relocate to the mainland and integrate tightly with the IT community two general objectives must be achieved:

  • VRML should utilize an effective partitioning between information presentation and information management (as IT has for a decade and XML is doing today).
  • The separated partitions must be re-connected. A high-level (logical) public interface between partitions is essential -- DBMSes progressed from standardized file formats (e.g. VSAM) to standardized, high level, declarative interfaces (e.g. SQL) -- VRML must do the same.

The environment that provides the requisite partitioning and the public interfaces between partitions need not be created from scratch, it already exists – it’s the realm of mainland client/server and network computing systems, supported by relational, object/relational, and pure object database management systems and distributed object infrastructures. Achieving these goals does not require a wholesale redesign and redevelopment of VRML. What’s needed is a redeployment, picking up VRML as it is and deploying it in the mainland environment. In the process VRML and its capabilities will be transformed. Let’s get real clear on where VRML is currently in this regard and where we want to take it, the destination.

The VRML standard currently specifies:

    • a physical-level representation language
    • physical interfaces (Script node and EAI)
    • a file format
    • normative behavior and conformance requirements

A redeployed VRML standard would specify:

    • VRML schemas for ODBMSes, RDBMSes, ORDBMSes, etc.
    • logical-level languages/interfaces as extensions to transactional data languages (SQL3, ODMG, etc.)
    • Physical interfaces (for backward compatibility)
    • a file format
    • a visual/behavioral ontology (unambiguously associating user experience, e.g., "red", with syntactic VRML expressions, e.g., (1,0,0))

The first two of these require elaboration. Where VRML currently specifies a format for representing a scene as structured ASCII text, the redeployed VRML specification would define how a scene is represented in commercial database systems. For relational databases it may mean specifying tables that maintain nodes of a certain type and their fields as well as tables to represent the transformation hierarchy. For object databases the mapping will likely be more direct, and for object/relational somewhere in-between. This amounts to, at minimum, a VRML schema for each DBMS type.

Each DBMS type supports a standard language for querying and modifying its data. SQL is the best known of these languages, a high-level interface to relational data. SQL (and languages for pure object databases) would be extended as needed to represent the structural and behavioral aspects of VRML scenes. These efforts would be focused on SQL3 for relational data, a work in progress to extend SQL with object capabilities. It is entirely possible (indeed expected) that pure object data languages (the ODMG’s (Object Data Management Group) OQL and ODL) will require little if any extension.

The remaining directives are aimed at backward compatibility (preserving current physical interfaces such as the EAI and the script node for Java and ECMAscript), portability (a VRML file format), and conformance (extending the present conformance work into a full fledged visual/behavioral ontology).

IV. Suggested preparations for relocating to the mainland

Several words of guidance are offered as we prepare for the trip ahead – the redeployment of VRML.
  • Real Time Interactive 3D applications like VRML have unique performance requirements for data presentation - some data management must be done at the client. Displaying text and simple animations at a client is not a challenging prospect. Displaying arbitrary 3D worlds at 30fps where the user is unrestricted in their roaming and navigation is a different animal altogether, requiring that scene data, at least that within and near the viewing frustum, be kept close to, in fact a part of, the graphics rendering pipeline. This means that scene data cannot be entirely relegated to a remote server process.
  • 3D vendors should be handling data presentation because they understand rendering. They should not be building full-fledged 3D databases because they lack the expertise. Building robust database management systems requires 1000’s of man years of research, design, and development. Even upstarts within the data management community rarely succeed, as competitors of Oracle and IBM know all too well. It is a complete waste of time, effort, and money for vendors with expertise in 3D rendering and manipulation to even try to recreate contemporary database functionality, providing data independence, concurrency, distributed processing, distributed data, and universality. No attempt should be made to extend present VRML scene managers, found in VRML browsers, into contemporary database systems. This should be bought or licensed.
  • DBMS vendors should be handling data management because they understand storage, retrieval, and transactions. They should not be building 3D clients because they lack the expertise. This is the corollary of the preceding suggestion – expertise in 3D rendering takes time and expertise that the mainland and its vendors do not possess. DBMS vendors should buy or license 3D rendering technology from 3D vendors.
  • These recommendations when taken together suggest a partnering between 3D vendors and DBMS vendors, an exchange or cross-licensing of technologies so to speak.

V. SQL3D - The Ship for the Trip

The 5 virtues provide abundant motivation for VRML’s redeployment to the mainland. XML as a work in progress outlines a possible path. We have clearly stated what VRML needs to become, and have circumscribed rough principles to guide us on the voyage. What remains is finding the right vehicle to take VRML to the mainland and structure it’s integration. SQL3D is that vehicle, the ship for the trip.

What is SQL3D?

SQL3D is Infomaniacs’ technical architecture and schemata that builds on and extends industry standards to enable applications using 3D data to interoperate with each other, support multiple users in sharing 3D data without conflict, seamlessly integrate 3D, 2D, multimedia, temporal, and alphanumeric data, and exploit the strengths of distributed data and object management.

SQL3D integrates real-time 3D content into traditional data management systems and application platforms and provides such content with persistence, multi-user concurrency and consistency, durability, security, scalability, and distributivity.

SQL3D applications and viewers manage 3D content in a locally cached, distributed heterogeneous federation of object / object relational databases supporting strategic standards from 3D, database management, and object management. Applications supporting SQL3D become interoperable and multi-user.

SQL3D Highlights

  • 3D as a fully supported data type in databases, applications, and transactional system
  • Integrates 3D data with 2D, spatial, temporal, multimedia, and alphanumeric data
  • Supports application interoperability: "3D to 3D" and "3D to Conventional"
  • 3D Multiuser Concurrency and Consistency
  • Persistence, Recovery, and Security of 3D data
  • Scalability and Distributivity of 3D data
  • Can host varied 3D representations: VRML, Fahrenheit, Java3D, Open Inventor, IRIS Performer


SQL3D Origins and Future

Infomaniacs has been at the forefront of inter-disciplinary research, with foci in human-computer interface, intelligence augmentation, AI knowledge representation, semantic data modeling, and DBMS architecture and design. In 1983 the principals of Infomaniacs began a long term research project to enable humans to more fully exploit vast and varied collections of data, information, media, and real world knowledge. This work included research in interface as well as in representation and retrieval. Along the way we sought both data-driven 2D multimedia authoring environments as well as tools for building 3D interfaces.

In 1993 we discovered Open Inventor from SGI, a C++ toolkit that met many of our desires. In 1994, as part of researching and writing PC Magazine’s first feature on Virtual Reality we interviewed Rikk Carey, the father of Open Inventor. SQL3D had its genesis here, as we first began to contemplate using robust database management systems to manage 3D scene data. Ironically, this was the very same moment in time when VRML came into existence, based on Open Inventor.

The notion of managing 3D scene data in a DBMS slowly percolated on a back burner for several years under the name "3D 4GL", an acronym for 3D 4th Generation Language, a reference to a desire to program virtual worlds using a suitably extended, very high-level, transactional data language. In 1997 we surveyed many working groups at the VRML 97 symposium in Monterey California. What we found were many common goals across the groups, but with as many redundant approaches to achieving those goals as there were working groups. In response we informally initiated the VRML Object Management working group to address these common objectives in a common way.

At about the same time we became quite hopeful when Netscape released Communicator 4.0 replete with a VRML 2.0 browser, an Object data cache, and a CORBA Object Request Broker. It certainly seemed that someone at Netscape was thinking in the same architectural terms that we were. Perhaps Netscape would do the work for us. Months later, seeing no real progress at Netscape, we began talking privately with key people in the VRML community about our 3D 4GL ideas, having extended the concept and renamed it SQL3D.

As for the future, SQL3D is currently a foundational component of a Raytheon proposal for DARPA’s "Command Post of the Future".

SQL3D Architecture

The architecture of SQL3D is quite straightforward, as is represented symbolically below. A 3D scene is distributed across a database federation consisting of DBMSes of varying types and from multiple vendors. The scene data is maintained within this federation using schemas appropriate for each DBMS type and vendor implementation.

Connecting these DBMSes together into a federation as well as connecting SQL3D clients to the federation is a real time (possibly soft or hard real time) object infrastructure, here depicted using Infomaniacs’ ioFABRICTM based on real time CORBA and providing federation-wide transparent data distribution, QoS, multicast support, and controlled payload downscaling.

Data and object caches are distributed throughout the federation as required for performance in addition to special purpose application servers that handle optimization, tessellation of higher order surfaces, simplification, decimation, and mediation.

Each SQL3D client, which can be a viewer or a special purpose application, maintains an in-memory scene object cache using a commercial ODBMS. A SQL3D client also incorporates an Object Request Broker to connect it into the federation via the fabric.

SQL3D Conceptual Architecture

Overall, the clients see what appear to them as atomic 3D scene elements. Appearances can be deceiving, however, as these "atomic" 3D scene elements, the red cone and the blue sphere, actually derive their state from various databases and knowledge bases in the federation, with color attribution coming from two sources and shape attribution coming from two different sources. Scene data can be seen cached both locally at the client's as well as in federation caches for performance.

Multiple users interact fully with all elements in the scene (as allowed by security permissions), protected against inconsistency by concurrency mechanisms in the federation and the local client-side object caches. All scene data is persistent, durable and recoverable, secure, scalable, distributed, free of physical data dependencies, and interoperable with data from a wide panoply of types.

What are SQL3D clients and how do you build one? The following illustration shows two variations on a theme.

The Statically Replicated version is intended for developers of applications based on a scene graph level 3D API, such as Fahrenheit, Java3D, Open Inventor, and IRIS Performer. The developer runs their source code for a 3D application through the SQL3D precompiler which installs a "redirector" that bi-directionally replicates all changes between the 3D API’s scene graph and a SQL3D in-memory object data cache which is part of the SQL3D core. The developer may then wish to extend their application to exploit SQL3D’s capabilities. This way developers can easily add SQL3D capabilities to new and existing 3D applications.

SQLl3D Client Architectures

In the second variation an existing application (based on a scene graph level 3D API) is dynamically extended with the SQL3D core, either replicating the 3D API’s scene management (as above) or replacing it. This means that applications "in the field" can instantly benefit from many of SQL3D’s capabilities through defaults (full exploitation requires that the application is SQL3D aware, meaning explicit control over transactions, locking, etc.). While there are several methods of dynamically extending a 3D API in the field it should be noted that some 3D APIs are far more amenable to dynamic extension than others.

It is by way of dynamic extension that we can transform viewers supporting Fahrenheit, for example, into SQL3D viewers. Applied to VRML this provides "browser independence", meaning that many 3D viewers can be transformed at run time to render and navigate VRML content. Ultimately it is hoped that vendors of scene graph level 3D APIs can be persuaded to incorporate SQL3D directly in their toolkits providing all the mainland virtues to their customers right out of the box.

It’s worth mentioning that SQL3D viewers can be constructed using either Static Replication or Dynamic Extension.

Next we look inside the SQL3D core. The primary components are an ODBMS (Object Data Base Management System) and an ORB (Object Request Broker). The ORB is the distributed communications engine. The ODBMS maintains an object cache in-memory and can also save to disk as required (e.g., for stand-alone viewers and applications that are not connected to a federation). Mini applications handle tasks such as loading (called parsing in XML circles), exporting (writing operating system files), intelligent pre-fetch and look-ahead to keep the cache filled with scene data likely to be viewed in the near future, general utilities, and other functions.

SQL3D Core Components

All of these components can optionally be run as Java components within a Java Virtual Machine and constitute a very light load from both local footprint and download perspectives. How light is very light? A CORBA ORB written in Java can take up as little as 60k, and an ODBMS written in Java as little as 450k. This opens the door for a SQL3D application or viewer being downloaded as components as needed and then dynamically assembled in much the same way as Simon St. Laurent writes about possible future XML browsers. Applied to VRML this architectural concept would make VRML "browser free", no longer reliant on an installed base of VRML browsers in order to have users. All that’s missing are lightweight, small footprint rendering engines that can be downloaded on demand. Anyone who was present at the Siggraph 98 "Web 3D Roundup" likely saw Ken Perlin’s Java-based rendering engines that downloaded on-demand. These could well point to the future architecture of 3D client applications.

The next diagram illustrates, in a relative manner, when various levels of SQL3D functionality can be deployed. Eventually, mobile components become practical, making all other issues disappear. Until that time we begin by deploying SQL3D viewers much as we deploy HTML and VRML browsers today. Shortly thereafter we support developers with SQL3D Precompilers to easily transform their applications into SQL3D applications. Next we offer dynamic extension which transforms 3D applications and viewers in-the-field into SQL3D applications and viewers. Eventually 3D applications support SQL3D integrally.

SQL3D Relative Deployment Timeline

Notice on the lower portion of the diagram that the timeframe between stand-alone single user SQL3D and distributed multiuser SQL3D is quite short. The lengthy delay shows up waiting for federated multiuser scenes, meaning scenes that are distributed across multiple types of DBMSes and DBMS implementations from multiple vendors. This hold-up has actually nothing to do with 3D and everything to do with DBMSes. Currently, if you want to transparently distribute data with replication you have to do it with all your DBMSes from the same vendor. This limitation too will go away in time as DBMS vendors support heterogeneous distributed operations via standardized distributed object infrastructures like CORBA.

The Big Picture

At last we see the big picture, where SQL3D brings together the 3D community and the data and object communities. Think of VRML as a schema inside of SQL3D and you get an idea of the extensive interoperability VRML will gain through SQL3D as well as the developer seats and user eyeballs.

SQL3D Infrastructure

SQL3D provides VRML with a straight and direct path to relocate to the mainland and integrate with the IT community living there. This will put VRML in front of all classes of developers, not just the tiny subset already exploring 3D authoring tools. And it puts VRML in front of users of all types of applications – wherever data is found. VRML even becomes far less reliant on an installed base of VRML browsers. Coupled with a revolution in web browser architecture, the dynamic browser framework architecture we looked at in section II, VRML could conceivably become "browser free", and therefore be available and accessible to all.

VI. Enabling a new vision of the future

VRML needn’t become stranded on a desert island. By redeploying VRML to the mainland with SQL3D, VRML will finally deliver on the promises that its creators set out for it. But even more is possible. The entire computing landscape is in flux. Desktops will not make sense forever. The time is approaching when unimaginable processing power and knowledge will exist out on the computing fabric. Embedded systems and wearable interfaces will provide a connection to the fabric 24x7x365 wherever we are and whatever we’re doing. The web and virtual worlds won’t be something apart from reality – they’ll be integrated with reality into a grand HyperReality where information and knowledge is what’s ubiquitous, not computing – information everywhere and within everything.

In this future only a 3D + time interface makes any sense, as physical reality becomes the interface into virtual reality and virtual reality augments and interfaces us with physical reality. 3D will then structure all types of knowledge, media, and information and must be best buddies with them all. This is the future that demands that VRML and 3D integrate with mainland IT right down to the very foundations.

If you've read this far... please contact me and let me know what you think or what questions you have!

Erick Von Schweber

To Contact me about SQL3D send mail to
Copyright (c)1998 by Infomaniacs. All Rights Reserved.



By Linda Von Schweber
& Erick Von Schweber

Copyright 1996-2004 by Infomaniacs. All Rights Reserved.
Updated January 25, 2002