<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:"Yu Gothic";
        panose-1:2 11 4 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@Yu Gothic";
        panose-1:2 11 4 0 0 0 0 0 0 0;}
/* 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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.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>Thanks to everyone who got this code running.  A bit of community work got my brain working, and I found a solution in my serializer.   Are we due for an announcement of X3DPSAIL, or Python for X3DJSAIL (PY4X3DJSAIL)? I can start collecting documentation,  but I’d like someone to test more.  See:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><a href="https://github.com/coderextrextreme/pythonSAI">https://github.com/coderextrextreme/pythonSAI</a></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In particular, people should compare the .x3d’s to the generated .new.x3d’s. I can provide assistance, but really someone should test besides the developer.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Yes, there are a few bugs left over for us to fix, but I’m not sure if the fixes are in X3DPSAIL or X3DJSAIL—or just by modifying the python code for non-ASCII characters.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Also, we need to decide on how to document a Python SAI interface standard? Can it be based on the X3DJSAIL Javadoc? Minus chaining of course.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Maybe we could follow along with the OM4X3D naming, PY4X3D, J4X3D, JS4X3D, C4X3D, C++4X3D, C#4X3D.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Also, we need to fix this error:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>File "TextSpecialCharacters.py", line 96</p><p class=MsoNormal>SyntaxError: Non-ASCII character '\xce' in file TextSpecialCharacters.py on line 96, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Someone can look into this for me.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks for your help!  Happy Pythoning!</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><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>Friday, August 11, 2017 12:54 PM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Cc: </b><a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a>; <a href="mailto:mwlee@suwon.ac.kr">Myeong Won Lee</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:aono@tut.jp">aono@tut.jp</a><br><b>Subject: </b>RE: I played a little. Re: Scene AccessInterface:autogeneratingPython</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Don, the problem is that the interface method setDEF() return type overrides the implementing class’ return type.  I think perhaps the interface methods should go *<b>last</b>* in the chain. I will think about how to do this in my serializer.  Why does this work in Java and Nashorn?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Meanwhile, I think unchaining the set methods should do the trick for Python (crosses fingers).<o:p></o:p></p><p class=MsoNormal><br>New Python Serializer checked in here:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>https://github.com/coderextreme/pythonSAI/blob/master/PythonSerializer.js<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks,<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><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Friday, August 11, 2017 12:13 PM<br><b>To: </b><a href="mailto:aono@tut.jp">Masaki Aono</a><br><b>Cc: </b><a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a>; <a href="mailto:brutzman@nps.edu">Don Brutzman</a>; <a href="mailto:mwlee@suwon.ac.kr">Myeong Won Lee</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>RE: I played a little. Re: Scene Access Interface:autogeneratingPython<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Masaki,<o:p></o:p></p><p class=MsoNormal><br>Thank you for putting up with errors in my code. I have a new HelloWorld.py for you to try. It may work for you, but it doesn’t work for me.   I get different errors. Could you tell me how you set your CLASSPATH to include X3DJSAIL?  I think I accidentally removed that from my code.  Oops!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Attached.<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><p class=MsoNormal>$ python HelloWorld.py<o:p></o:p></p><p class=MsoNormal>Traceback (most recent call last):<o:p></o:p></p><p class=MsoNormal>  File "HelloWorld.py", line 2, in <module><o:p></o:p></p><p class=MsoNormal>    from X3Dautoclass import *<o:p></o:p></p><p class=MsoNormal>  File "C:\Users\coderextreme\X3DJSONLD\src\main\python\X3Dautoclass.py", line 320, in <module><o:p></o:p></p><p class=MsoNormal>    X3DObject = autoclass('org.web3d.x3d.jsail.Core.X3DObject')<o:p></o:p></p><p class=MsoNormal>  File "C:\Users\coderextreme\AppData\Local\Programs\Python\Python36\lib\site-packages\jnius\reflect.py", line 158, in autoclass<o:p></o:p></p><p class=MsoNormal>    c = find_javaclass(clsname)<o:p></o:p></p><p class=MsoNormal>  File "jnius\jnius_export_func.pxi", line 25, in jnius.find_javaclass (jnius\jnius.c:16918)<o:p></o:p></p><p class=MsoNormal>jnius.JavaException: Class not found b'org/web3d/x3d/jsail/Core/X3DObject'<o:p></o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Friday, August 11, 2017 11:49 AM<br><b>To: </b><a href="mailto:aono@tut.jp">Masaki Aono</a><br><b>Cc: </b><a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a>; <a href="mailto:brutzman@nps.edu">Don Brutzman</a>; <a href="mailto:mwlee@suwon.ac.kr">Myeong Won Lee</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: I played a little. Re: Scene Access Interface: autogeneratingPython<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Thanks everyone for looking at my code.   I think the issue might be a previous set() function defined in the interface returns the interface class type, and then a new set function is called on the interface.   This can be checked by separating the calls to set...() functions into separate calls on the numbered on the numbered object, so they are not chained together.  This can be tested by hand modifying HelloWorld.py and removing the chaining and putting each set() call in a separate statement.  I will try to modify my serializer to do this when I get the chance.   I believe a previous serializer did do this, and it worked!<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Aug 11, 2017 11:18 AM, "John Carlson" <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><p class=MsoNormal style='margin-left:.2in'>Masaki, thank you for spending more time with this.  I don't think the functions will be implemented soon by me.   It is complaining about the interface, and the functions are defined in the concrete class ...Object which implements the interface.   I don't think the functions should be declared on the interface, but I could be wrong. Don?  It is possible that a previous set function returns the interface instead of the concrete class object, but I think not, last I checked.<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.2in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'>There's something with pyjnius or how X3Dautoclass.py is implemented.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'>We really need input from the pyjnius community I think.  Or reading of various pyjnius documentation.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'>I believe my <a href="https://GitHub.com/coderextreme/pythonSAI" target="_blank">https://GitHub.com/coderextreme/pythonSAI</a> project has the beginnings of a pure Python SAI generator that may be worth looking at.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:.2in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:.2in'>On Aug 11, 2017 10:35 AM, "Masaki Aono" <<a href="mailto:aono@tut.jp" target="_blank">aono@tut.jp</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><p>Dear John,</p><p>Thank you very much.</p><p>I think I begin to understand what is happening beneath the HelloWorld.py.</p><p>I could partly succeeded in X3D file output with X3D0.setScene(Scene25)</p><p>from your HelloWorld.py for the functions already implemented (by pynius?) as attached.</p><p>Hopefully, missing functions are to be implemented soon.</p></div></blockquote></div></div><div><p class=MsoNormal style='margin-left:.2in'><o:p> </o:p></p></div></div><div><p class=MsoNormal style='margin-left:.2in'>When I say "not finding" it means the functions are implemented.  See X3DJSAIL jsail package.<o:p></o:p></p></div><div><div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><p>Sincerely,</p><p>---------------------------------------------------------------</p><p>Minor errors I met (other than :ViewpointObject) </p><p>AttributeError: 'org.web3d.x3d.sai.Shape.X3DMaterialNode' object has no attribute 'setDiffuseColor'</p><p>AttributeError: 'org.web3d.x3d.sai.Texturing.X3DTextureNode' object has no attribute 'setUrl'</p><p>AttributeError: '<a href="http://org.web3d.x3d.sai.Grouping.Tr">org.web3d.x3d.sai.Grouping.Tr</a>ansform' object has no attribute 'addChild'</p><div><p class=MsoNormal style='margin-left:.4in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:.4in'>On 2017/08/11 21:50, John Carlson wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='margin-left:1.9in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:1.9in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:1.9in'>On Aug 11, 2017 8:13 AM, "Masaki Aono" <<a href="mailto:aono@tut.jp" target="_blank">aono@tut.jp</a>> wrote:<o:p></o:p></p></div></div></div><div><p class=MsoNormal style='margin-left:1.9in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:1.9in'>I believe that pyjnius is not finding setCenterOfRotation on ViewpointObject.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:1.9in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:1.9in'>John<o:p></o:p></p></div><div><div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><p><o:p> </o:p></p><p>>>> Viewpoint28 = ViewpointObject().setDEF("ViewUpClose").setCenterOfRotation([0,-1,0]).setDescription("Hello world!").setPosition([0,-1,7])<br>Traceback (most recent call last):<br>  File "<stdin>", line 1, in <module><br>AttributeError: 'org.web3d.x3d.sai.Navigation.X3DViewpointNode' object has no attribute 'setCenterOfRotation'</p><p><o:p> </o:p></p><p>At this point, I encountered the above error.</p><p>It looks like "setCenterOfRotation" may not be in X3DViewpointNode (I may be wrong).</p><p>Please note that Python 3.6 (which is not Python 2.7) is not a problem here, I think.</p><p style='margin-bottom:12.0pt'>Sincerely,  </p><p class=MsoNormal style='margin-left:2.1in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:2.1in'>On 2017/08/11 8:11, John Carlson wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Here is HelloWorld.py as generated from my PythonSerializer.js.   Note that I do not use chained calls.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>This is because I was trying to get pyjnius to work. If we had some way of getting code like this running, it would be great.  I could modify my PythonSerializer.js and perhaps include the serializer in X3DJSAIL.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>My JavaScript serializer does not work in X3DJSAIL yet, and I have not been working on it since my initial attempt.  I have compatible, containable changes to the X3DJSAIL stylesheet so that X3DJSAIL should be able to generate JavaScript “SAI”/Nashorn application code.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>The problem appears to be getting the JavaScript XML parsers integrated with X3DJSAIL. We may be able to use JSON instead: XML -> JSON -> DOM -> python.  The long way around, instead of XML -> DOM -> python.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Or we can just use my serializer in JavaScript, and translate JSON -> DOM -> python. The XML to JSON would be handled by X3dToJson.xslt (X3DJSAIL).<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>I do have examples of Java -> TypeScript and JavaScript, but they don’t work.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>I do not have a Java -> Python translator.  Good luck finding one.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>John<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'><b>From: </b><a href="mailto:brutzman@nps.edu" target="_blank">Don Brutzman</a><br><b>Sent: </b>Thursday, August 10, 2017 5:31 PM<br><b>To: </b><a href="mailto:mwlee@suwon.ac.kr" target="_blank">Myeong Won Lee</a>; <a href="mailto:aono@tut.jp" target="_blank">Masaki Aono</a>; <a href="mailto:roy.walmsley@ntlworld.com" target="_blank">Roy Walmsley</a>; <a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Scene Access Interface: autogenerating Python<o:p></o:p></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Myeong Won Lee and Masaki Aono:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Thank you for meeting today to discuss X3D Object Model transformation by applying an XSLT stylesheet to autogenerate of SAI codebases.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Myeong Won Lee, I also thought that your Unity HAnim player is wonderful.  I recommend that you include some examples in the public release, they will generate strong interest.  Having some public examples while also allowing private examples provides appealing choices and the best possible support for your students.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Here is summary excerpted from this week's Web3D meeting report.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>================================================================<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>3.            Object Model for X3D (OM4X3D)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>a.            The Object Model for X3D (OM4X3D) is a full set of object-oriented interfaces for all nodes, fields and statements in the X3D Abstract Specification.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>b.            OM4X3D is produced by decorating the X3D XML Schema with carefully structured annotations that describe the entire object-oriented nature of the X3D scene graph. <a href="http://www.web3d.org/specifications/OM4X3D/ObjectModelForX3dCreation.png" target="_blank">http://www.web3d.org/specifications/OM4X3D/ObjectModelForX3dCreation.png</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>c.             Instantiation: Object Model for X3D definitions are explicitly listed in X3DObjectModel 3.3.xml with corresponding XML schema x3dObjectModel.xsd<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>d.            Ongoing public/private dialog using the <a href="mailto:x3d-public@web3D.org" target="_blank">x3d-public@web3D.org</a> mailing list and presentation at Web3D 2017 Conference has been productive. <a href="http://www.web3d.org/specifications/OM4X3D/ObjectModelForX3dMasterClassWeb3dConference2017June7.pdf" target="_blank">http://www.web3d.org/specifications/OM4X3D/ObjectModelForX3dMasterClassWeb3dConference2017June7.pdf</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>e.            Demonstration of strict object model in X3D JSON Encoding, which is 98% complete and undergoing extensive review and testing, initial-draft specification has been prepared.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>f.             Initial implementations are available in JavaScript, Java, and C++.  Also planning to prepare programming-language implementations for C, C#.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>g.            Two new versions for Python are started, with dialog occurring to discern best practices.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>h.            SAI no longer just Script node in Browser object, includes full application-oriented API.  This will lead to some changes and generalizations in 19775-2 Abstract SAI specification.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>i.              Multiple emerging SAI specifications and implementations are shown on updated  draft X3D Specifications Relationships diagram (attached)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>j.             Implementation: X3D JSON Loader (X3DJSONLD) <a href="https://github.com/coderextreme/X3DJSONLD" target="_blank">https://github.com/coderextreme/X3DJSONLD</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>k.            Implementation: X3D Java Scene Access Interface Library (X3DJSAIL) <a href="http://www.web3d.org/specifications/java/X3dJavaSceneAuthoringInterface.html" target="_blank">http://www.web3d.org/specifications/java/X3dJavaSceneAuthoringInterface.html</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>l.              Under consideration: integration into X3D Abstract Specification 19775-1 to more thoroughly expand on current abstract interface hierarchy.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>m.           Emerging capability: coherent X3D center, multiple different programming languages that offer common design patterns to programmers to create identical scene graphs.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>================================================================<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>The essence of autogeneration is that proper code patterns must first exist.  Once we get a few classes with the design patterns of interest, and generation of a few classes, then creation of all classes follows in a straightforward manner.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>I recommend that the first example we work with is HelloWorld.x3d into .c .cpp .cs and .py source.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>                <a href="http://www.web3d.org/x3d/content/examples/HelloWorld.x3d" target="_blank">http://www.web3d.org/x3d/content/examples/HelloWorld.x3d</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>                <a href="http://www.web3d.org/x3d/content/examples/HelloWorld.html" target="_blank">http://www.web3d.org/x3d/content/examples/HelloWorld.html</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Regarding Python: John Carlson has done intriguing work that auto-translates Java source in X3DJSAIL to Python.  This is interesting because it would keep the codebases closely aligned, making it easier to learn and debug.  Consistency is easily maintained across X3D versions and X3D bugfixes by re-running each distribution.  Flexibility is also possible since each codebase will include custom utility classes, methods and examples.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Next steps for Python: recommend that we<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>- Examine Masaki's work and compare it with the pyjnius conversions.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>- Autogenerate Python library (X3DPSAIL perhaps?) to provide Python codebase support.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>- Iterate until we have a good design pattern for HelloWorld and other exemplars.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>- Create an X3dToPython.xslt stylesheet that can convert someModel.x3d to someModel.py source.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>- run that across all scenes X3D Example Archives, detect and resolve errors, publish builds.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>- make T-shirts  8)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>As with JavaScript and Java, it is good to use the x3d-public list for this work.  Also suitable for a weekly update reports and monthly telcon item for X3D Working Group.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>all the best, Don<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>-- <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   <a href="tel:%28831%29%20656-2149" target="_blank">+1.831.656.2149</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'>X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" target="_blank">http://faculty.nps.edu/brutzman</a><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:3.6in'> <o:p></o:p></p></div></blockquote><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:2.1in'><o:p> </o:p></p><pre>-- </pre><pre>******************************************************</pre><pre><span style='font-family:"Yu Gothic",sans-serif'>青野雅樹</span></pre><pre><span style='font-family:"Yu Gothic",sans-serif'>豊橋技術科学大学</span> <span style='font-family:"Yu Gothic",sans-serif'>情報・知能工学系</span></pre><pre><span style='font-family:"Yu Gothic",sans-serif'>知識データ工学・情報検索研究室</span></pre><pre><span style='font-family:"Yu Gothic",sans-serif'>〒</span>441-8580 <span style='font-family:"Yu Gothic",sans-serif'>豊橋市天伯町雲雀ヶ丘</span>1-1</pre><pre><a href="TEL:%280532%29" target="_blank">TEL:(0532)</a> 44-6764</pre><pre>FAX:(0532) 44-6757</pre><pre><o:p> </o:p></pre><pre>Masaki Aono</pre><pre>Professor</pre><pre>Knowledge Data Engineering Laboratory</pre><pre>Dept. of Computer Science and Engineering</pre><pre>Toyohashi University of Technology</pre><pre>1-1 Hibarigaoka, Tempaku-cho,</pre><pre>Toyohashi-shi, Aichi 441-8580 JAPAN</pre><pre>TEL: 81+532-44-6764</pre><pre>FAX:81+532-44-6757</pre><pre>email: <a href="mailto:aono@tut.jp" target="_blank">aono@tut.jp</a></pre><pre>****************************************************** </pre></div></blockquote></div></div></div></div></blockquote><pre>-- </pre><pre>******************************************************</pre><pre><span style='font-family:"Yu Gothic",sans-serif'>青野雅樹</span></pre><pre><span style='font-family:"Yu Gothic",sans-serif'>豊橋技術科学大学</span> <span style='font-family:"Yu Gothic",sans-serif'>情報・知能工学系</span></pre><pre><span style='font-family:"Yu Gothic",sans-serif'>知識データ工学・情報検索研究室</span></pre><pre><span style='font-family:"Yu Gothic",sans-serif'>〒</span>441-8580 <span style='font-family:"Yu Gothic",sans-serif'>豊橋市天伯町雲雀ヶ丘</span>1-1</pre><pre><a href="TEL:(0532)" target="_blank">TEL:(0532)</a> 44-6764</pre><pre>FAX:(0532) 44-6757</pre><pre><o:p> </o:p></pre><pre>Masaki Aono</pre><pre>Professor</pre><pre>Knowledge Data Engineering Laboratory</pre><pre>Dept. of Computer Science and Engineering</pre><pre>Toyohashi University of Technology</pre><pre>1-1 Hibarigaoka, Tempaku-cho,</pre><pre>Toyohashi-shi, Aichi 441-8580 JAPAN</pre><pre>TEL: 81+532-44-6764</pre><pre>FAX:81+532-44-6757</pre><pre>email: <a href="mailto:aono@tut.jp" target="_blank">aono@tut.jp</a></pre><pre>****************************************************** </pre></div></div></blockquote></div><p class=MsoNormal style='margin-left:.2in'><o:p> </o:p></p></div></div></div></blockquote></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>