Error message

Deprecated function: Array and string offset access syntax with curly braces is deprecated in include_once() (line 20 of /home/drbiz/public/2013.realism.com/includes/file.phar.inc).

Extending X3DOM to Mobile - New Nodes

Event Name: 
Web3D2016, SIGGRAPH 2016
Event Date(s): 
23-28 July 2016

X3DOM is a JavaScript library that brings declarative 3D to HTML pages. The 3D content is fully integrated with the DOM and accessible via all standard DOM libraries (e.g., jQuery). This 2-part presentation covers the extensions to X3DOM necessary for X3DOM running in a browser to support mobile devices and provide VR content. The first part covers existing X3DOM capabilities and how W3C handles device orientation. The second part covers the new nodes necessary to support mobile devices and VR/AR support.

Use License: 
Creative Commons Sharealike (CC BY SA)
Active: 
Yes

Extending X3DOM to Mobile

New Nodes

 

Leonard Daly
President, Daly Realism
siggraph [AT] realism.com
http://realism.com/presentations/186

Licensing Notice

This presentation is licensed as Creative Commons Attribution, Share-Alike [CC BY-SA 4.0]

Some of the material comes from other sources. Licensing for that other material may be different than that associated with the entire document. Credit for the individual pieces of content (text, graphics, images, etc.) are identified on the page where that content appears. The full credit reference is given on the Credit pages.

Overview

  • Part 1
    • X3DOM Overview
    • Device Orientation
  • Part 2
    • Walkabout
    • LookSensor
    • SphericalVideo
    • StereoView
    • Analytics
    • Adding Nodes to X3DOM
    • Discussion

Walkabout

Mechanism to "walking" about a VR space using a mobile device without walking.

Concept is a combined capability of NavigaionInfo, Viewpoint, and SpatialSensor

Walkabout Flow

Walkabout - "Tank" Mode

  • Go straight unless twisting sensor
  • Twisting sensor steers motion (like a car)
  • Left/Right look is always relative to motion orientation
  • Walking is always the same speed
  • Look at nadir to start/stop

Walkabout Concept Test in Tank mode

LookSensor

Pick an object by staring at it long enough. Equivalent to TouchSensor

  • Fine-tuning is settable via fields
  • Uses DOM onclick event
  • Documentation

LookSensor Example

 

 

 

SphericalVideo

  • Automatically constructs sphere and texture mapping
  • Plays indicated video on inside of sphere
  • Should only use EXAMINE Navigation mode
  • Video is specially constructed to work in a spherical projection
  • Basis for 360 Video (aka VR Video)
  • Virtual Reality vs. 360Video Infographic
  • Documentation

SphericalVideo

Spherical Video mapping

StereoView

Creates a stereographic view of the selected geometry

Kelpie in mono- and stereo-graphic presentation

Analytics

Adding Nodes to X3DOM

  • Animate
  • Macro
  • StereoView
  • SpatialSensor

 

General Structure

x3dom.registerNodeType(
    "<node-name>",
    "<node-component>",
    defineClass(x3dom.nodeTypes.<node-class>,

        function (ctx) {
            x3dom.nodeTypes.<node-name>.superClass.call(this, ctx);
            this.addField_<field-type>(ctx, '<field-name>', <default-value>);
        },
        
        {
            <method1>: function (...) {...},
            <method2>: function (...) {...},
            <method3>: function (...) {...}
        }
    )
);

New Node: Animate

  • In Time component
  • Wraps a TimeSensor with one or more Interpolator nodes
  • Interpoaltion algorithms may be changed at run-time
  • Output directly passed to target node.field
  • Key methods
    • tick: funtion(time)
    • fieldChanged: function(fieldName)

New Node: Macro

  • In Networking component
  • Provides for run-time insertion of X3DOM nodes into scene graph
  • Perform string substitution prior to insertion
  • Code specfied either internally (child of Macro) or externally (URL)
  • Combined with X3DOM or HTML JavaScript
  • Full capability of X3D PROTO

 

New Node: StereoView

  • in Grouping component
  • Prototyping using Macro feature
  • Adding nodes to reference Shape, Viewpoint, and Background in namescope of the StereoView node
  • Working on run-time change of mode
  • Plan to work out fully integrated node

New Node: SpatialSensor

  • In PointingDeviceSensor component
  • Real-time tracking of sensor motion
  • Only defined and developed for orientation events
  • Will support whatever generates device motion events for the browser
  • Emulate methods for desktop development

 

Discussion

Credits

  • Spherical Geometry & Texture Coordinates - Aaron Daly
  • Stereographic Code Model - Frauhofer (open source code)
  • Walking mode discussions - Aaron Daly & Mike Aratow
  • Analytics idea and discussions - Mitch Williams
  • Fractal Cathedral
  • Kelpie Model - Coform Project