<div dir="ltr"><div>Thanks Len for interesting insights during your continuing saga.</div><div><br></div><div>The x3d.py library strictly conforms to X3D 4.0 with draft nodes for X3D 4.1 as well.  If you find anomalies or mismatches in X3D model construction when using x3d.py with other tools, we will conscientiously identify, isolate and fix them.</div><div><br></div><div>Your shifting of ROUTE location is an annoyance but also a prudent precaution.  Hopefully any ordering effects from DEF/USE/ROUTE location will cease to matter for modern X3D tools as they continue to update in the coming months.  Am personally glad that we detected and fixed this unnecessary restriction, especially since prose in <i>X3D for Web Authors</i> book (and my misunderstanding) appears to be the main culprit over the years.  The X3D Architecture is now explicit about the relaxed requirement.</div><div><ul><li>Mantis 1526: relaxing requirement for DEF node declaration prior to USE or ROUTE references</li><li><a href="https://mantis.web3d.org/view.php?id=1526" target="_blank">https://mantis.web3d.org/view.php?id=1526</a></li></ul><div>latest note:</div></div><div><div class="gmail-col-md-12 gmail-col-xs-12" style="box-sizing:border-box;font-family:Poppins;min-height:1px;padding-right:15px;padding-left:15px;float:left;width:1055.18px;max-width:100%;color:rgb(57,57,57);font-size:13px;background-color:rgb(187,187,187)"><div id="gmail-bugnotes" class="gmail-widget-box gmail-widget-color-blue2" style="box-sizing:border-box;padding:0px;margin:3px 0px;border:1px solid rgb(80,144,193)"><div class="gmail-widget-body" style="box-sizing:border-box;background-color:rgb(255,255,255)"><div class="gmail-widget-main gmail-no-padding" style="box-sizing:border-box;padding:0px"><div class="gmail-table-responsive" style="box-sizing:border-box;min-height:0.01%;overflow-x:auto;margin-bottom:0px"><table class="gmail-table gmail-table-bordered gmail-table-condensed gmail-table-striped" style="border-collapse:collapse;border-spacing:0px;width:1023.37px;max-width:100%;margin-bottom:0px;border-width:0px;border-style:solid;border-color:rgb(229,229,229) rgb(221,221,221) rgb(221,221,221);border-radius:0px"><tbody style="box-sizing:border-box"><tr class="gmail-bugnote gmail-visible-on-hover-toggle" id="gmail-c3897" style="box-sizing:border-box;background-color:rgb(249,249,249)"><td class="gmail-category" style="box-sizing:border-box;padding:5px;color:rgb(0,0,0);font-weight:bold;vertical-align:top;line-height:1.42857;border-width:1px 0px;border-style:solid;border-color:rgb(221,221,221);border-radius:0px;background-color:rgb(237,243,244)"><br class="gmail-Apple-interchange-newline"><div class="gmail-pull-left gmail-padding-2" style="box-sizing:border-box;float:left;padding:2px"></div><div class="gmail-pull-left gmail-padding-2" style="box-sizing:border-box;float:left;padding:2px"><p class="gmail-no-margin" style="box-sizing:border-box;margin:0px"><span class="gmail-fa gmail-fa-user gmail-grey" style="box-sizing:border-box;font-family:FontAwesome;display:inline-block;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-weight:normal;font-stretch:normal;line-height:1;font-size:inherit;color:rgb(119,119,119)"></span> <a href="https://mantis.web3d.org/view_user_page.php?id=10" style="box-sizing:border-box;background-color:transparent;color:rgb(35,82,124);outline:0px">brutzman</a></p><p class="gmail-no-margin gmail-small gmail-lighter" style="box-sizing:border-box;font-size:11.05px;font-weight:normal;margin:0px"><span class="gmail-fa gmail-fa-clock-o gmail-grey" style="box-sizing:border-box;font-family:FontAwesome;display:inline-block;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;line-height:1;font-size:inherit;color:rgb(119,119,119)"></span> 2026-05-09 10:01</p><p class="gmail-no-margin" style="box-sizing:border-box;margin:0px"><span class="gmail-label gmail-label-sm gmail-label-default gmail-arrowed-in-right" style="box-sizing:border-box;display:inline-block;padding:0.2em 0.4em 0.3em;font-size:11px;font-weight:400;line-height:1;color:rgb(255,255,255);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0px;background-color:rgb(171,186,195);height:18px;margin-right:4px">administrator</span>   <span class="gmail-fa gmail-fa-link gmail-grey" style="box-sizing:border-box;font-family:FontAwesome;display:inline-block;font-variant:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-weight:normal;font-stretch:normal;line-height:1;font-size:inherit;color:rgb(119,119,119)"></span> <a rel="bookmark" href="https://mantis.web3d.org/view.php?id=1526#c3897" class="gmail-lighter" title="Direct link to note" style="box-sizing:border-box;background-color:transparent;color:rgb(51,122,183);text-decoration:none;font-weight:lighter">~0003897</a></p><div class="gmail-clearfix" style="box-sizing:border-box"></div><div class="gmail-space-2" style="box-sizing:border-box;max-height:1px;min-height:1px;overflow:hidden;margin:2px 0px 1px"></div><div class="gmail-btn-group gmail-visible-on-hover" style="box-sizing:border-box;display:inline-block;vertical-align:middle"><div class="gmail-pull-left" style="box-sizing:border-box;float:left"><form method="post" action="https://mantis.web3d.org/bugnote_edit_page.php" class="gmail-form-inline gmail-inline gmail-single-button-form" style="box-sizing:border-box;margin:0px 1px 0px 0px;display:inline-block"></form></div><div class="gmail-pull-left" style="box-sizing:border-box;float:left"><form method="post" action="https://mantis.web3d.org/bugnote_delete.php" class="gmail-form-inline gmail-inline gmail-single-button-form" style="box-sizing:border-box;margin:0px 1px 0px 0px;display:inline-block"></form></div><div class="gmail-pull-left" style="box-sizing:border-box;float:left"><form method="post" action="https://mantis.web3d.org/bugnote_set_view_state.php" class="gmail-form-inline gmail-inline gmail-single-button-form" style="box-sizing:border-box;margin:0px 1px 0px 0px;display:inline-block"></form></div></div></div></td><td class="gmail-bugnote-note gmail-bugnote-public" style="box-sizing:border-box;padding:5px;line-height:1.42857;vertical-align:top;border-width:1px 0px;border-style:solid;border-color:rgb(221,221,221);background-color:rgb(232,232,232);color:rgb(0,0,0);width:767.524px;border-radius:0px">* [x3d-public] planned X3D v4.1 adjustments for RenderedTexture, new outputOnly fields for image/movie texture loading, other spec review<br style="box-sizing:border-box">* <a href="https://web3d.org/pipermail/x3d-public_web3d.org/2026-May/022623.html" rel="noopener" style="box-sizing:border-box;background-color:transparent;color:rgb(51,122,183);text-decoration:none">https://web3d.org/pipermail/x3d-public_web3d.org/2026-May/022623.html</a><br style="box-sizing:border-box"><br style="box-sizing:border-box">... shows the DEF before USE and ROUTE references was a requirement in VRML97 that was no longer present in X3D 3.0.<br style="box-sizing:border-box"><br style="box-sizing:border-box">This confirms correctness and also value in explicitly noting the relaxed requirement via NOTE entries in the spec.<br style="box-sizing:border-box">* NOTE: DEF name declarations are not required to precede USE references.<br style="box-sizing:border-box">* NOTE: DEF name declarations are not required to precede ROUTE references.</td></tr><tr class="gmail-spacer" style="box-sizing:border-box;color:rgb(0,0,0);height:5px"><td colspan="2" style="box-sizing:border-box;padding:5px;line-height:1.42857;vertical-align:top;border-width:1px 0px 0px;border-style:solid;border-color:rgb(221,221,221);border-radius:0px"></td></tr></tbody></table></div></div></div></div></div><div class="gmail-col-md-12 gmail-col-xs-12 gmail-noprint" style="box-sizing:border-box;font-family:Poppins;min-height:1px;padding-right:15px;padding-left:15px;float:left;width:1055.18px;max-width:100%;color:rgb(57,57,57);font-size:13px;background-color:rgb(187,187,187)"><a id="gmail-addbugnote" style="box-sizing:border-box;background-color:transparent;color:rgb(51,122,183)"></a></div><br class="gmail-Apple-interchange-newline"></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><div>Have fun with X3D!  😀</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"><div dir="ltr" class="gmail_attr">On Fri, May 8, 2026 at 5:09 PM Len Bullard 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">Another day.<br>
<br>
Anyone who says the use of LLMs for creating running code with X3D is <br>
easier isn't doing it or I am daft.  Likely the latter.  We make <br>
progress slowly as the right architecture for communicating states <br>
between the server and the X_Lite browser or X3D scene emerges.  <br>
Ironically I had to explain to Claude today that routes go after <br>
everything that needs one, so put them all at the bottom for safety's <br>
sake.<br>
<br>
It really doesn't clean up after itself if code is removed by changes, <br>
so you can see lots of errors in the console that don't block but are <br>
noise.<br>
<br>
Getting the sync between the layers right is a mystical artform.<br>
<br>
I look forward to what the webinar reveals.  This feels like a lone wolf <br>
development project and I guess it is.  So more lessons learned by the <br>
community will be good all around I think.<br>
<br>
After we fix tomorrow's known bug, we will stop and factor in the py <br>
library at the W3DC site.  Claude looked at it and determined it is good <br>
for server side work where we are stringifying everything right now.  <br>
Proven code will be a boon of course.  I am hoping there are no <br>
conflicts in those constructors with what X_Ite expects.<br>
<br>
cheers,<br>
<br>
len<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>