<div dir="ltr"><div>Thank you Michalis for implementing the draft InlineGeometry node.  Having both Castle Game Engine and (already supporting) X_ITE/Playground/Sunrize is definitely accelerating our design, implementation and evaluation of LOA-5 bone segments for HAnim.  Tests of your Castle Model Viewer beta release look good on this end.</div><div><br></div><div>Repeating a prior reply:  "Gaussian Splat PLYs" (whatever that means) does not seem like a good use of effort.  There is a lot of ongoing developmental work on gaussian splat formats by various companies that are nonstandard, inconsistent, possibly unstable, and often proprietary.  Some happen to use .ply as a container.  A prudent approach is to wait and see what glTF does once things stabilize.  Using Inline with glTF 2.0 (in json or glb) is already in X3D 4.0, extension support by browsers is optional, so that is a reasonable future path if consensus ever emerges.</div><div><br></div><div>The draft X3D specification for InlineGeometry describes rationale and includes references for the PLY format.</div><div><ul style="color:rgb(0,0,0)"><li style="font-size:13.5424px;font-family:Verdana,Arial,Helvetica,sans-serif;margin-top:4px"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/components/networking.html#InlineGeometry">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"><span class="gmail-proposed" title="Mantis 1522" style="background-color:yellow">9.4.3 InlineGeometry</span></a></li><li style="margin-top:4px"><font face="Verdana, Arial, Helvetica, sans-serif" style="font-size:13.5424px"><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></font><h2 style="margin-top:18px"><font face="monospace" style="" size="2">9.4.3 InlineGeometry</font></h2><pre class="gmail-node" 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 style=""><font face="monospace">InlineGeometry loads geometry from an external file. The result provides a polygonal mesh, set of lines, point cloud, parametric surface, or other geometry.</font></p><p style=""><font face="monospace">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. <span class="gmail-proposed" title="Mantis 1522" style="background-color:yellow">Required</span> <span class="gmail-proposedDeletion" title="Mantis 1522" style="background-color:orange;text-decoration-line:line-through">Recommended</span> support by X3D browsers includes both ASCII and binary encodings for the STL format (see <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/bibliography.html#STL">STL</a>) as well as the PLY polygonal geometry format (see <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/bibliography.html#PLY">PLY</a>), respectively. Other file types can be optionally supported by a browser.<span class="editorsNote" style="background-color:lightcyan"><br>TODO: consider "required support" of STL/PLY formats rather than "recommended support" since numerous open-source conversion implementations are available, no IPR considerations pertain, and STL/PLY formats are the primary use case.</span></font></p><p style=""><font face="monospace">If the <i>url</i> field refers to an X3D file or a VRML97 file, the first geometry node found in that file (excluding both prototype declarations and prototype instances) is used to provide the InlineGeometry contents. X3D browsers shall recognize <i>url</i> fields that end with "#<i>DEFname</i>" to mean the geometry node with DEF label of <i>DEFname</i> in the given X3D or VRML97 file.</font></p><p style=""><font face="monospace" style="">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="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/references.html#RFC2077" style="">RFC2077</a>), provide a registered content type (e.g., <span class="gmail-code" style="">model/stl</span>, <span class="gmail-code" style="">text/plain</span> etc.) (see <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/references.html#IANA_MEDIA" style="">IANA_MEDIA</a> and <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/references.html#IANA_STL" style="">IANA_STL</a>), and can be determined with some form of content negotiation (see <span class="gmail-proposed" title="IETF revision" style="background-color:yellow"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/references.html#RFC9110">RFC9110</a></span>). Support is recommended for both text and binary encodings associated with a given model format, when so defined.</font></p><p class="gmail-note" style="font-size:14.4px;margin-top:18px;margin-bottom:18px"><font face="monospace">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.</font></p><p class="gmail-Example" style="font-size:14.4px;margin-top:18px;margin-bottom:18px"><font face="monospace">EXAMPLES </font></p><pre style="font-size:11.05px">    Shape {
        geometry InlineGeometry { url [ "MyFavoriteMesh.stl" ] }

        appearance USE FancyPaintAppearance # previously defined
    }</pre><pre style="font-size:11.05px">    Shape {
        geometry InlineGeometry { url [ "HelloWorld.x3d#TextMessage" ] }

        appearance USE FancyPaintAppearance # previously defined
    }</pre><div class="editorsNote" style="background-color:lightcyan"><p style=""><font face="monospace" style="">Editors notes.</font></p><ul style=""><li style="margin-top:4px"><font face="monospace">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>.</font></li><li style="margin-top:4px"><font face="monospace">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.</font></li><li style="margin-top:4px"><font face="monospace">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.</font></li><li style="margin-top:4px"><font face="monospace">Direct loading of such geometry files eliminates the need for prior model conversion into X3D, and adds flexibility when applying Appearance to the result.</font></li><li style="margin-top:4px"><font face="monospace">The "#<i>DEFname</i>" syntax directly matches <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/concepts.html#EXTERNPROTOURLSemantics">EXTERNPROTO URL semantics</a> considerations. Not requiring IMPORT/EXPORT statements provides greater backwards compatibility with legacy models, avoiding unnecessary complications and possible ambiguity.</font></li><li style="margin-top:4px"><font face="monospace">Composition of online addresses and parameter values within a <i style="">url</i> field offers the possibility of invoking an online server to perform file-format conversions. See email thread <a href="https://web3d.org/pipermail/x3d-public_web3d.org/2026-March/022355.html" target="_blank" style="">[x3d-public] Inline > type field > for loading / converting / parsing other content</a> for further discussion. Such additional functionality supports the use cases under consideration by Metaverse Standards Forum (MSF) <a href="https://metaverse-standards.org/domain-groups/3d-web-interoperability" target="_blank" style="">3D Web Interoperability</a> Working Group.</font></li></ul></div></li></ul></div><div><br></div><div>Worth reading: the original PLY definition first defined in 1994 by Greg Turk at Stanford University., references above.</div><div><ul><li>[<a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/bibliography.html#PLY">PLY</a>] </li><li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/bibliography.html#PLY">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/bibliography.html#PLY</a></li><li>Wikipedia, PLY (file format), 26 February 2026. <a href="https://en.wikipedia.org/wiki/PLY_(file_format)">https://en.wikipedia.org/wiki/PLY_(file_format)</a></li></ul><div>and</div></div><div><ol class="gmail-references" style="margin:0.3em 0px 0.5em 3.2em;padding:0px;font-size:11.43px;color:rgb(0,0,0);font-family:sans-serif"><li id="gmail-cite_note-1" style="margin-bottom:0.1em"> <span class="gmail-reference-text"><cite id="gmail-CITEREFGreg_Turk" class="gmail-citation gmail-web gmail-cs1" style="font-style:inherit">Greg Turk. <a rel="nofollow" class="external gmail-text" href="https://web.archive.org/web/20161204152348/http://www.dcs.ed.ac.uk/teaching/cs4/www/graphics/Web/ply.html" style="text-decoration-line:none;color:rgb(51,102,187);background:url("/w/resources/src/mediawiki.skinning/images/external-ltr.svg?c652e") right center no-repeat;padding-right:13px">"The PLY Polygon File Format"</a>. Archived from <a rel="nofollow" class="external gmail-text" href="http://www.dcs.ed.ac.uk/teaching/cs4/www/graphics/Web/ply.html" style="text-decoration-line:none;color:rgb(51,102,187);background:url("/w/resources/src/mediawiki.skinning/images/external-ltr.svg?c652e") right center no-repeat;padding-right:13px">the original</a> on 2016-12-04.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+PLY+Polygon+File+Format&rft.au=Greg+Turk&rft_id=http%3A%2F%2Fwww.dcs.ed.ac.uk%2Fteaching%2Fcs4%2Fwww%2Fgraphics%2FWeb%2Fply.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3APLY+%28file+format%29" class="gmail-Z3988"></span></span></li><li id="gmail-cite_note-2" style="margin-bottom:0.1em"> <span class="gmail-reference-text"><cite id="gmail-CITEREFGreg_Turk" class="gmail-citation gmail-web gmail-cs1" style="font-style:inherit">Greg Turk. <a rel="nofollow" class="external gmail-text" href="https://gamma.cs.unc.edu/POWERPLANT/papers/ply.pdf" style="text-decoration-line:none;color:rgb(51,102,187);background:url("//upload.wikimedia.org/wikipedia/commons/4/4d/Icon_pdf_file.png") right center no-repeat;padding:8px 18px 8px 0px">"The PLY Polygon File Format (extended)"</a> <span class="gmail-cs1-format" style="font-size:10.8585px">(PDF)</span>.</cite></span></li></ol><span style="font-style:inherit;color:rgb(0,0,0);font-family:sans-serif;font-size:11.43px">and</span></div><div><ul><li><span style="font-style:inherit;color:rgb(0,0,0);font-family:sans-serif;font-size:11.43px"><a href="https://paulbourke.net/dataformats/ply/">PLY - Polygon File Format</a> </span><a href="https://paulbourke.net/dataformats/ply">https://paulbourke.net/dataformats/ply</a></li></ul>Improvements to draft specification, especially with implementation and evaluation, are always welcome.</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"><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><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sun, Apr 5, 2026 at 6:39 PM John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@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><div dir="auto">Hi, Michalis, Seeing Gaussian Splat PLYs renderered with humanoid animation would be cool to see.  With your expertise in binary formats and binary PLY, probably an easy next step!</div></div><div dir="auto"><br></div><div dir="auto">John</div><div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Apr 5, 2026 at 8:05 PM Michalis Kamburelis via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@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">With big thanks to Don who provided information and pushed me to implement it!:)<br>
<br>
1.  We support now InlineGeometry in Castle Game Engine and Castle Model Viewer.<br>
<br>
    - I tested on a few examples, and made our own: <a href="https://github.com/castle-engine/demo-models/tree/master/x3d/inline_geometry" rel="noreferrer" target="_blank">https://github.com/castle-engine/demo-models/tree/master/x3d/inline_geometry</a><br>
<br>
    - You can refer to a geometry from any model format we support, including X3D, glTF, STL, PLY...: <a href="https://castle-engine.io/model_formats" rel="noreferrer" target="_blank">https://castle-engine.io/model_formats</a><br>
<br>
2.  We support now loading models in a PLY format.<br>
<br>
    - ASCII and binary versions.<br>
<br>
    - Faces or without faces (point cloud, i.e. just our PointSet).<br>
<br>
    - Testcases include <a href="https://github.com/castle-engine/demo-models/tree/master/ply" rel="noreferrer" target="_blank">https://github.com/castle-engine/demo-models/tree/master/ply</a> and <a href="https://sketchfab.com/3d-models/kaktus-ply-7b7cc7188f17468595506500e186a9c0" rel="noreferrer" target="_blank">https://sketchfab.com/3d-models/kaktus-ply-7b7cc7188f17468595506500e186a9c0</a> .<br>
<br>
More information and screenshots about both features in our news post on <a href="https://castle-engine.io/wp/2026/04/06/support-for-ply-model-format-and-inlinegeometry-node/" rel="noreferrer" target="_blank">https://castle-engine.io/wp/2026/04/06/support-for-ply-model-format-and-inlinegeometry-node/</a> .<br>
<br>
They are available to test right now if you download <br>
- the "snapshot" version of Castle Model Viewer <a href="https://castle-engine.io/castle-model-viewer" rel="noreferrer" target="_blank">https://castle-engine.io/castle-model-viewer</a> <br>
- or full engine from <a href="https://castle-engine.io/download" rel="noreferrer" target="_blank">https://castle-engine.io/download</a> .<br>
<br>
Regards,<br>
Michalis<br>
<br>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>
</div>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>