[x3d-public] jupyter notebook; X3DOM syntax forincludingX3DwithinHTML

John Carlson yottzumm at gmail.com
Sun Jun 2 13:28:06 PDT 2019


If we do deprecate X3DCanvas tags, do we also deprecate 2+ browser apps
like X3DJSONLD?  Will I be able to use iframes or similar? I already know
that X3DOM has X_ITE browsers in some of its loops.   Some how that is
magically taken care of.   Would it be possible to use an XML namespace to
distinguish the two?

I do think that Andreas had an iframe demo at one point.

John

On Sun, Jun 2, 2019 at 8:02 AM John Carlson <yottzumm at gmail.com> wrote:

> Yes, they do now!
>
>
>
> Thanks,
>
>
>
> Now I have to fix my X3DOM examples to use MFStrings.
>
>
>
> John
>
>
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>
> *From: *Holger Seelig <holger.seelig at googlemail.com>
> *Sent: *Sunday, June 2, 2019 2:49 AM
> *To: *x3d-public at web3d.org
> *Subject: *Re: [x3d-public] jupyter notebook; X3DOM syntax
> forincludingX3DwithinHTML
>
>
>
> The are some issues with the example. To get it work first include the
> latest version of X_ITE AND x_ite_dom!
>
> <link rel="stylesheet" type="text/css" href=
> "https://code.create3000.de/x_ite/4.5.3/dist/x_ite.css"
> <https://code.create3000.de/x_ite/4.5.3/dist/x_ite.css>/>
> <script type="text/javascript" src=
> "https://code.create3000.de/x_ite/4.5.3/dist/x_ite.min.js"
> <https://code.create3000.de/x_ite/4.5.3/dist/x_ite.min.js>></script>
> <script type="text/javascript" src=
> "https://raw.githack.com/andreasplesch/x_ite_dom/master/release/x_ite_dom.1.1.js"
> <https://raw.githack.com/andreasplesch/x_ite_dom/master/release/x_ite_dom.1.1.js>
> ></script>
>
> The second issue is, that the url of the Inline node must be wrapped in
> double quotes AND single quotes because it is an MFString field:
>
> <Inline url='"ArchHalf.x3d"'></Inline>
>
> Then the example should work.
>
> Best regards,
> Holger
>
>
>
> On 02.06.19 07:42, John Carlson wrote:
>
> Someone can try modifying this example:
>
>
>
> https://coderextreme.net/X3DJSONLD/src/main/html/x_iteexamples3.html
>
>
>
> It appears that Inlines don’t work with JSON or XML in  X_ITE?  I’m
> missing the main scene or something?
>
>
>
> I can make it work with src on the X3DCanvas tag.  What matters now is can
> we make it work like we want.
>
>
>
> FYI,
>
>
>
> John
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>
> *From: *John Carlson <yottzumm at gmail.com>
> *Sent: *Sunday, June 2, 2019 12:00 AM
> *To: *Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; Andreas Plesch
> <andreasplesch at gmail.com>
> *Cc: *X3D Graphics public mailing list <x3d-public at web3d.org>
> *Subject: *RE: [x3d-public] jupyter notebook; X3DOM syntax for
> includingX3Dwithin HTML
>
>
>
> See variety of inputs into web page (X_ITE and X3DOM) here:
>
>
>
>
>
> https://coderextreme.net/X3DJSONLD/src/main/html/index.html
>
>
>
> I believe I either use XML or DOM to get the JSON or XML scene into the
> page, even though on the surface, I may be working with JSON.
>
>
>
> Excerpt for XML:
>
>
>
>     <X3D xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
> <http://www.w3.org/2001/XMLSchema-instance> profile="Immersive"
> version="3.3" xsd:noNamespaceSchemaLocation=
> "http://www.web3d.org/specifications/x3d-3.3.xsd"
> <http://www.web3d.org/specifications/x3d-3.3.xsd> showProgress="false"
> showStat='false' showLog='false' width='150px' height='75px'
> backend='webgl'>
>
>                 <Scene id="x3domxml">
>
>                 </Scene>
>
>     </X3D>
>
>     <X3DCanvas id='x_itexml' cache='false'>
>
>            <p>Your browser may not support all features required by
> X_ITE!</p>
>
>            <X3D>
>
>            <Scene>
>
>            </Scene>
>
>            </X3D>
>
>     </X3DCanvas>
>
>
> ============================================================================================================
>
> function load_X_ITE_XML(content, selector) {
>
>         X3D(function() {
>
>                 var browser = X3D.getBrowser(selector);
>
>                 browser.replaceWorld(browser.createX3DFromString(content));
>
>         }, function() {
>
>                 alert("Failed to render XML to X_ITE");
>
>         });
>
> }
>
> /** for X3DOM **/
>
>                      var doc = document.querySelector(selector);
>
>                         if (doc.hasRuntime && doc.runtime.ready) {
>
>                                 try {
>
>                                         doc.runtime.replaceWorld(element);
>
>                                 } catch (e) {
>
>                                         alert(e);
>
>                                         console.error(e);
>
>                                 }
>
>                         }
>
>
>
>
>
> So it appears possible to load X3D via JavaScript (not an Inline, but
> follow me).
>
>
>
> It would be instructive to create an equivalent mechanism via inlines.  I
> believe this has been shown:
>
>
>
> https://coderextreme.net/X3DJSONLD/src/main/html/x_iteexamples.html (note
> missing X3D element, hmm)
>
>
>
> https://coderextreme.net/X3DJSONLD/src/main/html/x3domexamples3.html
>
>
> If you like, you may show the equivalent for XML (It would be best to try
> with VRML as well, I haven’t done that).
>
>
>
> Enjoy!  Wow, feels good working together folks!
>
>
>
> It would be problematic to use both X_ITE and X3DOM if X_ITE on the same
> page if you relied only on X3D nodes like X3DOM does.   It would be hard to
> distinguish which browser to use if only X3D tags are used.
>
>
>
> Perhaps we need an official X3D tag implementation that can forward to
> either X3DOM or X_ITE based on an attribute?
>
>
>
> John
>
>
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>
> *From: *Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
> *Sent: *Saturday, June 1, 2019 11:23 PM
> *To: *Andreas Plesch <andreasplesch at gmail.com>; John Carlson
> <yottzumm at gmail.com>
> *Cc: *X3D Graphics public mailing list <x3d-public at web3d.org>
> *Subject: *Re: [x3d-public] jupyter notebook; X3DOM syntax for including
> X3Dwithin HTML
>
>
>
> Thanks for continuing scrutiny, this issue is quite important for X3Dv4
> specification efforts.
>
>
>
> I think an earlier version of X_ITE used regular X3D elements without
> problem - not sure, that was some time ago.  Hard to tell now since the
> online .html examples all seem to use <X3DCanvas src="somesuch"><!--
> fallback --></X3DCanvas>
>
>
>
> I spot-checked a few of the examples, am seeing same X3DCanvas pattern at
>
> http://create3000.de/x_ite/getting-started/#x3d-examples
>
>
>
> Perhaps X3DOM is avoiding direct inclusion and parsing of .x3d source for
> same reason?
>
>
>
> Looks like you've worked on this in X_ITE already Andreas
>
>
>
> * http://create3000.de/x_ite/getting-started/#xhtml-dom-integration
>
>
>
> * http://create3000.de/x_ite/xhtml-dom-integration/
>
>
>
> * http://create3000.de/x_ite/xhtml-dom-integration/#example
>
>
>
> *
> http://media.create3000.de/create3000/dom-integration/dom.integration.xhtml
>
> excerpt:
>
>                 <body>
>
>                                 <X3DCanvas class="browser" timings="false">
>
>                                                 <img class="fallback"
> src="XHTML.png"/>
>
>                                                 <X3D xmlns=
> "http://www.web3d.org/specifications/x3d-namespace"
> <http://www.web3d.org/specifications/x3d-namespace> id="spheres">
>
>                                                                 <Scene
> DEF='scene'>
>
>
>
> Wondering if you had tried a .html version of that preceding file, and
> what any difficulties might have been?
>
>
>
> Wondering why you have a DEF on the <Scene> ?  If applying HTML events,
> presumably it could be an id="scene" reference instead.
>
>
>
> SVG recommendation allows singleton elements in fragments within HTML,
> also seems to sometimes use namespaces and sometimes not.  Also SVG appears
> to have at least 2 lowerCamelCase elements, clipPath and foreignObject,
> plus a large number of lowerCamelCase attributes - so not every
> element/attribute has to be all lower case.
>
>
>
>                 Scalable Vector Graphics (SVG) 2
>
>                 W3C Candidate Recommendation 04 October 2018
>
>
>
>                 Chapter 5: Document Structure
>
>                 https://www.w3.org/TR/SVG2/struct.html
>
>
>
> Also wondering if you folks think that the <X3DCanvas src=""/> pattern
> from X_ITE is something we should repeat for X3DOM.  Seems like a good
> fallback that supports multiple X3D encodings.
>
>
>
> I recommend that we try to pursue every possibility that might allow
> inclusion of .x3d (XML valid) models "as is" within the HTML page.
> Certainly the fact that they work when relabeled as an XHTML page shows
> that it is possible.  SVG also provides corrolary evidence that it is
> possible.  If we force a special conversion of all X3D models used in HTML,
> then
>
> - that has a huge impact on the number of just-slightly-different scenes
> that get created,
>
> - it greatly complicates validation, and
>
> - it also is a huge negative when trying to edit/test/apply improvements
> to a model when the deployed version has unnecessarily different syntax
> from the original version.
>
>
>
> As far as jupyter goes, since that notebook supports python and a wide
> variety of embedded languages I expect that we will be able to align
> satisfactorily as this work proceeds - you've made great progress already.
>
>
>
> Onward...
>
>
>
> On 5/31/2019 5:56 PM, Andreas Plesch wrote:
>
> > Well, if it was xhtml we were talking about you would be correct.
>
> >
>
> > But, it is html without the x which is expected by the HTML renderer
>
> > in Jupyter. There is no XHTML renderer since the Jupyter notebook
>
> > itself is a HTML document.
>
> >
>
> > And html allows singleton tags only for certain tags, at least in how
>
> > all browser parse the markup, and probably also as defined in the
>
> > HTML5 spec. These certain tags may include all known HTML elements
>
> > which do not use their text content. Unfortunately, the X3D tags are
>
> > considered Unknown Elements by html and they seem to require the
>
> > explicit end tag.
>
> >
>
> > x3dom does not use any HTML parsing libraries but completely relies on
>
> > the web browser to do the parsing. And the browsers get confused,
>
> > because they do not understand the singleton x3d tags in a html
>
> > document.
>
> >
>
> > Alas, if the xml serializing library in X3DJSAIL does not have an
>
> > option to generate full tags (they would be still legal XML, no?), we
>
> > would need to settle for xhtml IFrames which can also be included in a
>
> > Jupyter notebook (but not tested yet), or, as another option, wrap the
>
> > xml X3D into an Inline since x3dom always uses the browser XML parser
>
> > for Inlines. Would x3d.toStringX3DInline(filename) be considered too
>
> > extravagant ? It would generate an xml X3D document string with a
>
> > single Inline node, and also the content X3D in the file filename.
>
> > x3d.toFileX3DInline(x3dFileName, inlineFileName) would generate two
>
> > files.
>
> >
>
> > Perhaps Python has an option to serialize out the full tags, perhaps
>
> > as HTMLFragments. Then a x3d.toStringFullTags() could be included
>
> > outside of X3DJSAIL, and with X3DPSAIL.
>
> >
>
> > To consider X_ITE and x3dom together it would be first necessary get
>
> > X_ITE to work at all with Jupyter locally generated content. It may be
>
> > possible since X_ITE works with remote URLs in Jupyter.
>
> >
>
> > -Andreas
>
> >
>
> > ---on the phone---
>
> >
>
> > On Fri, May 31, 2019, 5:14 PM <x3d-public-request at web3d.org wrote:
>
> >>
>
> >> Send x3d-public mailing list submissions to
>
> >>          x3d-public at web3d.org
>
> >>
>
> >> To subscribe or unsubscribe via the World Wide Web, visit
>
> >>          http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
> >> or, via email, send a message with subject or body 'help' to
>
> >>          x3d-public-request at web3d.org
>
> >>
>
> >> You can reach the person managing the list at
>
> >>          x3d-public-owner at web3d.org
>
> >>
>
> >> When replying, please edit your Subject line so it is more specific
>
> >> than "Re: Contents of x3d-public digest..."
>
> >>
>
> >>
>
> >> Today's Topics:
>
> >>
>
> >>     1. Re: jupyter notebook; X3DOM syntax for including X3D within
>
> >>        HTML/XHTML (Brutzman, Donald (Don) (CIV))
>
> >>
>
> >>
>
> >> ----------------------------------------------------------------------
>
> >>
>
> >> Message: 1
>
> >> Date: Fri, 31 May 2019 10:14:05 +0000
>
> >> From: "Brutzman, Donald (Don) (CIV)" <brutzman at nps.edu>
> <brutzman at nps.edu>
>
> >> To: "x3d-public at web3d.org" <x3d-public at web3d.org>
> <x3d-public at web3d.org> <x3d-public at web3d.org>
>
> >> Subject: Re: [x3d-public] jupyter notebook; X3DOM syntax for including
>
> >>          X3D within HTML/XHTML
>
> >> Message-ID: <b6c49fa9-6afc-34fe-ee57-59f0ad5fc99d at nps.edu>
> <b6c49fa9-6afc-34fe-ee57-59f0ad5fc99d at nps.edu>
>
> >> Content-Type: text/plain; charset="utf-8"
>
> >>
>
> >> thanks for great progress.
>
> >>
>
> >> On 5/28/2019 12:12 PM, Andreas Plesch wrote:
>
> >>> - x3dom has a problem with generated X3D outside of an Inline because
>
> >>> the serialized XML output uses self-closing tags such as <Material />
>
> >>> which is not HTML compatible.
>
> >>
>
> >> HTML allows singleton elements, i.e. self-closing tags.
>
> >>
>
> >> Similarly, element CamelCaseElementNames are legal, so we should not
> have to rename <Material/> to <material></material> simply because of
> similarity to another language's naming patterns.
>
> >>
>
> >> i think root of this problem likely lies in how X3DOM uses the
> accompanying DOM libraries - not sure of those details.
>
> >>
>
> >> Note that I got *all* of the X_ITE and X3DOM examples to work with HTML
> by assigning scenes to .html and .xhtml respectively.
>
> >>
>
> >> http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples
>
> >>
>
> >>
> http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorldIndex.html
>
> >>
> http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorldX3dom.xhtml
>
> >>
> http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorldX_ITE.html
>
> >>
>
> >>> So the suggestion would be to provide a method, say
>
> >>> x3d.toStringX3DClosingTags(), which generates explicit closing tags:
>
> >>> <Material></Material>
>
> >>
>
> >> I don't think it is good to propagate a side-effect fix (which
> encourages mysterious improper practices and hides path towards fixes).
>
> >>
>
> >> Rather it is more desirable to isolate and fix the actual problem.  If
> someone can figure out why X3DOM runs differently when included within
> .xhtml and .html pages, that may reveal whatever idiosyncrasy is actually
> occurring.
>
> >>
>
> >> Finally we want to match the same patterns in X_ITE and X3DOM so that
> choice of player is independent of source-model syntax when using X3D
> version 4.  So this is a worthy mismatch to figure out and fix.  Hopefully
> we can get closer to sorting things out fully.
>
> >>
>
> >> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> >>
>
> >> Meanwhile: found and fixed several errors in online X3DOM .xhtml
> examples:
>
> >> - corrected url to match changed release address:
>
> >>     https://x3dom.org/release/x3dom.css
>
> >>     https://x3dom.org/release/x3dom-full.js
>
> >>
>
> >> - fixed bug in X3dToX3dom.xslt code logic in order to include function
> toggleFullscreen ()
>
> >>
>
> >> - using XHTML Transitional (vice Strict) DTD in order for anchor target
> attribute to pass validation
>
> >>
> https://stackoverflow.com/questions/4666523/xhtml-strict-1-0-target-blank-not-valid
>
> >>
>
> >> X3dToX3dom.xslt stylesheet correction checked in, X3DOM example pages
> updated and uploaded.  Having fun with X3DOM!  8)
>
> >>
>
> >> all the best, Don
>
> >> --
>
> >> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> >> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> >> X3D graphics, virtual worlds, navy robotics
> http://faculty.nps.edu/brutzman
>
> >>
>
> >> ------------------------------
>
> >>
>
> >> Subject: Digest Footer
>
> >>
>
> >> _______________________________________________
>
> >> x3d-public mailing list
>
> >> x3d-public at web3d.org
>
> >> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
> >>
>
> >>
>
> >> ------------------------------
>
> >>
>
> >> End of x3d-public Digest, Vol 122, Issue 137
>
> >> ********************************************
>
> >
>
> > _______________________________________________
>
> > x3d-public mailing list
>
> > x3d-public at web3d.org
>
> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
> >
>
>
>
>
>
> all the best, Don
>
> --
>
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
>
> X3D graphics, virtual worlds, navy robotics
> http://faculty.nps.edu/brutzman
>
>
>
>
>
>
>
>
>
> _______________________________________________
>
> x3d-public mailing list
>
> x3d-public at web3d.org
>
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
> --
>
> Holger Seelig
>
> Digital Media Designer
>
>
>
> Scheffelstraße 31a
>
> 04277 Leipzig
>
> Germany
>
>
>
> Cellular: +49 176 420 479 37
>
> E-Mail:   holger.seelig at create3000.de
>
> Web:      http://create3000.de
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190602/e723c33b/attachment-0001.html>


More information about the x3d-public mailing list