<div dir="ltr"><div>John, such a tolerance might be relevant within an engineering application. However there is no such way to express that within a data schema. Thus the careful selection of limit values for data validation, to align with the authoritative X3D Architecture specification, remains the appropriate response.</div><div><br></div><div>As ever, limits in X3D XML Schema are used to produce X3DUOM, which (someday) will be used to produce an X3D JSON Schema. The limit values are also used in our APIs for Java and Python. Thus keeping everything aligned makes good sense for continued consistent X3D modeling across file formats and programming languages.</div><div><br></div><div>In the meantime, it is certainly not a "false positive" diagnostic to learn that some values in your models might be greater than required limits of pi/4, pi/2 or pi. Identifying such values does not hurt and might prevent a later error in another application.</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, Mar 1, 2026 at 8:47 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">Another thought is to create (physical) tolerances (error bars) of maximum and minimum constraint values, which would allow more realism, but that’s probably a lot of work. So, pi/2+/-0.001.</div><div dir="auto"><br></div><div dir="auto">Thoughts?</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 1, 2026 at 12:02 PM Don Brutzman 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"><div dir="auto"><span style="font-family:-apple-system,sans-serif;font-size:inherit">Thank you for suggestion that we might change boundary values for our numerical validation limits.</span><br><div style="font-size:inherit"><div dir="auto" 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"><br></div><div dir="auto" 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">I would be reluctant to change limit for pi/2 to “2” , since that could be a mistaken model entry for 2 degrees, which is a case that does need to be caught as a validation error.</div><div dir="auto" 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"><br></div><div dir="auto" 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">I think a limit of 1.6 would be OK, that would be forgiving of roundoff errors and permit functional content, also providing a hint for numerical value of pi over two. </div><div dir="auto" 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"><br></div><div dir="auto" 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">Similarly, we might make the validation limit for pi as 3.2.</div><div dir="auto" 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"><br></div><div dir="auto" 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">Meanwhile, we should probably keep specification boundaries unchanged since they are reasonably precise and correct. Most are defined in terms of pi, double checking for consistency is always a good idea.</div><div dir="auto" 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"><br></div><div dir="auto" 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">Dick and I can discuss his topic at the next specification editors meeting.</div></div><br clear="all"><div><div dir="ltr" class="gmail_signature">all the best, Don</div></div></div><div dir="auto"><div><div dir="ltr" class="gmail_signature"><br>-- <br>X3D Graphics, Maritime Robotics, Distributed Simulation<br>Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></div></div></div><div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 1, 2026 at 04:46 Vincent Marchetti 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">I think this serves as an example of overeager validation, not overeager rounding.<br>
<br>
If validation is going to be a useful tool it should serve to warn of practical errors. The issue raised here could happen regardless of any additional rounding applied beyond that due to floating point representation. <br>
<br>
I suggest that a practical validation for this case would be to compare the groundAngle to 2.0 This will allow users to achieve the intentian of a groundAngle of pi/2 without giving false validation errors, and it would raise a red flag if the author mistakenly entered 180 for the groundAngle.<br>
<br>
It's always the code developer responsibility to catch mathematically invalid input values at run time.<br>
<br>
Vince Marchetti<br>
<br>
<br>
> On Mar 1, 2026, at 3:39 AM, John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<br>
> <br>
> Any comments on overeager rounding, which causes validation failures? Maximum angle is 1.5708, which rounds off to 1.571, which is too big. Problem is with Background.groundAngle. An argument for always validating?<br>
> <br>
> I didn’t notice an issue visually until trying to interpret schema validation issues.<br>
> <br>
> Any JavaScript filters for fixing overflows is welcome!<br>
> <br>
> As Joe says, sometimes you just want to go into user code and fix it.<br>
> <br>
> What if this had happened with .glb?<br>
> <br>
> John<br>
> <br>
> <br>
> Error below:<br>
> keyword: maximum<br>
> schema location: $defs > Background > oneOf > 1 > properties > @groundAngle > items > maximum<br>
> schema value: 1.5708<br>
> instance location: X3D > Scene > -children > 0 > Background > @groundAngle > 1<br>
> instance value: 1.571<br>
> instance shorthand value: 1.571<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>
<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>
_______________________________________________<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>
</blockquote></div>