<html xmlns:v="urn:schemas-microsoft-com:vml" 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=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle22
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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:940573623;
        mso-list-type:hybrid;
        mso-list-template-ids:-1814180 713850980 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Hi John.  You are looking at build scripts for X3DPSAIL also known as x3d.py which is the python library implementing X3D SAI.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Python X3D Package x3d.py<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://www.web3d.org/x3d/stylesheets/python/python.html<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>We had some work on X3D Model Exchange development which used Blender to convert x3d to stl.  Simple command-line invocation (CLI).  Not sure if it currently works, blender might have changed since last summer.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Given Meshlab improvements and python additions, am expecting lots of activity will emerge with Blender Meshlab and Python in the coming year.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Meanwhile am focused on X3D-Edit.  No direct support there for STL or PLY, though it would be nice.  Since X3D has many ways to express a mesh, I’d expect a model would have to be fully tessellated (at some resolution) before being available for conversion to STL.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Meanwhile, going from STL to X3D appears a lot easier since the STL file is a single mesh.  Suggest turning that into an IndexedFaceSet.  I believe there are variations of STL and also various libraries.  If you get something working in Java stably we can probably add it to X3D-Edit and X3DJSAIL, similarly for Python and X3DPSAIL><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Good luck!<o:p></o:p></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'>faculty.nps.edu/brutzman<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> John Carlson <yottzumm@gmail.com> <br><b>Sent:</b> Tuesday, December 20, 2022 7:23 PM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu>; Norbraten, Terry (CIV) <tdnorbra@nps.edu>; Joe D Williams <joedwil@earthlink.net>; X3D Graphics public mailing list <x3d-public@web3d.org><br><b>Subject:</b> Suspecting that something is being added to X3D-Edit as we speak.<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><div><div><div><p class=MsoNormal>Didn't find any X3dToStl.xslt, but found, something else:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>john@DESKTOP-8OPL3IE MINGW64 /c/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/java/src/python/blenderScripts">www.web3d.org/x3d/stylesheets/java/src/python/blenderScripts</a><o:p></o:p></p></div><div><p class=MsoNormal>$ ls -l<o:p></o:p></p></div><div><p class=MsoNormal>total 1140<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609   4794 Oct 27 23:44 BlenderStlToX3d.py<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609   7145 Oct 27 23:44 <b><u>BlenderX3dToMultipleExports.py</u></b><o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609  12403 Oct 27 23:44 BlenderX3dToPng.py<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609  20358 Oct 27 23:44 build.out.txt<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609  10994 Oct 27 23:44 build.xml<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 129541 Oct 27 23:44 HanChenTest.viewpoint.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 139229 Oct 27 23:44 HanChenTest.viewpoint1.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 544494 Oct 27 23:44 HanChenTest.x3d<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 163884 Oct 27 23:44 LPD17.stl<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 113347 Oct 27 23:44 LPD17.x3d<o:p></o:p></p></div><div><p class=MsoNormal>drwxr-xr-x 1 john 197609      0 Oct 27 23:44 products/<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>john@DESKTOP-8OPL3IE MINGW64 /c/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/java/src/python/blenderScripts">www.web3d.org/x3d/stylesheets/java/src/python/blenderScripts</a><o:p></o:p></p></div><div><p class=MsoNormal>$ !find<o:p></o:p></p></div><div><p class=MsoNormal>find . -name "*stl"<o:p></o:p></p></div><div><p class=MsoNormal>./LPD17.stl<o:p></o:p></p></div><div><p class=MsoNormal>./products/LPD17.blender.stl<o:p></o:p></p></div><div><div><p class=MsoNormal>john@DESKTOP-8OPL3IE MINGW64 /c/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/java/src/python/blenderScripts/products">www.web3d.org/x3d/stylesheets/java/src/python/blenderScripts/products</a><o:p></o:p></p></div><div><p class=MsoNormal>$ ls -l<o:p></o:p></p></div><div><p class=MsoNormal>total 3193<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 609800 Oct 27 23:44 LPD17.blend<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 535603 Oct 27 23:44 LPD17.blender.ply<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609  29203 Oct 27 23:44 LPD17.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 160634 Oct 27 23:44 LPD17.blender.stl<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 122559 Oct 27 23:44 LPD17.blender.tidy.x3d<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 123106 Oct 27 23:44 LPD17.blender.x3d<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609  45269 Oct 27 23:44 LPD17.blender_mono.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 123114 Oct 27 23:44 LPD17.blender_mono.x3d<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 122719 Oct 27 23:44 LPD17.blenderTidy.x3d<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 126614 Oct 27 23:44 LPD17.viewpoint.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 126406 Oct 27 23:44 LPD17.viewpoint1.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 126779 Oct 27 23:44 LPD17.viewpoint2.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 126525 Oct 27 23:44 LPD17.viewpoint3.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 126762 Oct 27 23:44 LPD17.viewpoint4.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 128388 Oct 27 23:44 LPD17.viewpoint5.blender.png<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609 609800 Oct 27 23:44 LPD17_mono.blend<o:p></o:p></p></div><div><p class=MsoNormal>-rw-r--r-- 1 john 197609    121 Oct 27 23:44 README.md<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>When can we see a test version in X3D-Edit?  I'm guessing Blender does the tessellating?  Should I look at the menus again?   Will do!<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John<o:p></o:p></p></div></div></div></div></div></div></body></html>