<div dir="ltr"><div>For our next X3D AI Working Group meeting...</div><div><ul><li>Tuesday 21 April 2026, 0800 pacific</li><li><a href="https://www.web3d.org/calendar/2800/x3d-ai-working-group-meeting/2025-11-19t160000-2025-12-16t160000-2026-01-20t160000">https://www.web3d.org/calendar/2800/x3d-ai-working-group-meeting/2025-11-19t160000-2025-12-16t160000-2026-01-20t160000</a></li></ul></div><div>... am hoping to briefly present the following significant work by Rick Lentz.</div><div><br></div><div>The Model Context Protocol (MCP)</div><div><ul><li><a href="https://en.wikipedia.org/wiki/Model_Context_Protocol">Model Context Protocol - Wikipedia</a></li><li><a href="https://en.wikipedia.org/wiki/Model_Context_Protocol">https://en.wikipedia.org/wiki/Model_Context_Protocol</a></li></ul><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px">The </span><b style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px">Model Context Protocol</b><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> (</span><b style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px">MCP</b><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px">) is an </span><a href="https://en.wikipedia.org/wiki/Open_standard" title="Open standard" style="text-decoration:none;color:rgb(0,43,184);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:sans-serif;font-size:12.7px">open standard</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> and </span><a href="https://en.wikipedia.org/wiki/Open-source" class="gmail-mw-redirect" title="Open-source" style="text-decoration:none;color:rgb(0,43,184);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:sans-serif;font-size:12.7px">open-source</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> </span><a href="https://en.wikipedia.org/wiki/Software_framework" title="Software framework" style="text-decoration:none;color:rgb(0,43,184);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:sans-serif;font-size:12.7px">framework</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> introduced by </span><a href="https://en.wikipedia.org/wiki/Anthropic" title="Anthropic" style="text-decoration:none;color:rgb(0,43,184);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:sans-serif;font-size:12.7px">Anthropic</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> in November 2024 to standardize the way </span><a href="https://en.wikipedia.org/wiki/Artificial_intelligence" title="Artificial intelligence" style="text-decoration:none;color:rgb(0,43,184);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:sans-serif;font-size:12.7px">artificial intelligence</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> (AI) systems like </span><a href="https://en.wikipedia.org/wiki/Large_language_model" title="Large language model" style="text-decoration:none;color:rgb(0,43,184);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:sans-serif;font-size:12.7px">large language models</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> (LLMs) integrate and share data with external tools, systems, and data sources.</span><sup id="gmail-cite_ref-venturebeat-2024-11-25_1-0" class="gmail-reference" style="line-height:1;unicode-bidi:isolate;white-space:nowrap;font-size:10.16px;color:rgb(0,0,0);font-family:sans-serif"><a href="https://en.wikipedia.org/wiki/Model_Context_Protocol#cite_note-venturebeat-2024-11-25-1" style="text-decoration:none;color:rgb(0,43,184);background:none"><span class="gmail-cite-bracket" style="pointer-events: none;">[</span>1<span class="gmail-cite-bracket" style="pointer-events: none;">]</span></a></sup><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> MCP provides a universal interface for reading files, executing functions, and handling contextual prompts.</span><sup id="gmail-cite_ref-venturebeat_2025-03-27_2-0" class="gmail-reference" style="line-height:1;unicode-bidi:isolate;white-space:nowrap;font-size:10.16px;color:rgb(0,0,0);font-family:sans-serif"><a href="https://en.wikipedia.org/wiki/Model_Context_Protocol#cite_note-venturebeat_2025-03-27-2" style="text-decoration:none;color:rgb(0,43,184);background:none"><span class="gmail-cite-bracket" style="pointer-events: none;">[</span>2<span class="gmail-cite-bracket" style="pointer-events: none;">]</span></a></sup><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> Following its announcement, the protocol was adopted by major AI providers, including </span><a href="https://en.wikipedia.org/wiki/OpenAI" title="OpenAI" style="text-decoration:none;color:rgb(0,43,184);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:sans-serif;font-size:12.7px">OpenAI</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px"> and </span><a href="https://en.wikipedia.org/wiki/Google_DeepMind" title="Google DeepMind" style="text-decoration:none;color:rgb(0,43,184);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;font-family:sans-serif;font-size:12.7px">Google DeepMind</a><span style="color:rgb(0,0,0);font-family:sans-serif;font-size:12.7px">.</span><sup id="gmail-cite_ref-TechCrunch_2025-03-25_3-0" class="gmail-reference" style="line-height:1;unicode-bidi:isolate;white-space:nowrap;font-size:10.16px;color:rgb(0,0,0);font-family:sans-serif"><a href="https://en.wikipedia.org/wiki/Model_Context_Protocol#cite_note-TechCrunch_2025-03-25-3" style="text-decoration:none;color:rgb(0,43,184);background:none"><span class="gmail-cite-bracket" style="pointer-events: none;">[</span>3<span class="gmail-cite-bracket" style="pointer-events: none;">]</span></a></sup><sup id="gmail-cite_ref-TechCrunch_2025-04-09_4-0" class="gmail-reference" style="line-height:1;unicode-bidi:isolate;white-space:nowrap;font-size:10.16px;color:rgb(0,0,0);font-family:sans-serif"><a href="https://en.wikipedia.org/wiki/Model_Context_Protocol#cite_note-TechCrunch_2025-04-09-4" style="text-decoration:none;color:rgb(0,43,184);background:none"><span class="gmail-cite-bracket" style="pointer-events: none;">[</span>4<span class="gmail-cite-bracket" style="pointer-events: none;">]</span></a></sup></blockquote><div><br></div><div>Rick has created an open-source MCP project for X3D, and has gotten some interesting results using it.</div><div><ul><li><span class="gmail-styles-module__contextCrumbLast__tI2e3" style="background-color:rgba(0,0,0,0);white-space:nowrap;box-sizing:border-box;color:rgb(31,35,40);text-decoration:none;min-width:3ch;line-height:24px;border-radius:6px;height:31.9981px;text-overflow:ellipsis;font-weight:600;overflow:hidden;display:inline!important"><a href="https://github.com/ricklentz/x3d_mcp" style="">ricklentz/x3d_mcp</a></span></li><li><a href="https://github.com/ricklentz/x3d_mcp">https://github.com/ricklentz/x3d_mcp</a></li><li><a href="https://github.com/ricklentz/x3d_mcp/blob/main/README.md">https://github.com/ricklentz/x3d_mcp/blob/main/README.md</a></li></ul><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail-markdown-heading" dir="auto" style="box-sizing:border-box;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";margin-top:0px"><h1 tabindex="-1" class="gmail-heading-element" dir="auto" style="box-sizing:border-box;margin:0px 0px 16px;line-height:1.25;border-bottom:0.909091px solid rgba(209,217,224,0.7);padding-bottom:0.3em"><font size="2">x3d_mcp</font></h1><a id="gmail-user-content-x3d_mcp" class="gmail-anchor" aria-label="Permalink: x3d_mcp" href="https://github.com/ricklentz/x3d_mcp#x3d_mcp" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218);float:left;padding-right:4px;margin:auto;line-height:1;border-radius:6px;opacity:0;width:28px;height:28px;display:flex"></a></div><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">MCP server for generating, validating, and converting valid X3D content. Built on the official Web3D Consortium toolchain.</p><div class="gmail-markdown-heading" dir="auto" style="box-sizing:border-box;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><h2 tabindex="-1" class="gmail-heading-element" dir="auto" style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;line-height:1.25;border-bottom:0.909091px solid rgba(209,217,224,0.7);padding-bottom:0.3em"><font size="2">Overview</font></h2><a id="gmail-user-content-overview" class="gmail-anchor" aria-label="Permalink: Overview" href="https://github.com/ricklentz/x3d_mcp#overview" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218);float:left;padding-right:4px;margin:auto;line-height:1;border-radius:6px;opacity:0;width:28px;height:28px;display:flex"></a></div><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">x3d_mcp exposes X3D capabilities to LLMs via the Model Context Protocol (MCP). It generates spec-compliant X3D scenes in XML, JSON, and ClassicVRML encodings, with full validation against the ISO/IEC 19775 standard.</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">LLMs have spatial and visual understanding of 3D space. X3D (Extensible 3D) provides a declarative, XML-based means to express that understanding as valid, interoperable 3D content. This server bridges the two.</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><span style="box-sizing:border-box;font-weight:600">No X3D MCP server exists in the ecosystem.</span> This is the first.<span style="font-family:Arial,Helvetica,sans-serif;color:rgb(34,34,34)"> </span></p></blockquote><div class="gmail-markdown-heading" dir="auto" style="box-sizing:border-box;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><h2 tabindex="-1" class="gmail-heading-element" dir="auto" style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;line-height:1.25;border-bottom:0.740741px solid rgba(209,217,224,0.7);padding-bottom:0.3em"><font size="2">Design Decisions</font></h2><span style="margin:auto;line-height:1;border-radius:6px"><a id="gmail-user-content-design-decisions" class="gmail-anchor" aria-label="Permalink: Design Decisions" href="https://github.com/ricklentz/x3d_mcp/blob/main/README.md#design-decisions" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218);float:left;padding-right:4px;margin:auto;line-height:1;border-radius:6px;opacity:0;width:28px;height:28px;display:flex"></a></span></div><div class="gmail-markdown-heading" dir="auto" style="box-sizing:border-box;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><h3 tabindex="-1" class="gmail-heading-element" dir="auto" style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;line-height:1.25"><font size="2">Language: Python</font></h3><a id="gmail-user-content-language-python" class="gmail-anchor" aria-label="Permalink: Language: Python" href="https://github.com/ricklentz/x3d_mcp/blob/main/README.md#language-python" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218);float:left;padding-right:4px;margin:auto;line-height:1;border-radius:6px;opacity:0;width:28px;height:28px;display:flex"></a></div><ul dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;padding-left:2em;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><li style="box-sizing:border-box"><span style="box-sizing:border-box;font-weight:600"><code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">x3d.py</code></span> (PyPI <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">x3d</code> v4.0.65, BSD-3) -- official Web3D Consortium package, auto-generated from X3DUOM</li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600"><code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">lxml</code></span> -- XSD and ISO-Schematron validation, 42x faster than pure-Python alternatives</li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600"><code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">FastMCP</code></span> (PyPI <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">mcp</code>) -- official Anthropic MCP SDK, decorator-based tool registration</li><li style="box-sizing:border-box;margin-top:0.25em">All dependencies are BSD/MIT licensed. Project uses <a href="https://www.web3d.org/license" rel="nofollow" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218)">Web3D Consortium Open-Source License</a>.</li></ul><div class="gmail-markdown-heading" dir="auto" style="box-sizing:border-box;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><h3 tabindex="-1" class="gmail-heading-element" dir="auto" style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;line-height:1.25"><font size="2">Two Operating Modes</font></h3><a id="gmail-user-content-two-operating-modes" class="gmail-anchor" aria-label="Permalink: Two Operating Modes" href="https://github.com/ricklentz/x3d_mcp/blob/main/README.md#two-operating-modes" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218);float:left;padding-right:4px;margin:auto;line-height:1;border-radius:6px;opacity:0;width:28px;height:28px;display:flex"></a></div><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><span style="box-sizing:border-box;font-weight:600">Workflow Mode</span> -- high-level tools for end-to-end scene generation. The LLM describes what it wants; the server handles construction, validation, and serialization. Fewer tool calls, higher reliability.</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><span style="box-sizing:border-box;font-weight:600">Granular Mode</span> -- low-level tools for node-by-node scene construction. The LLM builds the scene graph incrementally: create nodes, set fields, add children, define routes. Full control for complex or iterative workflows.</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">Both modes validate output before returning it.</p><div class="gmail-markdown-heading" dir="auto" style="box-sizing:border-box;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><h3 tabindex="-1" class="gmail-heading-element" dir="auto" style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;line-height:1.25"><font size="2">JSON Conversion</font></h3><a id="gmail-user-content-json-conversion" class="gmail-anchor" aria-label="Permalink: JSON Conversion" href="https://github.com/ricklentz/x3d_mcp/blob/main/README.md#json-conversion" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218);float:left;padding-right:4px;margin:auto;line-height:1;border-radius:6px;opacity:0;width:28px;height:28px;display:flex"></a></div><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">JSON and ClassicVRML encoding uses <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">x3d.py</code>'s built-in <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">.JSON()</code> and <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">.VRML()</code> serialization methods. These are auto-generated from X3DUOM and produce spec-compliant output directly. The Web3D Consortium's <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">X3dToJson.xslt</code> is XSLT 2.0, which is incompatible with lxml (XSLT 1.0 only), so we use the native Python serialization instead.</p><div class="gmail-markdown-heading" dir="auto" style="box-sizing:border-box;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><h3 tabindex="-1" class="gmail-heading-element" dir="auto" style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;line-height:1.25"><font size="2">Validation Pipeline</font></h3><a id="gmail-user-content-validation-pipeline" class="gmail-anchor" aria-label="Permalink: Validation Pipeline" href="https://github.com/ricklentz/x3d_mcp/blob/main/README.md#validation-pipeline" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218);float:left;padding-right:4px;margin:auto;line-height:1;border-radius:6px;opacity:0;width:28px;height:28px;display:flex"></a></div><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">Three layers, matching the X3D specification's own validation hierarchy:</p><ol dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;padding-left:2em;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><li style="box-sizing:border-box"><span style="box-sizing:border-box;font-weight:600">Type checking at generation time</span> -- <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">x3d.py</code> enforces field types, ranges, and enumerations during scene construction</li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600">XSD validation</span> -- <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">lxml.etree.XMLSchema</code> against <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">x3d-4.1.xsd</code> (bundled with companion schemas)</li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600">JSON structural validation</span> -- checks for required X3D root, @version, @profile, and Scene keys</li></ol><div class="gmail-markdown-heading" dir="auto" style="box-sizing:border-box;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><h3 tabindex="-1" class="gmail-heading-element" dir="auto" style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;line-height:1.25"><font size="2">X3DUOM as Foundation</font></h3><a id="gmail-user-content-x3duom-as-foundation" class="gmail-anchor" aria-label="Permalink: X3DUOM as Foundation" href="https://github.com/ricklentz/x3d_mcp/blob/main/README.md#x3duom-as-foundation" style="box-sizing:border-box;background-color:rgba(0,0,0,0);color:rgb(9,105,218);float:left;padding-right:4px;margin:auto;line-height:1;border-radius:6px;opacity:0;width:28px;height:28px;display:flex"></a></div><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">The <code style="box-sizing:border-box;font-family:"Monaspace Neon",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;white-space:break-spaces;background-color:rgba(129,139,152,0.12);border-radius:6px;margin:0px;padding:0.2em 0.4em">X3dUnifiedObjectModel-4.1.xml</code> (X3DUOM) is the single source of truth for all 265 concrete nodes (5 new in 4.1: EnvironmentLight, FontLibrary, HAnimPose, InlineGeometry, Tangent), abstract types, simple types, and statements. It is parsed at build time to generate:</p><ul dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;padding-left:2em;color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><li style="box-sizing:border-box">Node/field metadata lookup tables</li><li style="box-sizing:border-box;margin-top:0.25em">containerField mapping rules</li><li style="box-sizing:border-box;margin-top:0.25em">Enumeration value sets</li><li style="box-sizing:border-box;margin-top:0.25em">Default value tables</li><li style="box-sizing:border-box;margin-top:0.25em">Inheritance hierarchy</li></ul><span style="color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">[etc. etc. etc.]</span></div><div><span style="color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">_________________</span></div></div><div><span style="color:rgb(31,35,40);font-family:"Mona Sans VF",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><br></span></div><div><span style="color:rgb(31,35,40)"><font face="arial, sans-serif">This certainly looks interesting and already connects a thorough list of X3D resources.  He is willing to transition (not just fork) this project on GitHub as an open-access Web3D Consortium project if the X3D AI group is willing to work with it.  This project is already shared publicly under the Web3D Consortium Open-Source License.</font></span></div><div><span style="color:rgb(31,35,40)"><font face="arial, sans-serif"><br></font></span></div><div><font color="#1f2328" face="arial, sans-serif">All reactions and feedback welcome.  Have fun with MCP, and LLM model creation using X3D!  😁 👍</font></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></div>