<div dir="ltr"><div>The answer to your question is right there in the draft specification prose.</div><div><ul><li>X3D Architecture draft v4.2, 9 Networking component, 9.4.3 InlineGeometry</li><li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/networking.html#InlineGeometry">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/networking.html#InlineGeometry</a></li></ul></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><span style="background-color:rgb(0,255,255)">Results from browser loading may be any kind of polygonal mesh or parametric surface (e.g. IndexedFaceSet, TriangleSet, Extrusion, etc.) but cannot be further manipulated or animated by events from the scene.</span></div></div></blockquote><div><br></div><div><span style="background-color:rgb(255,255,255)">There are no fields in the InlineGeometry node interface to manipulate underlying geometry because each browser gets to decide how to tesselate an external geometry file.</span></div><div><span style="background-color:rgb(255,255,255)"><br></span></div><div><span style="background-color:rgb(255,255,255)">Suggestion: if you want the functionality of a Coordinate node, use a Coordinate node. Similarly for indexed geometry nodes, Normal and Tangent, Color and whatnot. Careful design of strongly typed X3D scene graphs is important. Online examples often provide excellent patterns for success.</span></div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div><br></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, Feb 21, 2026 at 6:10 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Don,</div><div dir="auto"><br></div><div dir="auto">I wonder how InlineGeometry might interoperate with HAnimHumanoid through <div dir="auto" style="font-size:inherit"><span style="color:rgb(0,0,0);font-family:-apple-system,sans-serif;font-size:inherit;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">HAnimHumanoid.</span><span style="font-family:-apple-system,sans-serif">skinCoord? </span><span style="font-family:-apple-system,sans-serif">So if the entire skin is in a STL file, how would we reference points inside the STL file through skinCoord?</span></div><div dir="auto" style="font-size:inherit"><span style="font-family:-apple-system,sans-serif"><br></span></div><div dir="auto" style="font-size:inherit"><span style="font-family:-apple-system,sans-serif">Could we have </span><span style="font-size:inherit;font-family:-apple-system,sans-serif">read-only </span><span style="font-size:inherit;font-family:-apple-system,sans-serif">field values in InlineGeometry</span><span style="font-size:inherit;font-family:-apple-system,sans-serif"> for</span><span style="font-size:inherit;font-family:-apple-system,sans-serif"> coordIndex, points, and vectors, normals and </span><span style="font-size:inherit;font-family:-apple-system,sans-serif">tangents?</span></div><div dir="auto" style="font-size:inherit"><span style="font-family:-apple-system,sans-serif"><br></span></div><div dir="auto" style="font-size:inherit"><span style="font-family:-apple-system,sans-serif">I’m not sure if InlineGeometry is suitable as is for HAnimHumanoid skin, unless it’s a corpse.</span></div><div dir="auto" style="font-size:inherit"><span style="font-family:-apple-system,sans-serif"><br></span></div><div dir="auto" style="font-size:inherit"><span style="font-family:-apple-system,sans-serif">Adding HAnim group.</span></div><div dir="auto" style="font-size:inherit"><span style="font-family:-apple-system,sans-serif"><br></span></div><div dir="auto" style="font-size:inherit"><span style="font-family:-apple-system,sans-serif">John </span><br></div></div><div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Sat, Feb 21, 2026 at 6:45 PM Don Brutzman via X3D-Ecosystem <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Thanks for all feedback received. I've worked with Dick to draft a proposed node definition. Current version follows.</div><div><ul><li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/networking.html#InlineGeometry" target="_blank">X3D Architecture 4.1 draft — ISO/IEC 19775-1:202x — 9 Networking component</a><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/networking.html#InlineGeometry" target="_blank"> - 9.4.3 InlineGeometry</a></li><li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/networking.html#InlineGeometry" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/networking.html#InlineGeometry</a></li></ul></div><div><div title="Mantis 1522" style="background-color:yellow;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><h2 style="margin-top:18px"><font size="2">9.4.3 InlineGeometry</font></h2><pre style="margin-left:25px">InlineGeometry : X3DGeometryNode, X3DUrlObject {
SFTime [in,out] autoRefresh 0.0 [0,infinity)
SFTime [in,out] autoRefreshTimeLimit 3600.0 [0,infinity)
SFString [in,out] description ""
SFBool [in,out] load TRUE
SFNode [in,out] metadata NULL [X3DMetadataObject]
MFString [in,out] url [] [URI]
}
</pre><p>InlineGeometry loads geometry from an external file. The result provides a polygonal mesh, set of lines, point cloud, parametric surface, or other geometry.</p><p>The <i>url</i> field can support loading a variety of file formats defining polygonal mesh geometry. When the <i>url</i> field contains no values ([]), no default geometry is provided. Recommended support by X3D browsers include ASCII and binary encodings for the STL format (see <a href="http://../bibliography.html#STL" target="_blank">STL</a>) and the PLY polygonal geometry format (see <a href="http://../bibliography.html#PLY" target="_blank">PLY</a>), respectively. Other file types can be optionally supported by a browser.</p><p>The run-time system can support any number of 3D model resource types as long as those follow the available Model Primary Content Type for Multipurpose Internet Mail Extensions (MIME) model definition (see <a href="http://../references.html#RFC2077" target="_blank">RFC2077</a>), provide a registered content type (e.g., <span style="font-family:monospace">model/stl</span>, <span style="font-family:monospace">text/plain</span> etc.) (see <a href="http://../references.html#IANA_MEDIA" target="_blank">IANA_MEDIA</a> and <a href="http://../references.html#IANA_STL" target="_blank">IANA_STL</a>), and can be determined with some form of content negotiation (see <span title="IETF revision"><a href="http://../references.html#RFC9110" target="_blank">RFC9110</a></span>). Support is recommended for both text and binary encodings associated with a given model format, when so defined.</p><p style="margin-top:18px;margin-bottom:18px;font-family:univers,arial,sans-serif">NOTE Experimental variations of PLY format used for Gaussian Splat rendering are not expected for InlineGeometry. Such capabilities are better supported by Inline node loading of glTF models.</p><p style="margin-top:18px;margin-bottom:18px;font-family:univers,arial,sans-serif">EXAMPLE </p><pre> Shape {
geometry InlineGeometry { url [ "MyFavoriteMesh.stl" ] }
appearance USE FancyPaintAppearance # previously defined
}</pre><div style="background-color:lightcyan"><p>Editors notes.</p><ul><li style="margin-top:4px">Are better authoritative references possible for STL and PLY? See <a href="https://mantis.web3d.org/view.php?id=1522" target="_blank">Mantis 1522</a>.</li><li style="margin-top:4px">InlineGeometry results differ from an Inline node, which produces an X3DChildNode scene subgraph implementing the X3DBoundedObject interface. An Inline node cannot be used as the <i>geometry</i> field of a Shape.</li><li style="margin-top:4px">Results from browser loading may be any kind of polygonal mesh or parametric surface (e.g. IndexedFaceSet, TriangleSet, Extrusion, etc.) but cannot be further manipulated or animated by events from the scene.</li><li style="margin-top:4px">Direct loading of such geometry files eliminates the need for prior model conversion into X3D, and adds flexibility when applying Appearance to the result.</li></ul></div></div><h2 style="margin-top:18px;color:rgb(0,0,0)"><font face="arial, sans-serif" size="2" style="font-weight:normal">Implementation, evaluation and improvement are welcome. Have fun with InlineGeometry! 😃</font></h2></div></div><div dir="ltr"><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 10, 2026 at 10:17 AM Don Brutzman <<a href="mailto:don.brutzman@gmail.com" target="_blank">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div>STL and PLY files are commonly used ways to define mesh geometry, often for rendering or for additive manufacturing. These formats are described at</div><div><ul><li>Wikipedia: <a href="https://en.wikipedia.org/wiki/STL_(file_format)" title="STL (file format)" style="font-family:sans-serif;font-size:12.7px;background:none;text-decoration-line:none;color:rgb(0,43,184)" target="_blank">STL (file format)</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px">, a file format for 3D CAD models</span></li><li><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small">Wikipedia: </span></span><a href="https://en.wikipedia.org/wiki/PLY_(file_format)" title="PLY (file format)" style="font-family:sans-serif;font-size:12.7px;background:none;text-decoration-line:none;color:rgb(0,43,184)" target="_blank">PLY (file format)</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> or Polygon File Format</span></li></ul></div><div>Typically if an X3D author wants to use such assets to load a mesh, they must be converted into an X3D graph. That is because the existing X3D Inline node results in an X3DChildNode rather than geometry. Pseudo-X3D example:</div><div><br></div><div><span style="background-color:rgb(255,242,204)">X3D</span></div><div><span style="background-color:rgb(255,242,204)"> Scene</span></div><div><span style="background-color:rgb(255,242,204)"> children [</span></div><div><span style="background-color:rgb(255,242,204)"> WorldInfo title="MyImportedMeshModel"</span></div><div><span style="background-color:rgb(255,242,204)"> Group (</span></div><div><span style="background-color:rgb(255,242,204)"> Shape </span></div><div><span style="background-color:rgb(255,242,204)"> </span><font color="#000000"><span style="background-color:rgb(255,242,204)">geometry</span> <b style="background-color:rgb(217,234,211)">I</b><b style="background-color:rgb(217,234,211)">ndexedFaceSet DEF="ConvertedFromStlOrPly"</b></font></div><div><b><font color="#000000"> <span style="background-color:rgb(217,234,211)">Coordinate etc.</span></font></b></div><div><br></div><div>All of these gyrations require the use of a converter. Incidentally here are two excellent converters:</div><div><ul><li>Castle Online Converter for 3D and 2D Models</li><li><a href="https://castle-engine.io/convert.php" target="_blank">https://castle-engine.io/convert.php</a></li></ul><div>and</div></div><div><ul><li>X_ITE Free Online X3D File Format Converter</li><li><a href="https://create3000.github.io/x_ite/laboratory/x3d-file-converter/" target="_blank">https://create3000.github.io/x_ite/laboratory/x3d-file-converter/</a></li></ul></div><div>Suggestion: why don't we define a new X3D node <b>InlineGeometry</b> that supports direct loading of STL or PLY geometry files, simplifying the current import process. Possible node interface would be something like</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><pre style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><b>InlineGeometry</b> : X3DGeometryNode, X3DUrlObject {
SFTime [in,out] autoRefresh 0.0 [0,∞)
SFTime [in,out] autoRefreshTimeLimit 3600.0 [0,∞)\
SFString [in,out] description ""
SFBool [in,out] load TRUE
SFNode [in,out] metadata NULL [X3DMetadataObject]
MFString [in,out] url [] [URI]
}</pre></blockquote><div>Am thinking that implementers of such a node might use any internal representation that they like: IndexedFaceSet, TriangleSet, IndexedStripSet, etc. etc. How the geometry gets rendered doesn't much matter to an end user, they just want the mesh to show up from the STL or PLY file.</div><div><br></div><div>Example usage:</div><div><br></div><div> Shape</div> appearance Appearance (USE="FancyPaint")<div> geometry<b> <font color="#38761d" style="background-color:rgb(217,234,211)">InlineGeometry (url="MyFavoriteMesh.stl")</font></b> # direct loading eliminates need for conversion</div><div><br></div><div>One conceivable alternative is to create a Coordinate node, but that approach is insufficient since Coordinate only contains points and all connectivity information for the mesh gets lost. So that won't work, we should stick to X3DGeometryNode as the result of the inline geometry import.</div><div><br></div><div>Restriction: apparently a recent develop some people are extending PLY file format to store gaussian splat information... we likely want to exclude such atypical functionality, instead waiting to take advantage of emerging glTF support for gaussian splats.</div><div><br></div><div>Relevant X3D Architecture specification links:</div></div><div><ul><li>X3D Architecture draft 4.1, 11 Rendering component, <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/rendering.html#X3DGeometryNode" target="_blank">11.3.5 X3DGeometryNode</a></li><li>X3D Architecture draft 4.1, 9 Networking component, <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/networking.html#X3DUrlObject" target="_blank">9.3.2 X3DUrlObject</a></li></ul><div>I've started a Mantis issue to keep track of distilled commentary, to help ensure that we carefully and effectively consider such a powerful capability.</div></div><div><ul><li>Web3D Mantis issue tracker 1522: proposed X3D node: InlineGeometry</li><li><a href="https://mantis.web3d.org/view.php?id=1522" target="_blank">https://mantis.web3d.org/view.php?id=1522</a></li></ul></div><div>All feedback welcome. What do you think?</div><div><br></div><div>Have fun with X3D mesh interoperability! 😃 💠</div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div></div>
</blockquote></div>
-- <br>
X3D-Ecosystem mailing list<br>
<a href="mailto:X3D-Ecosystem@web3d.org" target="_blank">X3D-Ecosystem@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-ecosystem_web3d.org</a><br>
</blockquote></div></div>
</blockquote></div>