<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.old.web3d.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vmarchetti</id>
		<title>Web3D.org - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.old.web3d.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vmarchetti"/>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php/Special:Contributions/Vmarchetti"/>
		<updated>2026-04-08T23:59:08Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_and_HTML5_examples&amp;diff=9809</id>
		<title>X3D and HTML5 examples</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_and_HTML5_examples&amp;diff=9809"/>
				<updated>2022-09-06T11:34:08Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Removed TODO item related to XHTML, XHTML being yet another has-been technology&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are several examples that show different ways of combining HTML web pages and X3D scenes. &lt;br /&gt;
&lt;br /&gt;
== HelloWorld.x3d standalone scene ==&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld.x3d]&lt;br /&gt;
shows a simple standalone example&lt;br /&gt;
([http://www.web3d.org/x3d/content/examples/HelloWorld.html .html] and&lt;br /&gt;
[http://www.web3d.org/x3d/content/examples/HelloWorld.tall.png .png])&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!DOCTYPE X3D PUBLIC &amp;quot;ISO//Web3D//DTD X3D 3.2//EN&amp;quot; &amp;quot;http://www.web3d.org/specifications/x3d-3.2.dtd&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;amp;lt;X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' &lt;br /&gt;
    xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.2.xsd'&amp;gt;&lt;br /&gt;
    &amp;amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;amp;lt;meta name='title' content='HelloWorld.x3d'/&amp;gt;&lt;br /&gt;
      &amp;amp;lt;meta name='identifier' content='http://www.web3d.org/x3d/content/examples/HelloWorld.x3d'/&amp;gt; &lt;br /&gt;
    &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
      &amp;amp;lt;Group&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Viewpoint centerOfRotation='0 -1 0' &lt;br /&gt;
          description='Hello world!' position='0 -1 7'/&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Transform rotation='0 1 0 3'&amp;gt;&lt;br /&gt;
          &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Sphere/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
              &amp;amp;lt;Material diffuseColor='0 0.5 1'/&amp;gt;&lt;br /&gt;
              &amp;amp;lt;ImageTexture url='&amp;quot;earth-topo.png&amp;quot;' /&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/Transform&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Transform translation='0 -2 0'&amp;gt;&lt;br /&gt;
          &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Text solid='false' string='&amp;quot;Hello&amp;quot; &amp;quot;world!&amp;quot;'&amp;gt;&lt;br /&gt;
              &amp;amp;lt;FontStyle justify='&amp;quot;MIDDLE&amp;quot; &amp;quot;MIDDLE&amp;quot;'/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Text&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
              &amp;amp;lt;Material diffuseColor='0.1 0.5 1'/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/Transform&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/Group&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/X3D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  HTML Anchor link to X3D document == &lt;br /&gt;
&lt;br /&gt;
HTML anchor links allow an HTML page to load the contents of an X3D scene.&lt;br /&gt;
&lt;br /&gt;
HTML source:&lt;br /&gt;
&lt;br /&gt;
       Here is my&lt;br /&gt;
       &amp;amp;lt;a href='[http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld.x3d]' title='Link to a new X3D document'&amp;gt;HelloWorld example&amp;amp;lt;/a&amp;gt; in X3D.&lt;br /&gt;
&lt;br /&gt;
HTML result:&lt;br /&gt;
        Here is my [http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld example] in X3D.&lt;br /&gt;
&lt;br /&gt;
Typically Web browser responses to a user selecting the link:&lt;br /&gt;
* Show X3D scene, if an X3D plugin is installed or native support for X3D is provided&lt;br /&gt;
* If X3D file format is unrecognized, browser might save file or else provide the user a choice to launch an external application (such as an X3D viewer or editor)&lt;br /&gt;
* Show source (if http server [http://www.web3d.org/x3d/learn/mimetypes X3D MIME type settings] are incorrect)&lt;br /&gt;
&lt;br /&gt;
== X3D embedded using HTML5 object element == &lt;br /&gt;
September 2022 status: There are no publicly distributed plug-ins for current web browsers that display X3D content &lt;br /&gt;
referenced in an object tag. Current  practice is to render X3D on a web page using a javascript library such as [https://xwdom.org X3DOM] or [https://github.com/create3000/x_ite X_ITE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;amp;lt;object name='x3dBlock' type='model/x3d+xml' allow-same-origin allow-scripts&amp;gt;&lt;br /&gt;
       &amp;amp;lt;param name='src' value='aScene.x3d'&amp;gt;&lt;br /&gt;
         &amp;amp;lt;-- fallback HTML here --&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Goal for this example is to show some HTML5-specific attributes&lt;br /&gt;
* Opens nested browsing context in parent block element&lt;br /&gt;
* Set of negotiated &amp;lt;param&amp;gt; pairs for initialization and runtime&lt;br /&gt;
&lt;br /&gt;
== X3D served as text/html (no namespace prefix) ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             X3D { height:100%;width:100%; }&lt;br /&gt;
             svg { height:100%;width:100%; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;X3D name='x3dBlock' type='model/x3d+xml' &lt;br /&gt;
             version='3.3' profile='Interchange'&lt;br /&gt;
             allow-same-origin allow-scripts&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Viewpoint description='Start' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
             &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/X3D&amp;gt;&lt;br /&gt;
           &amp;amp;lt;svg type='image/svg+xml' version=&amp;quot;1.1&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;ellipse cx=&amp;quot;2cm&amp;quot; cy=&amp;quot;4cm&amp;quot; rx=&amp;quot;2cm&amp;quot; ry=&amp;quot;1cm&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/svg&amp;gt;&lt;br /&gt;
           &amp;amp;lt;mathml&amp;gt;&lt;br /&gt;
             &amp;amp;lt;mrow&amp;gt;&amp;amp;lt;mi&amp;gt; x &amp;amp;lt;/mi&amp;gt;&amp;amp;lt;mo&amp;gt; + &amp;amp;lt;/mo&amp;gt;&lt;br /&gt;
             &amp;amp;lt;mrow&amp;gt;&amp;amp;lt;mi&amp;gt; a &amp;amp;lt;/mi&amp;gt;&amp;amp;lt;mo&amp;gt; / &amp;amp;lt;/mo&amp;gt;&amp;amp;lt;mi&amp;gt; b &amp;amp;lt;/mi&amp;gt;&lt;br /&gt;
             &amp;amp;lt;/mrow&amp;gt;&amp;amp;lt;/mrow&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/mathml&amp;gt;&lt;br /&gt;
           &amp;amp;lt;ruby&amp;gt; WWW &amp;amp;lt;rt&amp;gt;World Wide Web&amp;amp;lt;/rt&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/ruby&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X3D served as application/xhtml+xml (with namespace prefix) ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &lt;br /&gt;
         &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock'&lt;br /&gt;
             xmlns:x3d=&lt;br /&gt;
             &amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Possible future X3D extension - Box has added html onclick event ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock' xmlns:x3d=&amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; onclick=&amp;quot;alert('box picked at position ' + hitPnt);&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Note that addition of onclick attribute is not standard X3D&lt;br /&gt;
* Preferred approach is probably to use X3D TouchSensor instead&lt;br /&gt;
&lt;br /&gt;
== X3D -  Making direct updates on the tree ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock' xmlns:x3d=&amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
                   &amp;amp;lt;Material diffuseColor=&amp;quot;1 0 0&amp;quot;  /&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
         &amp;amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;amp;lt;! CDATA&lt;br /&gt;
         var colSel = true;&lt;br /&gt;
         function toggleRendering()&lt;br /&gt;
         {&lt;br /&gt;
            var button = document.getElementById(&amp;quot;color&amp;quot;);	&lt;br /&gt;
            colSel = !colSel;		&lt;br /&gt;
               if (colSel)&lt;br /&gt;
                  button.value = &amp;quot;Blue&amp;quot;;&lt;br /&gt;
               else&lt;br /&gt;
                  button.value = &amp;quot;Red&amp;quot;;		&lt;br /&gt;
            var mat = document.getElementsByTagName(&amp;quot;Material&amp;quot;);&lt;br /&gt;
            var n = mat.length;		&lt;br /&gt;
            var aMat = mat[0];&lt;br /&gt;
            aMat.setAttribute(&amp;quot;diffuseColor&amp;quot;, (!colSel ? &amp;quot;0 0 1&amp;quot; : &amp;quot;1 0 0&amp;quot;));		&lt;br /&gt;
            return false;&lt;br /&gt;
         }	&lt;br /&gt;
         &amp;gt;&amp;amp;lt;/script&amp;gt;	&lt;br /&gt;
          &amp;amp;lt;p class=&amp;quot;case&amp;quot;&amp;gt; &amp;amp;nbsp; &lt;br /&gt;
            Dynamic material update&lt;br /&gt;
            &amp;amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;color&amp;quot; value=&amp;quot;Change Color&amp;quot; onclick=&amp;quot;toggleRendering();&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/p&amp;gt;	&lt;br /&gt;
          &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_and_HTML5_examples&amp;diff=9808</id>
		<title>X3D and HTML5 examples</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_and_HTML5_examples&amp;diff=9808"/>
				<updated>2022-09-06T11:27:03Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Deleted HTML section as obsolete&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are several examples that show different ways of combining HTML web pages and X3D scenes. &lt;br /&gt;
&lt;br /&gt;
== HelloWorld.x3d standalone scene ==&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld.x3d]&lt;br /&gt;
shows a simple standalone example&lt;br /&gt;
([http://www.web3d.org/x3d/content/examples/HelloWorld.html .html] and&lt;br /&gt;
[http://www.web3d.org/x3d/content/examples/HelloWorld.tall.png .png])&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!DOCTYPE X3D PUBLIC &amp;quot;ISO//Web3D//DTD X3D 3.2//EN&amp;quot; &amp;quot;http://www.web3d.org/specifications/x3d-3.2.dtd&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;amp;lt;X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' &lt;br /&gt;
    xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.2.xsd'&amp;gt;&lt;br /&gt;
    &amp;amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;amp;lt;meta name='title' content='HelloWorld.x3d'/&amp;gt;&lt;br /&gt;
      &amp;amp;lt;meta name='identifier' content='http://www.web3d.org/x3d/content/examples/HelloWorld.x3d'/&amp;gt; &lt;br /&gt;
    &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
      &amp;amp;lt;Group&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Viewpoint centerOfRotation='0 -1 0' &lt;br /&gt;
          description='Hello world!' position='0 -1 7'/&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Transform rotation='0 1 0 3'&amp;gt;&lt;br /&gt;
          &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Sphere/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
              &amp;amp;lt;Material diffuseColor='0 0.5 1'/&amp;gt;&lt;br /&gt;
              &amp;amp;lt;ImageTexture url='&amp;quot;earth-topo.png&amp;quot;' /&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/Transform&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Transform translation='0 -2 0'&amp;gt;&lt;br /&gt;
          &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Text solid='false' string='&amp;quot;Hello&amp;quot; &amp;quot;world!&amp;quot;'&amp;gt;&lt;br /&gt;
              &amp;amp;lt;FontStyle justify='&amp;quot;MIDDLE&amp;quot; &amp;quot;MIDDLE&amp;quot;'/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Text&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
              &amp;amp;lt;Material diffuseColor='0.1 0.5 1'/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/Transform&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/Group&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/X3D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  HTML Anchor link to X3D document == &lt;br /&gt;
&lt;br /&gt;
HTML anchor links allow an HTML page to load the contents of an X3D scene.&lt;br /&gt;
&lt;br /&gt;
HTML source:&lt;br /&gt;
&lt;br /&gt;
       Here is my&lt;br /&gt;
       &amp;amp;lt;a href='[http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld.x3d]' title='Link to a new X3D document'&amp;gt;HelloWorld example&amp;amp;lt;/a&amp;gt; in X3D.&lt;br /&gt;
&lt;br /&gt;
HTML result:&lt;br /&gt;
        Here is my [http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld example] in X3D.&lt;br /&gt;
&lt;br /&gt;
Typically Web browser responses to a user selecting the link:&lt;br /&gt;
* Show X3D scene, if an X3D plugin is installed or native support for X3D is provided&lt;br /&gt;
* If X3D file format is unrecognized, browser might save file or else provide the user a choice to launch an external application (such as an X3D viewer or editor)&lt;br /&gt;
* Show source (if http server [http://www.web3d.org/x3d/learn/mimetypes X3D MIME type settings] are incorrect)&lt;br /&gt;
&lt;br /&gt;
== X3D embedded using HTML5 object element == &lt;br /&gt;
September 2022 status: There are no publicly distributed plug-ins for current web browsers that display X3D content &lt;br /&gt;
referenced in an object tag. Current  practice is to render X3D on a web page using a javascript library such as [https://xwdom.org X3DOM] or [https://github.com/create3000/x_ite X_ITE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;amp;lt;object name='x3dBlock' type='model/x3d+xml' allow-same-origin allow-scripts&amp;gt;&lt;br /&gt;
       &amp;amp;lt;param name='src' value='aScene.x3d'&amp;gt;&lt;br /&gt;
         &amp;amp;lt;-- fallback HTML here --&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Goal for this example is to show some HTML5-specific attributes&lt;br /&gt;
* Opens nested browsing context in parent block element&lt;br /&gt;
* Set of negotiated &amp;lt;param&amp;gt; pairs for initialization and runtime&lt;br /&gt;
* TODO:  check XHTML syntax for this example&lt;br /&gt;
&lt;br /&gt;
== X3D served as text/html (no namespace prefix) ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             X3D { height:100%;width:100%; }&lt;br /&gt;
             svg { height:100%;width:100%; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;X3D name='x3dBlock' type='model/x3d+xml' &lt;br /&gt;
             version='3.3' profile='Interchange'&lt;br /&gt;
             allow-same-origin allow-scripts&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Viewpoint description='Start' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
             &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/X3D&amp;gt;&lt;br /&gt;
           &amp;amp;lt;svg type='image/svg+xml' version=&amp;quot;1.1&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;ellipse cx=&amp;quot;2cm&amp;quot; cy=&amp;quot;4cm&amp;quot; rx=&amp;quot;2cm&amp;quot; ry=&amp;quot;1cm&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/svg&amp;gt;&lt;br /&gt;
           &amp;amp;lt;mathml&amp;gt;&lt;br /&gt;
             &amp;amp;lt;mrow&amp;gt;&amp;amp;lt;mi&amp;gt; x &amp;amp;lt;/mi&amp;gt;&amp;amp;lt;mo&amp;gt; + &amp;amp;lt;/mo&amp;gt;&lt;br /&gt;
             &amp;amp;lt;mrow&amp;gt;&amp;amp;lt;mi&amp;gt; a &amp;amp;lt;/mi&amp;gt;&amp;amp;lt;mo&amp;gt; / &amp;amp;lt;/mo&amp;gt;&amp;amp;lt;mi&amp;gt; b &amp;amp;lt;/mi&amp;gt;&lt;br /&gt;
             &amp;amp;lt;/mrow&amp;gt;&amp;amp;lt;/mrow&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/mathml&amp;gt;&lt;br /&gt;
           &amp;amp;lt;ruby&amp;gt; WWW &amp;amp;lt;rt&amp;gt;World Wide Web&amp;amp;lt;/rt&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/ruby&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X3D served as application/xhtml+xml (with namespace prefix) ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &lt;br /&gt;
         &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock'&lt;br /&gt;
             xmlns:x3d=&lt;br /&gt;
             &amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Possible future X3D extension - Box has added html onclick event ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock' xmlns:x3d=&amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; onclick=&amp;quot;alert('box picked at position ' + hitPnt);&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Note that addition of onclick attribute is not standard X3D&lt;br /&gt;
* Preferred approach is probably to use X3D TouchSensor instead&lt;br /&gt;
&lt;br /&gt;
== X3D -  Making direct updates on the tree ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock' xmlns:x3d=&amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
                   &amp;amp;lt;Material diffuseColor=&amp;quot;1 0 0&amp;quot;  /&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
         &amp;amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;amp;lt;! CDATA&lt;br /&gt;
         var colSel = true;&lt;br /&gt;
         function toggleRendering()&lt;br /&gt;
         {&lt;br /&gt;
            var button = document.getElementById(&amp;quot;color&amp;quot;);	&lt;br /&gt;
            colSel = !colSel;		&lt;br /&gt;
               if (colSel)&lt;br /&gt;
                  button.value = &amp;quot;Blue&amp;quot;;&lt;br /&gt;
               else&lt;br /&gt;
                  button.value = &amp;quot;Red&amp;quot;;		&lt;br /&gt;
            var mat = document.getElementsByTagName(&amp;quot;Material&amp;quot;);&lt;br /&gt;
            var n = mat.length;		&lt;br /&gt;
            var aMat = mat[0];&lt;br /&gt;
            aMat.setAttribute(&amp;quot;diffuseColor&amp;quot;, (!colSel ? &amp;quot;0 0 1&amp;quot; : &amp;quot;1 0 0&amp;quot;));		&lt;br /&gt;
            return false;&lt;br /&gt;
         }	&lt;br /&gt;
         &amp;gt;&amp;amp;lt;/script&amp;gt;	&lt;br /&gt;
          &amp;amp;lt;p class=&amp;quot;case&amp;quot;&amp;gt; &amp;amp;nbsp; &lt;br /&gt;
            Dynamic material update&lt;br /&gt;
            &amp;amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;color&amp;quot; value=&amp;quot;Change Color&amp;quot; onclick=&amp;quot;toggleRendering();&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/p&amp;gt;	&lt;br /&gt;
          &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_and_HTML5_examples&amp;diff=9807</id>
		<title>X3D and HTML5 examples</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_and_HTML5_examples&amp;diff=9807"/>
				<updated>2022-09-06T10:43:02Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Added note that X3D in object tags not supported by known browsers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are several examples that show different ways of combining HTML web pages and X3D scenes. &lt;br /&gt;
&lt;br /&gt;
== HelloWorld.x3d standalone scene ==&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld.x3d]&lt;br /&gt;
shows a simple standalone example&lt;br /&gt;
([http://www.web3d.org/x3d/content/examples/HelloWorld.html .html] and&lt;br /&gt;
[http://www.web3d.org/x3d/content/examples/HelloWorld.tall.png .png])&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!DOCTYPE X3D PUBLIC &amp;quot;ISO//Web3D//DTD X3D 3.2//EN&amp;quot; &amp;quot;http://www.web3d.org/specifications/x3d-3.2.dtd&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;amp;lt;X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' &lt;br /&gt;
    xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.2.xsd'&amp;gt;&lt;br /&gt;
    &amp;amp;lt;head&amp;gt;&lt;br /&gt;
      &amp;amp;lt;meta name='title' content='HelloWorld.x3d'/&amp;gt;&lt;br /&gt;
      &amp;amp;lt;meta name='identifier' content='http://www.web3d.org/x3d/content/examples/HelloWorld.x3d'/&amp;gt; &lt;br /&gt;
    &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
      &amp;amp;lt;Group&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Viewpoint centerOfRotation='0 -1 0' &lt;br /&gt;
          description='Hello world!' position='0 -1 7'/&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Transform rotation='0 1 0 3'&amp;gt;&lt;br /&gt;
          &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Sphere/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
              &amp;amp;lt;Material diffuseColor='0 0.5 1'/&amp;gt;&lt;br /&gt;
              &amp;amp;lt;ImageTexture url='&amp;quot;earth-topo.png&amp;quot;' /&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/Transform&amp;gt;&lt;br /&gt;
        &amp;amp;lt;Transform translation='0 -2 0'&amp;gt;&lt;br /&gt;
          &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Text solid='false' string='&amp;quot;Hello&amp;quot; &amp;quot;world!&amp;quot;'&amp;gt;&lt;br /&gt;
              &amp;amp;lt;FontStyle justify='&amp;quot;MIDDLE&amp;quot; &amp;quot;MIDDLE&amp;quot;'/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Text&amp;gt;&lt;br /&gt;
            &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
              &amp;amp;lt;Material diffuseColor='0.1 0.5 1'/&amp;gt;&lt;br /&gt;
            &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/Transform&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/Group&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/X3D&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  HTML Anchor link to X3D document == &lt;br /&gt;
&lt;br /&gt;
HTML anchor links allow an HTML page to load the contents of an X3D scene.&lt;br /&gt;
&lt;br /&gt;
HTML source:&lt;br /&gt;
&lt;br /&gt;
       Here is my&lt;br /&gt;
       &amp;amp;lt;a href='[http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld.x3d]' title='Link to a new X3D document'&amp;gt;HelloWorld example&amp;amp;lt;/a&amp;gt; in X3D.&lt;br /&gt;
&lt;br /&gt;
HTML result:&lt;br /&gt;
        Here is my [http://www.web3d.org/x3d/content/examples/HelloWorld.x3d HelloWorld example] in X3D.&lt;br /&gt;
&lt;br /&gt;
Typically Web browser responses to a user selecting the link:&lt;br /&gt;
* Show X3D scene, if an X3D plugin is installed or native support for X3D is provided&lt;br /&gt;
* If X3D file format is unrecognized, browser might save file or else provide the user a choice to launch an external application (such as an X3D viewer or editor)&lt;br /&gt;
* Show source (if http server [http://www.web3d.org/x3d/learn/mimetypes X3D MIME type settings] are incorrect)&lt;br /&gt;
&lt;br /&gt;
== X3D embedded in HTML page using object tag ==&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/content/examples/HtmlObjectTagForX3d.html HTML Object Tag for X3D]&lt;br /&gt;
shows how to place X3D objects within an HTML page&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/content/examples/newHtmlPageWithX3dObject.html newHtmlPageWithX3dObject.html]&lt;br /&gt;
is an example HTML scene with X3D object tag to copy, edit and reuse.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;amp;lt;body&amp;gt;&lt;br /&gt;
   &amp;amp;lt;object data=&amp;quot;http://www.web3d.org/x3d/content/examples/HelloWorld.x3d&amp;quot;&lt;br /&gt;
     type=&amp;quot;model/x3d+xml&amp;quot; height=&amp;quot;360&amp;quot; width=&amp;quot;	&lt;br /&gt;
     &amp;amp;lt;param name=&amp;quot;src&amp;quot; value=&amp;quot;http://www.web3d.org/x3d/content/examples/HelloWorld.x3d&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;amp;lt;param name=&amp;quot;DASHBOARD&amp;quot; value=&amp;quot;FALSE&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;amp;lt;param name=&amp;quot;SPLASHSCREEN&amp;quot; value=&amp;quot;&lt;br /&gt;
     &amp;amp;lt;!-- the following anchor-link text is only displayed to user if no X3D plugin is already installed --&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div class=&amp;quot;noX3dPluginInstalled&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;a href=&amp;quot;http://www.web3d.org/x3d/content/examples/X3dResources.html#Applications&amp;quot; target=&amp;quot;helpPage&amp;quot;&amp;gt; &lt;br /&gt;
       Select an X3D plugin to see this example...&amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/object&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X3D embedded using HTML5 object element == &lt;br /&gt;
September 2022 status: There are no publicly distributed plug-ins for current web browsers that display X3D content &lt;br /&gt;
referenced in an object tag. Current  practice is to render X3D on a web page using a javascript library such as [https://xwdom.org X3DOM] or [https://github.com/create3000/x_ite X_ITE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;amp;lt;object name='x3dBlock' type='model/x3d+xml' allow-same-origin allow-scripts&amp;gt;&lt;br /&gt;
       &amp;amp;lt;param name='src' value='aScene.x3d'&amp;gt;&lt;br /&gt;
         &amp;amp;lt;-- fallback HTML here --&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Goal for this example is to show some HTML5-specific attributes&lt;br /&gt;
* Opens nested browsing context in parent block element&lt;br /&gt;
* Set of negotiated &amp;lt;param&amp;gt; pairs for initialization and runtime&lt;br /&gt;
* TODO:  check XHTML syntax for this example&lt;br /&gt;
&lt;br /&gt;
== X3D served as text/html (no namespace prefix) ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             X3D { height:100%;width:100%; }&lt;br /&gt;
             svg { height:100%;width:100%; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;X3D name='x3dBlock' type='model/x3d+xml' &lt;br /&gt;
             version='3.3' profile='Interchange'&lt;br /&gt;
             allow-same-origin allow-scripts&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Viewpoint description='Start' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
             &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/X3D&amp;gt;&lt;br /&gt;
           &amp;amp;lt;svg type='image/svg+xml' version=&amp;quot;1.1&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;ellipse cx=&amp;quot;2cm&amp;quot; cy=&amp;quot;4cm&amp;quot; rx=&amp;quot;2cm&amp;quot; ry=&amp;quot;1cm&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/svg&amp;gt;&lt;br /&gt;
           &amp;amp;lt;mathml&amp;gt;&lt;br /&gt;
             &amp;amp;lt;mrow&amp;gt;&amp;amp;lt;mi&amp;gt; x &amp;amp;lt;/mi&amp;gt;&amp;amp;lt;mo&amp;gt; + &amp;amp;lt;/mo&amp;gt;&lt;br /&gt;
             &amp;amp;lt;mrow&amp;gt;&amp;amp;lt;mi&amp;gt; a &amp;amp;lt;/mi&amp;gt;&amp;amp;lt;mo&amp;gt; / &amp;amp;lt;/mo&amp;gt;&amp;amp;lt;mi&amp;gt; b &amp;amp;lt;/mi&amp;gt;&lt;br /&gt;
             &amp;amp;lt;/mrow&amp;gt;&amp;amp;lt;/mrow&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/mathml&amp;gt;&lt;br /&gt;
           &amp;amp;lt;ruby&amp;gt; WWW &amp;amp;lt;rt&amp;gt;World Wide Web&amp;amp;lt;/rt&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/ruby&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X3D served as application/xhtml+xml (with namespace prefix) ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &lt;br /&gt;
         &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock'&lt;br /&gt;
             xmlns:x3d=&lt;br /&gt;
             &amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Possible future X3D extension - Box has added html onclick event ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock' xmlns:x3d=&amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; onclick=&amp;quot;alert('box picked at position ' + hitPnt);&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Note that addition of onclick attribute is not standard X3D&lt;br /&gt;
* Preferred approach is probably to use X3D TouchSensor instead&lt;br /&gt;
&lt;br /&gt;
== X3D -  Making direct updates on the tree ==&lt;br /&gt;
&lt;br /&gt;
       &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
       &amp;amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;head&amp;gt;&lt;br /&gt;
           &amp;amp;lt;style type=text/css'&amp;gt;&lt;br /&gt;
             x3d:X3D { height:200px;width:200px; }&lt;br /&gt;
           &amp;amp;lt;/style&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/head&amp;gt;&lt;br /&gt;
         &amp;amp;lt;body&amp;gt;&lt;br /&gt;
           &amp;amp;lt;x3d:X3D name='x3dBlock' xmlns:x3d=&amp;quot;http://www.web3d.org/specifications/x3d-3.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;amp;lt;Scene&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Appearance&amp;gt;&lt;br /&gt;
                   &amp;amp;lt;Material diffuseColor=&amp;quot;1 0 0&amp;quot;  /&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;/Appearance&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Box size=&amp;quot;4 4 4&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
               &amp;amp;lt;Shape&amp;gt;&lt;br /&gt;
                 &amp;amp;lt;Text string='&amp;quot;This is X3D Text&amp;quot;' /&amp;gt;&lt;br /&gt;
               &amp;amp;lt;/Shape&amp;gt;&lt;br /&gt;
           &amp;amp;lt;/Scene&amp;gt;&lt;br /&gt;
         &amp;amp;lt;/x3d:X3D&amp;gt;&lt;br /&gt;
         &amp;amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;amp;lt;! CDATA&lt;br /&gt;
         var colSel = true;&lt;br /&gt;
         function toggleRendering()&lt;br /&gt;
         {&lt;br /&gt;
            var button = document.getElementById(&amp;quot;color&amp;quot;);	&lt;br /&gt;
            colSel = !colSel;		&lt;br /&gt;
               if (colSel)&lt;br /&gt;
                  button.value = &amp;quot;Blue&amp;quot;;&lt;br /&gt;
               else&lt;br /&gt;
                  button.value = &amp;quot;Red&amp;quot;;		&lt;br /&gt;
            var mat = document.getElementsByTagName(&amp;quot;Material&amp;quot;);&lt;br /&gt;
            var n = mat.length;		&lt;br /&gt;
            var aMat = mat[0];&lt;br /&gt;
            aMat.setAttribute(&amp;quot;diffuseColor&amp;quot;, (!colSel ? &amp;quot;0 0 1&amp;quot; : &amp;quot;1 0 0&amp;quot;));		&lt;br /&gt;
            return false;&lt;br /&gt;
         }	&lt;br /&gt;
         &amp;gt;&amp;amp;lt;/script&amp;gt;	&lt;br /&gt;
          &amp;amp;lt;p class=&amp;quot;case&amp;quot;&amp;gt; &amp;amp;nbsp; &lt;br /&gt;
            Dynamic material update&lt;br /&gt;
            &amp;amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;color&amp;quot; value=&amp;quot;Change Color&amp;quot; onclick=&amp;quot;toggleRendering();&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;amp;lt;/p&amp;gt;	&lt;br /&gt;
          &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_version_4.0_Development&amp;diff=9786</id>
		<title>X3D version 4.0 Development</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_version_4.0_Development&amp;diff=9786"/>
				<updated>2019-03-08T16:59:59Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: /* Candidate Capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.web3d.org/x3d4 X3D Version 4] is a major upgrade to the Extensible 3D (X3D) Graphics International Standard that aligns with the HTML5 Recommendation. This is major work in progress, expected to include several future versions.  This effort is driven by the X3D Graphics Working Group with regular community outreach.&lt;br /&gt;
&lt;br /&gt;
==Genesis and Strategic Overview==&lt;br /&gt;
&lt;br /&gt;
Web3D Consortium working groups currently define specification goals and requirements. Working group efforts are often the focus for defining and testing new X3D components.&lt;br /&gt;
&lt;br /&gt;
We publicly review these goals annually during [http://web3dconference.org/ Web3D Conference] and [http://www.siggraph.org/attend/annual-conferences SIGGRAPH] Birds of a Feather (BOF) meetings ([http://www.web3d.org/event/siggraph-2016-conference-colocated-web3d-2016-anaheim-california SIGGRAPH 2016], upcoming SIGGRAPH 2017).&lt;br /&gt;
&lt;br /&gt;
Suggestions, development and discussion via the [http://web3d.org/mailman/listinfo/x3d-public_web3d.org x3d-public mailing list] is ongoing.&lt;br /&gt;
&lt;br /&gt;
X3D version 3.4 Development efforts were evolutionary improvements to the widely proven X3D Graphics architecture.  Consortium members decided to skip version 3.4 and go straight to version 4.0, prior goals and requirements have all been merged here.&lt;br /&gt;
&lt;br /&gt;
The [http://www.web3d.org/wiki/index.php?title=X3D_version_4.0_Development#Candidate_Capabilities Candidate Capabilities] list shows that a lot of interesting capabilities have been proposed and are under way for X3D version 4. However, topics on this list are not guaranteed to be completed! Rather these are all works in progress.&lt;br /&gt;
&lt;br /&gt;
Activity and approval proceeds based on technical contributions and Web3D Consortium Member priorities. Please consider [http://web3d.org/membership/join joining Web3D Consortium] to help advance 3D graphics on the Web.These X3D version 4.0 Development efforts are considering potentially major additions to the baseline X3D architecture.&lt;br /&gt;
&lt;br /&gt;
* Major technology under consideration: [http://www.web3d.org/wiki/index.php/X3D_and_HTML5 HTML5], [http://www.w3.org/community/declarative3d/ Declarative 3D], CSS, [http://www.x3dom.org X3DOM] (see [http://web3d.org/wiki/images/f/f2/X3DOM_4_WebGL_audience_10_2013.pdf Summary slides (Oct 2013)]), and [http://titania.create3000.de/cobweb/ Cobweb]&lt;br /&gt;
* Major technology under consideration: [http://www.web3d.org/wiki/index.php/X3D_and_Augmented_Reality Mixed and Augmented Reality (MAR)] (renamed from Augmented Reality Continuum (ARC)&lt;br /&gt;
* Relaxing prior design constraints can enable a broader new basis for X3D integration&lt;br /&gt;
* Normalizing interaction semantics with HTML5 can further open up X3D for the vast majority of Web authors&lt;br /&gt;
&lt;br /&gt;
Please [http://www.web3d.org/realtime-3d/contact contact us] if you think additional technologies need to be considered. X3D Futures planning is primarily a Web3D Consortium member-only activity, with community input.&lt;br /&gt;
&lt;br /&gt;
== Capabilities ==&lt;br /&gt;
&lt;br /&gt;
Component improvements and additions considered and recommended by the X3D Working Group, with review by the X3D community.&lt;br /&gt;
The draft X3D specifications are approved by Web3D Consortium Board of Directors and then submitted to ISO for ratification.&lt;br /&gt;
&lt;br /&gt;
All suggestions and recommendations are welcome.&lt;br /&gt;
Please [http://www.web3d.org/realtime-3d/contact contact us] if you think additional technologies need to be considered.&lt;br /&gt;
&lt;br /&gt;
=== Accepted Capabilities ===&lt;br /&gt;
&lt;br /&gt;
These capabilities are accepted in principle by the X3D Working Group.&lt;br /&gt;
Further feasible work remains in specification writing, examples, implementation and evaluation.&lt;br /&gt;
&lt;br /&gt;
* TODO link reference pages on Web3D.org&lt;br /&gt;
* TODO link specification-tracking spreadsheet&lt;br /&gt;
* [http://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf X3D Node Inventory Comparison] (spreadsheet [http://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx .xlsx]) shows implementation coverage&lt;br /&gt;
* TODO how to track examples?&lt;br /&gt;
&lt;br /&gt;
TODO copy full entries from below, edit for clarity and consistency.&lt;br /&gt;
&lt;br /&gt;
* [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html Annotations component]&lt;br /&gt;
*'''[http://www.web3d.org/realtime-3d/working-groups/h-anim Humanoid Animation (HAnim)]''' version 2: anatomical correctness for skeleton and skinning, motion animation, hands and feet. Future: faces, organs&lt;br /&gt;
* Lighting model: glTF and Physically Based Rendering (PBR)&lt;br /&gt;
* Materials: improvements to Material and TwoSidedMaterial&lt;br /&gt;
** to make them modern (e.g. normal maps)&lt;br /&gt;
** consistent with PhysicalMaterial (e.g. texture slots inside Material).&lt;br /&gt;
* Texturing - Projective Texture Mapping (PTM), Environment Lighting&lt;br /&gt;
* PointProperties&lt;br /&gt;
* Volume Rendering component extensions&lt;br /&gt;
* Security Considerations section added to each component.&lt;br /&gt;
&lt;br /&gt;
=== Approved Capabilities ===&lt;br /&gt;
&lt;br /&gt;
These capabilities are published in the github draft X3Dv4 specification, reviewed by the X3D community for comment, fully recommended by the X3D Working Group, and approved by the Web3D Consortium Board of Directors.&lt;br /&gt;
&lt;br /&gt;
* No capabilities for X3Dv4 are yet approved.&lt;br /&gt;
&lt;br /&gt;
=== Candidate Capabilities ===&lt;br /&gt;
&lt;br /&gt;
Candidate capabilities are under active consideration by the X3D Working Group.&lt;br /&gt;
&lt;br /&gt;
* Each of the following possibilities for X3D version 4 have been discussed by the various X3D working groups during meetings and on mailing lists.&lt;br /&gt;
* Each potential capability is considered to be a feasible (and in most cases, straightforward) addition to the existing X3D version 3.3 architecture.&lt;br /&gt;
&lt;br /&gt;
Working notes:&lt;br /&gt;
# TODO: Which experimental nodes implemented by X3D browsers are ready for consideration? Candidates include [http://doc.instantreality.org Fraunhofer], X3DOM, Cobweb, other members and working groups?&lt;br /&gt;
# TODO: articulate server-side visualization: Big Data, cloud computing, and related issues.&lt;br /&gt;
# Discussion from 24 FEB 2019: put X3D-HTML5 integration in a new Annex in 19775-1 to see if that works.  Much easier lift procedurally than starting a separate 19775-3 specification.  Dick described tradeoffs.  Seems like a good idea to put candidate text in an Annex before committing to a whole new specification.&lt;br /&gt;
## Of note: Roy created a [https://github.com/Web3DConsortium/X3D/tree/master/ISO-IEC%2019775/ISO-IEC%2019775-3/ISO-IEC%2019775-3%20V4.0/ISO-IEC%2019775-3%20V4.0%20WD1 draft 19775-3] in github for HTML5-X3D&lt;br /&gt;
## Don and Dick will look at prior materials and create draft annex structure for HTML5-DOM in X3D Architecture 19775-1.&lt;br /&gt;
# Discussion (move onto Mantis and mailing list): should we consider adding X3DUOM descriptive prose in Concepts section?  It is becoming essential to confirming that node interfaces are well specified and implementable precisely/interoperably in various X3D file encodings and language bindings.&lt;br /&gt;
## Summary: &amp;quot;[http://www.web3d.org/specifications/X3DUOM.html X3DUOM] fully defines all object-oriented relationships for nodes, fields and abstract interfaces in the X3D Architecture.  X3DUOM is a validatable expression of X3D relationships that can be applied to implement various X3D file encodings and programming-language bindings.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nodes and components:&lt;br /&gt;
*'''Appearance'''&lt;br /&gt;
**'''Images''': recommended formats for imagery and video (.gif .bmp .flv .exr .hdr etc.) - details below:&lt;br /&gt;
***'''GIF''': [http://www.w3.org/Graphics/GIF/spec-gif89a.txt &amp;quot;Graphics Interchange Format, Version 89a&amp;quot;], W3C. 31 July 1990.&lt;br /&gt;
***'''BMP''': [https://en.wikipedia.org/wiki/BMP_file_format BMP]. Note: Originally developed by Microsoft for OS/2 and Windows.&lt;br /&gt;
***'''FLV''': &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;[http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf FLV and F4V] usage has been deprecated by browser manufacturers.&amp;lt;/span&amp;gt;&lt;br /&gt;
***'''EXR''': [http://www.openexr.com/openexrfilelayout.pdf EXR file layout], developed as OpenEXR by Industrial light and magic (ILM). This requires HDR (see below).&lt;br /&gt;
***'''Khronos Texture Format (KTX)''': Khronos [https://www.khronos.org/opengles/sdk/tools/KTX KTX File Format]&lt;br /&gt;
***'''QR codes''': [http://en.wikipedia.org/wiki/QR_code QR codes], while useful in Mixed Augmented Reality (MAR) applications, are a content representation and not a file format.&lt;br /&gt;
***'''attributes''': width_changed, height_changed, aspectRatio_changed with accessType outputOnly&lt;br /&gt;
**'''SVG''': Possible use of SVG for image generation on the fly.  Images could be static or dynamic. See [https://www.w3.org/Graphics/ W3C Graphics on the web].&lt;br /&gt;
**'''Materials''': advanced parameters&lt;br /&gt;
**'''HDR''': Improvements in both materials and rendering for high definition rendering (HDR) technological advances.&lt;br /&gt;
**[[X3D Multitexture | Multitexture]]: review for correctness, completeness and conformance of rendering example scenes&lt;br /&gt;
**'''Rendering''': bump maps, [http://doc.instantreality.org/tutorial/dynamic-shadows/ shadows], edge smoothing, gamma correction, Non-Photorealistic Rendering (NPR)&lt;br /&gt;
**[http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/shaders.html Shaders]: improved support and better interoperability, library of examples; [http://doc.instantreality.org/documentation/nodetype/CommonSurfaceShader/ CommonSurfaceShader?]&lt;br /&gt;
**'''Texturing''': [http://en.wikipedia.org/wiki/Texture_atlas Texture atlas], [http://en.wikipedia.org/wiki/Projective_texture_mapping projective texture mapping (PTM)], [http://www.xj3d.org/extensions/render_texture.html RenderedTexture node] for multipass rendering - 2D texture version of GeneratedCubeMapTexture, first proposed by Xj3D and also implemented in X3DOM and InstantReality, useful for all kinds of NPR, shadows, mirrors, etc. Also review 8-bit vs 24-bit texture application differences - see https://castle-engine.sourceforge.io/x3d_multi_texturing.php#section_default_texture_mode.&lt;br /&gt;
**'''Chroma key''' for TextureProperties node to support special transparent background.&lt;br /&gt;
*'''Audio and video''': alignment with [https://www.w3.org/2011/audio W3C Audio Working Group], especially  for [https://webaudio.github.io/web-audio-api Web Audio API] and [https://webaudio.github.io/web-midi-api Web Midi API].&lt;br /&gt;
**''Considerations.'' Adding royalty-free formats, streamability, [http://web3d.org/pipermail/x3d-public_web3d.org/2013-December/002681.html disabling attenuation], 3D aural spatialization using reflection from simple geometry (such as [http://gamma.cs.unc.edu/Sound/RESound RESOUND]).&lt;br /&gt;
**''Point paper.'' [http://www.web3d.org/specifications/X3Dv4StrategiesToImproveSoundComponent.pdf Strategies to Improve X3D v4 Sound Component] for 3D sound model and audio rendering&lt;br /&gt;
*'''[http://www.web3d.org/realtime-3d/working-groups/computer-aided-design-cad Computer Aided Design (CAD)]''' a new profile to be named CADInteractive, to include:&lt;br /&gt;
**[http://www.web3d.org/wiki/index.php/X3D_v4.0_CAD_Improvements X3D v4.0 CAD Improvements] with 3D printing + 3D scanning included&lt;br /&gt;
**[http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/CADInterchange.html CADInterchange profile] plus FillProperties/LineProperties, primitive/Geometry2D nodes, Extrusion, NURBS, ClipPlane&lt;br /&gt;
**Part selection/animation, 3D printing, [http://www.web3d.org/realtime-3d/news/3d-graphics-compress-call-contributions Compressed Binary Encoding (CBE)], possibly [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html annotations component]&lt;br /&gt;
** Building Information Models (BIM), Architecture Engineering Construction (AEC), Physical Sensors&lt;br /&gt;
*'''[http://www.ecma-international.org/publications/standards/Ecma-262.htm ECMAScript]''' (Javascript) specification revision compatibility with [http://www.web3d.org/files/specifications/19777-1/V3.0/index.html ECMAScript encoding]; possibly add C# or Python support. Note that minor changes in the current X3D Script node might be needed to enable full integration into HTML/DOM.&lt;br /&gt;
*'''Events'''&lt;br /&gt;
** Review X3D event interoperability with other event models, such as Document Object Model (DOM) Recommendations&lt;br /&gt;
** Add capability for Event logging and playback so that deterministic replay is possible for demonstrations and debugging&lt;br /&gt;
*'''Generalized input/output interface support'''&lt;br /&gt;
** Possibly [http://www.cs.unc.edu/Research/vrpn/index.html Virtual Reality Peripheral Network (VRPN)], gesture recognition (such as [http://en.wikipedia.org/wiki/Kinect KINECT], [http://www.leapmotion.com LEAP]), etc.&lt;br /&gt;
** Support for arbitrary sensors and user interaction devices&lt;br /&gt;
* '''Geometry'''&lt;br /&gt;
** PointSet point size and associated Normal vectors; Octrees&lt;br /&gt;
** 3D Extruded Text&lt;br /&gt;
** Support for [http://en.wikipedia.org/wiki/Web_typography Web typography] using [http://www.w3.org/TR/WOFF Web Open Fonts Format (WOFF)]&lt;br /&gt;
** Progressive meshes (suitable for both compression and streaming)&lt;br /&gt;
** Support for direct loading of compressed [https://x3dom.org/src Shape Resource Container (SRC)] and [https://www.x3dom.org/examples/externalshape-with-gltf-binary-glb ExternalShape] from Fraunhofer&lt;br /&gt;
** Direct loading of other geometry meshes such as [https://en.wikipedia.org/wiki/STL_(file_format) STL] and [https://en.wikipedia.org/wiki/PLY_(file_format) PLY]&lt;br /&gt;
*'''[http://www.web3d.org/realtime-3d/working-groups/x3d-earth Geospatial X3D]''' component&lt;br /&gt;
** [http://www.igraphics.com/Standards/EnhancedGeospatialComponent_2007_10_30/Part01/X3D.html Enhanced Geospatial Component - spatial reference frame (SRF)] and [http://www.opengeospatial.org/standards/kml KML] support, [http://www.opengeospatial.org/projects/initiatives/3dpie OGC 3D Portrayal], [http://web3d.org/pipermail/x3d-public_web3d.org/2010-December/001187.html GpsSensor], [http://openlayers.org OpenLayer] mashups&lt;br /&gt;
** GeoSet collection of adjacent GeoElevationGrid nodes to enable proper computation of normals for edge boundaries of adjacent grids&lt;br /&gt;
* '''Interoperability''': include ''class'' attribute for all nodes to all encodings&lt;br /&gt;
* '''[http://www.json.org JSON]''': JavaScript Object Notation as an X3D encoding ([http://web3d.org/pipermail/x3d-public_web3d.org/2014-July/thread.html#2854 assessment thread]), relation to [http://www.khronos.org/gltf GlTF], streaming considerations&lt;br /&gt;
*'''[http://www.web3d.org/realtime-3d/working-groups/medx3d Medical working group]''' ImageTextureAtlas plus capabilities including recent Community Improvements to the Volume Component (Aberlaiz et al 2018 [https://dl.acm.org/citation.cfm?id=3075945], and MPR)&lt;br /&gt;
** [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html Annotations component] and metadata usage&lt;br /&gt;
** Archival 3D medical records, potential emphasis on [http://en.wikipedia.org/wiki/Traumatic_brain_injury Traumatic brain injury (TBI)] volume visualization&lt;br /&gt;
** Haptics component for force feedback; [http://www.w3.org/TR/vibration W3C Vibrations API] for tactile feedback&lt;br /&gt;
** Soft-body physics component to complement rigid-body physics component&lt;br /&gt;
* '''Mobile Profile.''' TODO - needed? Calling out a reduced palette for mobile devices remains interesting, but might instead remain a browser-optional optimization.&lt;br /&gt;
* '''[http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/core.html#Nodereference Metadata]''': support for embedding information useful for applications utilizing X3D&lt;br /&gt;
** Enumerated types: better access, typing, naming, and validation than using MetadataSet/MetadataString combinations&lt;br /&gt;
* '''Mixed and Augmented Reality (MAR)''': follow ISO MAR Reference Model, integrate multiple capabilities with devices situated in real world&lt;br /&gt;
*'''Networking''': consider [http://www.web3d.org/x3d/content/examples/Basic/Networking NetworkSensor] and event-passing issues, streaming using [http://www.json.org JSON], server-side 3D topics&lt;br /&gt;
*'''Security and privacy''':&lt;br /&gt;
** Include X3D Networking Component Level 4 support for https in Immersive, Interactive and other commonly used profiles&lt;br /&gt;
** Review X3D specifications to ensure that Security Considerations are fully documented throughout in every component&lt;br /&gt;
** [http://www.w3.org/standards/xml/security XML Security] provides best-available encryption, digital signature (authentication)&lt;br /&gt;
** [http://www.w3.org/standards/webdesign/privacy Web Privacy]: examine X3D compatibility with Do Not Track, P3P, POWDER&lt;br /&gt;
*'''Viewing and navigation''': [http://www.web3d.org/x3d/content/examples/Basic/development/CameraExamplesIndex.html cinematic camera control], alternative navigation types (such as PAN, [http://www.x3dom.org/?p=3536 TURNTABLE] etc.), [http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/behaviours.html Recommended navigation behaviours] review, and old MatrixTransform node (esp. useful for CAD, VR/AR etc., implemented in X3DOM and InstantReality)&lt;br /&gt;
*'''Virtual Reality (VR)''': requirements definition needed includes viewing with stereo devices, interocular distance, frame-rate requirements, comparison (and potential profile) for [https://webvr.info WebVR] capabilities, physiological considerations, health and safety, relation with Mixed Augmented Reality (MAR), etc.&lt;br /&gt;
&lt;br /&gt;
=== Deferred Capabilities  ===&lt;br /&gt;
&lt;br /&gt;
Deferred capabilities are candidates for inclusion in a follow-on version of X3Dv4.&lt;br /&gt;
&lt;br /&gt;
In general, new capabilities for Mixed Augmented Reality (MAR) are deferred to X3Dv4.1.&lt;br /&gt;
&lt;br /&gt;
* None yet listed.&lt;br /&gt;
&lt;br /&gt;
=== Deprecated Capabilities ===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Deprecation#Software_deprecation Deprecation] means that a feature will still be included for the next version, but is nevertheless expected to be removed in future versions.  This approach can simplify transition of content to a new approach.&lt;br /&gt;
&lt;br /&gt;
Under consideration:&lt;br /&gt;
* GeoOrigin node was deprecated in X3Dv3.3 and needs to be either restored or removed.&lt;br /&gt;
* Layout component - perhaps no longer needed, especially with HTML5 (and MAR) integration expected.&lt;br /&gt;
* Shaders component - deserved close reconsideration.&lt;br /&gt;
&lt;br /&gt;
=== Excluded Capabilities ===&lt;br /&gt;
&lt;br /&gt;
Excluded capabilities are considered &amp;quot;out of scope&amp;quot; for X3D, and are not expected to be included in future versions.&lt;br /&gt;
&lt;br /&gt;
* None yet listed.&lt;br /&gt;
&lt;br /&gt;
=== Removed Capabilities ===&lt;br /&gt;
&lt;br /&gt;
Removed capabilities will no longer be supported in X3Dv4.&lt;br /&gt;
&lt;br /&gt;
* None yet listed.&lt;br /&gt;
&lt;br /&gt;
== Architectural Considerations ==&lt;br /&gt;
&lt;br /&gt;
This section will synopsize significant differences between X3D version 4 and X3D version 3 that may require structural changes in tools and scenes.  Special attention is needed to minimize incompatibilities with legacy software and content.&lt;br /&gt;
&lt;br /&gt;
Much depends on the target environment. X3D V3.x presumes a controlled environment that interacts with the rest of the (computing) world through a well defined API (called SAI). When X3D is running in the browser (as in fully integrated with the DOM), the DOM defines a portion of the environment in which X3D must operate. For that environment it will be necessary to make changes to X3D so that it is compatible with the DOM.&lt;br /&gt;
&lt;br /&gt;
== Backwards and Forwards Compatibility ==&lt;br /&gt;
&lt;br /&gt;
A major benefit of using the X3D standard is full backwards compatibility with prior VRML97 and X3D content.&lt;br /&gt;
Thanks to careful design and insistence on implementation/evaluation, the X3D International Standard has maintained both steady growth and interoperability ever since Virtual Reality Modeling Language (VRML) in 1997. This track record of stability and innovation is among the best in the 3D graphics industry.&lt;br /&gt;
&lt;br /&gt;
Our goal is to maximize, but not necessarily require, backwards compatibility in version 4.0 with the version 3.x specifications&lt;br /&gt;
* A great majority of X3D nodes and features are likely achievable without change&lt;br /&gt;
* Some X3D features may require import/export conversion for compatibility (event model reconciliation, ROUTEs and sensors perhaps)&lt;br /&gt;
* A few features might be refactored, deprecated or obsoleted (none yet identified)&lt;br /&gt;
* Name deconfliction: HTML Script versus embedded X3D Script&lt;br /&gt;
&lt;br /&gt;
The comprehensive forward compatibility of VRML97 and X3D with later-developed X3D versions shows that careful anticipatory design is achievable.&lt;br /&gt;
&lt;br /&gt;
X3D version 4.0 Development efforts are currently focused on HTML5, Declarative 3D, X3DOM, and Cobweb with many more issues under consideration.&lt;br /&gt;
* Discussion of [[Importing and adding nodes in HTML]]&lt;br /&gt;
&lt;br /&gt;
X3D Version 4.1 is focused on Mixed and Augmented Reality (MAR) capabilities, which may also require architectural changes. Some new technologies may get pushed from 4.0 to 4.1 (or back again) after careful consideration by the respective working groups.&lt;br /&gt;
&lt;br /&gt;
Related specification support and changes&lt;br /&gt;
*As with all other X3D components, all work is defined in the abstract specification has corresponding file encodings (.x3d .x3dv .x3db) and language bindings (ECMAScript and Java). &lt;br /&gt;
*Compatibility concerns include evolutionary efforts to upgrade the X3D Compressed Binary Encoding (CBE), as described in the [http://www.web3d.org/realtime-3d/working-groups/x3d/compressed-binary/x3d-compressed-binary-encoding-call-contributions X3D Compressed Binary Encoding Call For Contributions].&lt;br /&gt;
*ECMAScript (JavaScript) support in X3D needs to be upgraded to the new standard for that rapidly improving programming language.&lt;br /&gt;
**[http://standards.iso.org/ittf/PubliclyAvailableStandards/c055755_ISO_IEC_16262_2011(E).zip ISO/IEC 16262:2011 Information technology — ECMAScript language specification] (.zip download)&lt;br /&gt;
**Downloadable from [http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html ISO Publicly Available Standards] site without charge&lt;br /&gt;
**This relates to [http://www.web3d.org/files/specifications/19777-1/V3.0/index.html 19777-1 Part 2, X3D Scene Access Interface (SAI) language bindings for EcmaScript]&lt;br /&gt;
&lt;br /&gt;
== Legacy Issues ==&lt;br /&gt;
&lt;br /&gt;
We plan to confirm the existence of complete capabilities for X3D v3.3 prior to final approval of X3D version 4.&lt;br /&gt;
&lt;br /&gt;
* Full support for all existing X3D v3.3 components:&lt;br /&gt;
** At least two compatible implementations (including at least one in open source) plus repeatable example scenes&lt;br /&gt;
** Layer, ParticleSystems, RigidBodyPhysics, Shaders, TODO others&lt;br /&gt;
** TransformSensor node: [http://doc.instantreality.org/documentation/nodetype/TransformSensor/ IGD] and [http://www.parallelgraphics.com/developer/products/cortona/extensions/transformsensor/ old Cortona]&lt;br /&gt;
** Note that it is not a requirement that all features and capabilities in X3D V3.3 are included in V4.0&lt;br /&gt;
&lt;br /&gt;
* Is it necessary for Layout component to be deprecated or improved?&lt;br /&gt;
* Are there other features or capabilities that should not or are not able to move into V4.0?&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Are MAR abstract design and X3D AR proposals sufficiently mature to enable integration with HTML5/Declarative 3D/X3DOM/Cobweb issues?&lt;br /&gt;
* Are the previously X3D Layer/Layering components compatible with HTML5 overlay model? Are they still needed, perhaps for multiscreen or CAVE support?&lt;br /&gt;
* Mashup and interoperability support: is anything else needed for broader use with the Web? YouTube etc.&lt;br /&gt;
&lt;br /&gt;
== Related Work==&lt;br /&gt;
&lt;br /&gt;
Much careful planning is involved, we are working to ensure that X3D version 4 can be coherently advanced in combination with a [http://www.web3d.org/specifications/X3dSpecificationRelationships.png coordinated set of steadily evolving ISO/IEC standards].&lt;br /&gt;
*'''X3D Efficient Binary Encoding (EBE).''' This work is proceeding in parallel. X3D version 4 must maintain compatibility with all encodings. See also SRC format (Web3D 2014)and ExternalGeometry node in InstantPlayer and X3DOM&lt;br /&gt;
*'''X3D JavaScript Object Notation (JSON) Encoding.''' This work is proceeding in parallel. X3D version 4 must maintain compatibility with all encodings.&lt;br /&gt;
*'''X3D version 4.0 (HTML5/X3D DOM)'''. This work is proceeding in parallel. X3D version 4 support is expected.&lt;br /&gt;
*'''X3D version 4.1 (Mixed and Augmented Reality)'''. Nodes and capabilities in this arena will build on v4.0 and HTML5.  Experimentation, evolution and evaluation occurs throughout.&lt;br /&gt;
** '''[[Essential Elements of X3D]]''' collects elements that are essential to X3D&lt;br /&gt;
&lt;br /&gt;
Technologies and activities that relate to X3D version 4 are: &lt;br /&gt;
* [https://webvr.info/ '''WebVR'''] &amp;quot;bringing virtual reality to the web&amp;quot; - standardize the interface to VR displays and controllers &lt;br /&gt;
* [https://www.w3.org/community/decwebvr/ '''W3C's Declarative WebVR Community Group'''] formed to developed a declarative 3D standard for WebVR&lt;br /&gt;
* [https://threejs.org/ '''three.js'''], a JavaScript library&lt;br /&gt;
* [https://aframe.io/ '''A-Frame'''] &amp;quot;a web framework for building virtual reality experiences&amp;quot;&lt;br /&gt;
* [http://xml3d.org/ '''XML3D'''] &amp;quot; seamless integration of 3D content into HTML pages&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Timeline (new section) ==&lt;br /&gt;
&lt;br /&gt;
# links to guiding Web3D pages on spec strategy and process,&lt;br /&gt;
# link to status tracking spreadsheet,&lt;br /&gt;
# we effectively have a Web3D/ISO Working Draft (WD) now,&lt;br /&gt;
# we continue adding components/nodes via working group process,&lt;br /&gt;
# (currently) Mantis is where issues, draft spec functionality and design tradeoffs are captured, reviewed and approved,&lt;br /&gt;
# Apply new prose sections in github spec repository (by Dick and I, many improvements occurred this week),&lt;br /&gt;
# (suggested) '''Web3D announces X3D v4 Working Draft availability at Web3D &amp;amp; SIGGRAPH 2019 conferences''',&lt;br /&gt;
# TODO consider whether that is a public release to encourage engagement - or not.&lt;br /&gt;
# Working Group continues to add nodes and components,&lt;br /&gt;
# Excerpted draft spec and implementation details posted for public comment on a per-component basis ~monthly,&lt;br /&gt;
# (suggested date) '''Web3D announces plans to close additions to X3Dv4 on 16 DEC 2019'''&lt;br /&gt;
# +1 month, final public comments period and editorial work, member review, Board review and approval&lt;br /&gt;
# Web3D submits New Work Item Proposal (NWIP) and Committee Draft (CD) to ISO&lt;br /&gt;
# implement, evaluate examples, refine, resolve all related issues&lt;br /&gt;
# (suggested date) '''Web3D approves, submits X3Dv4 Draft International Spec DIS to ISO at Web3D 2020'''&lt;br /&gt;
# ISO dates/deadline for DIS/FDIS/IS proceed&lt;br /&gt;
# Work begins on X3Dv4.1 Working Draft (WD)&lt;br /&gt;
&lt;br /&gt;
TODO: is an annual cycle possible?&lt;br /&gt;
&lt;br /&gt;
== Schedule (old section, review and merge with Timeline) ==&lt;br /&gt;
&lt;br /&gt;
'''ISO Considerations'''&lt;br /&gt;
* Deciding readiness for ISO New Work Item Proposal (NWIP): we need Committee Draft (CD) specification prose for each planned capability.&lt;br /&gt;
* Web3D Consortium is not locked into an annual schedule, ISO handling is flexible.&lt;br /&gt;
* Once the NWIP is approved, ISO rules for schedule and review are established.&lt;br /&gt;
&lt;br /&gt;
'''Execution goals'''&lt;br /&gt;
* Review progress during monthly calls, Web3D Conference, and SIGGRAPH Conference.&lt;br /&gt;
* We are continuing a monthly review schedule for submissions so that we can build out X3D version 4 one component at a time.&lt;br /&gt;
* We are planning to have a 1-year deadline for completion of CD specification prose, rather than wait until all possible version 4 work is ready.&lt;br /&gt;
* Web3D Consortium members and public review when a final draft specification is ready to proceed to ISO.&lt;br /&gt;
* Any new components not meeting Web3D deadlines might be a candidate for deferral to V4.1. Or considered not ready.&lt;br /&gt;
&lt;br /&gt;
'''Progress'''&lt;br /&gt;
&lt;br /&gt;
* Active development of X3D, X3DOM and Cobweb content is tracking HTML 5 capabilities now&lt;br /&gt;
* We participate and contribute to the W3C Community Group for [http://www.w3.org/community/declarative3d Declarative 3D]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_version_4.0_Development&amp;diff=9784</id>
		<title>X3D version 4.0 Development</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_version_4.0_Development&amp;diff=9784"/>
				<updated>2019-03-08T16:56:17Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Clarified that the Interactive profile for the CAD candidates is to be a new profile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.web3d.org/x3d4 X3D Version 4] is a major upgrade to the Extensible 3D (X3D) Graphics International Standard that aligns with the HTML5 Recommendation. This is major work in progress, expected to include several future versions.  This effort is driven by the X3D Graphics Working Group with regular community outreach.&lt;br /&gt;
&lt;br /&gt;
==Genesis and Strategic Overview==&lt;br /&gt;
&lt;br /&gt;
Web3D Consortium working groups currently define specification goals and requirements. Working group efforts are often the focus for defining and testing new X3D components.&lt;br /&gt;
&lt;br /&gt;
We publicly review these goals annually during [http://web3dconference.org/ Web3D Conference] and [http://www.siggraph.org/attend/annual-conferences SIGGRAPH] Birds of a Feather (BOF) meetings ([http://www.web3d.org/event/siggraph-2016-conference-colocated-web3d-2016-anaheim-california SIGGRAPH 2016], upcoming SIGGRAPH 2017).&lt;br /&gt;
&lt;br /&gt;
Suggestions, development and discussion via the [http://web3d.org/mailman/listinfo/x3d-public_web3d.org x3d-public mailing list] is ongoing.&lt;br /&gt;
&lt;br /&gt;
X3D version 3.4 Development efforts were evolutionary improvements to the widely proven X3D Graphics architecture.  Consortium members decided to skip version 3.4 and go straight to version 4.0, prior goals and requirements have all been merged here.&lt;br /&gt;
&lt;br /&gt;
The [http://www.web3d.org/wiki/index.php?title=X3D_version_4.0_Development#Candidate_Capabilities Candidate Capabilities] list shows that a lot of interesting capabilities have been proposed and are under way for X3D version 4. However, topics on this list are not guaranteed to be completed! Rather these are all works in progress.&lt;br /&gt;
&lt;br /&gt;
Activity and approval proceeds based on technical contributions and Web3D Consortium Member priorities. Please consider [http://web3d.org/membership/join joining Web3D Consortium] to help advance 3D graphics on the Web.These X3D version 4.0 Development efforts are considering potentially major additions to the baseline X3D architecture.&lt;br /&gt;
&lt;br /&gt;
* Major technology under consideration: [http://www.web3d.org/wiki/index.php/X3D_and_HTML5 HTML5], [http://www.w3.org/community/declarative3d/ Declarative 3D], CSS, [http://www.x3dom.org X3DOM] (see [http://web3d.org/wiki/images/f/f2/X3DOM_4_WebGL_audience_10_2013.pdf Summary slides (Oct 2013)]), and [http://titania.create3000.de/cobweb/ Cobweb]&lt;br /&gt;
* Major technology under consideration: [http://www.web3d.org/wiki/index.php/X3D_and_Augmented_Reality Mixed and Augmented Reality (MAR)] (renamed from Augmented Reality Continuum (ARC)&lt;br /&gt;
* Relaxing prior design constraints can enable a broader new basis for X3D integration&lt;br /&gt;
* Normalizing interaction semantics with HTML5 can further open up X3D for the vast majority of Web authors&lt;br /&gt;
&lt;br /&gt;
Please [http://www.web3d.org/realtime-3d/contact contact us] if you think additional technologies need to be considered. X3D Futures planning is primarily a Web3D Consortium member-only activity, with community input.&lt;br /&gt;
&lt;br /&gt;
== Capabilities ==&lt;br /&gt;
&lt;br /&gt;
Component improvements and additions considered and recommended by the X3D Working Group, with review by the X3D community.&lt;br /&gt;
The draft X3D specifications are approved by Web3D Consortium Board of Directors and then submitted to ISO for ratification.&lt;br /&gt;
&lt;br /&gt;
All suggestions and recommendations are welcome.&lt;br /&gt;
Please [http://www.web3d.org/realtime-3d/contact contact us] if you think additional technologies need to be considered.&lt;br /&gt;
&lt;br /&gt;
=== Accepted Capabilities ===&lt;br /&gt;
&lt;br /&gt;
These capabilities are accepted in principle by the X3D Working Group.&lt;br /&gt;
Further feasible work remains in specification writing, examples, implementation and evaluation.&lt;br /&gt;
&lt;br /&gt;
* TODO link reference pages on Web3D.org&lt;br /&gt;
* TODO link specification-tracking spreadsheet&lt;br /&gt;
* [http://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf X3D Node Inventory Comparison] (spreadsheet [http://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx .xlsx]) shows implementation coverage&lt;br /&gt;
* TODO how to track examples?&lt;br /&gt;
&lt;br /&gt;
TODO copy full entries from below, edit for clarity and consistency.&lt;br /&gt;
&lt;br /&gt;
* [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html Annotations component]&lt;br /&gt;
*'''[http://www.web3d.org/realtime-3d/working-groups/h-anim Humanoid Animation (HAnim)]''' version 2: anatomical correctness for skeleton and skinning, motion animation, hands and feet. Future: faces, organs&lt;br /&gt;
* Lighting model: glTF and Physically Based Rendering (PBR)&lt;br /&gt;
* Materials: improvements to Material and TwoSidedMaterial&lt;br /&gt;
** to make them modern (e.g. normal maps)&lt;br /&gt;
** consistent with PhysicalMaterial (e.g. texture slots inside Material).&lt;br /&gt;
* Texturing - Projective Texture Mapping (PTM), Environment Lighting&lt;br /&gt;
* PointProperties&lt;br /&gt;
* Volume Rendering component extensions&lt;br /&gt;
* Security Considerations section added to each component.&lt;br /&gt;
&lt;br /&gt;
=== Approved Capabilities ===&lt;br /&gt;
&lt;br /&gt;
These capabilities are published in the github draft X3Dv4 specification, reviewed by the X3D community for comment, fully recommended by the X3D Working Group, and approved by the Web3D Consortium Board of Directors.&lt;br /&gt;
&lt;br /&gt;
* No capabilities for X3Dv4 are yet approved.&lt;br /&gt;
&lt;br /&gt;
=== Candidate Capabilities ===&lt;br /&gt;
&lt;br /&gt;
Candidate capabilities are under active consideration by the X3D Working Group.&lt;br /&gt;
&lt;br /&gt;
* Each of the following possibilities for X3D version 4 have been discussed by the various X3D working groups during meetings and on mailing lists.&lt;br /&gt;
* Each potential capability is considered to be a feasible (and in most cases, straightforward) addition to the existing X3D version 3.3 architecture.&lt;br /&gt;
&lt;br /&gt;
Working notes:&lt;br /&gt;
# TODO: Which experimental nodes implemented by X3D browsers are ready for consideration? Candidates include [http://doc.instantreality.org Fraunhofer], X3DOM, Cobweb, other members and working groups?&lt;br /&gt;
# TODO: articulate server-side visualization: Big Data, cloud computing, and related issues.&lt;br /&gt;
# Discussion from 24 FEB 2019: put X3D-HTML5 integration in a new Annex in 19775-1 to see if that works.  Much easier lift procedurally than starting a separate 19775-3 specification.  Dick described tradeoffs.  Seems like a good idea to put candidate text in an Annex before committing to a whole new specification.&lt;br /&gt;
## Of note: Roy created a [https://github.com/Web3DConsortium/X3D/tree/master/ISO-IEC%2019775/ISO-IEC%2019775-3/ISO-IEC%2019775-3%20V4.0/ISO-IEC%2019775-3%20V4.0%20WD1 draft 19775-3] in github for HTML5-X3D&lt;br /&gt;
## Don and Dick will look at prior materials and create draft annex structure for HTML5-DOM in X3D Architecture 19775-1.&lt;br /&gt;
# Discussion (move onto Mantis and mailing list): should we consider adding X3DUOM descriptive prose in Concepts section?  It is becoming essential to confirming that node interfaces are well specified and implementable precisely/interoperably in various X3D file encodings and language bindings.&lt;br /&gt;
## Summary: &amp;quot;[http://www.web3d.org/specifications/X3DUOM.html X3DUOM] fully defines all object-oriented relationships for nodes, fields and abstract interfaces in the X3D Architecture.  X3DUOM is a validatable expression of X3D relationships that can be applied to implement various X3D file encodings and programming-language bindings.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nodes and components:&lt;br /&gt;
*'''Appearance'''&lt;br /&gt;
**'''Images''': recommended formats for imagery and video (.gif .bmp .flv .exr .hdr etc.) - details below:&lt;br /&gt;
***'''GIF''': [http://www.w3.org/Graphics/GIF/spec-gif89a.txt &amp;quot;Graphics Interchange Format, Version 89a&amp;quot;], W3C. 31 July 1990.&lt;br /&gt;
***'''BMP''': [https://en.wikipedia.org/wiki/BMP_file_format BMP]. Note: Originally developed by Microsoft for OS/2 and Windows.&lt;br /&gt;
***'''FLV''': &amp;lt;span style=&amp;quot;text-decoration: line-through;&amp;quot;&amp;gt;[http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf FLV and F4V] usage has been deprecated by browser manufacturers.&amp;lt;/span&amp;gt;&lt;br /&gt;
***'''EXR''': [http://www.openexr.com/openexrfilelayout.pdf EXR file layout], developed as OpenEXR by Industrial light and magic (ILM). This requires HDR (see below).&lt;br /&gt;
***'''Khronos Texture Format (KTX)''': Khronos [https://www.khronos.org/opengles/sdk/tools/KTX KTX File Format]&lt;br /&gt;
***'''QR codes''': [http://en.wikipedia.org/wiki/QR_code QR codes], while useful in Mixed Augmented Reality (MAR) applications, are a content representation and not a file format.&lt;br /&gt;
***'''attributes''': width_changed, height_changed, aspectRatio_changed with accessType outputOnly&lt;br /&gt;
**'''SVG''': Possible use of SVG for image generation on the fly.  Images could be static or dynamic. See [https://www.w3.org/Graphics/ W3C Graphics on the web].&lt;br /&gt;
**'''Materials''': advanced parameters&lt;br /&gt;
**'''HDR''': Improvements in both materials and rendering for high definition rendering (HDR) technological advances.&lt;br /&gt;
**[[X3D Multitexture | Multitexture]]: review for correctness, completeness and conformance of rendering example scenes&lt;br /&gt;
**'''Rendering''': bump maps, [http://doc.instantreality.org/tutorial/dynamic-shadows/ shadows], edge smoothing, gamma correction, Non-Photorealistic Rendering (NPR)&lt;br /&gt;
**[http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/shaders.html Shaders]: improved support and better interoperability, library of examples; [http://doc.instantreality.org/documentation/nodetype/CommonSurfaceShader/ CommonSurfaceShader?]&lt;br /&gt;
**'''Texturing''': [http://en.wikipedia.org/wiki/Texture_atlas Texture atlas], [http://en.wikipedia.org/wiki/Projective_texture_mapping projective texture mapping (PTM)], [http://www.xj3d.org/extensions/render_texture.html RenderedTexture node] for multipass rendering - 2D texture version of GeneratedCubeMapTexture, first proposed by Xj3D and also implemented in X3DOM and InstantReality, useful for all kinds of NPR, shadows, mirrors, etc. Also review 8-bit vs 24-bit texture application differences - see https://castle-engine.sourceforge.io/x3d_multi_texturing.php#section_default_texture_mode.&lt;br /&gt;
**'''Chroma key''' for TextureProperties node to support special transparent background.&lt;br /&gt;
*'''Audio and video''': alignment with [https://www.w3.org/2011/audio W3C Audio Working Group], especially  for [https://webaudio.github.io/web-audio-api Web Audio API] and [https://webaudio.github.io/web-midi-api Web Midi API].&lt;br /&gt;
**''Considerations.'' Adding royalty-free formats, streamability, [http://web3d.org/pipermail/x3d-public_web3d.org/2013-December/002681.html disabling attenuation], 3D aural spatialization using reflection from simple geometry (such as [http://gamma.cs.unc.edu/Sound/RESound RESOUND]).&lt;br /&gt;
**''Point paper.'' [http://www.web3d.org/specifications/X3Dv4StrategiesToImproveSoundComponent.pdf Strategies to Improve X3D v4 Sound Component] for 3D sound model and audio rendering&lt;br /&gt;
*'''[http://www.web3d.org/realtime-3d/working-groups/computer-aided-design-cad Computer Aided Design (CAD)]''' a new profile to be named Interactive, to include:&lt;br /&gt;
**[http://www.web3d.org/wiki/index.php/X3D_v4.0_CAD_Improvements X3D v4.0 CAD Improvements] with 3D printing + 3D scanning included&lt;br /&gt;
**[http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/CADInterchange.html CADInterchange profile] plus FillProperties/LineProperties, primitive/Geometry2D nodes, Extrusion, NURBS, ClipPlane&lt;br /&gt;
**Part selection/animation, 3D printing, [http://www.web3d.org/realtime-3d/news/3d-graphics-compress-call-contributions Compressed Binary Encoding (CBE)], possibly [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html annotations component]&lt;br /&gt;
** Building Information Models (BIM), Architecture Engineering Construction (AEC), Physical Sensors&lt;br /&gt;
*'''[http://www.ecma-international.org/publications/standards/Ecma-262.htm ECMAScript]''' (Javascript) specification revision compatibility with [http://www.web3d.org/files/specifications/19777-1/V3.0/index.html ECMAScript encoding]; possibly add C# or Python support. Note that minor changes in the current X3D Script node might be needed to enable full integration into HTML/DOM.&lt;br /&gt;
*'''Events'''&lt;br /&gt;
** Review X3D event interoperability with other event models, such as Document Object Model (DOM) Recommendations&lt;br /&gt;
** Add capability for Event logging and playback so that deterministic replay is possible for demonstrations and debugging&lt;br /&gt;
*'''Generalized input/output interface support'''&lt;br /&gt;
** Possibly [http://www.cs.unc.edu/Research/vrpn/index.html Virtual Reality Peripheral Network (VRPN)], gesture recognition (such as [http://en.wikipedia.org/wiki/Kinect KINECT], [http://www.leapmotion.com LEAP]), etc.&lt;br /&gt;
** Support for arbitrary sensors and user interaction devices&lt;br /&gt;
* '''Geometry'''&lt;br /&gt;
** PointSet point size and associated Normal vectors; Octrees&lt;br /&gt;
** 3D Extruded Text&lt;br /&gt;
** Support for [http://en.wikipedia.org/wiki/Web_typography Web typography] using [http://www.w3.org/TR/WOFF Web Open Fonts Format (WOFF)]&lt;br /&gt;
** Progressive meshes (suitable for both compression and streaming)&lt;br /&gt;
** Support for direct loading of compressed [https://x3dom.org/src Shape Resource Container (SRC)] and [https://www.x3dom.org/examples/externalshape-with-gltf-binary-glb ExternalShape] from Fraunhofer&lt;br /&gt;
** Direct loading of other geometry meshes such as [https://en.wikipedia.org/wiki/STL_(file_format) STL] and [https://en.wikipedia.org/wiki/PLY_(file_format) PLY]&lt;br /&gt;
*'''[http://www.web3d.org/realtime-3d/working-groups/x3d-earth Geospatial X3D]''' component&lt;br /&gt;
** [http://www.igraphics.com/Standards/EnhancedGeospatialComponent_2007_10_30/Part01/X3D.html Enhanced Geospatial Component - spatial reference frame (SRF)] and [http://www.opengeospatial.org/standards/kml KML] support, [http://www.opengeospatial.org/projects/initiatives/3dpie OGC 3D Portrayal], [http://web3d.org/pipermail/x3d-public_web3d.org/2010-December/001187.html GpsSensor], [http://openlayers.org OpenLayer] mashups&lt;br /&gt;
** GeoSet collection of adjacent GeoElevationGrid nodes to enable proper computation of normals for edge boundaries of adjacent grids&lt;br /&gt;
* '''Interoperability''': include ''class'' attribute for all nodes to all encodings&lt;br /&gt;
* '''[http://www.json.org JSON]''': JavaScript Object Notation as an X3D encoding ([http://web3d.org/pipermail/x3d-public_web3d.org/2014-July/thread.html#2854 assessment thread]), relation to [http://www.khronos.org/gltf GlTF], streaming considerations&lt;br /&gt;
*'''[http://www.web3d.org/realtime-3d/working-groups/medx3d Medical working group]''' ImageTextureAtlas plus capabilities including recent Community Improvements to the Volume Component (Aberlaiz et al 2018 [https://dl.acm.org/citation.cfm?id=3075945], and MPR)&lt;br /&gt;
** [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html Annotations component] and metadata usage&lt;br /&gt;
** Archival 3D medical records, potential emphasis on [http://en.wikipedia.org/wiki/Traumatic_brain_injury Traumatic brain injury (TBI)] volume visualization&lt;br /&gt;
** Haptics component for force feedback; [http://www.w3.org/TR/vibration W3C Vibrations API] for tactile feedback&lt;br /&gt;
** Soft-body physics component to complement rigid-body physics component&lt;br /&gt;
* '''Mobile Profile.''' TODO - needed? Calling out a reduced palette for mobile devices remains interesting, but might instead remain a browser-optional optimization.&lt;br /&gt;
* '''[http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/core.html#Nodereference Metadata]''': support for embedding information useful for applications utilizing X3D&lt;br /&gt;
** Enumerated types: better access, typing, naming, and validation than using MetadataSet/MetadataString combinations&lt;br /&gt;
* '''Mixed and Augmented Reality (MAR)''': follow ISO MAR Reference Model, integrate multiple capabilities with devices situated in real world&lt;br /&gt;
*'''Networking''': consider [http://www.web3d.org/x3d/content/examples/Basic/Networking NetworkSensor] and event-passing issues, streaming using [http://www.json.org JSON], server-side 3D topics&lt;br /&gt;
*'''Security and privacy''':&lt;br /&gt;
** Include X3D Networking Component Level 4 support for https in Immersive, Interactive and other commonly used profiles&lt;br /&gt;
** Review X3D specifications to ensure that Security Considerations are fully documented throughout in every component&lt;br /&gt;
** [http://www.w3.org/standards/xml/security XML Security] provides best-available encryption, digital signature (authentication)&lt;br /&gt;
** [http://www.w3.org/standards/webdesign/privacy Web Privacy]: examine X3D compatibility with Do Not Track, P3P, POWDER&lt;br /&gt;
*'''Viewing and navigation''': [http://www.web3d.org/x3d/content/examples/Basic/development/CameraExamplesIndex.html cinematic camera control], alternative navigation types (such as PAN, [http://www.x3dom.org/?p=3536 TURNTABLE] etc.), [http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/behaviours.html Recommended navigation behaviours] review, and old MatrixTransform node (esp. useful for CAD, VR/AR etc., implemented in X3DOM and InstantReality)&lt;br /&gt;
*'''Virtual Reality (VR)''': requirements definition needed includes viewing with stereo devices, interocular distance, frame-rate requirements, comparison (and potential profile) for [https://webvr.info WebVR] capabilities, physiological considerations, health and safety, relation with Mixed Augmented Reality (MAR), etc.&lt;br /&gt;
&lt;br /&gt;
=== Deferred Capabilities  ===&lt;br /&gt;
&lt;br /&gt;
Deferred capabilities are candidates for inclusion in a follow-on version of X3Dv4.&lt;br /&gt;
&lt;br /&gt;
* None yet listed.&lt;br /&gt;
&lt;br /&gt;
=== Deprecated Capabilities ===&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Deprecation#Software_deprecation Deprecation] means that a feature will still be included for the next version, but is nevertheless expected to be removed in future versions.  This approach can simplify transition of content to a new approach.&lt;br /&gt;
&lt;br /&gt;
Under consideration:&lt;br /&gt;
* GeoOrigin node was deprecated in X3Dv3.3 and needs to be either restored or removed.&lt;br /&gt;
* Layout component - perhaps no longer needed, especially with HTML5 (and MAR) integration expected.&lt;br /&gt;
* Shaders component - deserved close reconsideration.&lt;br /&gt;
&lt;br /&gt;
=== Excluded Capabilities ===&lt;br /&gt;
&lt;br /&gt;
Excluded capabilities are considered &amp;quot;out of scope&amp;quot; for X3D, and are not expected to be included in future versions.&lt;br /&gt;
&lt;br /&gt;
* None yet listed.&lt;br /&gt;
&lt;br /&gt;
=== Removed Capabilities ===&lt;br /&gt;
&lt;br /&gt;
Removed capabilities will no longer be supported in X3Dv4.&lt;br /&gt;
&lt;br /&gt;
* None yet listed.&lt;br /&gt;
&lt;br /&gt;
== Architectural Considerations ==&lt;br /&gt;
&lt;br /&gt;
This section will synopsize significant differences between X3D version 4 and X3D version 3 that may require structural changes in tools and scenes.  Special attention is needed to minimize incompatibilities with legacy software and content.&lt;br /&gt;
&lt;br /&gt;
Much depends on the target environment. X3D V3.x presumes a controlled environment that interacts with the rest of the (computing) world through a well defined API (called SAI). When X3D is running in the browser (as in fully integrated with the DOM), the DOM defines a portion of the environment in which X3D must operate. For that environment it will be necessary to make changes to X3D so that it is compatible with the DOM.&lt;br /&gt;
&lt;br /&gt;
== Backwards and Forwards Compatibility ==&lt;br /&gt;
&lt;br /&gt;
A major benefit of using the X3D standard is full backwards compatibility with prior VRML97 and X3D content.&lt;br /&gt;
Thanks to careful design and insistence on implementation/evaluation, the X3D International Standard has maintained both steady growth and interoperability ever since Virtual Reality Modeling Language (VRML) in 1997. This track record of stability and innovation is among the best in the 3D graphics industry.&lt;br /&gt;
&lt;br /&gt;
Our goal is to maximize, but not necessarily require, backwards compatibility in version 4.0 with the version 3.x specifications&lt;br /&gt;
* A great majority of X3D nodes and features are likely achievable without change&lt;br /&gt;
* Some X3D features may require import/export conversion for compatibility (event model reconciliation, ROUTEs and sensors perhaps)&lt;br /&gt;
* A few features might be refactored, deprecated or obsoleted (none yet identified)&lt;br /&gt;
* Name deconfliction: HTML Script versus embedded X3D Script&lt;br /&gt;
&lt;br /&gt;
The comprehensive forward compatibility of VRML97 and X3D with later-developed X3D versions shows that careful anticipatory design is achievable.&lt;br /&gt;
&lt;br /&gt;
X3D version 4.0 Development efforts are currently focused on HTML5, Declarative 3D, X3DOM, and Cobweb with many more issues under consideration.&lt;br /&gt;
* Discussion of [[Importing and adding nodes in HTML]]&lt;br /&gt;
&lt;br /&gt;
X3D Version 4.1 is focused on Mixed and Augmented Reality (MAR) capabilities, which may also require architectural changes. Some new technologies may get pushed from 4.0 to 4.1 (or back again) after careful consideration by the respective working groups.&lt;br /&gt;
&lt;br /&gt;
Related specification support and changes&lt;br /&gt;
*As with all other X3D components, all work is defined in the abstract specification has corresponding file encodings (.x3d .x3dv .x3db) and language bindings (ECMAScript and Java). &lt;br /&gt;
*Compatibility concerns include evolutionary efforts to upgrade the X3D Compressed Binary Encoding (CBE), as described in the [http://www.web3d.org/realtime-3d/working-groups/x3d/compressed-binary/x3d-compressed-binary-encoding-call-contributions X3D Compressed Binary Encoding Call For Contributions].&lt;br /&gt;
*ECMAScript (JavaScript) support in X3D needs to be upgraded to the new standard for that rapidly improving programming language.&lt;br /&gt;
**[http://standards.iso.org/ittf/PubliclyAvailableStandards/c055755_ISO_IEC_16262_2011(E).zip ISO/IEC 16262:2011 Information technology — ECMAScript language specification] (.zip download)&lt;br /&gt;
**Downloadable from [http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html ISO Publicly Available Standards] site without charge&lt;br /&gt;
**This relates to [http://www.web3d.org/files/specifications/19777-1/V3.0/index.html 19777-1 Part 2, X3D Scene Access Interface (SAI) language bindings for EcmaScript]&lt;br /&gt;
&lt;br /&gt;
== Legacy Issues ==&lt;br /&gt;
&lt;br /&gt;
We plan to confirm the existence of complete capabilities for X3D v3.3 prior to final approval of X3D version 4.&lt;br /&gt;
&lt;br /&gt;
* Full support for all existing X3D v3.3 components:&lt;br /&gt;
** At least two compatible implementations (including at least one in open source) plus repeatable example scenes&lt;br /&gt;
** Layer, ParticleSystems, RigidBodyPhysics, Shaders, TODO others&lt;br /&gt;
** TransformSensor node: [http://doc.instantreality.org/documentation/nodetype/TransformSensor/ IGD] and [http://www.parallelgraphics.com/developer/products/cortona/extensions/transformsensor/ old Cortona]&lt;br /&gt;
** Note that it is not a requirement that all features and capabilities in X3D V3.3 are included in V4.0&lt;br /&gt;
&lt;br /&gt;
* Is it necessary for Layout component to be deprecated or improved?&lt;br /&gt;
* Are there other features or capabilities that should not or are not able to move into V4.0?&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Are MAR abstract design and X3D AR proposals sufficiently mature to enable integration with HTML5/Declarative 3D/X3DOM/Cobweb issues?&lt;br /&gt;
* Are the previously X3D Layer/Layering components compatible with HTML5 overlay model? Are they still needed, perhaps for multiscreen or CAVE support?&lt;br /&gt;
* Mashup and interoperability support: is anything else needed for broader use with the Web? YouTube etc.&lt;br /&gt;
&lt;br /&gt;
== Related Work==&lt;br /&gt;
&lt;br /&gt;
Much careful planning is involved, we are working to ensure that X3D version 4 can be coherently advanced in combination with a [http://www.web3d.org/specifications/X3dSpecificationRelationships.png coordinated set of steadily evolving ISO/IEC standards].&lt;br /&gt;
*'''X3D Efficient Binary Encoding (EBE).''' This work is proceeding in parallel. X3D version 4 must maintain compatibility with all encodings. See also SRC format (Web3D 2014)and ExternalGeometry node in InstantPlayer and X3DOM&lt;br /&gt;
*'''X3D JavaScript Object Notation (JSON) Encoding.''' This work is proceeding in parallel. X3D version 4 must maintain compatibility with all encodings.&lt;br /&gt;
*'''X3D version 4.0 (HTML5/X3D DOM)'''. This work is proceeding in parallel. X3D version 4 support is expected.&lt;br /&gt;
*'''X3D version 4.1 (Mixed and Augmented Reality)'''. Nodes and capabilities in this arena will build on v4.0 and HTML5.  Experimentation, evolution and evaluation occurs throughout.&lt;br /&gt;
** '''[[Essential Elements of X3D]]''' collects elements that are essential to X3D&lt;br /&gt;
&lt;br /&gt;
Technologies and activities that relate to X3D version 4 are: &lt;br /&gt;
* [https://webvr.info/ '''WebVR'''] &amp;quot;bringing virtual reality to the web&amp;quot; - standardize the interface to VR displays and controllers &lt;br /&gt;
* [https://www.w3.org/community/decwebvr/ '''W3C's Declarative WebVR Community Group'''] formed to developed a declarative 3D standard for WebVR&lt;br /&gt;
* [https://threejs.org/ '''three.js'''], a JavaScript library&lt;br /&gt;
* [https://aframe.io/ '''A-Frame'''] &amp;quot;a web framework for building virtual reality experiences&amp;quot;&lt;br /&gt;
* [http://xml3d.org/ '''XML3D'''] &amp;quot; seamless integration of 3D content into HTML pages&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Timeline (new section) ==&lt;br /&gt;
&lt;br /&gt;
# links to guiding Web3D pages on spec strategy and process,&lt;br /&gt;
# link to status tracking spreadsheet,&lt;br /&gt;
# we effectively have a Web3D/ISO Working Draft (WD) now,&lt;br /&gt;
# we continue adding components/nodes via working group process,&lt;br /&gt;
# (currently) Mantis is where issues, draft spec functionality and design tradeoffs are captured, reviewed and approved,&lt;br /&gt;
# Apply new prose sections in github spec repository (by Dick and I, many improvements occurred this week),&lt;br /&gt;
# (suggested) '''Web3D announces X3D v4 Working Draft availability at Web3D &amp;amp; SIGGRAPH 2019 conferences''',&lt;br /&gt;
# TODO consider whether that is a public release to encourage engagement - or not.&lt;br /&gt;
# Working Group continues to add nodes and components,&lt;br /&gt;
# Excerpted draft spec and implementation details posted for public comment on a per-component basis ~monthly,&lt;br /&gt;
# (suggested date) '''Web3D announces plans to close additions to X3Dv4 on 16 DEC 2019'''&lt;br /&gt;
# +1 month, final public comments period and editorial work, member review, Board review and approval&lt;br /&gt;
# Web3D submits New Work Item Proposal (NWIP) and Committee Draft (CD) to ISO&lt;br /&gt;
# implement, evaluate examples, refine, resolve all related issues&lt;br /&gt;
# (suggested date) '''Web3D approves, submits X3Dv4 Draft International Spec DIS to ISO at Web3D 2020'''&lt;br /&gt;
# ISO dates/deadline for DIS/FDIS/IS proceed&lt;br /&gt;
# Work begins on X3Dv4.1 Working Draft (WD)&lt;br /&gt;
&lt;br /&gt;
TODO: is an annual cycle possible?&lt;br /&gt;
&lt;br /&gt;
== Schedule (old section, review and merge with Timeline) ==&lt;br /&gt;
&lt;br /&gt;
'''ISO Considerations'''&lt;br /&gt;
* Deciding readiness for ISO New Work Item Proposal (NWIP): we need Committee Draft (CD) specification prose for each planned capability.&lt;br /&gt;
* Web3D Consortium is not locked into an annual schedule, ISO handling is flexible.&lt;br /&gt;
* Once the NWIP is approved, ISO rules for schedule and review are established.&lt;br /&gt;
&lt;br /&gt;
'''Execution goals'''&lt;br /&gt;
* Review progress during monthly calls, Web3D Conference, and SIGGRAPH Conference.&lt;br /&gt;
* We are continuing a monthly review schedule for submissions so that we can build out X3D version 4 one component at a time.&lt;br /&gt;
* We are planning to have a 1-year deadline for completion of CD specification prose, rather than wait until all possible version 4 work is ready.&lt;br /&gt;
* Web3D Consortium members and public review when a final draft specification is ready to proceed to ISO.&lt;br /&gt;
* Any new components not meeting Web3D deadlines might be a candidate for deferral to V4.1. Or considered not ready.&lt;br /&gt;
&lt;br /&gt;
'''Progress'''&lt;br /&gt;
&lt;br /&gt;
* Active development of X3D, X3DOM and Cobweb content is tracking HTML 5 capabilities now&lt;br /&gt;
* We participate and contribute to the W3C Community Group for [http://www.w3.org/community/declarative3d Declarative 3D]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Python_Language_Binding&amp;diff=9703</id>
		<title>X3D Python Language Binding</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Python_Language_Binding&amp;diff=9703"/>
				<updated>2018-07-20T16:02:14Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The X3D Working Group has started to work on this important potential addition to the suite of X3D-capable programming languages and file encodings.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
Why:&lt;br /&gt;
* multiple language bindings provide equivalent implementations of X3D Scene Access Interface (SAI) Specification, which in turn accesses the X3D Architecture Specification&lt;br /&gt;
* Python is widely used, so many tools and applications might then easily create/use/produce X3D&lt;br /&gt;
* We are not afraid of programming languages that depend on whitespace!&lt;br /&gt;
&lt;br /&gt;
The [http://www.web3d.org/specifications/X3dSpecificationRelationships.png X3D Specification Relationships] diagram shows how the various programming-language bindings and file encodings are related.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* Python script interfaces&lt;br /&gt;
** H3D&lt;br /&gt;
** Blender has an independent interface&lt;br /&gt;
** pyOCC python interface to Open Cascasde geometry kernel&lt;br /&gt;
&lt;br /&gt;
John Carlson has produced&lt;br /&gt;
* https://github.com/coderextreme/pythonSAI&lt;br /&gt;
&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Web3DConsortium/X3D/tree/master/ISO-IEC%2019777 Draft 19777-6 specification] added in GitHub&lt;br /&gt;
** Follow examples of other X3D language bindings&lt;br /&gt;
** Reach proof-of-capability initial draft&lt;br /&gt;
** New Work Item Proposal (NWIP) by Web3D Consortium for ISO&lt;br /&gt;
&lt;br /&gt;
* Example scenes&lt;br /&gt;
** Test scenes to demonstrate design patterns&lt;br /&gt;
&lt;br /&gt;
* Implementations&lt;br /&gt;
** Conversion stylesheet, X3dToPython.xslt&lt;br /&gt;
** PyJnius cross-compilation conversion of X3DJSAIL java classes&lt;br /&gt;
** Possibly another library, X3DPSAIL perhaps?&lt;br /&gt;
&lt;br /&gt;
* Validation by compilation&lt;br /&gt;
** are special tests needed, written in Python, to test program validity?&lt;br /&gt;
** Compatible with X3D Unified Object Model (X3DUOM)&lt;br /&gt;
&lt;br /&gt;
* Plan of Action Milestones (POAM)&lt;br /&gt;
&lt;br /&gt;
== TBD ==&lt;br /&gt;
&lt;br /&gt;
To Be Determined:&lt;br /&gt;
&lt;br /&gt;
* Is it possible to run Python scripts in a Web browser?&lt;br /&gt;
* Python support for DOM?&lt;br /&gt;
* Masaki Aono produced some speculative code a few years ago&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9644</id>
		<title>X3D Is VRML Dll</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9644"/>
				<updated>2017-09-25T20:17:00Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Project proposed and commenced in August 2017. Goal is to produce a software component which will encourage support of X3D in commercial and open source applications, particularly for those applications that already support VRML import/export. This project will test and demonstrate the proposition that &amp;quot;X3D is VRML&amp;quot;, or &amp;quot;VRML is X3D&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This target audience for this software component is developers, and the goal is to give them a tool to improve X3D support in their applications without the need for expertise in the X3D standard itself. This project will leverage the idea that if an application already supports VRML then the task of mapping an X3D scenegraph into the application logic has already been performed and support of X3D (XML encoding) should be straightforward. Likewise, if an application supports the XML encoding it should be straightforward to add support for VRML encoding.&lt;br /&gt;
&lt;br /&gt;
It is recognized that there are already translators and conversion tools to convert ClassicVRML encoding to XML Encoding. This project is essentially a repackaging of those codes into a readily deployable library. One motivation of this project is the discussion with potential users in the medical 3D printing community, through DICOM Working Group 17. Among users who may be classified as managers and project managers:&lt;br /&gt;
* The structure of the X3D standard as an abstract standard with multiple encodings is a complication which does not add value for  them. In their view, there are two file formats: X3D, which is  the XML encoding of the X3D standared; and VRML, which can either mean the Classic VRML encoding of the X3D standard, or it can mean a file conforming to an earlier version of the VRML standard.&lt;br /&gt;
* There is a strong preference for native import/export of files in required formats over conversions of existing or created files.&lt;br /&gt;
&lt;br /&gt;
=== Project Vision ===&lt;br /&gt;
&lt;br /&gt;
For any commercial or open source application which currently supports either VRML or X3D import and export, the deliverable from this project will allow the application's developers to easily upgrade so that&lt;br /&gt;
* To the extent allowed by an application's support of a X3D Profiles and version,  content can be imported into the application through both  ClassicVRML encoding and XML Encodings.&lt;br /&gt;
* The application can export to both ClassicVRML encoding and the XML Encoding&lt;br /&gt;
* Pre X3D standard versions of the VRML standard are supported as possible. The hope is to at least support Interchange Profile content, with well defined and documented failure modes to encourage developers to upgrade their applications support for X3D scenegraph&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Platform and Language ===&lt;br /&gt;
Propose that making the first deliverable a Windows DLL, readily integrated into a Windows .NET application, will offer the most impactful release. The DLL will offer text stream to text-stream conversion functions with a simple C-language interface. The implementation language of this project should be transparent to the user/developer; but the final product should be deployable with a small number of DLLs with sensible footprint.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== For XML Encoding to ClassicVRML ====&lt;br /&gt;
&lt;br /&gt;
* X3dToX3dvClassicVrmlEncoding.xslt, which depends, by xslt import, on X3dToVrml97.xslt; in Sourceforge at https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets&lt;br /&gt;
* Performing XSLT Transformations in Windows .NET framework : https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-transformations&lt;br /&gt;
&lt;br /&gt;
==== For VRML to X3D (XML Encoding) ====&lt;br /&gt;
The intention is to support in some way all versions/dialects of VRML, with recognition that conversion may be incomplete or error prone for VRML prior to VRML97.&lt;br /&gt;
&lt;br /&gt;
* Meshlab open source project https://github.com/cnr-isti-vclab/meshlab&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License GPL v3&lt;br /&gt;
** VRML parsing in directory : /src/meshlabplugins/io_x3d/vrml&lt;br /&gt;
&lt;br /&gt;
* FreeWRL: http://freewrl.sourceforge.net/index.html , code is a Git repository hosted on Sourceforge: https://sourceforge.net/p/freewrl/git/ci/master/tree/&lt;br /&gt;
** License GPL&lt;br /&gt;
** C Code&lt;br /&gt;
** TODO: understand distinction between freewrl and freeX3D releases.&lt;br /&gt;
&lt;br /&gt;
* CastleEngine / view3dscene browser&lt;br /&gt;
** Pascal code, compilable to Windows with FreePascal (www.freepascal.org) TODO: Support .NET compatible DLL's?&lt;br /&gt;
&lt;br /&gt;
* CloudCompare: https://github.com/cloudcompare/cloudcompare&lt;br /&gt;
&lt;br /&gt;
* OpenVRML: http://openvrml.org/index&lt;br /&gt;
&lt;br /&gt;
* NIST VIPER (VRML Parsing Testing) : http://www.itl.nist.gov/div897/ctg/vrml/vrml.html&lt;br /&gt;
** Paper on VIPER: http://ieeexplore.ieee.org/document/749124/?reload=true&lt;br /&gt;
&lt;br /&gt;
* VRML97 Parser: https://github.com/SavchukSergey/graph3D.vrml&lt;br /&gt;
&lt;br /&gt;
==== Additional Encoding support ====&lt;br /&gt;
These resources are being saved for extensions supporting additional encdings&lt;br /&gt;
* XIOT: https://github.com/Supporting/xiot&lt;br /&gt;
** Supports XML binary encodings&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License LGPL v 2.1&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9643</id>
		<title>X3D Is VRML Dll</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9643"/>
				<updated>2017-09-25T20:09:27Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Project proposed and commenced in August 2017. Goal is to produce a software component which will encourage support of X3D in commercial and open source applications, particularly for those applications that already support VRML import/export. This project will test and demonstrate the proposition that &amp;quot;X3D is VRML&amp;quot;, or &amp;quot;VRML is X3D&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This target audience for this software component is developers, and the goal is to give them a tool to improve X3D support in their applications without the need for expertise in the X3D standard itself. This project will leverage the idea that if an application already supports VRML then the task of mapping an X3D scenegraph into the application logic has already been performed and support of X3D (XML encoding) should be straightforward. Likewise, if an application supports the XML encoding it should be straightforward to add support for VRML encoding.&lt;br /&gt;
&lt;br /&gt;
It is recognized that there are already translators and conversion tools to convert ClassicVRML encoding to XML Encoding. This project is essentially a repackaging of those codes into a readily deployable library. One motivation of this project is the discussion with potential users in the medical 3D printing community, through DICOM Working Group 17. Among users who may be classified as managers and project managers:&lt;br /&gt;
* The structure of the X3D standard as an abstract standard with multiple encodings is a complication which does not add value for  them. In their view, there are two file formats: X3D, which is  the XML encoding of the X3D standared; and VRML, which can either mean the Classic VRML encoding of the X3D standard, or it can mean a file conforming to an earlier version of the VRML standard.&lt;br /&gt;
* There is a strong preference for native import/export of files in required formats over conversions of existing or created files.&lt;br /&gt;
&lt;br /&gt;
=== Project Vision ===&lt;br /&gt;
&lt;br /&gt;
For any commercial or open source application which currently supports either VRML or X3D import and export, the deliverable from this project will allow the application's developers to easily upgrade so that&lt;br /&gt;
* To the extent allowed by an application's support of a X3D Profiles and version,  content can be imported into the application through both  ClassicVRML encoding and XML Encodings.&lt;br /&gt;
* The application can export to both ClassicVRML encoding and the XML Encoding&lt;br /&gt;
* Pre X3D standard versions of the VRML standard are supported as possible. The hope is to at least support Interchange Profile content, with well defined and documented failure modes to encourage developers to upgrade their applications support for X3D scenegraph&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Platform and Language ===&lt;br /&gt;
Propose that making the first deliverable a Windows DLL, readily integrated into a Windows .NET application, will offer the most impactful release. The DLL will offer text stream to text-stream conversion functions with a simple C-language interface. The implementation language of this project should be transparent to the user/developer; but the final product should be deployable with a small number of DLLs with sensible footprint.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== For XML Encoding to ClassicVRML ====&lt;br /&gt;
&lt;br /&gt;
* X3dToX3dvClassicVrmlEncoding.xslt, which depends, by xslt import, on X3dToVrml97.xslt; in Sourceforge at https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets&lt;br /&gt;
* Performing XSLT Transformations in Windows .NET framework : https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-transformations&lt;br /&gt;
&lt;br /&gt;
==== For VRML to X3D (XML Encoding) ====&lt;br /&gt;
The intention is to support in some way all versions/dialects of VRML, with recognition that conversion may be incomplete or error prone for VRML prior to VRML97.&lt;br /&gt;
&lt;br /&gt;
* Meshlab open source project https://github.com/cnr-isti-vclab/meshlab&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License GPL v3&lt;br /&gt;
** VRML parsing in directory : /src/meshlabplugins/io_x3d/vrml&lt;br /&gt;
&lt;br /&gt;
* FreeWRL: http://freewrl.sourceforge.net/index.html , code is a Git repository hosted on Sourceforge: https://sourceforge.net/p/freewrl/git/ci/master/tree/&lt;br /&gt;
** License GPL&lt;br /&gt;
** C Code&lt;br /&gt;
** TODO: understand distinction between freewrl and freeX3D releases.&lt;br /&gt;
&lt;br /&gt;
* CastleEngine / view3dscene browser&lt;br /&gt;
** Pascal code, compilable to Windows with FreePascal (www.freepascal.org) TODO: Support .NET compatible DLL's?&lt;br /&gt;
&lt;br /&gt;
* CloudCompare: https://github.com/cloudcompare/cloudcompare&lt;br /&gt;
&lt;br /&gt;
* OpenVRML: http://openvrml.org/index&lt;br /&gt;
&lt;br /&gt;
* NIST VIPER (VRML Parsing Testing) : http://www.itl.nist.gov/div897/ctg/vrml/vrml.html&lt;br /&gt;
** Paper on VIPER: http://ieeexplore.ieee.org/document/749124/?reload=true&lt;br /&gt;
&lt;br /&gt;
==== Additional Encoding support ====&lt;br /&gt;
These resources are being saved for extensions supporting additional encdings&lt;br /&gt;
* XIOT: https://github.com/Supporting/xiot&lt;br /&gt;
** Supports XML binary encodings&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License LGPL v 2.1&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9641</id>
		<title>X3D Is VRML Dll</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9641"/>
				<updated>2017-09-06T14:50:08Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Project proposed and commenced in August 2017. Goal is to produce a software component which will encourage support of X3D in commercial and open source applications, particularly for those applications that already support VRML import/export. This project will test and demonstrate the proposition that &amp;quot;X3D is VRML&amp;quot;, or &amp;quot;VRML is X3D&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This target audience for this software component is developers, and the goal is to give them a tool to improve X3D support in their applications without the need for expertise in the X3D standard itself. This project will leverage the idea that if an application already supports VRML then the task of mapping an X3D scenegraph into the application logic has already been performed and support of X3D (XML encoding) should be straightforward. Likewise, if an application supports the XML encoding it should be straightforward to add support for VRML encoding.&lt;br /&gt;
&lt;br /&gt;
It is recognized that there are already translators and conversion tools to convert ClassicVRML encoding to XML Encoding. This project is essentially a repackaging of those codes into a readily deployable library. One motivation of this project is the discussion with potential users in the medical 3D printing community, through DICOM Working Group 17. Among users who may be classified as managers and project managers:&lt;br /&gt;
* The structure of the X3D standard as an abstract standard with multiple encodings is a complication which does not add value for  them. In their view, there are two file formats: X3D, which is  the XML encoding of the X3D standared; and VRML, which can either mean the Classic VRML encoding of the X3D standard, or it can mean a file conforming to an earlier version of the VRML standard.&lt;br /&gt;
* There is a strong preference for native import/export of files in required formats over conversions of existing or created files.&lt;br /&gt;
&lt;br /&gt;
=== Project Vision ===&lt;br /&gt;
&lt;br /&gt;
For any commercial or open source application which currently supports either VRML or X3D import and export, the deliverable from this project will allow the application's developers to easily upgrade so that&lt;br /&gt;
* To the extent allowed by an application's support of a X3D Profiles and version,  content can be imported into the application through both  ClassicVRML encoding and XML Encodings.&lt;br /&gt;
* The application can export to both ClassicVRML encoding and the XML Encoding&lt;br /&gt;
* Pre X3D standard versions of the VRML standard are supported as possible. The hope is to at least support Interchange Profile content, with well defined and documented failure modes to encourage developers to upgrade their applications support for X3D scenegraph&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Platform and Language ===&lt;br /&gt;
Propose that making the first deliverable a Windows DLL, readily integrated into a Windows .NET application, will offer the most impactful release. The DLL will offer text stream to text-stream conversion functions with a simple C-language interface. The implementation language of this project should be transparent to the user/developer; but the final product should be deployable with a small number of DLLs with sensible footprint.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== For XML Encoding to ClassicVRML ====&lt;br /&gt;
&lt;br /&gt;
* X3dToX3dvClassicVrmlEncoding.xslt, which depends, by xslt import, on X3dToVrml97.xslt; in Sourceforge at https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets&lt;br /&gt;
* Performing XSLT Transformations in Windows .NET framework : https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-transformations&lt;br /&gt;
&lt;br /&gt;
==== For VRML to X3D (XML Encoding) ====&lt;br /&gt;
The intention is to support in some way all versions/dialects of VRML, with recognition that conversion may be incomplete or error prone for VRML prior to VRML97.&lt;br /&gt;
&lt;br /&gt;
* Meshlab open source project https://github.com/cnr-isti-vclab/meshlab&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License GPL v3&lt;br /&gt;
** VRML parsing in directory : /src/meshlabplugins/io_x3d/vrml&lt;br /&gt;
&lt;br /&gt;
* FreeWRL: http://freewrl.sourceforge.net/index.html , code is a Git repository hosted on Sourceforge: https://sourceforge.net/p/freewrl/git/ci/master/tree/&lt;br /&gt;
** License GPL&lt;br /&gt;
** C Code&lt;br /&gt;
** TODO: understand distinction between freewrl and freeX3D releases.&lt;br /&gt;
&lt;br /&gt;
* CastleEngine / view3dscene browser&lt;br /&gt;
** Pascal code, compilable to Windows with FreePascal (www.freepascal.org) TODO: Support .NET compatible DLL's?&lt;br /&gt;
&lt;br /&gt;
* CloudCompare: https://github.com/cloudcompare/cloudcompare&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Additional Encoding support ====&lt;br /&gt;
These resources are being saved for extensions supporting additional encdings&lt;br /&gt;
* XIOT: https://github.com/Supporting/xiot&lt;br /&gt;
** Supports XML binary encodings&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License LGPL v 2.1&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9640</id>
		<title>X3D Is VRML Dll</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9640"/>
				<updated>2017-09-06T14:46:45Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Project proposed and commenced in August 2017. Goal is to produce a software component which will encourage support of X3D in commercial and open source applications, particularly for those applications that already support VRML import/export. This project will test and demonstrate the proposition that &amp;quot;X3D is VRML&amp;quot;, or &amp;quot;VRML is X3D&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This target audience for this software component is developers, and the goal is to give them a tool to improve X3D support in their applications without the need for expertise in the X3D standard itself. This project will leverage the idea that if an application already supports VRML then the task of mapping an X3D scenegraph into the application logic has already been performed and support of X3D (XML encoding) should be straightforward. Likewise, if an application supports the XML encoding it should be straightforward to add support for VRML encoding.&lt;br /&gt;
&lt;br /&gt;
It is recognized that there are already translators and conversion tools to convert ClassicVRML encoding to XML Encoding. This project is essentially a repackaging of those codes into a readily deployable library. One motivation of this project is the discussion with potential users in the medical 3D printing community, through DICOM Working Group 17. Among users who may be classified as managers and project managers:&lt;br /&gt;
* The structure of the X3D standard as an abstract standard with multiple encodings is a complication which does not add value for  them. In their view, there are two file formats: X3D, which is  the XML encoding of the X3D standared; and VRML, which can either mean the Classic VRML encoding of the X3D standard, or it can mean a file conforming to an earlier version of the VRML standard.&lt;br /&gt;
* There is a strong preference for native import/export of files in required formats over conversions of existing or created files.&lt;br /&gt;
&lt;br /&gt;
=== Project Vision ===&lt;br /&gt;
&lt;br /&gt;
For any commercial or open source application which currently supports either VRML or X3D import and export, the deliverable from this project will allow the application's developers to easily upgrade so that&lt;br /&gt;
* To the extent allowed by an application's support of a X3D Profiles and version,  content can be imported into the application through both  ClassicVRML encoding and XML Encodings.&lt;br /&gt;
* The application can export to both ClassicVRML encoding and the XML Encoding&lt;br /&gt;
* Pre X3D standard versions of the VRML standard are supported as possible. The hope is to at least support Interchange Profile content, with well defined and documented failure modes to encourage developers to upgrade their applications support for X3D scenegraph&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Platform and Language ===&lt;br /&gt;
Propose that making the first deliverable a Windows DLL, readily integrated into a Windows .NET application, will offer the most impactful release. The DLL will offer text stream to text-stream conversion functions with a simple C-language interface. The implementation language of this project should be transparent to the user/developer; but the final product should be deployable with a small number of DLLs with sensible footprint.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== For XML Encoding to ClassicVRML ====&lt;br /&gt;
&lt;br /&gt;
* X3dToX3dvClassicVrmlEncoding.xslt, which depends, by xslt import, on X3dToVrml97.xslt; in Sourceforge at https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets&lt;br /&gt;
* Performing XSLT Transformations in Windows .NET framework : https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-transformations&lt;br /&gt;
&lt;br /&gt;
==== For VRML to X3D (XML Encoding) ====&lt;br /&gt;
The intention is to support in some way all versions/dialects of VRML, with recognition that conversion may be incomplete or error prone for VRML prior to VRML97.&lt;br /&gt;
&lt;br /&gt;
* Meshlab open source project https://github.com/cnr-isti-vclab/meshlab&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License GPL v3&lt;br /&gt;
** VRML parsing in directory : /src/meshlabplugins/io_x3d/vrml&lt;br /&gt;
&lt;br /&gt;
* FreeWRL: http://freewrl.sourceforge.net/index.html , code is a Git repository hosted on Sourceforge: https://sourceforge.net/p/freewrl/git/ci/master/tree/&lt;br /&gt;
** License GPL&lt;br /&gt;
** C Code&lt;br /&gt;
** TODO: understand distinction between freewrl and freeX3D releases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CloudCompare: https://github.com/cloudcompare/cloudcompare&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Additional Encoding support ====&lt;br /&gt;
These resources are being saved for extensions supporting additional encdings&lt;br /&gt;
* XIOT: https://github.com/Supporting/xiot&lt;br /&gt;
** Supports XML binary encodings&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License LGPL v 2.1&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9639</id>
		<title>X3D Is VRML Dll</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9639"/>
				<updated>2017-09-06T14:35:24Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Project proposed and commenced in August 2017. Goal is to produce a software component which will encourage support of X3D in commercial and open source applications, particularly for those applications that already support VRML import/export. This project will test and demonstrate the proposition that &amp;quot;X3D is VRML&amp;quot;, or &amp;quot;VRML is X3D&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This target audience for this software component is developers, and the goal is to give them a tool to improve X3D support in their applications without the need for expertise in the X3D standard itself. This project will leverage the idea that if an application already supports VRML then the task of mapping an X3D scenegraph into the application logic has already been performed and support of X3D (XML encoding) should be straightforward. Likewise, if an application supports the XML encoding it should be straightforward to add support for VRML encoding.&lt;br /&gt;
&lt;br /&gt;
It is recognized that there are already translators and conversion tools to convert ClassicVRML encoding to XML Encoding. This project is essentially a repackaging of those codes into a readily deployable library. One motivation of this project is the discussion with potential users in the medical 3D printing community, through DICOM Working Group 17. Among users who may be classified as managers and project managers:&lt;br /&gt;
* The structure of the X3D standard as an abstract standard with multiple encodings is a complication which does not add value for  them. In their view, there are two file formats: X3D, which is  the XML encoding of the X3D standared; and VRML, which can either mean the Classic VRML encoding of the X3D standard, or it can mean a file conforming to an earlier version of the VRML standard.&lt;br /&gt;
* There is a strong preference for native import/export of files in required formats over conversions of existing or created files.&lt;br /&gt;
&lt;br /&gt;
=== Project Vision ===&lt;br /&gt;
&lt;br /&gt;
For any commercial or open source application which currently supports either VRML or X3D import and export, the deliverable from this project will allow the application's developers to easily upgrade so that&lt;br /&gt;
* To the extent allowed by an application's support of a X3D Profiles and version,  content can be imported into the application through both  ClassicVRML encoding and XML Encodings.&lt;br /&gt;
* The application can export to both ClassicVRML encoding and the XML Encoding&lt;br /&gt;
* Pre X3D standard versions of the VRML standard are supported as possible. The hope is to at least support Interchange Profile content, with well defined and documented failure modes to encourage developers to upgrade their applications support for X3D scenegraph&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Platform and Language ===&lt;br /&gt;
Propose that making the first deliverable a Windows DLL, readily integrated into a Windows .NET application, will offer the most impactful release. The DLL will offer text stream to text-stream conversion functions with a simple C-language interface. The implementation language of this project should be transparent to the user/developer; but the final product should be deployable with a small number of DLLs with sensible footprint.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== For XML Encoding to ClassicVRML ====&lt;br /&gt;
&lt;br /&gt;
* X3dToX3dvClassicVrmlEncoding.xslt, which depends, by xslt import, on X3dToVrml97.xslt; in Sourceforge at https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets&lt;br /&gt;
* Performing XSLT Transformations in Windows .NET framework : https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-transformations&lt;br /&gt;
&lt;br /&gt;
==== For VRML to X3D (XML Encoding) ====&lt;br /&gt;
The intention is to support in some way all versions/dialects of VRML, with recognition that conversion may be incomplete or error prone for VRML prior to VRML97.&lt;br /&gt;
&lt;br /&gt;
* Meshlab open source project https://github.com/cnr-isti-vclab/meshlab&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License GPL v3&lt;br /&gt;
** VRML parsing in directory : /src/meshlabplugins/io_x3d/vrml&lt;br /&gt;
&lt;br /&gt;
* FreeWRL: http://freewrl.sourceforge.net/index.html , code is a Git repository hosted on Sourceforge: https://sourceforge.net/p/freewrl/git/ci/master/tree/&lt;br /&gt;
** License GPL&lt;br /&gt;
** C Code&lt;br /&gt;
** TODO: understand distinction between freewrl and freeX3D releases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Additional Encoding support ====&lt;br /&gt;
These resources are being saved for extensions supporting additional encdings&lt;br /&gt;
* XIOT: https://github.com/Supporting/xiot&lt;br /&gt;
** Supports XML binary encodings&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License LGPL v 2.1&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9638</id>
		<title>X3D Is VRML Dll</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9638"/>
				<updated>2017-09-06T14:25:02Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Project proposed and commenced in August 2017. Goal is to produce a software component which will encourage support of X3D in commercial and open source applications, particularly for those applications that already support VRML import/export. This project will test and demonstrate the proposition that &amp;quot;X3D is VRML&amp;quot;, or &amp;quot;VRML is X3D&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This target audience for this software component is developers, and the goal is to give them a tool to improve X3D support in their applications without the need for expertise in the X3D standard itself. This project will leverage the idea that if an application already supports VRML then the task of mapping an X3D scenegraph into the application logic has already been performed and support of X3D (XML encoding) should be straightforward. Likewise, if an application supports the XML encoding it should be straightforward to add support for VRML encoding.&lt;br /&gt;
&lt;br /&gt;
It is recognized that there are already translators and conversion tools to convert ClassicVRML encoding to XML Encoding. This project is essentially a repackaging of those codes into a readily deployable library. One motivation of this project is the discussion with potential users in the medical 3D printing community, through DICOM Working Group 17. Among users who may be classified as managers and project managers:&lt;br /&gt;
* The structure of the X3D standard as an abstract standard with multiple encodings is a complication which does not add value for  them. In their view, there are two file formats: X3D, which is  the XML encoding of the X3D standared; and VRML, which can either mean the Classic VRML encoding of the X3D standard, or it can mean a file conforming to an earlier version of the VRML standard.&lt;br /&gt;
* There is a strong preference for native import/export of files in required formats over conversions of existing or created files.&lt;br /&gt;
&lt;br /&gt;
=== Project Vision ===&lt;br /&gt;
&lt;br /&gt;
For any commercial or open source application which currently supports either VRML or X3D import and export, the deliverable from this project will allow the application's developers to easily upgrade so that&lt;br /&gt;
* To the extent allowed by an application's support of a X3D Profiles and version,  content can be imported into the application through both  ClassicVRML encoding and XML Encodings.&lt;br /&gt;
* The application can export to both ClassicVRML encoding and the XML Encoding&lt;br /&gt;
* Pre X3D standard versions of the VRML standard are supported as possible. The hope is to at least support Interchange Profile content, with well defined and documented failure modes to encourage developers to upgrade their applications support for X3D scenegraph&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Platform and Language ===&lt;br /&gt;
Propose that making the first deliverable a Windows DLL, readily integrated into a Windows .NET application, will offer the most impactful release. The DLL will offer text stream to text-stream conversion functions with a simple C-language interface. The implementation language of this project should be transparent to the user/developer; but the final product should be deployable with a small number of DLLs with sensible footprint.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== For XML Encoding to ClassicVRML ====&lt;br /&gt;
&lt;br /&gt;
* X3dToX3dvClassicVrmlEncoding.xslt, which depends, by xslt import, on X3dToVrml97.xslt; in Sourceforge at https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets&lt;br /&gt;
* Performing XSLT Transformations in Windows .NET framework : https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-transformations&lt;br /&gt;
&lt;br /&gt;
==== For VRML to X3D (XML Encoding) ====&lt;br /&gt;
The intention is to support in some way all versions/dialects of VRML, with recognition that conversion may be incomplete or error prone for VRML prior to VRML97.&lt;br /&gt;
&lt;br /&gt;
* Meshlab open source project https://github.com/cnr-isti-vclab/meshlab&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License GPL v3&lt;br /&gt;
** VRML parsing in directory : /src/meshlabplugins/io_x3d/vrml&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==== Additional Encoding support ====&lt;br /&gt;
These resources are being saved for extensions supporting additional encdings&lt;br /&gt;
* XIOT: https://github.com/Supporting/xiot&lt;br /&gt;
** Supports XML binary encodings&lt;br /&gt;
** C++ codebase&lt;br /&gt;
** License LGPL v 2.1&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9637</id>
		<title>X3D Is VRML Dll</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9637"/>
				<updated>2017-08-30T12:26:37Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Project proposed and commenced in August 2017. Goal is to produce a software component which will encourage support of X3D in commercial and open source applications, particularly for those applications that already support VRML import/export. This project will test and demonstrate the proposition that &amp;quot;X3D is VRML&amp;quot;, or &amp;quot;VRML is X3D&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This target audience for this software component is developers, and the goal is to give them a tool to improve X3D support in their applications without the need for expertise in the X3D standard itself. This project will leverage the idea that if an application already supports VRML then the task of mapping an X3D scenegraph into the application logic has already been performed and support of X3D (XML encoding) should be straightforward. Likewise, if an application supports the XML encoding it should be straightforward to add support for VRML encoding.&lt;br /&gt;
&lt;br /&gt;
It is recognized that there are already translators and conversion tools to convert ClassicVRML encoding to XML Encoding. This project is essentially a repackaging of those codes into a readily deployable library. One motivation of this project is the discussion with potential users in the medical 3D printing community, through DICOM Working Group 17. Among users who may be classified as managers and project managers:&lt;br /&gt;
* The structure of the X3D standard as an abstract standard with multiple encodings is a complication which does not add value for  them. In their view, there are two file formats: X3D, which is  the XML encoding of the X3D standared; and VRML, which can either mean the Classic VRML encoding of the X3D standard, or it can mean a file conforming to an earlier version of the VRML standard.&lt;br /&gt;
* There is a strong preference for native import/export of files in required formats over conversions of existing or created files.&lt;br /&gt;
&lt;br /&gt;
=== Project Vision ===&lt;br /&gt;
&lt;br /&gt;
For any commercial or open source application which currently supports either VRML or X3D import and export, the deliverable from this project will allow the application's developers to easily upgrade so that&lt;br /&gt;
* To the extent allowed by an application's support of a X3D Profiles and version,  content can be imported into the application through both  ClassicVRML encoding and XML Encodings.&lt;br /&gt;
* The application can export to both ClassicVRML encoding and the XML Encoding&lt;br /&gt;
* Pre X3D standard versions of the VRML standard are supported as possible. The hope is to at least support Interchange Profile content, with well defined and documented failure modes to encourage developers to upgrade their applications support for X3D scenegraph&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Platform and Language ===&lt;br /&gt;
Propose that making the first deliverable a Windows DLL, readily integrated into a Windows .NET application, will offer the most impactful release. The DLL will offer text stream to text-stream conversion functions with a simple C-language interface. The implementation language of this project should be transparent to the user/developer; but the final product should be deployable with a small number of DLLs with sensible footprint.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9636</id>
		<title>X3D Is VRML Dll</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_Is_VRML_Dll&amp;diff=9636"/>
				<updated>2017-08-30T11:52:07Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Initial Import&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Project proposed and commenced in August 2017. Goal is to produce a software component which will encourage support of X3D in commercial and open source applications, particularly for those applications that already support VRML import/export. This project will test and demonstrate the proposition that &amp;quot;X3D is VRML&amp;quot;, or &amp;quot;VRML is X3D&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This target audience for this software component is developers, and the goal is to give them a tool to improve X3D support in their applications without the need for expertise in the X3D standard itself. This project will leverage the idea that if an application already supports VRML then the task of mapping an X3D scenegraph into the application logic has already been performed and support of X3D (XML encoding) should be straightforward. Likewise, if an application supports the XML encoding it should be straightforward to add support for VRML encoding.&lt;br /&gt;
&lt;br /&gt;
It is recognized that there are already translators and conversion tools to convert ClassicVRML encoding to XML Encoding. This project is essentially a repackaging of those codes into a readily deployable library. One motivation of this project is the discussion with potential users in the medical 3D printing community, through DICOM Working Group 17. Among users who may be classified as managers and project managers:&lt;br /&gt;
* The structure of the X3D standard as an abstract standard with multiple encodings is a complication which does not add value for  them. In their view, there are two file formats: X3D, which is  the XML encoding of the X3D standared; and VRML, which can either mean the Classic VRML encoding of the X3D standard, or it can mean a file conforming to an earlier version of the VRML standard.&lt;br /&gt;
* There is a strong preference for native import/export of files in required formats over conversions of existing or created files.&lt;br /&gt;
&lt;br /&gt;
=== Project Vision ===&lt;br /&gt;
&lt;br /&gt;
For any commercial or open source application which currently supports either VRML or X3D import and export&lt;br /&gt;
* To the extent allowed by an application's support of a X3D Profiles and version,  content can be imported into the application through both  ClassicVRML encoding and XML Encodings.&lt;br /&gt;
* The application can export to both ClassicVRML encoding and the XML Encoding&lt;br /&gt;
* Pre X3D standard versions of the VRML standard are supported as possible. The hope is to at least support Interchange Profile content, with well defined and documented failure modes to encourage developers to upgrade their applications support for X3D scenegraph&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=Design_Printing_and_Scanning_Working_Group&amp;diff=9628</id>
		<title>Design Printing and Scanning Working Group</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=Design_Printing_and_Scanning_Working_Group&amp;diff=9628"/>
				<updated>2017-07-26T21:11:04Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: corrected misspelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On July 25, 2017 the Board of Directors of the Web3D Consortium approved the name change of the former CAD Working Group to Design Printing and Scanning Working Group. This name change reflects the growing interest in promoting use of the X3D standard in the fields of 3D Scanning and 3D Printing.&lt;br /&gt;
&lt;br /&gt;
The text and links in this public wiki still reflect the original name of the working group, and the original main page of the wiki still serves as the main entry point for this working group's publlcally accessible resources&lt;br /&gt;
&lt;br /&gt;
[[X3D_CAD | CAD Wiki Main Page]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=Design_Printing_and_Scanning_Working_Group&amp;diff=9627</id>
		<title>Design Printing and Scanning Working Group</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=Design_Printing_and_Scanning_Working_Group&amp;diff=9627"/>
				<updated>2017-07-26T21:10:03Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Created page with &amp;quot;On July 25, 2017 the Board of Directors of the Web3D Consortium approved the name change of the former CAD Working Group to Design Printing and Scanning Working Group, along w...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On July 25, 2017 the Board of Directors of the Web3D Consortium approved the name change of the former CAD Working Group to Design Printing and Scanning Working Group, along with a revised charter. This name change reflects the growing interest in promoting use of the X3D standard in the fields of 3D Scanning and 3D Printing.&lt;br /&gt;
&lt;br /&gt;
The text and links in this public wiki still reflect the original name of the working group, and the original main page of the wiki still serves as the main entry point for this working group's publcally accessible resources&lt;br /&gt;
&lt;br /&gt;
[[X3D_CAD | CAD Wiki Main Page]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9494</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9494"/>
				<updated>2016-10-28T13:14:19Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Defined 3 step workflow and defined some of the links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
[http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml  Complete Image Set]&lt;br /&gt;
[http://www.kshell.com/pages/MedDICOMDemo20161018/index2.xhtml Truncated Image Set]&lt;br /&gt;
&lt;br /&gt;
==Workflow==&lt;br /&gt;
The workflow to prepare an X3DOM volume rendering from a set of DICOM images contains these steps:&lt;br /&gt;
&lt;br /&gt;
===1. Selection of Images===&lt;br /&gt;
From the set of DICOM images select a set of images which represent a sequence of parallel slices taken  at uniform spacing through the imaged volume. Each image in the set should have compatible (equivalent) imaging characteristics and image size.&lt;br /&gt;
&lt;br /&gt;
===2. Generating 3D Texture===&lt;br /&gt;
* [http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/volume.html#VolumeData VolumeData] node. The geometric size of the rendered volume is defined in the dimensions attribute of this node. This node combines volumetric data represented by a 3D texture (abstract node [http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/texture3D.html#X3DTexture3DNode X3DTexture3DNode]) and volume rendering style information as an abstract [http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/volume.html#X3DVolumeRenderStyleNode X3DVolumeRenderStyleNode]&lt;br /&gt;
* [http://doc.x3dom.org/author/Texturing/ImageTextureAtlas.html ImageTextureAtlas] is an X3DOM extension node. It is not part of the X3D v 3.3 standard but has the attributes required to be considered a descendand node of X3DTexture3DNode. This node contains an attribute url which is a link to a standard 2D image which through tiling contains a  sequence of the 2D slices. &lt;br /&gt;
===3. Creating X3DOM web content===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;br /&gt;
&lt;br /&gt;
==Scans==&lt;br /&gt;
The original data set was flat collection of DICOM files as provided on CD by a hospital. The contents of this folder were imported into the Osirix Lite viewing software. The viewing software organized the file set by patient name (there was only one patient) and into three series of scans. The thumbnail images for one such series is shown:&lt;br /&gt;
[[File:DWI_NEW_NOGOP_1.jpg | 1080px | center | MRI scan series from DICOM folder generated by Osirix software]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9492</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9492"/>
				<updated>2016-10-24T16:13:56Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
[http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml  Complete Image Set]&lt;br /&gt;
[http://www.kshell.com/pages/MedDICOMDemo20161018/index2.xhtml Truncated Image Set]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;br /&gt;
&lt;br /&gt;
==Scans==&lt;br /&gt;
The original data set was flat collection of DICOM files as provided on CD by a hospital. The contents of this folder were imported into the Osirix Lite viewing software. The viewing software organized the file set by patient name (there was only one patient) and into three series of scans. The thumbnail images for one such series is shown:&lt;br /&gt;
[[File:DWI_NEW_NOGOP_1.jpg | 1080px | center | MRI scan series from DICOM folder generated by Osirix software]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9491</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9491"/>
				<updated>2016-10-24T15:26:50Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
[http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml  Complete Scan]&lt;br /&gt;
[http://www.kshell.com/pages/MedDICOMDemo20161018/index2.xhtml Truncated Image Set]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DWI_NEW_NOGOP_1.jpg | 1080px | center | MRI scan series from DICOM folder generated by Osirix software]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9490</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9490"/>
				<updated>2016-10-24T15:25:58Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
[http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml]&lt;br /&gt;
[http://www.kshell.com/pages/MedDICOMDemo20161018/index2.xhtml]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DWI_NEW_NOGOP_1.jpg | 1080px | center | MRI scan series from DICOM folder generated by Osirix software]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9489</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9489"/>
				<updated>2016-10-24T15:24:39Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DWI_NEW_NOGOP_1.jpg | 1080px | center | MRI scan series from DICOM folder generated by Osirix software]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9488</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9488"/>
				<updated>2016-10-24T13:50:15Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DWI_NEW_NOGOP_1.jpg | frame | 640px | MRI scan series from DICOM folder generated by Osirix software]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9487</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9487"/>
				<updated>2016-10-24T13:42:15Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DWI NEW NOGOP 1.jpg| 320px center|MRI scan series from DICOM folder generated by Osirix software]]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=File:DWI_NEW_NOGOP_1.jpg&amp;diff=9486</id>
		<title>File:DWI NEW NOGOP 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=File:DWI_NEW_NOGOP_1.jpg&amp;diff=9486"/>
				<updated>2016-10-24T13:27:25Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Thumbnails of MRI scan series generated from a DICOM folder by Osirix DICOM viewer software&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thumbnails of MRI scan series generated from a DICOM folder by Osirix DICOM viewer software&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9485</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9485"/>
				<updated>2016-10-21T14:58:07Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: initial submission&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.xhtml here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9484</id>
		<title>DICOM CD workflow</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=DICOM_CD_workflow&amp;diff=9484"/>
				<updated>2016-10-21T14:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: initial submission&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A description of the workflow to produce the medical image rendered in X3DOM [http://www.kshell.com/pages/MedDICOMDemo20161018/index.html here], from the CD containing results of MRI scans.&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[http://www.python.org Python 2.7] , with additional libraries&lt;br /&gt;
**[http://www.numpy.org NumPy] - numerical analysis library&lt;br /&gt;
**[http://www.scipy.org SciPy]   - companion to NumPy with additional analysis functions&lt;br /&gt;
**[http://www.pythonware.com/products/pil PIL]      - Python Imaging Library&lt;br /&gt;
**[http://pydicom.readthedocs.io/en/latest/getting_started.html pydicom] A python library for reading DICOM files.&lt;br /&gt;
&lt;br /&gt;
*[http://www.osirix-viewer.com/download_form/download_form.php Osirix-Lite] : This free demo version of the [http://www.osirix-viewer.com/ Osirix] software for viewing DICOM image files, for Mac OS. Similar [http://technologyadvice.com/blog/healthcare/5-dicom-viewers/ DICOM viewers] are available for Windows OS&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9287</id>
		<title>STEP X3D Translation</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9287"/>
				<updated>2016-05-05T14:48:52Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: /* SPRI Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==STEP to X3D Translation==&lt;br /&gt;
Methods for converting STEP (ISO 10303) exchange files to X3D files. Here we focus on direct translation; an alternative method will be to read import a STEP file into a full featured CAD program and then export either as X3D if avallable or export as VRML, then perform a VRML -&amp;gt; X3D translation.&lt;br /&gt;
===CADExchanger===&lt;br /&gt;
[http://cadexchanger.com CADExchanger] is a commercial product available for Windows and Mac OS that offers import and export for a number of formats [http://cadexchanger.com/products.html#formats]. At version 3.12 It offers import (and export) for STEP files and export for X3D. Conversion is by importing a STEP file and exporting as X3D. The developers also offer command-line products for bulk conversion, a software development kit, and development services.&lt;br /&gt;
&lt;br /&gt;
===Open Cascade and PythonOCC===&lt;br /&gt;
[http://www.opencascade.com Open Casade] is a open source (LGPL) geometry kernel written in C++. [http://www.pythonocc.org PythonOCC] is a Python binding to the function exposed in compiled OpenCascade libraries, and so allows OpenCascade functions to be called from Python scripts. A simple Python script calling STEP import function followed by X3D export of the model :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Python script simplified from the example script &lt;br /&gt;
# core_load_step_ap203_to_x3d distributed with pythonOCC&lt;br /&gt;
input_file  = 'm12_2.stp'   # input STEP (AP203/AP214 file)&lt;br /&gt;
output_file = 'm12_2.x3d'   # output X3D file&lt;br /&gt;
&lt;br /&gt;
from OCC.STEPControl import STEPControl_Reader&lt;br /&gt;
from OCC.IFSelect import IFSelect_RetDone, IFSelect_ItemsByEntity&lt;br /&gt;
from OCC.Visualization import Tesselator, atNormal&lt;br /&gt;
step_reader = STEPControl_Reader()&lt;br /&gt;
status = step_reader.ReadFile( input_file )&lt;br /&gt;
&lt;br /&gt;
if status == IFSelect_RetDone:  # check status&lt;br /&gt;
    failsonly = False&lt;br /&gt;
    step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)&lt;br /&gt;
    step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)&lt;br /&gt;
    aResShape = step_reader.Shape(1)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Error: can't read file.&amp;quot;)&lt;br /&gt;
    sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
Tesselator(aResShape).ExportShapeToX3D( output_file )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SPRI Server===&lt;br /&gt;
[http://spri.kshell.com SPRI] is a web application that allows browsing the content of STEP files. A STEP file can contain multiple geometric models and the web application allows for viewing what models are available in a file and selecting which are translated to X3C content. Preparing an X3D model requires these steps:&lt;br /&gt;
# Using the FORM element on the upload page, choose a local STEP file and submit it to the server.&lt;br /&gt;
# The page displayed on a successful upload will offer options for information views of the STEP file. The &amp;quot;assemblies&amp;quot; view is the most direct way to retrieve X3D translations.&lt;br /&gt;
# On the assemblies page choose which assembly to render.&lt;br /&gt;
# The rendering page will present an X3DOM view and also have links to download an X3D file and to view the X3D model with the Cobweb browser.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9286</id>
		<title>STEP X3D Translation</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9286"/>
				<updated>2016-05-05T13:23:41Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: /* Open Cascade and PythonOCC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==STEP to X3D Translation==&lt;br /&gt;
Methods for converting STEP (ISO 10303) exchange files to X3D files. Here we focus on direct translation; an alternative method will be to read import a STEP file into a full featured CAD program and then export either as X3D if avallable or export as VRML, then perform a VRML -&amp;gt; X3D translation.&lt;br /&gt;
===CADExchanger===&lt;br /&gt;
[http://cadexchanger.com CADExchanger] is a commercial product available for Windows and Mac OS that offers import and export for a number of formats [http://cadexchanger.com/products.html#formats]. At version 3.12 It offers import (and export) for STEP files and export for X3D. Conversion is by importing a STEP file and exporting as X3D. The developers also offer command-line products for bulk conversion, a software development kit, and development services.&lt;br /&gt;
&lt;br /&gt;
===Open Cascade and PythonOCC===&lt;br /&gt;
[http://www.opencascade.com Open Casade] is a open source (LGPL) geometry kernel written in C++. [http://www.pythonocc.org PythonOCC] is a Python binding to the function exposed in compiled OpenCascade libraries, and so allows OpenCascade functions to be called from Python scripts. A simple Python script calling STEP import function followed by X3D export of the model :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Python script simplified from the example script &lt;br /&gt;
# core_load_step_ap203_to_x3d distributed with pythonOCC&lt;br /&gt;
input_file  = 'm12_2.stp'   # input STEP (AP203/AP214 file)&lt;br /&gt;
output_file = 'm12_2.x3d'   # output X3D file&lt;br /&gt;
&lt;br /&gt;
from OCC.STEPControl import STEPControl_Reader&lt;br /&gt;
from OCC.IFSelect import IFSelect_RetDone, IFSelect_ItemsByEntity&lt;br /&gt;
from OCC.Visualization import Tesselator, atNormal&lt;br /&gt;
step_reader = STEPControl_Reader()&lt;br /&gt;
status = step_reader.ReadFile( input_file )&lt;br /&gt;
&lt;br /&gt;
if status == IFSelect_RetDone:  # check status&lt;br /&gt;
    failsonly = False&lt;br /&gt;
    step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)&lt;br /&gt;
    step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)&lt;br /&gt;
    aResShape = step_reader.Shape(1)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Error: can't read file.&amp;quot;)&lt;br /&gt;
    sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
Tesselator(aResShape).ExportShapeToX3D( output_file )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SPRI Server===&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9285</id>
		<title>STEP X3D Translation</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9285"/>
				<updated>2016-05-05T13:12:25Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: /* Open Cascade and PythonOCC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==STEP to X3D Translation==&lt;br /&gt;
Methods for converting STEP (ISO 10303) exchange files to X3D files. Here we focus on direct translation; an alternative method will be to read import a STEP file into a full featured CAD program and then export either as X3D if avallable or export as VRML, then perform a VRML -&amp;gt; X3D translation.&lt;br /&gt;
===CADExchanger===&lt;br /&gt;
[http://cadexchanger.com CADExchanger] is a commercial product available for Windows and Mac OS that offers import and export for a number of formats [http://cadexchanger.com/products.html#formats]. At version 3.12 It offers import (and export) for STEP files and export for X3D. Conversion is by importing a STEP file and exporting as X3D. The developers also offer command-line products for bulk conversion, a software development kit, and development services.&lt;br /&gt;
&lt;br /&gt;
===Open Cascade and PythonOCC===&lt;br /&gt;
[http://www.opencascade.com Open Casade] is a open source (LGPL) geometry kernel written in C++. [http://www.pythonocc.org PythonOCC] is a Python binding to the function exposed in compiled OpenCascade libraries, and so allows OpenCascade functions to be called from Python scripts. A simple Python script calling STEP import function followed by X3D export of the model :&lt;br /&gt;
&lt;br /&gt;
===SPRI Server===&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9282</id>
		<title>STEP X3D Translation</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9282"/>
				<updated>2016-05-04T21:30:22Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: /* CADExchanger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==STEP to X3D Translation==&lt;br /&gt;
Methods for converting STEP (ISO 10303) exchange files to X3D files. Here we focus on direct translation; an alternative method will be to read import a STEP file into a full featured CAD program and then export either as X3D if avallable or export as VRML, then perform a VRML -&amp;gt; X3D translation.&lt;br /&gt;
===CADExchanger===&lt;br /&gt;
[http://cadexchanger.com CADExchanger] is a commercial product available for Windows and Mac OS that offers import and export for a number of formats [http://cadexchanger.com/products.html#formats]. At version 3.12 It offers import (and export) for STEP files and export for X3D. Conversion is by importing a STEP file and exporting as X3D. The developers also offer command-line products for bulk conversion, a software development kit, and development services.&lt;br /&gt;
&lt;br /&gt;
===Open Cascade and PythonOCC===&lt;br /&gt;
&lt;br /&gt;
===SPRI Server===&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9281</id>
		<title>STEP X3D Translation</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=STEP_X3D_Translation&amp;diff=9281"/>
				<updated>2016-05-04T21:22:15Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Created page with &amp;quot;==STEP to X3D Translation== Methods for converting STEP (ISO 10303) exchange files to X3D files. Here we focus on direct translation; an alternative method will be to read imp...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==STEP to X3D Translation==&lt;br /&gt;
Methods for converting STEP (ISO 10303) exchange files to X3D files. Here we focus on direct translation; an alternative method will be to read import a STEP file into a full featured CAD program and then export either as X3D if avallable or export as VRML, then perform a VRML -&amp;gt; X3D translation.&lt;br /&gt;
===CADExchanger===&lt;br /&gt;
[http://cadexchanger.com/ CADExchanger] is a commercial product available for Windows and Mac OS that offers import and export for a number of formats [http://cadexchanger.com/products.html#formats]. At version 3.12 It offers import (and export) for STEP files and export for X3D. Conversion is by importing a STEP file and exporting as X3D. The developers also offer command-line products for bulk conversion, a software development kit, and development services.&lt;br /&gt;
&lt;br /&gt;
===Open Cascade and PythonOCC===&lt;br /&gt;
&lt;br /&gt;
===SPRI Server===&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Howto&amp;diff=9280</id>
		<title>X3D CAD Howto</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Howto&amp;diff=9280"/>
				<updated>2016-05-04T21:20:24Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Introduction&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Purpose of X3D for CAD&lt;br /&gt;
What do we want to do with X3D CAD profile?&lt;br /&gt;
What are the relationships with STEP and with COLLADA?&lt;br /&gt;
&lt;br /&gt;
*History&lt;br /&gt;
Links to X3D history&lt;br /&gt;
X3D CAD profile history&lt;br /&gt;
&lt;br /&gt;
*Principles&lt;br /&gt;
**CAD profile philosophy&lt;br /&gt;
**X3D CAD Nodes&lt;br /&gt;
**Patterns and practices&lt;br /&gt;
&lt;br /&gt;
*Examples&lt;br /&gt;
Detailed examples&lt;br /&gt;
&lt;br /&gt;
*Evolutions to come&lt;br /&gt;
X3D BRep?&lt;br /&gt;
Current work&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9279</id>
		<title>X3D CAD Systems</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9279"/>
				<updated>2016-05-04T20:59:31Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To instructions for preparing X3D files from the commercial CAD systems.&lt;br /&gt;
&lt;br /&gt;
==Argon==&lt;br /&gt;
Commercial 3D CAD application by Ashlar-Vellum [http://www.ashlar.com/3d-modeling/3d-modeling-argon.html]&lt;br /&gt;
&lt;br /&gt;
# From the Argon document, use the &amp;quot;File &amp;gt; Export...&amp;quot; menu command to export as a &amp;quot;*.WRL&amp;quot; file; use the VRML V 2.0 option, save the file with .wrl extension.&lt;br /&gt;
# Use X3D-Edit application &amp;quot;Import as X3D &amp;gt; Import VRML97 Scene&amp;quot; command to convert VRML scene to XML encoded X3D.&lt;br /&gt;
&lt;br /&gt;
* If the original Argon model contains a single ACIS_Solid object, it will be converted to a single IndexedTriangleSet node.&lt;br /&gt;
* If the original model is a collection of surfaces, they will be converted to a collection of IndexedTriangleSet nodes, and the coloring of individual faces will be preserved in the X3D model. Argon allows breaking up a solid into a collection of its faces as a &amp;quot;Change Object Type&amp;quot; operation.&lt;br /&gt;
&lt;br /&gt;
==Blender==&lt;br /&gt;
Blender [https://www.blender.org] is free, GPL open source 3D modeling software. At version 2.77 it offers X3D import and export options in the base distribution.&lt;br /&gt;
# Import : File &amp;gt; Import menu offers import of X3D content directly into blender&lt;br /&gt;
# export:  File &amp;gt; Export offers direct export of X3D content from Blender&lt;br /&gt;
See also:&lt;br /&gt;
* [https://savage.nps.edu/X3D-Edit/BlenderExportToX3d.html Tutorial on Blender export to X3d] including correcting model and adding meta-tags&lt;br /&gt;
* [http://www.bitmanagement.de/en/download Blender Exporter] Free software from BS-Contact.&lt;br /&gt;
&lt;br /&gt;
==OnShape==&lt;br /&gt;
OnShape [https://www.onshape.com] is collaborative 3D CAD system that works in a web  browser. Parts and assemblies created in OnShape can be converted to X3D files by exporting a STEP file from OnShape and then performing a STEP-&amp;gt;X3D translation.&lt;br /&gt;
# In OnShape the Export action is performed using a pop-up menu from the Document tab. Use the OnShape &amp;quot;Help&amp;quot; feature, search on 'export files',  for user-interface assistance.&lt;br /&gt;
## The file will be exported as AP 214 (automotive design). An OnShape assembly will be exported to a STEP exchange file in which the assembly tree is preserved.&lt;br /&gt;
&lt;br /&gt;
==Tinkercad==&lt;br /&gt;
Tinkercad [https://www.tinkercad.com] is an online 3D CAD system aimed at 3D printing users. It offers direct export as X3D files.&lt;br /&gt;
# Click the &amp;quot;Download for 3D Printing&amp;quot; button and choose the &amp;quot;.X3D Colors&amp;quot; option &lt;br /&gt;
## Downloaded file is in the &amp;quot;Interchange&amp;quot; profile and will have a single IndexedFaceSet node with color-by-triangle coloring.&lt;br /&gt;
&lt;br /&gt;
==Clara.io==&lt;br /&gt;
Clara.io [https://https://clara.io] is an online 3D modeller with a &amp;quot;lookl and feel&amp;quot; similar to Blender. It offers direct export to X3D files.&lt;br /&gt;
# Choose the &amp;quot;Web eXtensible 3D&amp;quot; option for &amp;quot;Export All &amp;quot; or &amp;quot;Export Selected&amp;quot; menu items under the &amp;quot;File&amp;quot; menu&lt;br /&gt;
## Downloaded file is in the &amp;quot;Immersive&amp;quot; profile.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9273</id>
		<title>X3D CAD Systems</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9273"/>
				<updated>2016-05-02T00:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To instructions for preparing X3D files from the commercial CAD systems.&lt;br /&gt;
&lt;br /&gt;
==Ashlar-Vellum Argon==&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
# From the Argon document, use the &amp;quot;File &amp;gt; Export...&amp;quot; menu command to export as a &amp;quot;*.WRL&amp;quot; file; use the VRML V 2.0 option, save the file with .wrl extension.&lt;br /&gt;
# Use X3D-Edit application &amp;quot;Import as X3D &amp;gt; Import VRML97 Scene&amp;quot; command to convert VRML scene to XML encoded X3D.&lt;br /&gt;
&lt;br /&gt;
* If the original Argon model contains a single ACIS_Solid object, it will be converted to a single IndexedTriangleSet node.&lt;br /&gt;
* If the original model is a collection of surfaces, they will be converted to a collection of IndexedTriangleSet nodes, and the coloring of individual faces will be preserved in the X3D model. Argon allows breaking up a solid into a collection of its faces as a &amp;quot;Change Object Type&amp;quot; operation.&lt;br /&gt;
&lt;br /&gt;
==OnShape==&lt;br /&gt;
OnShape [https://www.onshape.com] is collaborative 3D CAD system that works in a web  browser. Parts and assemblies created in OnShape can be converted to X3D files by exporting a STEP file from OnShape and then performing a STEP-&amp;gt;X3D translation.&lt;br /&gt;
# In OnShape the Export action is performed using a pop-up menu from the Document tab. Use the OnShape &amp;quot;Help&amp;quot; feature, search on 'export files',  for user-interface assistance.&lt;br /&gt;
## The file will be exported as AP 214 (automotive design). An OnShape assembly will be exported to a STEP exchange file in which the assembly tree is preserved.&lt;br /&gt;
&lt;br /&gt;
==Tinkercad==&lt;br /&gt;
Tinkercad [https://www.tinkercad.com] is an online 3D CAD system aimed at 3D printing users. It offers direct export as X3D files.&lt;br /&gt;
# Click the &amp;quot;Download for 3D Printing&amp;quot; button and choose the &amp;quot;.X3D Colors&amp;quot; option &lt;br /&gt;
## Downloaded file is in the &amp;quot;Interchange&amp;quot; profile and will have a single IndexedFaceSet node with color-by-triangle coloring.&lt;br /&gt;
&lt;br /&gt;
==Clara.io==&lt;br /&gt;
Clara.io [https://https://clara.io] is an online 3D modeller with a &amp;quot;lookl and feel&amp;quot; similar to Blender. It offers direct export to X3D files.&lt;br /&gt;
# Choose the &amp;quot;Web eXtensible 3D&amp;quot; option for &amp;quot;Export All &amp;quot; or &amp;quot;Export Selected&amp;quot; menu items under the &amp;quot;File&amp;quot; menu&lt;br /&gt;
## Downloaded file is in the &amp;quot;Immersive&amp;quot; profile.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9272</id>
		<title>X3D CAD Systems</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9272"/>
				<updated>2016-04-29T01:00:12Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Added Tinkercad option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To instructions for preparing X3D files from the commercial CAD systems.&lt;br /&gt;
&lt;br /&gt;
==Ashlar-Vellum Argon==&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
# From the Argon document, use the &amp;quot;File &amp;gt; Export...&amp;quot; menu command to export as a &amp;quot;*.WRL&amp;quot; file; use the VRML V 2.0 option, save the file with .wrl extension.&lt;br /&gt;
# Use X3D-Edit application &amp;quot;Import as X3D &amp;gt; Import VRML97 Scene&amp;quot; command to convert VRML scene to XML encoded X3D.&lt;br /&gt;
&lt;br /&gt;
* If the original Argon model contains a single ACIS_Solid object, it will be converted to a single IndexedTriangleSet node.&lt;br /&gt;
* If the original model is a collection of surfaces, they will be converted to a collection of IndexedTriangleSet nodes, and the coloring of individual faces will be preserved in the X3D model. Argon allows breaking up a solid into a collection of its faces as a &amp;quot;Change Object Type&amp;quot; operation.&lt;br /&gt;
&lt;br /&gt;
==OnShape==&lt;br /&gt;
OnShape [https://www.onshape.com] is collaborative 3D CAD system that works in a web  browser. Parts and assemblies created in OnShape can be converted to X3D files by exporting a STEP file from OnShape and then performing a STEP-&amp;gt;X3D translation.&lt;br /&gt;
# In OnShape the Export action is performed using a pop-up menu from the Document tab. Use the OnShape &amp;quot;Help&amp;quot; feature, search on 'export files',  for user-interface assistance.&lt;br /&gt;
## The file will be exported as AP 214 (automotive design). An OnShape assembly will be exported to a STEP exchange file in which the assembly tree is preserved.&lt;br /&gt;
&lt;br /&gt;
==Tinkercad==&lt;br /&gt;
Tinkercad [https://www.tinkercad.com] is an online 3D CAD system aimed at 3D printing users. It offers direct export as X3D files.&lt;br /&gt;
# Click the &amp;quot;Download for 3D Printing&amp;quot; button and choose the &amp;quot;.X3D Colors&amp;quot; option &lt;br /&gt;
## Downloaded file is in the &amp;quot;Interchange&amp;quot; profile and will have a single IndexedFaceSet node with color-by-triangle coloring.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9271</id>
		<title>X3D CAD Systems</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9271"/>
				<updated>2016-04-07T14:56:26Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To instructions for preparing X3D files from the commercial CAD systems.&lt;br /&gt;
&lt;br /&gt;
==Ashlar-Vellum Argon==&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
# From the Argon document, use the &amp;quot;File &amp;gt; Export...&amp;quot; menu command to export as a &amp;quot;*.WRL&amp;quot; file; use the VRML V 2.0 option, save the file with .wrl extension.&lt;br /&gt;
# Use X3D-Edit application &amp;quot;Import as X3D &amp;gt; Import VRML97 Scene&amp;quot; command to convert VRML scene to XML encoded X3D.&lt;br /&gt;
&lt;br /&gt;
* If the original Argon model contains a single ACIS_Solid object, it will be converted to a single IndexedTriangleSet node.&lt;br /&gt;
* If the original model is a collection of surfaces, they will be converted to a collection of IndexedTriangleSet nodes, and the coloring of individual faces will be preserved in the X3D model. Argon allows breaking up a solid into a collection of its faces as a &amp;quot;Change Object Type&amp;quot; operation.&lt;br /&gt;
&lt;br /&gt;
==OnShape==&lt;br /&gt;
OnShape [https://www.onshape.com] is collaborative 3D CAD system that works in a web  browser. Parts and assemblies created in OnShape can be converted to X3D files by exporting a STEP file from OnShape and then performing a STEP-&amp;gt;X3D translation.&lt;br /&gt;
# In OnShape the Export action is performed using a pop-up menu from the Document tab. Use the OnShape &amp;quot;Help&amp;quot; feature, search on 'export files',  for user-interface assistance.&lt;br /&gt;
## The file will be exported as AP 214 (automotive design). An OnShape assembly will be exported to a STEP exchange file in which the assembly tree is preserved.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Howto&amp;diff=9270</id>
		<title>X3D CAD Howto</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Howto&amp;diff=9270"/>
				<updated>2016-04-07T14:39:08Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Introduction&lt;br /&gt;
&lt;br /&gt;
*STEP to X3D Translation&lt;br /&gt;
Methods for converting STEP (ISO 10303) exchange files to X3D files. Here we focus on direct translation; an alternative method will be to read import a STEP file into a full featured CAD program and then export either as X3D if avallable or export as VRML, then perform a VRML -&amp;gt; X3D translation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Purpose of X3D for CAD&lt;br /&gt;
What do we want to do with X3D CAD profile?&lt;br /&gt;
What are the relationships with STEP and with COLLADA?&lt;br /&gt;
&lt;br /&gt;
*History&lt;br /&gt;
Links to X3D history&lt;br /&gt;
X3D CAD profile history&lt;br /&gt;
&lt;br /&gt;
*Principles&lt;br /&gt;
**CAD profile philosophy&lt;br /&gt;
**X3D CAD Nodes&lt;br /&gt;
**Patterns and practices&lt;br /&gt;
&lt;br /&gt;
*Examples&lt;br /&gt;
Detailed examples&lt;br /&gt;
&lt;br /&gt;
*Evolutions to come&lt;br /&gt;
X3D BRep?&lt;br /&gt;
Current work&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9240</id>
		<title>X3D CAD Systems</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_CAD_Systems&amp;diff=9240"/>
				<updated>2016-02-06T16:58:15Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Initial submission with Argon example.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To instructions for preparing X3D files from the commercial CAD systems.&lt;br /&gt;
&lt;br /&gt;
==Ashlar-Vellum Argon==&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
# From the Argon document, use the &amp;quot;File &amp;gt; Export...&amp;quot; menu command to export as a &amp;quot;*.WRL&amp;quot; file; use the VRML V 2.0 option, save the file with .wrl extension.&lt;br /&gt;
# Use X3D-Edit application &amp;quot;Import as X3D &amp;gt; Import VRML97 Scene&amp;quot; command to convert VRML scene to XML encoded X3D.&lt;br /&gt;
&lt;br /&gt;
* If the original Argon model contains a single ACIS_Solid object, it will be converted to a single IndexedTriangleSet node.&lt;br /&gt;
* If the original model is a collection of surfaces, they will be converted to a collection of IndexedTriangleSet nodes, and the coloring of individual faces will be preserved in the X3D model. Argon allows breaking up a solid into a collection of its faces as a &amp;quot;Change Object Type&amp;quot; operation.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=3DPrinting_Scanning_File_Formats&amp;diff=9090</id>
		<title>3DPrinting Scanning File Formats</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=3DPrinting_Scanning_File_Formats&amp;diff=9090"/>
				<updated>2015-12-03T16:00:15Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will serve as a summary of file formats used in 3D Printing and Scanning. Information will be included that is useful to understand the capabilities of each format and compare them with current and potential capabilites of the X3D standard applied to 3D printing and scanning. Emphasis is placed on file formats which are standards and which have open and accessible documentation, as opposed to proprietary formats.&lt;br /&gt;
&lt;br /&gt;
== AMF ==&lt;br /&gt;
AMF is Additive Manufacturing Format, commonly with .amf file extension.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* http://amf.wikispaces.com : Wiki resource.&lt;br /&gt;
* [http://amf.wikispaces.com/file/view/amf.xsd/402895728/amf.xsd XSD schema]&lt;br /&gt;
* [http://www.astm.org/Standards/ISOASTM52915.htm ASTM Standard] AMF is ISO/ASTM52915-13 standard (v 1.1). The standard document is sold by [http://www.astm.org ASTM].&lt;br /&gt;
* [https://groups.google.com/forum/#!forum/stl2 STL2 Google Group] &lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
* An XML format with formal [ http://amf.wikispaces.com/file/view/amf.xsd/402895728/amf.xsd XSD schema].&lt;br /&gt;
* An AMF file contains one or more objects. Each object is a 3D volume defined by a single triangular mesh. A triangular mesh consists of a list of vertices and a list of triangles;  each triangles is defined as 3 vertices identified by their index in the list of vertices.&lt;br /&gt;
* Optional Geometric Concepts Elements&lt;br /&gt;
** Edge : A subelement in an object tree, an edge is defined by references to two vertices in an object's vertex list and by the coordinates of tangent vectors defining the direction of the edge at each vertex. These tangent vectors can be used to define [ Curved Triangles]&lt;br /&gt;
** Normal : A subelement of a vertex element, it consists of the coordinates of a 3D vector attached to that vertex, and is also used in the definition of [ Curved Triangle]&lt;br /&gt;
** &lt;br /&gt;
&lt;br /&gt;
=== Curved Triangles ===&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=3DPrinting_Scanning_File_Formats&amp;diff=9089</id>
		<title>3DPrinting Scanning File Formats</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=3DPrinting_Scanning_File_Formats&amp;diff=9089"/>
				<updated>2015-12-03T15:13:20Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Additive Manufactuing Format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will serve as a summary of file formats used in 3D Printing and Scanning. Information will be included that is useful to understand the capabilities of each format and compare them with current and potential capabilites of the X3D standard applied to 3D printing and scanning. Emphasis is placed on file formats which are standards and which have open and accessible documentation, as opposed to proprietary formats.&lt;br /&gt;
&lt;br /&gt;
== AMF ==&lt;br /&gt;
AMF is Additive Manufacturing Format, commonly with .amf file extension.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* http://amf.wikispaces.com : Wiki resource.&lt;br /&gt;
* [http://amf.wikispaces.com/file/view/amf.xsd/402895728/amf.xsd XSD schema]&lt;br /&gt;
* [http://www.astm.org/Standards/ISOASTM52915.htm ASTM Standard] AMF is ISO/ASTM52915-13 standard (v 1.1). The standard document is sold by [http://www.astm.org ASTM].&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=3DPrinting_Scanning_File_Formats&amp;diff=9088</id>
		<title>3DPrinting Scanning File Formats</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=3DPrinting_Scanning_File_Formats&amp;diff=9088"/>
				<updated>2015-12-02T17:15:38Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: initial submission&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will serve as a summary of file formats used in 3D Printing and Scanning. Information will be included that is useful to understand the capabilities of each format and compare them with current and potential capabilites of the X3D standard applied to 3D printing and scanning. Emphasis is placed on file formats which are standards and which have open and accessible documentation, as opposed to proprietary formats.&lt;br /&gt;
&lt;br /&gt;
== AMF ==&lt;br /&gt;
AMF is Additive Manufacturing Format, commonly with .amf file extension. &lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* http://amf.wikispaces.com&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=Extrusion_Edge_Cases&amp;diff=9004</id>
		<title>Extrusion Edge Cases</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=Extrusion_Edge_Cases&amp;diff=9004"/>
				<updated>2015-08-20T13:11:50Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Extrusion Extrusion] node specification has ambiguities [http://web3d.org/pipermail/x3d-public_web3d.org/2015-June/subject.html#3434]&lt;br /&gt;
&lt;br /&gt;
== Coincident Spine Points ==&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=Extrusion_Edge_Cases&amp;diff=9003</id>
		<title>Extrusion Edge Cases</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=Extrusion_Edge_Cases&amp;diff=9003"/>
				<updated>2015-08-20T13:05:51Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: Created page with &amp;quot;The [http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Extrusion Extrusion] node specification has ambiguities [http://web3d.org/pip...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Extrusion Extrusion] node specification has ambiguities [http://web3d.org/pipermail/x3d-public_web3d.org/2015-June/subject.html#3434]&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_NURBS&amp;diff=7368</id>
		<title>X3D NURBS</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_NURBS&amp;diff=7368"/>
				<updated>2013-08-16T00:12:40Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are references useful for implementors and users of the [http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/nurbs.html X3D NURBS component].&lt;br /&gt;
&lt;br /&gt;
A primary reference for NURBS curves and surfaces is: L Peigl and W Tiller, The NURBS Book, Springer-Verlag 2nd Ed. 1997.  See the [http://www.smlib.com Solid Modeling Solutions] site for further information on this resource.&lt;br /&gt;
&lt;br /&gt;
NURBS example X3D models&lt;br /&gt;
* [http://www.web3d.org/x3d/content/examples/Basic/NURBS/ Basic X3D Examples Archive - NURBS] and [http://www.web3d.org/x3d/content/examples/Basic/NURBS/images support screenshots]&lt;br /&gt;
* [http://www.kshell.com/pages/nurbs_surface_demo NURBS Patch Surface] demonstration scenes and explanations for implementations by Vincent Marchetti&lt;br /&gt;
* [http://www.kshell.com/pages/trimmed_nurbs_demo NURBS Trimmed Surface] shows examples of NurbsTrimmedSurface node with internal trimming curves by Vincent Marchetti&lt;br /&gt;
&lt;br /&gt;
[http://castle-engine.sourceforge.net/x3d_implementation_nurbs.php NURBS component ] by MIchalis Kamburelis discusses the support for NURBS in the [http://castle-engine.sourceforge.net Castle Game Engine]. Of particular importance is the discussion of [http://castle-engine.sourceforge.net/x3d_implementation_nurbs.php#section_homogeneous_coordinates weights and control points] in X3D.&lt;br /&gt;
&lt;br /&gt;
The X3D terminology is different from the terminology used in the STEP standard. As specified in Part 42 of the STEP (ISO 10303) the &amp;quot;control points&amp;quot; attribute of a b-spline (including nurbs) entity contains the coordinates a point in real, not homogeneous, space. See the standards document ISO 10303-42:1998(E) section 4.4.70&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/wiki/images/1/17/X3D_Browser_NURBS_Evaluation.pdf X3D Browser Evaluation] PDF, Oct 2012: A summary of the state of X3D browsers' rendering of NurbsPatchSurface and NurbsTrimmedSurface nodes.&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/jgeom jGeom] is an open-source java geometry graphics library using NURBS.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_NURBS&amp;diff=7367</id>
		<title>X3D NURBS</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_NURBS&amp;diff=7367"/>
				<updated>2013-08-16T00:06:17Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are references useful for implementors and users of the [http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/nurbs.html X3D NURBS component].&lt;br /&gt;
&lt;br /&gt;
A primary reference for NURBS curves and surfaces is: L Peigl and W Tiller, The NURBS Book, Springer-Verlag 2nd Ed. 1997.  See the [http://www.smlib.com Solid Modeling Solutions] site for further information on this resource.&lt;br /&gt;
&lt;br /&gt;
NURBS example X3D models&lt;br /&gt;
* [http://www.web3d.org/x3d/content/examples/Basic/NURBS/ Basic X3D Examples Archive - NURBS] and [http://www.web3d.org/x3d/content/examples/Basic/NURBS/images support screenshots]&lt;br /&gt;
* [http://www.kshell.com/pages/nurbs_surface_demo NURBS Patch Surface] demonstration scenes and explanations for implementations by Vincent Marchetti&lt;br /&gt;
* [http://www.kshell.com/pages/trimmed_nurbs_demo NURBS Trimmed Surface] shows examples of NurbsTrimmedSurface node with internal trimming curves by Vincent Marchetti&lt;br /&gt;
&lt;br /&gt;
[http://castle-engine.sourceforge.net/x3d_implementation_nurbs.php NURBS component ] by MIchalis Kamburelis discusses the support for NURBS in the [http://castle-engine.sourceforge.net Castle Game Engine]. Of particular importance is the discussion of [http://castle-engine.sourceforge.net/x3d_implementation_nurbs.php#section_homogeneous_coordinates weights and control points] in X3D.&lt;br /&gt;
&lt;br /&gt;
The X3D terminology is different from the terminology used in the STEP standard. As specified in Part 42 of the STEP (ISO 10303) the &amp;quot;control points&amp;quot; attribute of a b-spline (including nurbs) entity contains the coordinates a point in real, not homogeneous, space. See the standards document ISO 10303-42:1998(E) section 4.4.70&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/wiki/images/1/17/X3D_Browser_NURBS_Evaluation.pdf X3D Browser Evaluation] PDF, Oct 2012: A summary of the state of X3D browsers' rendering of NurbsPatchSurface and NurbsTrimmedSurface nodes.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/jgeom jGeom] is an open-source java geometry graphics library using NURBS that might be useful.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3D_NURBS&amp;diff=7366</id>
		<title>X3D NURBS</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3D_NURBS&amp;diff=7366"/>
				<updated>2013-08-16T00:02:40Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are references useful for implementors and users of the [http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/nurbs.html X3D NURBS component].&lt;br /&gt;
&lt;br /&gt;
A primary reference for NURBS curves and surfaces is: L Peigl and W Tiller, The NURBS Book, Springer-Verlag 2nd Ed. 1997.  See the [http://www.smlib.com Solid Modeling Solutions] site for further information on this resource.&lt;br /&gt;
&lt;br /&gt;
NURBS example X3D models&lt;br /&gt;
* [http://www.web3d.org/x3d/content/examples/Basic/NURBS/ Basic X3D Examples Archive - NURBS] and [http://www.web3d.org/x3d/content/examples/Basic/NURBS/images support screenshots]&lt;br /&gt;
* [http://www.kshell.com/pages/nurbs_surface_demo NURBS Patch Surface] demonstration scenes and explanations for implementations by Vincent Marchetti&lt;br /&gt;
* [http://www.kshell.com/pages/trimmed_nurbs_demo NURBS Trimmed Surface] shows examples of NurbsTrimmedSurface node with internal trimming curves by Vincent Marchetti&lt;br /&gt;
* [http://castle-engine.sourceforge.net/x3d_implementation_nurbs.php NURBS component ] by MIchalis Kamburelis discusses the support for NURBS in the [http://castle-engine.sourceforge.net Castle Game Engine]. Of particular importance is the discussion of [http://castle-engine.sourceforge.net/x3d_implementation_nurbs.php#section_homogeneous_coordinates weights and control points] in X3D.&lt;br /&gt;
&lt;br /&gt;
* The X3D terminology is different from the terminology used in the STEP standard. As specified in Part 42 of the STEP (ISO 10303) the &amp;quot;control points&amp;quot; attribute of a b-spline (including nurbs) entity contains the coordinates a point in real, not homogeneous, space. See the standards document ISO 10303-42:1998(E) section 4.4.70&lt;br /&gt;
&lt;br /&gt;
* [http://www.web3d.org/x3d/wiki/images/1/17/X3D_Browser_NURBS_Evaluation.pdf X3D Browser Evaluation] PDF, Oct 2012: A summary of the state of X3D browsers' rendering of NurbsPatchSurface and NurbsTrimmedSurface nodes.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/jgeom jGeom] is an open-source java geometry graphics library using NURBS that might be useful.&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3DOM_CAD&amp;diff=6840</id>
		<title>X3DOM CAD</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3DOM_CAD&amp;diff=6840"/>
				<updated>2013-03-29T20:04:40Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Overview:  X3DOM and CAD support ==&lt;br /&gt;
Resources and Issues related to using the CADGeometry component in models incorporated into HTML5 web pages and rendered in a browser pages using X3DOM implemented with Javascript+WebGL or Flash Player&lt;br /&gt;
&lt;br /&gt;
[http://www.x3dom.org X3DOM] is one way to integrate an X3D model into into an HTML5 web document (see [[X3D_and_HTML5]] ). The X3DOM implementation is a library of Javascript classes and functions which, after an HTML5 document is loaded, search the Document Object Model (DOM) tree of the document for X3D elements and renders the content in an HTML5 canvas element using WebGL calls or else Flash Player, on browsers that do not suport WebGL. The Javascript code is open source and available  in a [http://github.com/x3dom/x3dom  Github project]. The Javascript code can also be loaded from a single minimized script at URL http://www.x3dom.org/x3dom/example/x3dom.js . X3DOM offers a partial but expanding coverage of X3D nodes; the nodes which can be rendered using X3DOM in an HTML5 page is documented in the [http://x3dom.org/x3dom/test/functional/dumpNodeTypeTree.html Node Type Tree]. The X3DOM classes themselves do not implement any of the nodes in the CADGeometry component. (As of version 1.4; March 2013)&lt;br /&gt;
The coverage of X3D nodes can be extended through additional Javascript code which extends the X3DOM classes (see [http://x3dom.org/docs/dev/components.html X3DOM Components])&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/stylesheets/X3dToX3dom.xslt X3dToX3dom.xslt] is an XSLT 2 stylesheet which will generate an HTML5 document embedding an X3D input model. This stylesheet can be run using a stand-alone XSLT2 engine or from within the [https://savage.nps.eduX3D-Edit/ X3D-Edit] tool.&lt;br /&gt;
&lt;br /&gt;
[http://www.kshell.com/pages/x3dom/x3dom_cad/scripts/CADGeometry.js CADGeometry.js] Javascript code implementing the CADLayer, CADAssembly, CADFace, and CADPart nodes of the X3D [http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/CADGeometry.html CADGeometry] component. This Javascript should be loaded by a webpage '''''after''''' the core components of the X3DOM Javascript have been loaded. Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.x3dom.org/x3dom/example/x3dom.js&amp;lt;/nowiki&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.kshell.com/pages/x3dom/x3dom_cad/scripts/CADGeometry.js&amp;lt;/nowiki&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X3D Models==&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/laser_assembly.x3d laser_assembly] Converted from a [http://gicl.cs.drexel.edu/repository/data/Assemblies/laser__top.stp STEP file] in the [http://www.designrepository.org/ National Design Repository].&lt;br /&gt;
&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/CadTeapot.x3d CadTeapot] Copied from the Web3D Basic Examples [http://www.web3d.org/x3d/content/examples/Basic/CAD/_pages/page08.html CadTeapot] model but modified so that each of the Appearance nodes for the 4 parts of the teapot is independently defined.&lt;br /&gt;
&lt;br /&gt;
==X3DOM Pages==&lt;br /&gt;
These pages were generated using a modification of the X3dToX3dom.xslt script (modified XSLT stylesheet [http://www.kshell.com/pages/x3dom/x3dom_cad/X3dToX3dom.xslt here]). These pages load the CADGeometry extension to X3DOM after loading the X3DOM core classes.&lt;br /&gt;
&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/no_cad/laser_assembly.xhtml laser_assembly page] The laser_assembly model embedded in a web page rendered with X3DOM.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/no_cad/CadTeapot.xhtml CadTeapot page] The CadTeapot model embedded in a web page rendered with X3DOM.&lt;br /&gt;
&lt;br /&gt;
==X3DOM -- Product structure pages==&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/laser_assembly.xhtml laser_assembly product structure] The laser_assembly model in a page, with additional linked HTML/Javascript elements to display the assembly tree.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/CadTeapot.xhtml CadTeapot product structure] The laser_assembly model in a page, with additional linked HTML/Javascript elements to display the assembly tree.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/retention_clip.xhtml retention_clip] A product structure containing nested assemblies.&lt;br /&gt;
&lt;br /&gt;
==XDOM -- Javascript programming==&lt;br /&gt;
&lt;br /&gt;
The loaded X3D model is part of the document DOM (Document Object Model) and can be searched and manipulated by Javascript code. To ensure that the X3D model is completely loaded and initialized, the X3DOM framework allows the page script to assign a function to the variable x3dom.runtime.ready. This function will be run after the X3DOM code has resolved all external URL's in the X3D model and the rendering objects have been initialized. For example, the following javascript defines a function which searches the DOM tree for CADPart nodes and prints the X3D field 'name' to the browser console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Javascript code to implement manipulating the DOM elements which&lt;br /&gt;
are associated with the CADGeometry component implementation of x3dom.&lt;br /&gt;
&lt;br /&gt;
Vincent Marchetti 2012&lt;br /&gt;
Licensed in same way as X3DOM release 1.5 : http://x3dom.org&lt;br /&gt;
&lt;br /&gt;
Dual licensed under the MIT and GPL.&lt;br /&gt;
http://x3dom.org/download/dev/docs/html/license.html&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
    // save any existing value of the&lt;br /&gt;
    // x3dom.runtime.ready, so it can&lt;br /&gt;
    // be executed along with our code&lt;br /&gt;
    var existing_ready = x3dom.runtime.ready;&lt;br /&gt;
    &lt;br /&gt;
    function print_part_names(){&lt;br /&gt;
        // locate X3D nodes in the DOM tree with standard&lt;br /&gt;
        // Javascript DOM API&lt;br /&gt;
        var parts=x3dElem.getElementsByTagName(&amp;quot;CADPart&amp;quot;);&lt;br /&gt;
        for (var j=0; j&amp;lt;parts.length; ++j)&lt;br /&gt;
            // get the X3D field value from the CADPart&lt;br /&gt;
            // node using the .getattribute member function&lt;br /&gt;
            console.log( parts[j].getAttribute('name'));&lt;br /&gt;
    }&lt;br /&gt;
       &lt;br /&gt;
    // according to X3DOM documentation, setting or overriding&lt;br /&gt;
    // this function is how you perform a desired action just before&lt;br /&gt;
    // the X3D scene to to be rendered, so the X3DOM objects have all been &lt;br /&gt;
    // constructed&lt;br /&gt;
    x3dom.runtime.ready=function(){&lt;br /&gt;
        // Be courteous, let any previously existing function&lt;br /&gt;
        // go first&lt;br /&gt;
        if (existing_ready !== undefined) existing_ready();   &lt;br /&gt;
        // then run our code&lt;br /&gt;
        print_part_names();&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==To Do==&lt;br /&gt;
* Incorporate the product structure display (on the HTML page) as an option in the X3dToX3dom stylesheet.&lt;br /&gt;
* Setup a SourceForge project for ProductStructure, other scripts useful&lt;br /&gt;
* Prepare a x3dom folder with examples and scripts to be included ( with local URL references from .xhtml to .js scripts) to be placed in the Examples/Basic/CAD/X3DOM folder on web3d.org&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3DOM_CAD&amp;diff=6839</id>
		<title>X3DOM CAD</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3DOM_CAD&amp;diff=6839"/>
				<updated>2013-03-29T19:46:48Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Overview:  X3DOM and CAD support ==&lt;br /&gt;
Resources and Issues related to using the CADGeometry component in models incorporated into HTML5 web pages and rendered in a browser pages using X3DOM implemented with Javascript+WebGL or Flash Player&lt;br /&gt;
&lt;br /&gt;
[http://www.x3dom.org X3DOM] is one way to integrate an X3D model into into an HTML5 web document (see [[X3D_and_HTML5]] ). The X3DOM implementation is a library of Javascript classes and functions which, after an HTML5 document is loaded, search the Document Object Model (DOM) tree of the document for X3D elements and renders the content in an HTML5 canvas element using WebGL calls or else Flash Player, on browsers that do not suport WebGL. The Javascript code is open source and available  in a [http://github.com/x3dom/x3dom  Github project]. The Javascript code can also be loaded from a single minimized script at URL http://www.x3dom.org/x3dom/example/x3dom.js . X3DOM offers a partial but expanding coverage of X3D nodes; the nodes which can be rendered using X3DOM in an HTML5 page is documented in the [http://x3dom.org/x3dom/test/functional/dumpNodeTypeTree.html Node Type Tree]. The X3DOM classes themselves do not implement any of the nodes in the CADGeometry component. (As of version 1.4; March 2013)&lt;br /&gt;
The coverage of X3D nodes can be extended through additional Javascript code which extends the X3DOM classes (see [http://x3dom.org/docs/dev/components.html X3DOM Components])&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/stylesheets/X3dToX3dom.xslt X3dToX3dom.xslt] is an XSLT 2 stylesheet which will generate an HTML5 document embedding an X3D input model. This stylesheet can be run using a stand-alone XSLT2 engine or from within the [https://savage.nps.eduX3D-Edit/ X3D-Edit] tool.&lt;br /&gt;
&lt;br /&gt;
[http://www.kshell.com/pages/x3dom/x3dom_cad/scripts/CADGeometry.js CADGeometry.js] Javascript code implementing the CADLayer, CADAssembly, CADFace, and CADPart nodes of the X3D [http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/CADGeometry.html CADGeometry] component. This Javascript should be loaded by a webpage '''''after''''' the core components of the X3DOM Javascript have been loaded. Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.x3dom.org/x3dom/example/x3dom.js&amp;lt;/nowiki&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.kshell.com/pages/x3dom/x3dom_cad/scripts/CADGeometry.js&amp;lt;/nowiki&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X3D Models==&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/laser_assembly.x3d laser_assembly] Converted from a [http://gicl.cs.drexel.edu/repository/data/Assemblies/laser__top.stp STEP file] in the [http://www.designrepository.org/ National Design Repository].&lt;br /&gt;
&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/CadTeapot.x3d CadTeapot] Copied from the Web3D Basic Examples [http://www.web3d.org/x3d/content/examples/Basic/CAD/_pages/page08.html CadTeapot] model but modified so that each of the Appearance nodes for the 4 parts of the teapot is independently defined.&lt;br /&gt;
&lt;br /&gt;
==X3DOM Pages==&lt;br /&gt;
These pages were generated using a modification of the X3dToX3dom.xslt script (modified XSLT stylesheet [http://www.kshell.com/pages/x3dom/x3dom_cad/X3dToX3dom.xslt here]). These pages load the CADGeometry extension to X3DOM after loading the X3DOM core classes.&lt;br /&gt;
&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/no_cad/laser_assembly.xhtml laser_assembly page] The laser_assembly model embedded in a web page rendered with X3DOM.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/no_cad/CadTeapot.xhtml CadTeapot page] The CadTeapot model embedded in a web page rendered with X3DOM.&lt;br /&gt;
&lt;br /&gt;
==X3DOM -- Product structure pages==&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/laser_assembly.xhtml laser_assembly product structure] The laser_assembly model in a page, with additional linked HTML/Javascript elements to display the assembly tree.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/CadTeapot.xhtml CadTeapot product structure] The laser_assembly model in a page, with additional linked HTML/Javascript elements to display the assembly tree.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/retention_clip.xhtml retention_clip] A product structure containing nested assemblies.&lt;br /&gt;
&lt;br /&gt;
==XDOM -- Javascript programming==&lt;br /&gt;
&lt;br /&gt;
The loaded X3D model is part of the document DOM (Document Object Model) and can be searched and manipulated by Javascript code. To ensure that the X3D model is completely loaded and initialized, the X3DOM framework allows the page script to assign a function to the variable x3dom.runtime.ready. This function will be run after the X3DOM code has resolved all external URL's in the X3D model and the rendering objects have been initialized. For example, the following javascript defines a function which searches the DOM tree for CADPart nodes and prints the X3D field 'name' to the browser console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Javascript code to implement manipulating the DOM elements which&lt;br /&gt;
are associated with the CADGeometry component implementation of x3dom.&lt;br /&gt;
&lt;br /&gt;
Vincent Marchetti 2012&lt;br /&gt;
Licensed in same way as X3DOM release 1.5 : http://x3dom.org&lt;br /&gt;
&lt;br /&gt;
Dual licensed under the MIT and GPL.&lt;br /&gt;
http://x3dom.org/download/dev/docs/html/license.html&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
    // save any existing value of the&lt;br /&gt;
    // x3dom.runtime.ready, so it can&lt;br /&gt;
    // be executed along with our code&lt;br /&gt;
    var existing_ready = x3dom.runtime.ready;&lt;br /&gt;
    &lt;br /&gt;
    function print_part_names(){&lt;br /&gt;
        // locate X3D nodes in the DOM tree with standard&lt;br /&gt;
        // Javascript DOM API&lt;br /&gt;
        var parts=x3dElem.getElementsByTagName(&amp;quot;CADPart&amp;quot;);&lt;br /&gt;
        for (var j=0; j&amp;lt;parts.length; ++j)&lt;br /&gt;
            // get the X3D field value from the CADPart&lt;br /&gt;
            // node using the .getattribute member function&lt;br /&gt;
            console.log( parts[j].getAttribute('name'));&lt;br /&gt;
    }&lt;br /&gt;
       &lt;br /&gt;
    // according to X3DOM documentation, setting or overriding&lt;br /&gt;
    // this function is how you perform a desired action just before&lt;br /&gt;
    // the X3D scene to to be rendered, so the X3DOM objects have all been &lt;br /&gt;
    // constructed&lt;br /&gt;
    x3dom.runtime.ready=function(){&lt;br /&gt;
        // Be courteous, let any previously existing function&lt;br /&gt;
        // go first&lt;br /&gt;
        if (existing_ready !== undefined) existing_ready();   &lt;br /&gt;
        // then run our code&lt;br /&gt;
        print_part_names();&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==To Do==&lt;br /&gt;
* Incorporate the product structure display (on the HTML page) as an option in the X3dToX3dom stylesheet.&lt;br /&gt;
* Setup a SourceForge project for ProductStructure, other scripts useful&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3DOM_CAD&amp;diff=6838</id>
		<title>X3DOM CAD</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3DOM_CAD&amp;diff=6838"/>
				<updated>2013-03-29T17:30:18Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Overview:  X3DOM and CAD support ==&lt;br /&gt;
Resources and Issues related to using the CADGeometry component in models incorporated into HTML5 web pages and rendered in a browser pages using X3DOM implemented with Javascript+WebGL or Flash Player&lt;br /&gt;
&lt;br /&gt;
[http://www.x3dom.org X3DOM] is one way to integrate an X3D model into into an HTML5 web document (see [[X3D_and_HTML5]] ). The X3DOM implementation is a library of Javascript classes and functions which, after an HTML5 document is loaded, search the Document Object Model (DOM) tree of the document for X3D elements and renders the content in an HTML5 canvas element using WebGL calls or else Flash Player, on browsers that do not suport WebGL. The Javascript code is open source and available  in a [http://github.com/x3dom/x3dom  Github project]. The Javascript code can also be loaded from a single minimized script at URL http://www.x3dom.org/x3dom/example/x3dom.js . X3DOM offers a partial but expanding coverage of X3D nodes; the nodes which can be rendered using X3DOM in an HTML5 page is documented in the [http://x3dom.org/x3dom/test/functional/dumpNodeTypeTree.html Node Type Tree]. The X3DOM classes themselves do not implement any of the nodes in the CADGeometry component. (As of version 1.4; March 2013)&lt;br /&gt;
The coverage of X3D nodes can be extended through additional Javascript code which extends the X3DOM classes (see [http://x3dom.org/docs/dev/components.html X3DOM Components])&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/stylesheets/X3dToX3dom.xslt X3dToX3dom.xslt] is an XSLT 2 stylesheet which will generate an HTML5 document embedding an X3D input model. This stylesheet can be run using a stand-alone XSLT2 engine or from within the [https://savage.nps.eduX3D-Edit/ X3D-Edit] tool.&lt;br /&gt;
&lt;br /&gt;
[http://www.kshell.com/pages/x3dom/x3dom_cad/scripts/CADGeometry.js CADGeometry.js] Javascript code implementing the CADLayer, CADAssembly, CADFace, and CADPart nodes of the X3D [http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/CADGeometry.html CADGeometry] component. This Javascript should be loaded by a webpage '''''after''''' the core components of the X3DOM Javascript have been loaded. Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.x3dom.org/x3dom/example/x3dom.js&amp;lt;/nowiki&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.kshell.com/pages/x3dom/x3dom_cad/scripts/CADGeometry.js&amp;lt;/nowiki&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X3D Models==&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/laser_assembly.x3d laser_assembly] Converted from a [http://gicl.cs.drexel.edu/repository/data/Assemblies/laser__top.stp STEP file] in the [http://www.designrepository.org/ National Design Repository].&lt;br /&gt;
&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/CadTeapot.x3d CadTeapot] Copied from the Web3D Basic Examples [http://www.web3d.org/x3d/content/examples/Basic/CAD/_pages/page08.html CadTeapot] model but modified so that each of the Appearance nodes for the 4 parts of the teapot is independently defined.&lt;br /&gt;
&lt;br /&gt;
==X3DOM Pages==&lt;br /&gt;
These pages were generated using a modification of the X3dToX3dom.xslt script (modified XSLT stylesheet [http://www.kshell.com/pages/x3dom/x3dom_cad/X3dToX3dom.xslt here]). These pages load the CADGeometry extension to X3DOM after loading the X3DOM core classes.&lt;br /&gt;
&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/no_cad/laser_assembly.xhtml laser_assembly page] The laser_assembly model embedded in a web page rendered with X3DOM.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/no_cad/CadTeapot.xhtml CadTeapot page] The CadTeapot model embedded in a web page rendered with X3DOM.&lt;br /&gt;
&lt;br /&gt;
==X3DOM -- Product structure pages==&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/laser_assembly.xhtml laser_assembly product structure] The laser_assembly model in a page, with additional linked HTML/Javascript elements to display the assembly tree.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/CadTeapot.xhtml CadTeapot product structure] The laser_assembly model in a page, with additional linked HTML/Javascript elements to display the assembly tree.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/retention_clip.xhtml retention_clip] A product structure containing nested assemblies.&lt;br /&gt;
&lt;br /&gt;
==XDOM -- Javascript programming==&lt;br /&gt;
&lt;br /&gt;
The loaded X3D model is part of the document DOM (Document Object Model) and can be searched and manipulated by Javascript code. To ensure that the X3D model is completely loaded and initialized, the X3DOM framework allows the page script to assign a function to the variable x3dom.runtime.ready. This function will be run after the X3DOM code has resolved all external URL's in the X3D model and the rendering objects have been initialized. For example, the following javascript defines a function which searches the DOM tree for CADPart nodes and prints the X3D field 'name' to the browser console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Javascript code to implement manipulating the DOM elements which&lt;br /&gt;
are associated with the CADGeometry component implementation of x3dom.&lt;br /&gt;
&lt;br /&gt;
Vincent Marchetti 2012&lt;br /&gt;
Licensed in same way as X3DOM release 1.5 : http://x3dom.org&lt;br /&gt;
&lt;br /&gt;
Dual licensed under the MIT and GPL.&lt;br /&gt;
http://x3dom.org/download/dev/docs/html/license.html&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
    // save any existing value of the&lt;br /&gt;
    // x3dom.runtime.ready, so it can&lt;br /&gt;
    // be executed along with our code&lt;br /&gt;
    var existing_ready = x3dom.runtime.ready;&lt;br /&gt;
    &lt;br /&gt;
    function print_part_names(){&lt;br /&gt;
        // locate X3D nodes in the DOM tree with standard&lt;br /&gt;
        // Javascript DOM API&lt;br /&gt;
        var parts=x3dElem.getElementsByTagName(&amp;quot;CADPart&amp;quot;);&lt;br /&gt;
        for (var j=0; j&amp;lt;parts.length; ++j)&lt;br /&gt;
            // get the X3D field value from the CADPart&lt;br /&gt;
            // node using the .getattribute member function&lt;br /&gt;
            console.log( parts[j].getAttribute('name'));&lt;br /&gt;
    }&lt;br /&gt;
       &lt;br /&gt;
    // according to X3DOM documentation, setting or overriding&lt;br /&gt;
    // this function is how you perform a desired action just before&lt;br /&gt;
    // the X3D scene to to be rendered, so the X3DOM objects have all been &lt;br /&gt;
    // constructed&lt;br /&gt;
    x3dom.runtime.ready=function(){&lt;br /&gt;
        // Be courteous, let any previously existing function&lt;br /&gt;
        // go first&lt;br /&gt;
        if (existing_ready !== undefined) existing_ready();   &lt;br /&gt;
        // then run our code&lt;br /&gt;
        print_part_names();&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	<entry>
		<id>https://www.old.web3d.org/wiki/index.php?title=X3DOM_CAD&amp;diff=6837</id>
		<title>X3DOM CAD</title>
		<link rel="alternate" type="text/html" href="https://www.old.web3d.org/wiki/index.php?title=X3DOM_CAD&amp;diff=6837"/>
				<updated>2013-03-29T17:22:49Z</updated>
		
		<summary type="html">&lt;p&gt;Vmarchetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Overview:  X3DOM and CAD support ==&lt;br /&gt;
Resources and Issues related to using the CADGeometry component in models incorporated into HTML5 web pages and rendered in a browser pages using X3DOM implemented with Javascript+WebGL or Flash Player&lt;br /&gt;
&lt;br /&gt;
[http://www.x3dom.org X3DOM] is one way to integrate an X3D model into into an HTML5 web document (see [[X3D_and_HTML5]] ). The X3DOM implementation is a library of Javascript classes and functions which, after an HTML5 document is loaded, search the Document Object Model (DOM) tree of the document for X3D elements and renders the content in an HTML5 canvas element using WebGL calls or else Flash Player, on browsers that do not suport WebGL. The Javascript code is open source and available  in a [http://github.com/x3dom/x3dom  Github project]. The Javascript code can also be loaded from a single minimized script at URL http://www.x3dom.org/x3dom/example/x3dom.js . X3DOM offers a partial but expanding coverage of X3D nodes; the nodes which can be rendered using X3DOM in an HTML5 page is documented in the [http://x3dom.org/x3dom/test/functional/dumpNodeTypeTree.html Node Type Tree]. The X3DOM classes themselves do not implement any of the nodes in the CADGeometry component. (As of version 1.4; March 2013)&lt;br /&gt;
The coverage of X3D nodes can be extended through additional Javascript code which extends the X3DOM classes (see [http://x3dom.org/docs/dev/components.html X3DOM Components])&lt;br /&gt;
&lt;br /&gt;
[http://www.web3d.org/x3d/stylesheets/X3dToX3dom.xslt X3dToX3dom.xslt] is an XSLT 2 stylesheet which will generate an HTML5 document embedding an X3D input model. This stylesheet can be run using a stand-alone XSLT2 engine or from within the [https://savage.nps.eduX3D-Edit/ X3D-Edit] tool.&lt;br /&gt;
&lt;br /&gt;
[http://www.kshell.com/pages/x3dom/x3dom_cad/scripts/CADGeometry.js CADGeometry.js] Javascript code implementing the CADLayer, CADAssembly, CADFace, and CADPart nodes of the X3D [http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/CADGeometry.html CADGeometry] component. This Javascript should be loaded by a webpage '''''after''''' the core components of the X3DOM Javascript have been loaded. Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.x3dom.org/x3dom/example/x3dom.js&amp;lt;/nowiki&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.kshell.com/pages/x3dom/x3dom_cad/scripts/CADGeometry.js&amp;lt;/nowiki&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X3D Models==&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/laser_assembly.x3d laser_assembly] Converted from a [http://gicl.cs.drexel.edu/repository/data/Assemblies/laser__top.stp STEP file] in the [http://www.designrepository.org/ National Design Repository].&lt;br /&gt;
&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/CadTeapot.x3d CadTeapot] Copied from the Web3D Basic Examples [http://www.web3d.org/x3d/content/examples/Basic/CAD/_pages/page08.html CadTeapot] model but modified so that each of the Appearance nodes for the 4 parts of the teapot is independently defined.&lt;br /&gt;
&lt;br /&gt;
==X3DOM Pages==&lt;br /&gt;
These pages were generated using a modification of the X3dToX3dom.xslt script (modified XSLT stylesheet [http://www.kshell.com/pages/x3dom/x3dom_cad/X3dToX3dom.xslt here]). These pages load the CADGeometry extension to X3DOM after loading the X3DOM core classes.&lt;br /&gt;
&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/no_cad/laser_assembly.xhtml laser_assembly page] The laser_assembly model embedded in a web page rendered with X3DOM.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/no_cad/CadTeapot.xhtml CadTeapot page] The CadTeapot model embedded in a web page rendered with X3DOM.&lt;br /&gt;
&lt;br /&gt;
==X3DOM -- Product structure pages==&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/laser_assembly.xhtml laser_assembly product structure] The laser_assembly model in a page, with additional linked HTML/Javascript elements to display the assembly tree.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/CadTeapot.xhtml CadTeapot product structure] The laser_assembly model in a page, with additional linked HTML/Javascript elements to display the assembly tree.&lt;br /&gt;
* [http://www.kshell.com/pages/x3dom/x3dom_cad/transparency/retention_clip.xhtml retention_clip] A product structure containing nested assemblies.&lt;br /&gt;
&lt;br /&gt;
==XDOM -- Javascript programming==&lt;br /&gt;
&lt;br /&gt;
The loaded X3D model is part of the document DOM (Document Object Model) and can be searched and manipulated by Javascript code. To ensure that the X3D model is completely loaded and initialized, the X3DOM framework allows the page script to assign a function to the variable x3dom.runtime.ready. This function will be run after the X3DOM code has resolved all external URL's in the X3D model and the rendering objects have been initialized. For example, the following javascript defines a function which searches the DOM tree for CADPart nodes and prints the X3D field 'name' to the browser console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Javascript code to implement manipulating the DOM elements which&lt;br /&gt;
are associated with the CADGeometry component implementation of x3dom.&lt;br /&gt;
&lt;br /&gt;
Vincent Marchetti 2012&lt;br /&gt;
Licensed in same way as X3DOM release 1.5 : http://x3dom.org&lt;br /&gt;
&lt;br /&gt;
Dual licensed under the MIT and GPL.&lt;br /&gt;
http://x3dom.org/download/dev/docs/html/license.html&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
    // save any existing value of the&lt;br /&gt;
    // x3dom.runtime.ready, so it can&lt;br /&gt;
    // be executed along with our code&lt;br /&gt;
    var existing_ready = x3dom.runtime.ready;&lt;br /&gt;
    &lt;br /&gt;
    function print_part_names(){&lt;br /&gt;
        // locate X3D nodes in the DOM tree with standard&lt;br /&gt;
        // Javascript DOM API&lt;br /&gt;
        var parts=x3dElem.getElementsByTagName(&amp;quot;CADPart&amp;quot;);&lt;br /&gt;
        for (var j=0; j&amp;lt;parts.length; ++j)&lt;br /&gt;
            // get the X3D field value from the CADPart&lt;br /&gt;
            // node using the .getattribute member function&lt;br /&gt;
            console.log( parts[j].getAttribute('name'));&lt;br /&gt;
    }&lt;br /&gt;
       &lt;br /&gt;
    // according to X3DOM documentation, setting or overriding&lt;br /&gt;
    // this function is how you perform a desired action just before&lt;br /&gt;
    // the X3D scene to to be rendered, so the X3DOM objects have all been &lt;br /&gt;
    // constructed&lt;br /&gt;
    x3dom.runtime.ready=function(){&lt;br /&gt;
        // Be courteous, let any previously existing function&lt;br /&gt;
        // go first&lt;br /&gt;
        if (existing_ready !== undefined) existing_ready();   &lt;br /&gt;
        // then run our code&lt;br /&gt;
        print_part_names();&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vmarchetti</name></author>	</entry>

	</feed>