Why use Declarative 3D

From Declarative 3D for the Web Architecture
Jump to: navigation, search

Why is Declarative 3D Important?

Declarative 3D is the latest in a long line of computer graphic efforts to integrate 3D graphics with web pages? Why is it different and who cares? Without getting into long history suffice it to say that nearly 20 years ago VRML was created and did integrate 3D graphics with web pages. What has changed? VRML, or other 3D graphics systems either appeared as “black boxes”, literally a rectangular area on a web page in which the user could interact, or as more fully interactive areas which communicated to the wider web page via some mechanism, typically the EAI (External Authoring Interface). Both solutions were inadequate. Small rectangular areas with 3D graphics were quite limiting and more importantly took the user out of the web browsing experience. EAI based systems were difficult to implement and very fragile over several operating systems and browsers.

Today we have the potential for 3D graphics as first class citizen's. Web pages exist as large collections of hierarchical elements that are rendered to the page, all content appears in the DOM. A huge collection of tools has been created to allow programmers to manipulate the DOM, in particular tools and frameworks based on JavaScript which has become the “go to” language for Web development. Placing 3D graphics also in the DOM, therefore allows these same JavaScript tools to access and manipulate 3D graphics.

Again we must ask, so what and who cares about 3D in the DOM? Let’s examine a simple example. Take something like a graphical representation of the human body. There exists a collection of locations on the body (landmarks) that are significant from the point of view of human measurement (anthropometry). If I wanted to create an educational web page illustrating these landmarks I could place all the 3D inside of a rectangular area on the page. However I would like to associate dialogs that pop up display information about each of these landmarks. I want to have friendly, “normal” buttons on the web page, that are associated with the landmarks. Using a common JavaScript framework (jQuery) it becomes nearly trivial to select elements from the DOM that contain these landmarks and create web buttons on the page for each landmark. Giving users access to the DOM leverages the rich collection of tools that already exist for manipulating the content of web pages.

Comparison

Feature Matrix
Imperative JS-based Dec3D Native Dec3D
Mash-ups
Performance
CSS Integration
DOM Integration
DOM Events
Accessibility