<div dir="ltr"><span style="font-family:Arial,sans-serif;font-size:14px">"we convert 100% .. to X3D nodes. Most .. are standard X3D nodes .. added some extensions ..</span><span style="font-family:Arial,sans-serif;font-size:14px"> all documented"</span><div><span style="font-family:Arial,sans-serif;font-size:14px">Michalis, thanks very much, big help. </span></div><div><span style="font-family:Arial,sans-serif;font-size:14px">-Doug Sanden</span></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Mar 31, 2026 at 2:14 PM Michalis Kamburelis <<a href="mailto:michalis@castle-engine.io">michalis@castle-engine.io</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 style="font-family:Arial,sans-serif;font-size:14px">Same approach (as Holger describes for X_ITE) applies also to Castle Game Engine and Castle Model Viewer.</div><div style="font-family:Arial,sans-serif;font-size:14px"><br></div><div style="font-family:Arial,sans-serif;font-size:14px">When loading glTF, we convert 100% of the information to X3D nodes. Most of them are standard X3D nodes, though we added some extensions to make it easier. <span>It's all documented on <span><a rel="noreferrer nofollow noopener" href="https://github.com/michaliskambi/x3d-tests/wiki/Converting-glTF-to-X3D" target="_blank">https://github.com/michaliskambi/x3d-tests/wiki/Converting-glTF-to-X3D</a> . We have deliberately made it easy by "aligning" some X3D features with glTF, e.g. X3D 4 PhysicalMaterial is very much like standard glTF material (sans glTF extensions to material, for which X_ITE has extensions to X3D which I also like!).</span></span></div><div style="font-family:Arial,sans-serif;font-size:14px"><span><span></span></span><span><br></span></div><div style="font-family:Arial,sans-serif;font-size:14px"><span>Our supported nodes, along with some extensions, are documented on pages linked from <span><a rel="noreferrer nofollow noopener" href="https://castle-engine.io/x3d" target="_blank">https://castle-engine.io/x3d</a></span> (see the sidebar).</span></div><div style="font-family:Arial,sans-serif;font-size:14px"><div><br></div><div><span>Note: This answer is not specific to glTF. We load _all_ 3D models (we support about 15 model formats) this way. So this includes formats like Collada, IFC, Spine JSON etc. See <span><a rel="noreferrer nofollow noopener" href="https://castle-engine.io/model_formats" target="_blank">https://castle-engine.io/model_formats</a></span> . All the loaders are defined in <a rel="noreferrer nofollow noopener" href="https://github.com/castle-engine/castle-engine/tree/master/src/scene/load" target="_blank">https://github.com/castle-engine/castle-engine/tree/master/src/scene/load</a> -- as you can verify, the "loaders" are really just "converters into X3D nodes graph".</span></div><div><span></span></div><div><br></div><div><span>Note: </span>This answer is not specific to web either :) We use this approach for all platforms in CGE, including web.</div><div><br></div><div>Regards,</div><div>Michalis</div></div><div style="font-family:Arial,sans-serif;font-size:14px"><br></div>
<div style="font-family:Arial,sans-serif;font-size:14px">
<div>
</div>
<div>
</div>
</div>
<div style="font-family:Arial,sans-serif;font-size:14px"><br></div><div>
On Tuesday, March 31st, 2026 at 17:32, GPU Group via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<br>
<blockquote type="cite">
<div dir="ltr">Q. What's the best/right way to support gltf2 in a web3d browser:<div>a) on loading convert to web3d nodes</div><div>b) load into a gltf node and treat as a sub-scenegraph, and use a gltf2-specific rendering pipeline on each frame</div><div>-Doug Sanden</div></div>
</blockquote><br>
</div></blockquote></div>