<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:"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:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></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-GB link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoPlainText>Hi,<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Thanks for following up with this Michaelis. I was particularly interested to note that you permit an Inline node to read an STL file (as well as others, perhaps). I assume you simply specify the STL file in the URL, and your code selects an appropriate reader depending on the file extension and/or reading the header.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I looked at the standard to see what it might have to say on this topic, in ISO/IEC 19775-1:2013, clause 9.3.2 X3DUrlObject<o:p></o:p></p><p class=MsoPlainText>Reference: <a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/networking.html#X3DUrlObject">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/networking.html#X3DUrlObject</a><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>The third paragraph is particularly relevant. It reads:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>"Each specified URL shall refer to a valid X3D file that contains a list of children nodes, prototypes and routes at the top level as described in 10.2.1 Grouping and children node types. The results are undefined if the URL refers to a file that is not an X3D file, or if the X3D file contains an invalid scene." <o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>To permit loading of file types other than formal X3D files this text would have to be modified.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>All the best,<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Roy<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>-----Original Message-----<o:p></o:p></p><p class=MsoPlainText>From: x3d-public [mailto:x3d-public-bounces@web3d.org] On Behalf Of Michalis Kamburelis<o:p></o:p></p><p class=MsoPlainText>Sent: 14 August 2017 04:35<o:p></o:p></p><p class=MsoPlainText>To: Don Brutzman <brutzman@nps.edu><o:p></o:p></p><p class=MsoPlainText>Cc: X3D Design Printing Scanning working group <cad@web3d.org>; X3D Graphics public mailing list <x3d-public@web3d.org><o:p></o:p></p><p class=MsoPlainText>Subject: Re: [x3d-public] STL File Format for 3D Printing - Simply Explained | All3DP<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>2017-08-14 3:35 GMT+02:00 Don Brutzman <brutzman@nps.edu>:<o:p></o:p></p><p class=MsoPlainText>> Good article of general interest:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>>         STL File Format for 3D Printing - Simply Explained | All3DP<o:p></o:p></p><p class=MsoPlainText>>         June 13, 2017 bub Dibya Chakravorty<o:p></o:p></p><p class=MsoPlainText>>         <o:p></o:p></p><p class=MsoPlainText>> https://all3dp.com/what-is-stl-file-format-extension-3d-printing<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Interesting thought question:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> -if we follow Fraunhofer's SRC pattern and have both ExternalShape and <o:p></o:p></p><p class=MsoPlainText>> ExternalGeometry nodes,<o:p></o:p></p><p class=MsoPlainText>> -  and now replace SRC with glTF 2, then<o:p></o:p></p><p class=MsoPlainText>> - might we similarly allow loading of STL models in ExternalShape and <o:p></o:p></p><p class=MsoPlainText>> ExternalGeometry nodes?<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>1. view3dscene https://castle-engine.sourceforge.io/view3dscene.php<o:p></o:p></p><p class=MsoPlainText>can already read STL files (both text and binary encodings) and render them, and convert to X3D. You can also use "Inline" node to include STL files inside a larger X3D scene.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>2. STL became a standard format for 3D printing, but it's simplicity comes at a price. It does not carry *any* information beyond coordinates and normals.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>  This is not a criticism per se -- the STL simplicity works great in some usecases, like 3D printing.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>  But for visualization, when you want to show something "pretty" (not only to check whether your shape is correct), you will usually want something more. At least simple 2D texture coordinates. And STL does not allow them. (Not to mention colors per vertex, multiple texture coordinates, custom shader attributes...).<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Regards,<o:p></o:p></p><p class=MsoPlainText>Michalis<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>_______________________________________________<o:p></o:p></p><p class=MsoPlainText>x3d-public mailing list<o:p></o:p></p><p class=MsoPlainText>x3d-public@web3d.org<o:p></o:p></p><p class=MsoPlainText>http://web3d.org/mailman/listinfo/x3d-public_web3d.org<o:p></o:p></p></div></body></html>