Welcome!

Open Source Cloud Authors: Liz McMillan, Vaibhaw Pandey, Stackify Blog, Rostyslav Demush, Pat Romanski

Related Topics: Machine Learning , Open Source Cloud

Machine Learning : Article

AJAX3D - The Open Platform For Rich 3D Web Applications

Real-time 3D is emerging as a first-class media type for the Web

Real-time 3D is emerging as a first-class media type for the Web. Network bandwidth and graphics hardware processing power are now sufficiently advanced to enable compelling Web-based 3D experiences, including games, online virtual worlds, simulations, education, and training. Commercial developers are expressing increasing interest in exploiting real-time 3D in Web applications to enhance production values, create engaging immersive experiences, and deliver information in a more meaningful way.

Much of the infrastructure is in place to enable professional Web 3D deployment in a cross-platform, open, royalty-free environment. Interoperability standards such as ISO-standard Extensible 3D Graphics (X3D) are now mature, fully functional, and robust and supported by multiple open source implementations and affordable production pipelines. However, those technologies only go so far in that they are focused on the transportability of embedded rich content, and not on the applications that embed it. The industry is in need of a rapid development environment for creating scalable, highly interactive client/server 3D applications on the Web.

AJAX - Asynchronous JavaScript and XML - has emerged as a preferred method for developing sophisticated Web applications. AJAX makes client/server programming available to JavaScript developers via Dynamic HTML, resulting in rich, responsive applications hosted in a Web browser. While AJAX is being used to deploy some of the industry's leading applications, such as Google Maps and Netflix, current browsers are limited in their capacity to render dynamic content, in particular, high-performance real-time 3D.

AJAX3D combines the power of X3D, the standard for real-time 3D on the Web, with the ease of use and ubiquity of AJAX. AJAX3D employs the X3D Scene Access Interface (SAI) - the X3D equivalent of the DOM - to control 3D worlds via JavaScript. With the simple addition of an X3D plug-in to today's Web browsers, we can bring the awesome power of video game technology to the everyday Web experience.

The initial development has begun. Media Machines has created the first showcase applications and tutorials, and has launched a Web site (www.ajax3d.org) as an open industry forum to explore technologies, techniques, and best practices. This article describes the key technical concepts behind AJAX3D and, via examples, introduces the beginnings of a formal programming framework for general use.

AJAX3D Basics
AJAX3D is based on the integration of two programming models: the W3C Document Object Model (DOM) and the ISO Scene Access Interface (SAI). The DOM defines a model for programs interacting with a Web document; the SAI allows programs to control X3D scenes. JavaScript code running on a Web page can interact with the DOM and the SAI simultaneously, enabling applications that integrate traditional 2D Web page elements with the 3D world. Both the DOM and SAI are independent of any programming language; however, our focus for AJAX3D is on JavaScript.

One DOM object is of particular interest to AJAX programmers: the XMLHttpRequest object, which allows a Web application to make server requests without requiring that the contents of the page be refreshed. This capability is fundamental for creating dynamic, responsive applications that meet the expectations of today's consumers. The SAI has a similar capacity in createX3DFromURL, a method of the X3D "browser" object that loads 3D content on demand.

The combination of the DOM, SAI, and XMLHttpRequest comprise the underpinnings of AJAX3D and, in fact, suggest a precise definition of AJAX3D, where an AJAX3D application is a Web browser-hosted program that:

  • Uses the SAI to access a real-time 3D scene
  • Uses the DOM to manipulate Web page content in response to changes in the 3D scene
  • Uses server-request methods (XMLHttpRequest, createX3DFromURL) to store and retrieve data in response to, and/or leading to, changes in a 3D scene.
Embedding X3D Scenes in a Web Browser
The first step in creating an AJAX3D application is to create an HTML page that embeds X3D content. This is done using EMBED or OBJECT tags (the former being well supported in all Web browsers):

<embed WIDTH="640" HEIGHT="480" NAME="FLUX" SRC="helloajax3d.x3d"
TYPE="model/x3d" DASHBOARD="0" BGCOLOR="0xFFFFFF">

Note: all examples in this document use Media Machines' FLUX Player as the X3D plug-in. However any SAI-compliant X3D plug-in that supports JavaScript should be able to support AJAX3D.

Accessing the X3D Scene from JavaScript
Once the X3D plug-in has been embedded, it can be accessed from JavaScript like any other DOM object. The FLUX object is used to access the SAI "browser" object - not to be confused with the Web browser, which is the main object defined by the SAI for connecting to the 3D scene. The browser is accessed as follows:

var browser = document.FLUX.getBrowser();

Once we have a handle on the X3D browser, we can access the ExecutionContext object, which lets us access all of the live objects in the scene to retrieve and change properties, or send and receive events:

var context = browser.getExecutionContext();

Working with the X3D Scene Graph
The primary data structure in an X3D world is the "scene graph" or a collection of graphical objects organized in hierarchical relationships. The scene graph is akin to a DOM document in that it's structured data representing the rendered content; however. 3D scene graphics tend to be far more complex than even the richest DOM documents.

The SAI provides a few ways to access the scene graph. Once a valid execution context is obtained (see above), we can either ask it for an object by name, or a collection of all the top-level nodes in the scene as follows:

var theText = context.getNode("THETEXT");

or:

var nodes = context.getRootNodes();

The scene graph is hierarchical, but it's not a strict tree like a DOM document. Objects in the scene graph can have multiple parents so long as no object is a descendant of itself either directly or indirectly. The technical term for this structure is a Directed Acyclic Graph or DAG - hence the term "scene graph." Many operations on the X3D scene graph require knowledge of this structure so it's important to understand this concept early on.

Nodes, Fields, and Events
The fundamental object type in X3D is the node. Nodes are scene graph elements; they can represent geometric shapes, their visual properties, animations, scripts that contain program code, clickable behaviors, and so on. The properties of nodes are called fields; fields store basic data type information such as floating point values, integers, strings, 2D and 3D vectors, bitmapped images, and arrays of those types.

Dynamic behaviors in the scene graph are accomplished via events - fields that let their values be changed, or that tell the application when their values have changed. An AJAX3D application can send events via the SAI using a straightforward JavaScript property-setting syntax as in the following example:

theText.string[0] = "Hello";
theText.string[1] = "AJAX3D!";

The SAI also defines field listeners: objects with callback methods that are invoked when an event is generated. Here's an example of adding a field listener to a TouchSensor - an object that tells the programmer when some geometry in the world has been clicked on (by generating a touchTime event):

var observer = new Object;
observer.readableFieldChanged = clickCallback;
sensor1.touchTime.addFieldEventListener(observer);


More Stories By Tony Parisi

Tony Parisi, president and CEO of Media Machines, is a technology pioneer and accomplished entrepreneur. He is co-creator of the Virtual Reality Modeling Language (VRML), the ISO standard for 3D graphics on the World Wide Web, and is widely recognized as an expert in standards, technologies, and emerging markets for interactive rich media. In 1995 Tony founded Intervista Software, an early innovator in real-time, networked 3D graphics technology and developed WorldView, the first real-time VRML viewer for Microsoft Windows. In 1998 Intervista was purchased by PLATINUM technology, inc., and Tony joined the company to lead business affairs for its 3D visualization group. Tony founded Media Machines in 2001 and is spearheading the development of FLUX, a real-time 3D technology that continues to push the envelope in interactive graphics for the Web. He is also a lead editor and co-chair of the Extensible 3D (X3D) Specification, the new standard for Web3D graphics being developed by the Web3D Consortium.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
"MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection between Coke and its customers. Digital signs pair software with high-resolution displays so that a message can be changed instantly based on what the operator wants to communicate or sell. In their Day 3 Keynote at 21st Cloud Expo, Greg Chambers, Global Group Director, Digital Innovation, Coca-Cola, and Vidya Nagarajan, a Senior Product Manager at Google, discussed how from store operations and ...
In his session at 21st Cloud Expo, Carl J. Levine, Senior Technical Evangelist for NS1, will objectively discuss how DNS is used to solve Digital Transformation challenges in large SaaS applications, CDNs, AdTech platforms, and other demanding use cases. Carl J. Levine is the Senior Technical Evangelist for NS1. A veteran of the Internet Infrastructure space, he has over a decade of experience with startups, networking protocols and Internet infrastructure, combined with the unique ability to it...
"There's plenty of bandwidth out there but it's never in the right place. So what Cedexis does is uses data to work out the best pathways to get data from the origin to the person who wants to get it," explained Simon Jones, Evangelist and Head of Marketing at Cedexis, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, introduced two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a multip...
Gemini is Yahoo’s native and search advertising platform. To ensure the quality of a complex distributed system that spans multiple products and components and across various desktop websites and mobile app and web experiences – both Yahoo owned and operated and third-party syndication (supply), with complex interaction with more than a billion users and numerous advertisers globally (demand) – it becomes imperative to automate a set of end-to-end tests 24x7 to detect bugs and regression. In th...
"Space Monkey by Vivent Smart Home is a product that is a distributed cloud-based edge storage network. Vivent Smart Home, our parent company, is a smart home provider that places a lot of hard drives across homes in North America," explained JT Olds, Director of Engineering, and Brandon Crowfeather, Product Manager, at Vivint Smart Home, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"IBM is really all in on blockchain. We take a look at sort of the history of blockchain ledger technologies. It started out with bitcoin, Ethereum, and IBM evaluated these particular blockchain technologies and found they were anonymous and permissionless and that many companies were looking for permissioned blockchain," stated René Bostic, Technical VP of the IBM Cloud Unit in North America, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventi...
"Cloud Academy is an enterprise training platform for the cloud, specifically public clouds. We offer guided learning experiences on AWS, Azure, Google Cloud and all the surrounding methodologies and technologies that you need to know and your teams need to know in order to leverage the full benefits of the cloud," explained Alex Brower, VP of Marketing at Cloud Academy, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clar...
It is of utmost importance for the future success of WebRTC to ensure that interoperability is operational between web browsers and any WebRTC-compliant client. To be guaranteed as operational and effective, interoperability must be tested extensively by establishing WebRTC data and media connections between different web browsers running on different devices and operating systems. In his session at WebRTC Summit at @ThingsExpo, Dr. Alex Gouaillard, CEO and Founder of CoSMo Software, presented ...
A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices that will soon be in each of our lives. Enter the conversational interface revolution, combining bots we can literally talk with, gesture to, and even direct with our thoughts, with embedded artificial intelligence, whic...
SYS-CON Events announced today that Evatronix will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Evatronix SA offers comprehensive solutions in the design and implementation of electronic systems, in CAD / CAM deployment, and also is a designer and manufacturer of advanced 3D scanners for professional applications.
Leading companies, from the Global Fortune 500 to the smallest companies, are adopting hybrid cloud as the path to business advantage. Hybrid cloud depends on cloud services and on-premises infrastructure working in unison. Successful implementations require new levels of data mobility, enabled by an automated and seamless flow across on-premises and cloud resources. In his general session at 21st Cloud Expo, Greg Tevis, an IBM Storage Software Technical Strategist and Customer Solution Architec...
To get the most out of their data, successful companies are not focusing on queries and data lakes, they are actively integrating analytics into their operations with a data-first application development approach. Real-time adjustments to improve revenues, reduce costs, or mitigate risk rely on applications that minimize latency on a variety of data sources. In his session at @BigDataExpo, Jack Norris, Senior Vice President, Data and Applications at MapR Technologies, reviewed best practices to ...
An increasing number of companies are creating products that combine data with analytical capabilities. Running interactive queries on Big Data requires complex architectures to store and query data effectively, typically involving data streams, an choosing efficient file format/database and multiple independent systems that are tied together through custom-engineered pipelines. In his session at @BigDataExpo at @ThingsExpo, Tomer Levi, a senior software engineer at Intel’s Advanced Analytics gr...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things’). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing? IoT is not about the devices, it’s about the data consumed and generated. The devices are tools, mechanisms, conduits. In his session at Internet of Things at Cloud Expo | DXWor...
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution. In his session at @ThingsExpo, Akvelon expert and IoT industry leader Sergey Grebnov provided an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
SYS-CON Events announced today that Synametrics Technologies will exhibit at SYS-CON's 22nd International Cloud Expo®, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Synametrics Technologies is a privately held company based in Plainsboro, New Jersey that has been providing solutions for the developer community since 1997. Based on the success of its initial product offerings such as WinSQL, Xeams, SynaMan and Syncrify, Synametrics continues to create and hone inn...