<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Here’s my “working” test site, for those who doubt <span style='font-family:"Segoe UI Emoji",sans-serif'>😊</span>!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><a href="https://coderextreme.net/X3DJSONLD/src/main/html/prototypes.html">https://coderextreme.net/X3DJSONLD/src/main/html/prototypes.html</a></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Thursday, June 28, 2018 5:30 PM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:cad@web3d.org">X3D Design Printing and Scanning working group</a>; <a href="mailto:christophe.mouton@edf.fr">christophe.mouton@edf.fr</a>; <a href="mailto:vmarchetti@kshell.com">Vincent Marchetti</a>; <a href="mailto:vmarchetti@ameritech.net">Vincent Marchetti</a>; <a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Subject: </b>Ways to use X3D JSON SAI today! Become a beta tester!</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Include <a href="https://www.x3dom.org/download/dev/x3dom-full.js">https://www.x3dom.org/download/dev/x3dom-full.js</a>.  See documentation on x3dom.Runtime.prototype.createX3DFromJS and x3dom.Runtime.prototype.replaceWorld<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Generally, this is done like the following for X3DOM:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>var doc = document.querySelector(selector);<o:p></o:p></p><p class=MsoNormal>if (doc.hasRuntime && doc.runtime.ready) {<o:p></o:p></p><p class=MsoNormal>                            var x3d = doc.runtime.createX3DFromJS(jsobj, optionalURL)<o:p></o:p></p><p class=MsoNormal>                            if (x3d != null) {<o:p></o:p></p><p class=MsoNormal>                                    try {<o:p></o:p></p><p class=MsoNormal>                                        doc.runtime.replaceWorld(x3d);<o:p></o:p></p><p class=MsoNormal>                                    } catch (e) {<o:p></o:p></p><p class=MsoNormal>                                            console.error(e);<o:p></o:p></p><p class=MsoNormal>                                            alert(e);<o:p></o:p></p><p class=MsoNormal>                                    }<o:p></o:p></p><p class=MsoNormal>                            } else {<o:p></o:p></p><p class=MsoNormal>                                    x3dom.debug.logError("createX3DFromJS: could not fetch or parse " + jsobj);<o:p></o:p></p><p class=MsoNormal>                            }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>Include <a href="https://cdn.rawgit.com/create3000/x_ite/4.2.2/dist/x_ite.min.js">https://cdn.rawgit.com/create3000/x_ite/4.2.2/dist/x_ite.min.js</a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Then call Browser.importJS and Browser.replaceWorld, for X_ITE, like:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>        X3D(function() {<o:p></o:p></p><p class=MsoNormal>                if (typeof X3D.getBrowser !== 'undefined') {<o:p></o:p></p><p class=MsoNormal>                        var browser = X3D.getBrowser(selector);<o:p></o:p></p><p class=MsoNormal>                        if (typeof browser !== 'undefined' && typeof browser.importJS !== 'undefined') {<o:p></o:p></p><p class=MsoNormal>                                var importedScene = browser.importJS(jsobj);<o:p></o:p></p><p class=MsoNormal>                                browser.replaceWorld(importedScene);<o:p></o:p></p><p class=MsoNormal>                        }<o:p></o:p></p><p class=MsoNormal>                }<o:p></o:p></p><p class=MsoNormal>        }, function() {<o:p></o:p></p><p class=MsoNormal>                alert("Failed to render JSON to X_ITE");<o:p></o:p></p><p class=MsoNormal>        });<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>While this is close to a common interface, it’s not quite there yet. And if X3DOM and X_ITE are running in the same application, they need to be distinguished somehow.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Note, these have not been tested extensively in current versions, so if you try them and they don’t work, file a bug!  I will be testing them RSN. Join me!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>