<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:Helvetica;
        panose-1:2 11 5 4 2 2 2 2 2 4;}
@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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:inherit;}
/* 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;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.first, li.first, div.first
        {mso-style-name:first;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.pre
        {mso-style-name:pre;}
p.last, li.last, div.last
        {mso-style-name:last;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.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;}
/* List Definitions */
@list l0
        {mso-list-id:483939435;
        mso-list-template-ids:-1;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1987002617;
        mso-list-template-ids:-1;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:9.0pt;margin-left:0in;line-height:18.0pt;background:#FCFCFC'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:#404040'>Add to your <a href="https://en.wikipedia.org/wiki/Environment_variable"><span style='color:#9B59B6;text-decoration:none'>Environment Variables</span></a>:<o:p></o:p></span></p><p class=first style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:0in;margin-left:.25in;margin-bottom:.0001pt;text-indent:-.25in;line-height:18.0pt;mso-list:l1 level1 lfo1;background:#FCFCFC;box-sizing: border-box'><![if !supportLists]><span style='font-size:10.0pt;font-family:Symbol;color:#404040'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]><span class=pre><span style='font-size:9.0pt;font-family:Consolas;color:#E74C3C;border:solid #E1E4E5 1.0pt;padding:2.0pt;background:white'>JAVA_HOME</span></span><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:#404040'>: C:\Program Files\Java\jdk1.7.0_79\bin<o:p></o:p></span></p><p class=first style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:9.0pt;margin-left:.25in;text-indent:-.25in;line-height:18.0pt;mso-list:l1 level1 lfo1;background:#FCFCFC;box-sizing: border-box'><![if !supportLists]><span style='font-size:10.0pt;font-family:Symbol;color:#404040'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]><span class=pre><span style='font-size:9.0pt;font-family:Consolas;color:#E74C3C;border:solid #E1E4E5 1.0pt;padding:2.0pt;background:white'>PATH</span></span><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:#404040'>: C:\Program Files\Java\jdk1.7.0_79\jre\bin\server contains the </span><span class=pre><span style='font-size:9.0pt;font-family:Consolas;color:#E74C3C;border:solid #E1E4E5 1.0pt;padding:2.0pt;background:white'>jvm.dll</span></span><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:#404040'> necessary for importing and using PyJNIus.<o:p></o:p></span></p><div style='margin-bottom:.25in;box-sizing: border-box;-webkit-font-smoothing: antialiased'><p class=first style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:9.0pt;margin-left:9.0pt;background:#6AB0DE'><b><span style='font-size:12.0pt;font-family:"inherit",serif;color:white'>Note<o:p></o:p></span></b></p><p class=last style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:0in;margin-left:.25in;margin-bottom:.0001pt;line-height:18.0pt;background:#E7F2FA;box-sizing: border-box'><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:#404040'>set PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_79\jre\bin\server<o:p></o:p></span></p></div><p class=MsoNormal style='margin-bottom:9.0pt;background:#FCFCFC'><b><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:#404040'>Add to System Variables or have it present in your </span></b><span class=pre><b><span style='font-size:9.0pt;font-family:Consolas;color:#E74C3C;border:solid #E1E4E5 1.0pt;padding:2.0pt;background:white'>PATH</span></b></span><b><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:#404040'>:<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.75in;text-indent:-.25in;line-height:18.0pt;mso-list:l0 level1 lfo2;background:#FCFCFC'><![if !supportLists]><span style='font-size:10.0pt;font-family:Symbol;color:#404040'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]><span class=pre><span style='font-size:9.0pt;font-family:Consolas;color:#E74C3C;border:solid #E1E4E5 1.0pt;padding:2.0pt;background:white'>PATH</span></span><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:#404040'>: C:\Program Files\Java\jdk1.7.0_79\bin`<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Note that you must add two Java folders to your PATH.  Please try Java 8, not jdk1.7</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>We will have to figure out how to add to the PATH in the installation, I guess.  Worth a google.</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:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Sent: </b>Tuesday, March 19, 2019 8:51 AM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject: </b>Re: X3D python again</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks but... nothing else seen. <o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>In general we are trying to make this as repeatable as possible.  Do the build and the instructions should be sufficient for anyone.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Perhaps you have a pyjnius configuration on your system that is missing from the build directions? Or perhaps we have different pyjnius versions?  Or perhaps some pyjnius tests need to be part of our build script?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>TIA for all sleuthing, i can return to this task on the weekend.<o:p></o:p></p><div id=AppleMailSignature><div><p class=MsoNormal>v/r Don<o:p></o:p></p></div><div><p class=MsoNormal><br><br><o:p></o:p></p></div><p class=MsoNormal><span style='font-size:13.5pt;font-family:"Helvetica",sans-serif'>Sent from my handheld device</span><o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><br>On Mar 17, 2019, at 4:02 PM, John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Looks like a dll is missing from your path?<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Google might be your friend.  I will look into this after going through my mail.<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>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:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Sent: </b>Sunday, March 17, 2019 5:10 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: X3D python again<o:p></o:p></p></div><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Continued progress.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>a. All of the configuration.prerequisite steps are running cleanly now:<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>ant -f C:\\x3d-code\\<a href="http://www.web3d.org">www.web3d.org</a>\\x3d\\stylesheets\\java\\src\\python\\pyjnius configuration.prerequisites<o:p></o:p></p><p class=MsoNormal>configuration.prerequisites:<o:p></o:p></p><p class=MsoNormal>ensure needed libraries are installed (initial installs likely to require administrator login)<o:p></o:p></p><p class=MsoNormal>=================================<o:p></o:p></p><p class=MsoNormal>node.js and npm are required  <a href="https://nodejs.org/en">https://nodejs.org/en</a>  <a href="https://docs.npmjs.com/cli/install">https://docs.npmjs.com/cli/install</a><o:p></o:p></p><p class=MsoNormal>npm.cmd install<o:p></o:p></p><p class=MsoNormal>audited 34 packages in 0.969s<o:p></o:p></p><p class=MsoNormal>found 0 vulnerabilities<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>npm.cmd version<o:p></o:p></p><p class=MsoNormal>{ pythonSAI: '1.0.0',<o:p></o:p></p><p class=MsoNormal>   npm: '6.4.1',<o:p></o:p></p><p class=MsoNormal>   ares: '1.15.0',<o:p></o:p></p><p class=MsoNormal>   cldr: '33.1',<o:p></o:p></p><p class=MsoNormal>   http_parser: '2.8.0',<o:p></o:p></p><p class=MsoNormal>   icu: '62.1',<o:p></o:p></p><p class=MsoNormal>   modules: '64',<o:p></o:p></p><p class=MsoNormal>   napi: '3',<o:p></o:p></p><p class=MsoNormal>   nghttp2: '1.34.0',<o:p></o:p></p><p class=MsoNormal>   node: '10.14.2',<o:p></o:p></p><p class=MsoNormal>   openssl: '1.1.0j',<o:p></o:p></p><p class=MsoNormal>   tz: '2018e',<o:p></o:p></p><p class=MsoNormal>   unicode: '11.0',<o:p></o:p></p><p class=MsoNormal>   uv: '1.23.2',<o:p></o:p></p><p class=MsoNormal>   v8: '6.8.275.32-node.45',<o:p></o:p></p><p class=MsoNormal>   zlib: '1.2.11' }<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>npm.cmd audit<o:p></o:p></p><p class=MsoNormal>=== npm audit security report ===<o:p></o:p></p><p class=MsoNormal>                                                                                 <o:p></o:p></p><p class=MsoNormal>found 0 vulnerabilities<o:p></o:p></p><p class=MsoNormal>  in 34 scanned packages<o:p></o:p></p><p class=MsoNormal>=================================<o:p></o:p></p><p class=MsoNormal>java version "1.8.0_202"<o:p></o:p></p><p class=MsoNormal>Java(TM) SE Runtime Environment (build 1.8.0_202-b08)<o:p></o:p></p><p class=MsoNormal>Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)<o:p></o:p></p><p class=MsoNormal>Python 3.7.2<o:p></o:p></p><p class=MsoNormal>=================================<o:p></o:p></p><p class=MsoNormal>Pyjnius is a Python library for accessing Java classes,<o:p></o:p></p><p class=MsoNormal>refer to Pyjnius page for JAVA_HOME and PATH requirements<o:p></o:p></p><p class=MsoNormal><a href="https://pyjnius.readthedocs.io/en/latest/installation.html">https://pyjnius.readthedocs.io/en/latest/installation.html</a><o:p></o:p></p><p class=MsoNormal>Requirement already up-to-date: pip in c:\program files\python37\lib\site-packages (19.0.3)<o:p></o:p></p><p class=MsoNormal>Requirement already up-to-date: setuptools in c:\program files\python37\lib\site-packages (40.8.0)<o:p></o:p></p><p class=MsoNormal>Requirement already up-to-date: cython in c:\program files\python37\lib\site-packages (0.29.6)<o:p></o:p></p><p class=MsoNormal>Requirement already up-to-date: pyjnius in c:\program files\python37\lib\site-packages (1.2.0)<o:p></o:p></p><p class=MsoNormal>Requirement already satisfied, skipping upgrade: six>=1.7.0 in c:\program files\python37\lib\site-packages (from pyjnius) (1.12.0)<o:p></o:p></p><p class=MsoNormal>Requirement already satisfied, skipping upgrade: cython in c:\program files\python37\lib\site-packages (from pyjnius) (0.29.6)<o:p></o:p></p><p class=MsoNormal>=================================<o:p></o:p></p><p class=MsoNormal>BUILD SUCCESSFUL (total time: 8 seconds)<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>b. targets 'configuration' and 'processScenes.x3d' also working.  8)<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>c. however processScenes.python is failing mysteriously... apparently pyjnius creation is not correct, each scene is failing identically.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>example excerpts:<o:p></o:p></p><p class=MsoNormal>=======================================================<o:p></o:p></p><p class=MsoNormal>processScene.python:<o:p></o:p></p><p class=MsoNormal>      [exec] Traceback (most recent call last):<o:p></o:p></p><p class=MsoNormal>      [exec]   File "C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\Basic\CAD\CadGeometryPrototypes.py", line 3, in <module><o:p></o:p></p><p class=MsoNormal>      [exec]     from jnius import autoclass<o:p></o:p></p><p class=MsoNormal>      [exec]   File "C:\Program Files\Python37\lib\site-packages\jnius\__init__.py", line 12, in <module><o:p></o:p></p><p class=MsoNormal>      [exec]     from .jnius import *  # noqa<o:p></o:p></p><p class=MsoNormal>      [exec] ImportError: DLL load failed: The specified module could not be found.<o:p></o:p></p><p class=MsoNormal>      [exec] Result: 1<o:p></o:p></p><p class=MsoNormal>      [echo] C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\Basic\CAD\CadGeometryPrototypes.py<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>processScene.python:<o:p></o:p></p><p class=MsoNormal>      [exec] Traceback (most recent call last):<o:p></o:p></p><p class=MsoNormal>      [exec]   File "C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\Basic\CAD\CadTeapot.future.py", line 3, in <module><o:p></o:p></p><p class=MsoNormal>      [exec]     from jnius import autoclass<o:p></o:p></p><p class=MsoNormal>      [exec]   File "C:\Program Files\Python37\lib\site-packages\jnius\__init__.py", line 12, in <module><o:p></o:p></p><p class=MsoNormal>      [exec]     from .jnius import *  # noqa<o:p></o:p></p><p class=MsoNormal>      [exec] ImportError: DLL load failed: The specified module could not be found.<o:p></o:p></p><p class=MsoNormal>      [exec] Result: 1<o:p></o:p></p><p class=MsoNormal>      [echo] C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\Basic\CAD\CadTeapot.future.py<o:p></o:p></p><p class=MsoNormal>=======================================================<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>here is what the pyjnius directory looks like:<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>/cygdrive/c/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/java/src/python/pyjnius">www.web3d.org/x3d/stylesheets/java/src/python/pyjnius</a><o:p></o:p></p><p class=MsoNormal>$ ls -al<o:p></o:p></p><p class=MsoNormal>total 97858<o:p></o:p></p><p class=MsoNormal>drwxrwx---+ 1 brutzman None        0 Mar 17 14:54 .<o:p></o:p></p><p class=MsoNormal>drwxrwx---+ 1 brutzman None        0 Mar 16 21:21 ..<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None     1775 Nov  1 00:33 abox.x3d<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None     2500 Mar 17 14:06 autoclass.py<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None     7521 Mar 17 14:54 build.install.dependencies.txt<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None    10674 Mar 17 14:58 build.xml<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None     2226 Dec  2 14:04 convertXML.js<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None    91277 Mar 17 14:50 fieldTypes.js<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None     1887 Mar 17 14:06 fieldTypes.py<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None 99092818 Feb 19 15:05 main.jar<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None   754258 Mar 17 14:50 mapToMethod.js<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None     5062 Mar 17 14:06 mapToMethod.py<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None     2403 Nov  1 00:33 mapToMethod2.js<o:p></o:p></p><p class=MsoNormal>drwxrwx---+ 1 brutzman None        0 Dec 12 15:49 nbproject<o:p></o:p></p><p class=MsoNormal>drwxrwx---+ 1 brutzman None        0 Mar 17 14:46 node_modules<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None      134 Mar 17 14:45 package.json<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None     4408 Mar 17 14:45 package-lock.json<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None    78905 Dec 24 10:15 PyJNIusWorkflow.pdf<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None    37453 Dec 24 10:15 PyJNIusWorkflow.pptx<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None    12230 Feb 10 19:50 PythonPipeliningSerializer.js<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None    12224 Feb 10 19:50 PythonSerializer.js<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None      116 Mar 12 15:59 README.md<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None    29001 Mar 17 14:50 X3Dautoclass.py<o:p></o:p></p><p class=MsoNormal>-rwxrwx---+ 1 brutzman None      341 Dec  2 14:04 xml2all.js<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>not sure what to do.  missing property or file perhaps?  back to you John...<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>On 3/16/2019 9:29 PM, Brutzman, Donald (Don) (CIV) wrote:<o:p></o:p></p><p class=MsoNormal>> BLUF: finally got past multiple setup difficulties on Windows 10, several issues addressed.  More work needed.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Providing this record to help us finish build reconciliations and potentially assist others encountering similar difficulties.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Thanks for Loren Peitso for helpful python advice.  (Incidentally he recommends _not_ using pycharm as it contains some irregularities).<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Pyjnius still croaking, see log below.  Is Microsoft Visual C++ actually needed?<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Jacoco still croaking.  Now commented out, probably best to get everything else working first.  If you want to replace  with your local version in the lib directory, please go ahead.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Future: wondering, can't we avoid beautiful soup and lxml altogether by using stock Python libraries?<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Some success!  Target processScenes.x3d now creating filename.py and filename.future.py outputs, examples attached.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Target processScenes.python not working, perhaps because pyjnius build isn't yet successful?  Excerpt:<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\Basic\CAD\CadGeometryExternPrototypes.future.py<o:p></o:p></p><p class=MsoNormal>> processScene.python:<o:p></o:p></p><p class=MsoNormal>> Traceback (most recent call last):<o:p></o:p></p><p class=MsoNormal>>     File "C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\Basic\CAD\CadGeometryExternPrototypes.py", line 1, in <module><o:p></o:p></p><p class=MsoNormal>>       import jnius_config<o:p></o:p></p><p class=MsoNormal>> ModuleNotFoundError: No module named 'jnius_config'<o:p></o:p></p><p class=MsoNormal>> Result: 1<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> All this work now checked into subversion.  Good luck with next steps, we are getting closer.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Am hoping we can continue to simplify and simplify.  This approach will make this implementation as portable as possible.  Looking forward to continued spiral development and improvement, improving the language syntax for X3D in Python.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Troubleshooting log follows.<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><p class=MsoNormal>> Following another troubled install of anaconda (navigator not working) on Windows 10, ripped everything out again.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Reinstalled stock python 3.7.2 again from <a href="http://python.org">python.org</a> as localadmin for all users.  also included in path and confirmed working:<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> $ python --version<o:p></o:p></p><p class=MsoNormal>> Python 3.7.2<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Then ran build.xml target 'configure' as discussed on last call.  Progress: it ran, though quickly failing.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> ======================<o:p></o:p></p><p class=MsoNormal>> build.xml<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>>       <target name="configuration" description="Test Python output"><o:p></o:p></p><p class=MsoNormal>>           <echo message="create imported files: autoclass.py fieldtypes.py mapToMethod.py"/><o:p></o:p></p><p class=MsoNormal>>           <exec executable="python"><o:p></o:p></p><p class=MsoNormal>>               <arg value="autoclass.py"/><o:p></o:p></p><p class=MsoNormal>>           </exec><o:p></o:p></p><p class=MsoNormal>> [...]<o:p></o:p></p><p class=MsoNormal>> ======================<o:p></o:p></p><p class=MsoNormal>> ant -f C:\\x3d-code\\<a href="http://www.web3d.org">www.web3d.org</a>\\x3d\\stylesheets\\java\\src\\python\\pyjnius configuration<o:p></o:p></p><p class=MsoNormal>> configuration:<o:p></o:p></p><p class=MsoNormal>> create imported files: autoclass.py fieldtypes.py mapToMethod.py<o:p></o:p></p><p class=MsoNormal>> Traceback (most recent call last):<o:p></o:p></p><p class=MsoNormal>>     File "autoclass.py", line 1, in <module><o:p></o:p></p><p class=MsoNormal>>       from bs4 import BeautifulSoup<o:p></o:p></p><p class=MsoNormal>> ModuleNotFoundError: No module named 'bs4'<o:p></o:p></p><p class=MsoNormal>> Result: 1 [...]<o:p></o:p></p><p class=MsoNormal>> ======================<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> looked up that error, search led to<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> How can I from bs4 import BeautifulSoup?<o:p></o:p></p><p class=MsoNormal>> <a href="https://stackoverflow.com/questions/18831380/how-can-i-from-bs4-import-beautifulsoup">https://stackoverflow.com/questions/18831380/how-can-i-from-bs4-import-beautifulsoup</a><o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> which recommended<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> pip install beautifulsoup4<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> which produced two errors, even when running bash with administrator permissions:<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> ============================<o:p></o:p></p><p class=MsoNormal>> $ pip install beautifulsoup4<o:p></o:p></p><p class=MsoNormal>> Collecting beautifulsoup4<o:p></o:p></p><p class=MsoNormal>>     Downloading <a href="https://files.pythonhosted.org/packages/1d/5d/3260694a59df0ec52f8b4883f5d23b130bc237602a1411fa670eae12351e/beautifulsoup4-4.7.1-py3-none-any.whl">https://files.pythonhosted.org/packages/1d/5d/3260694a59df0ec52f8b4883f5d23b130bc237602a1411fa670eae12351e/beautifulsoup4-4.7.1-py3-none-any.whl</a> (94kB)<o:p></o:p></p><p class=MsoNormal>> Collecting soupsieve>=1.2 (from beautifulsoup4)<o:p></o:p></p><p class=MsoNormal>>     Downloading <a href="https://files.pythonhosted.org/packages/77/78/bca00cc9fa70bba1226ee70a42bf375c4e048fe69066a0d9b5e69bc2a79a/soupsieve-1.8-py2.py3-none-any.whl">https://files.pythonhosted.org/packages/77/78/bca00cc9fa70bba1226ee70a42bf375c4e048fe69066a0d9b5e69bc2a79a/soupsieve-1.8-py2.py3-none-any.whl</a> (88kB)<o:p></o:p></p><p class=MsoNormal>> Installing collected packages: soupsieve, beautifulsoup4<o:p></o:p></p><p class=MsoNormal>> Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\program files (x86)\\python37-32\\Lib\\site-packages\\soupsieve'<o:p></o:p></p><p class=MsoNormal>> Consider using the `--user` option or check the permissions.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> You are using pip version 18.1, however version 19.0.3 is available.<o:p></o:p></p><p class=MsoNormal>> You should consider upgrading via the 'python -m pip install --upgrade pip' command.<o:p></o:p></p><p class=MsoNormal>> ============================<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Tried again, still failed.  Then noted that path started with<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>>             c:\\program files (x86)\\python37-32<o:p></o:p></p><p class=MsoNormal>>             <o:p></o:p></p><p class=MsoNormal>> which is 32 bit.  This means that the python download page wasn't able to distinguish 32--bit or 64-bit.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Ripped it all out again, cleaned up PATH (the uninstaller didn't do that).  Rebooted.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Went back to python download page and specifically found/downloaded/installed 64-bit Python 3.7.2 for Windows.  Great care required in selecting the correct installer, this is buried within multiple lists.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> <a href="https://www.python.org/downloads/windows/">https://www.python.org/downloads/windows/</a><o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Installed with all options including PATH, excluding debugger options.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Ran bash shell as administrator to update pip and beautifulsoup4 as indicated above.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> $ python -m pip install --upgrade pip<o:p></o:p></p><p class=MsoNormal>> Collecting pip<o:p></o:p></p><p class=MsoNormal>>     Using cached <a href="https://files.pythonhosted.org/packages/d8/f3/413bab4ff08e1fc4828dfc59996d721917df8e8583ea85385d51125dceff/pip-19.0.3-py2.py3-none-any.whl">https://files.pythonhosted.org/packages/d8/f3/413bab4ff08e1fc4828dfc59996d721917df8e8583ea85385d51125dceff/pip-19.0.3-py2.py3-none-any.whl</a><o:p></o:p></p><p class=MsoNormal>> Installing collected packages: pip<o:p></o:p></p><p class=MsoNormal>>     Found existing installation: pip 18.1<o:p></o:p></p><p class=MsoNormal>>       Uninstalling pip-18.1:<o:p></o:p></p><p class=MsoNormal>>         Successfully uninstalled pip-18.1<o:p></o:p></p><p class=MsoNormal>> Successfully installed pip-19.0.3<o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> $ pip install beautifulsoup4<o:p></o:p></p><p class=MsoNormal>> Collecting beautifulsoup4<o:p></o:p></p><p class=MsoNormal>>     Downloading <a href="https://files.pythonhosted.org/packages/1d/5d/3260694a59df0ec52f8b4883f5d23b130bc237602a1411fa670eae12351e/beautifulsoup4-4.7.1-py3-none-any.whl">https://files.pythonhosted.org/packages/1d/5d/3260694a59df0ec52f8b4883f5d23b130bc237602a1411fa670eae12351e/beautifulsoup4-4.7.1-py3-none-any.whl</a> (94kB)<o:p></o:p></p><p class=MsoNormal>> Collecting soupsieve>=1.2 (from beautifulsoup4)<o:p></o:p></p><p class=MsoNormal>>     Downloading <a href="https://files.pythonhosted.org/packages/77/78/bca00cc9fa70bba1226ee70a42bf375c4e048fe69066a0d9b5e69bc2a79a/soupsieve-1.8-py2.py3-none-any.whl">https://files.pythonhosted.org/packages/77/78/bca00cc9fa70bba1226ee70a42bf375c4e048fe69066a0d9b5e69bc2a79a/soupsieve-1.8-py2.py3-none-any.whl</a> (88kB)<o:p></o:p></p><p class=MsoNormal>> Installing collected packages: soupsieve, beautifulsoup4<o:p></o:p></p><p class=MsoNormal>> Successfully installed beautifulsoup4-4.7.1 soupsieve-1.8<o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> progress: now a different error<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> Could not load definitions from resource org/jacoco/ant/antlib.xml. It could not be found.<o:p></o:p></p><p class=MsoNormal>> ant -f C:\\x3d-code\\<a href="http://www.web3d.org">www.web3d.org</a>\\x3d\\stylesheets\\java\\src\\python\\pyjnius configuration<o:p></o:p></p><p class=MsoNormal>> configuration:<o:p></o:p></p><p class=MsoNormal>> create imported files: autoclass.py fieldtypes.py mapToMethod.py<o:p></o:p></p><p class=MsoNormal>> Traceback (most recent call last):<o:p></o:p></p><p class=MsoNormal>>     File "autoclass.py", line 50, in <module><o:p></o:p></p><p class=MsoNormal>>       soup = BeautifulSoup(open("../../../../../../specifications/X3dUnifiedObjectModel-4.0.xml"), "xml")<o:p></o:p></p><p class=MsoNormal>>     File "C:\Program Files\Python37\lib\site-packages\bs4\__init__.py", line 196, in __init__<o:p></o:p></p><p class=MsoNormal>>       % ",".join(features))<o:p></o:p></p><p class=MsoNormal>> bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: xml. Do you need to install a parser library?<o:p></o:p></p><p class=MsoNormal>> Result: 1<o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> found some help:<o:p></o:p></p><p class=MsoNormal>> bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?<o:p></o:p></p><p class=MsoNormal>> <a href="https://stackoverflow.com/questions/24398302/bs4-featurenotfound-couldnt-find-a-tree-builder-with-the-features-you-requeste">https://stackoverflow.com/questions/24398302/bs4-featurenotfound-couldnt-find-a-tree-builder-with-the-features-you-requeste</a><o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> followed initial guidance there for supporting:<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> $ pip install lxml<o:p></o:p></p><p class=MsoNormal>> Collecting lxml<o:p></o:p></p><p class=MsoNormal>>     Using cached <a href="https://files.pythonhosted.org/packages/be/b9/d05cd1680537aa39d8f0546871a4e56d82a5fdc97ac4006c37076a94915a/lxml-4.3.2-cp37-cp37m-win_amd64.whl">https://files.pythonhosted.org/packages/be/b9/d05cd1680537aa39d8f0546871a4e56d82a5fdc97ac4006c37076a94915a/lxml-4.3.2-cp37-cp37m-win_amd64.whl</a><o:p></o:p></p><p class=MsoNormal>> Installing collected packages: lxml<o:p></o:p></p><p class=MsoNormal>> Successfully installed lxml-4.3.2<o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> worked as administrator!  logged out, logged in as user, continued to work.  hooray at last.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> Could not load definitions from resource org/jacoco/ant/antlib.xml. It could not be found.<o:p></o:p></p><p class=MsoNormal>> ant -f C:\\x3d-code\\<a href="http://www.web3d.org">www.web3d.org</a>\\x3d\\stylesheets\\java\\src\\python\\pyjnius configuration<o:p></o:p></p><p class=MsoNormal>> configuration:<o:p></o:p></p><p class=MsoNormal>> create imported files: autoclass.py fieldtypes.py mapToMethod.py<o:p></o:p></p><p class=MsoNormal>> BUILD SUCCESSFUL (total time: 2 seconds)<o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> So, some suggestions seem to be in order.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> a. we should document prerequisites.<o:p></o:p></p><p class=MsoNormal>> b. perhaps add another target that performs these installs, along with diagnostics.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> So, I worked out Ant invocations of all of these pip installs and got them working.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> While integrating that block, at long last noted that you had most of this already in target install.dependencies - ouch!<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> And so, renamed that target for proximity to configuration.prerequisites, and made it a dependency of the configuration target so that it is always run.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> localadmin@DESKTOP-2S09UKA /cygdrive/c/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/java/src/python/pyjnius">www.web3d.org/x3d/stylesheets/java/src/python/pyjnius</a><o:p></o:p></p><p class=MsoNormal>> $ ant configuration.prerequisites<o:p></o:p></p><p class=MsoNormal>> Buildfile: C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\stylesheets\java\src\python\pyjnius\build.xml<o:p></o:p></p><p class=MsoNormal>>     [taskdef] Could not load definitions from resource org/jacoco/ant/antlib.xml. It could not be found.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> configuration.prerequisites:<o:p></o:p></p><p class=MsoNormal>>        [echo] ensure needed libraries are installed (initial installs likely to require administrator login)<o:p></o:p></p><p class=MsoNormal>>        [echo] node.js and npm are required<o:p></o:p></p><p class=MsoNormal>>        [echo] <a href="https://nodejs.org/en">https://nodejs.org/en</a><o:p></o:p></p><p class=MsoNormal>>        [echo] <a href="https://docs.npmjs.com/cli/install">https://docs.npmjs.com/cli/install</a><o:p></o:p></p><p class=MsoNormal>>        [exec] audited 34 packages in 1s<o:p></o:p></p><p class=MsoNormal>>        [exec] found 0 vulnerabilities<o:p></o:p></p><p class=MsoNormal>>        [exec]<o:p></o:p></p><p class=MsoNormal>>        [echo] Pyjnius is a Python library for accessing Java classes.<o:p></o:p></p><p class=MsoNormal>>        [echo] <a href="https://pyjnius.readthedocs.io/en/latest/installation.html">https://pyjnius.readthedocs.io/en/latest/installation.html</a><o:p></o:p></p><p class=MsoNormal>>        [echo] Alert: use Pyjnius page to confirm JAVA_HOME and PATH requirements<o:p></o:p></p><p class=MsoNormal>>        [exec] Error: Could not create the Java Virtual Machine.<o:p></o:p></p><p class=MsoNormal>>        [exec] Error: A fatal exception has occurred. Program will exit.<o:p></o:p></p><p class=MsoNormal>>        [exec] Unrecognized option: --version<o:p></o:p></p><p class=MsoNormal>>        [exec] Result: 1<o:p></o:p></p><p class=MsoNormal>>        [exec] Python 3.7.2<o:p></o:p></p><p class=MsoNormal>>        [echo] Alert: note administrator permissions are likely required<o:p></o:p></p><p class=MsoNormal>>        [exec] Requirement already up-to-date: pip in c:\program files\python37\lib\site-packages (19.0.3)<o:p></o:p></p><p class=MsoNormal>>        [exec] Collecting setuptools<o:p></o:p></p><p class=MsoNormal>>        [exec]   Downloading <a href="https://files.pythonhosted.org/packages/d1/6a/4b2fcefd2ea0868810e92d519dacac1ddc64a2e53ba9e3422c3b62b378a6/setuptools-40.8.0-py2.py3-none-any.whl">https://files.pythonhosted.org/packages/d1/6a/4b2fcefd2ea0868810e92d519dacac1ddc64a2e53ba9e3422c3b62b378a6/setuptools-40.8.0-py2.py3-none-any.whl</a> (575kB)<o:p></o:p></p><p class=MsoNormal>>        [exec] Installing collected packages: setuptools<o:p></o:p></p><p class=MsoNormal>>        [exec]   Found existing installation: setuptools 40.6.2<o:p></o:p></p><p class=MsoNormal>>        [exec]     Uninstalling setuptools-40.6.2:<o:p></o:p></p><p class=MsoNormal>>        [exec]       Successfully uninstalled setuptools-40.6.2<o:p></o:p></p><p class=MsoNormal>>        [exec] Successfully installed setuptools-40.8.0<o:p></o:p></p><p class=MsoNormal>>        [exec] Collecting cython<o:p></o:p></p><p class=MsoNormal>>        [exec]   Downloading <a href="https://files.pythonhosted.org/packages/14/48/43fd6c0b29450c57a4eff636384dd691bef05c49410edfeb2fe4e4e79ec2/Cython-0.29.6-cp37-cp37m-win_amd64.whl">https://files.pythonhosted.org/packages/14/48/43fd6c0b29450c57a4eff636384dd691bef05c49410edfeb2fe4e4e79ec2/Cython-0.29.6-cp37-cp37m-win_amd64.whl</a> (1.7MB)<o:p></o:p></p><p class=MsoNormal>>        [exec] Installing collected packages: cython<o:p></o:p></p><p class=MsoNormal>>        [exec] Successfully installed cython-0.29.6<o:p></o:p></p><p class=MsoNormal>>        [exec] Collecting pyjnius<o:p></o:p></p><p class=MsoNormal>>        [exec]   Downloading <a href="https://files.pythonhosted.org/packages/b6/57/c90acf31322e6417f06c90410dbfcb149633a6006b7efbf99dfebe177c1f/pyjnius-1.2.0.tar.gz">https://files.pythonhosted.org/packages/b6/57/c90acf31322e6417f06c90410dbfcb149633a6006b7efbf99dfebe177c1f/pyjnius-1.2.0.tar.gz</a><o:p></o:p></p><p class=MsoNormal>>        [exec] Collecting six>=1.7.0 (from pyjnius)<o:p></o:p></p><p class=MsoNormal>>        [exec]   Using cached <a href="https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl">https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl</a><o:p></o:p></p><p class=MsoNormal>>        [exec] Requirement already satisfied, skipping upgrade: cython in c:\program files\python37\lib\site-packages (from pyjnius) (0.29.6)<o:p></o:p></p><p class=MsoNormal>>        [exec] Installing collected packages: six, pyjnius<o:p></o:p></p><p class=MsoNormal>>        [exec]   Running setup.py install for pyjnius: started<o:p></o:p></p><p class=MsoNormal>>        [exec]     Running setup.py install for pyjnius: finished with status 'error'<o:p></o:p></p><p class=MsoNormal>>        [exec]     Complete output from command "C:\Program Files\Python37\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\cygwin64\\tmp\\pip-install-bb5fdimw\\pyjnius\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\cygwin64\tmp\pip-record-rm9cetjj\install-record.txt --single-version-externally-managed --compile:<o:p></o:p></p><p class=MsoNormal>>        [exec]     C:/Program Files/Java/jdk1.8.0_202<o:p></o:p></p><p class=MsoNormal>>        [exec]     WARNING: Not able to assign machine() = AMD64 to a cpu value!<o:p></o:p></p><p class=MsoNormal>>        [exec]              Using cpu = 'i386' instead!<o:p></o:p></p><p class=MsoNormal>>        [exec]     JDK_HOME: C:/Program Files/Java/jdk1.8.0_202<o:p></o:p></p><p class=MsoNormal>>        [exec]<o:p></o:p></p><p class=MsoNormal>>        [exec]     JRE_HOME: C:/Program Files/Java/jdk1.8.0_202\jre<o:p></o:p></p><p class=MsoNormal>>        [exec]<o:p></o:p></p><p class=MsoNormal>>        [exec]     warning: [options] bootstrap class path not set in conjunction with -source 1.6<o:p></o:p></p><p class=MsoNormal>>        [exec]     1 warning<o:p></o:p></p><p class=MsoNormal>>        [exec]     running install<o:p></o:p></p><p class=MsoNormal>>        [exec]     running build<o:p></o:p></p><p class=MsoNormal>>        [exec]     running build_py<o:p></o:p></p><p class=MsoNormal>>        [exec]     creating build<o:p></o:p></p><p class=MsoNormal>>        [exec]     creating build\<a href="http://lib.win">lib.win</a>-amd64-3.7<o:p></o:p></p><p class=MsoNormal>>        [exec]     copying jnius_config.py -> build\<a href="http://lib.win">lib.win</a>-amd64-3.7<o:p></o:p></p><p class=MsoNormal>>        [exec]     creating build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius<o:p></o:p></p><p class=MsoNormal>>        [exec]     copying jnius\reflect.py -> build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius<o:p></o:p></p><p class=MsoNormal>>        [exec]     copying jnius\signatures.py -> build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius<o:p></o:p></p><p class=MsoNormal>>        [exec]     copying jnius\__init__.py -> build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius<o:p></o:p></p><p class=MsoNormal>>        [exec]     creating build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius\src<o:p></o:p></p><p class=MsoNormal>>        [exec]     creating build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius\src\org<o:p></o:p></p><p class=MsoNormal>>        [exec]     creating build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius\src\org\jnius<o:p></o:p></p><p class=MsoNormal>>        [exec]     copying jnius\src\org\jnius\NativeInvocationHandler.class -> build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius\src\org\jnius<o:p></o:p></p><p class=MsoNormal>>        [exec]     copying jnius\src\org\jnius\NativeInvocationHandler.java -> build\<a href="http://lib.win">lib.win</a>-amd64-3.7\jnius\src\org\jnius<o:p></o:p></p><p class=MsoNormal>>        [exec]     running build_ext<o:p></o:p></p><p class=MsoNormal>>        [exec]     cythoning jnius\jnius.pyx to jnius\jnius.c<o:p></o:p></p><p class=MsoNormal>>        [exec]     C:\Program Files\Python37\lib\site-packages\Cython\Compiler\Main.py:367: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: C:\cygwin64\tmp\pip-install-bb5fdimw\pyjnius\jnius\jnius.pyx<o:p></o:p></p><p class=MsoNormal>>        [exec]       tree = Parsing.p_module(s, pxd, full_module_name)<o:p></o:p></p><p class=MsoNormal>>        [exec]     building 'jnius' extension<o:p></o:p></p><p class=MsoNormal>>        [exec]     error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": <a href="https://visualstudio.microsoft.com/downloads/">https://visualstudio.microsoft.com/downloads/</a><o:p></o:p></p><p class=MsoNormal>>        [exec]<o:p></o:p></p><p class=MsoNormal>>        [exec]     ----------------------------------------<o:p></o:p></p><p class=MsoNormal>>        [exec] Command ""C:\Program Files\Python37\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\cygwin64\\tmp\\pip-install-bb5fdimw\\pyjnius\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\cygwin64\tmp\pip-record-rm9cetjj\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\cygwin64\tmp\pip-install-bb5fdimw\pyjnius\<o:p></o:p></p><p class=MsoNormal>>        [exec] Result: 1<o:p></o:p></p><p class=MsoNormal>>        [echo] bs4 Beautiful Soup is a Python library for pulling data out of HTML and XML files<o:p></o:p></p><p class=MsoNormal>>        [echo] <a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc">https://www.crummy.com/software/BeautifulSoup/bs4/doc</a><o:p></o:p></p><p class=MsoNormal>>        [exec] Collecting bs4<o:p></o:p></p><p class=MsoNormal>>        [exec]   Using cached <a href="https://files.pythonhosted.org/packages/10/ed/7e8b97591f6f456174139ec089c769f89a94a1a4025fe967691de971f314/bs4-0.0.1.tar.gz">https://files.pythonhosted.org/packages/10/ed/7e8b97591f6f456174139ec089c769f89a94a1a4025fe967691de971f314/bs4-0.0.1.tar.gz</a><o:p></o:p></p><p class=MsoNormal>>        [exec] Requirement already satisfied, skipping upgrade: beautifulsoup4 in c:\program files\python37\lib\site-packages (from bs4) (4.7.1)<o:p></o:p></p><p class=MsoNormal>>        [exec] Requirement already satisfied, skipping upgrade: soupsieve>=1.2 in c:\program files\python37\lib\site-packages (from beautifulsoup4->bs4) (1.8)<o:p></o:p></p><p class=MsoNormal>>        [exec] Installing collected packages: bs4<o:p></o:p></p><p class=MsoNormal>>        [exec]   Running setup.py install for bs4: started<o:p></o:p></p><p class=MsoNormal>>        [exec]     Running setup.py install for bs4: finished with status 'done'<o:p></o:p></p><p class=MsoNormal>>        [exec] Successfully installed bs4-0.0.1<o:p></o:p></p><p class=MsoNormal>>        [echo] lxml - XML and HTML with Python <a href="https://lxml.de">https://lxml.de</a><o:p></o:p></p><p class=MsoNormal>>        [exec] Requirement already up-to-date: lxml in c:\program files\python37\lib\site-packages (4.3.2)<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> BUILD SUCCESSFUL<o:p></o:p></p><p class=MsoNormal>> Total time: 22 seconds<o:p></o:p></p><p class=MsoNormal>> =====================================<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> (Finally) a nice feature:  don't need admin permission if packages are up-to-date, and the output diagnostics provide confirmation.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> c. Still have problems with:<o:p></o:p></p><p class=MsoNormal>>        "[exec]     error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": <a href="https://visualstudio.microsoft.com/downloads/">https://visualstudio.microsoft.com/downloads/</a>"<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Is that really needed?<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> d. Still have problems with jacocoant.jar - can't seem to find it online   8(<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Looked all around the jacoco pages without success, wondering how to get it (or build it).<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Kept searching elsewhere and found it in the Maven mvnrepository:<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>>             <a href="https://mvnrepository.com/artifact/org.jacoco/org.jacoco.ant/">https://mvnrepository.com/artifact/org.jacoco/org.jacoco.ant/</a><o:p></o:p></p><p class=MsoNormal>>             <a href="https://mvnrepository.com/artifact/org.jacoco/org.jacoco.ant/0.8.3">https://mvnrepository.com/artifact/org.jacoco/org.jacoco.ant/0.8.3</a><o:p></o:p></p><p class=MsoNormal>>             <a href="http://central.maven.org/maven2/org/jacoco/org.jacoco.ant/0.8.3/org.jacoco.ant-0.8.3.jar">http://central.maven.org/maven2/org/jacoco/org.jacoco.ant/0.8.3/org.jacoco.ant-0.8.3.jar</a><o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Then put that in the project path with other .jars, i.e.<o:p></o:p></p><p class=MsoNormal>>             C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\stylesheets\java\lib<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Then updated the build.xml file:<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"><o:p></o:p></p><p class=MsoNormal>>       <classpath path="../../../lib/org.jacoco.ant-0.8.3.jar"/><o:p></o:p></p><p class=MsoNormal>>       <!-- <classpath path="~/Downloads/jacoco-0.8.3/lib/jacocoant.jar"/>--><o:p></o:p></p><p class=MsoNormal>> </taskdef><o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> However there is some kind of versionitis problem between your code and the 0.8.3 .jar, the following errors result:<o:p></o:p></p><p class=MsoNormal>> C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\stylesheets\java\src\python\pyjnius\build.xml:87: The following error occurred while executing this line:<o:p></o:p></p><p class=MsoNormal>> jar:file:/C:/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/java/lib/jacocoant.jar!/org/jacoco/ant/antlib.xml:17:">www.web3d.org/x3d/stylesheets/java/lib/jacocoant.jar!/org/jacoco/ant/antlib.xml:17:</a> taskdef A class needed by class org.jacoco.ant.ReportTask cannot be found: org/jacoco/core/analysis/ICoverageNode<o:p></o:p></p><p class=MsoNormal>>    using the classloader AntClassLoader[C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\stylesheets\java\lib\jacocoant.jar]<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><p class=MsoNormal>> On 2/17/2019 4:10 PM, John Carlson wrote:<o:p></o:p></p><p class=MsoNormal>>> I am ready to talk about PythonSerializer.js or PythonPipeliningSerializer.js, but not X3dToPython.xslt.  You will probably have to take the lead on that.  If we’re just discussing the Python SAI, I have 2 solutions for that, both probably incomplete.   But I haven’t recently run the pipelined programs under visual inspection to see if my last change fixed it or not.  So we can catch up together.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> 2/19 at 2pm PM is fine with me.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> My friends have had the best luck with PyCharm.  I suspect that Anaconda will work with PyCharm, but let’s not try it as long as you have a way of editing a python program.  I will try to set up a jupyter here: <a href="http://jupyter.goexchange.de/hub/user/john/">http://jupyter.goexchange.de/hub/user/john/</a> contact me over phone for password, but I think we may need admin privileges to install pyjnius there (will have to talk to alex). It would be good to see any installed programs like R export X3DOM or X_ITE.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> I have removed x3d-public from the list to maintain some measure of confidentiality for alex’s machines.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> I have also incompletely added JACOCO to build.xml (needs work).<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 Mail <<a href="https://go.microsoft.com/fwlink/?LinkId=550986">https://go.microsoft.com/fwlink/?LinkId=550986</a>> for Windows 10<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> *From: *Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">mailto:brutzman@nps.edu</a>><o:p></o:p></p><p class=MsoNormal>>> *Sent: *Sunday, February 17, 2019 11:24 AM<o:p></o:p></p><p class=MsoNormal>>> *To: *John Carlson <<a href="mailto:yottzumm@gmail.com">mailto:yottzumm@gmail.com</a>><o:p></o:p></p><p class=MsoNormal>>> *Cc: *X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org">mailto:x3d-public@web3d.org</a>><o:p></o:p></p><p class=MsoNormal>>> *Subject: *X3D python again<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> hi John.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> Even after recent retries, never did get python 3.7.2 stock package working properly on windows 10.  Not sure why, suspect interference from other python-related packages/paths.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>>                   <a href="https://www.python.com">https://www.python.com</a><o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> after a large number of hours spent in python-install heck, i finally have anaconda package with python v3.1 mostly working.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>>                   <a href="https://www.anaconda.com">https://www.anaconda.com</a><o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> their installer fails if there is any extraneous python anywhere in path - got past that by uninstalling, manual removals, and manual editing of environment variables to get everything back to bare metal.  another major time-waste was that anaconda also appears to succeed but actually fails if installed as localuser (somewhat similar failure to install of stock python) and so have installed it as admin, with permissions for all users, for best supervisory ability.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> launching the anaconda navigator and anaconda spyder environments still fails for me, but otherwise things seem to be working.  tracked down idle and exposed its batch file.  of note is that anaconda includes R and also Jupyter notebook.  these are all important target environments for X3D.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> will keep working, hoping to set up a meeting next week after long weekend.  given that i've finally got something going, am ready to resume "playing catch up" to your PYJNIUS mappings for X3DJSAIL.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> as part of resynch, let's start out with documenting X3dToPython similar to how we proceeded with<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>>                   X3D JSON Encoding<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>>                   <a href="http://www.web3d.org/wiki/index.php/X3D_JSON_Encoding">http://www.web3d.org/wiki/index.php/X3D_JSON_Encoding</a><o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>>                   X3D to JSON Stylesheet Converter<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>>                   <a href="http://www.web3d.org/x3d/stylesheets/X3dToJson.html">http://www.web3d.org/x3d/stylesheets/X3dToJson.html</a><o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> Might Tuesday 1400-1500 pacific (or later) work for you?  Web3D Conference line, in case someone wants to join the journey with us.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> Looking forward to regaining progress together, again thanks for your patience.<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> all the best, Don<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><p class=MsoNormal>>> Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a><o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<o:p></o:p></p><p class=MsoNormal>>> <o:p></o:p></p><p class=MsoNormal>>> X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman">http://faculty.nps.edu/brutzman</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>> <o:p></o:p></p><p class=MsoNormal>> all the best, Don<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><p class=MsoNormal>all the best, Don<o:p></o:p></p><p class=MsoNormal>-- <o:p></o:p></p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a><o:p></o:p></p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<o:p></o:p></p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman">http://faculty.nps.edu/brutzman</a><o:p></o:p></p></div></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:.5in;margin-bottom:5.0pt;margin-left:.5in'> <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>