<div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">Note that I'm aware that our tools (Castle Model Converter, Castle Model Viewer etc.) are ones to blame here. I do plan to fix this (generate floats with less significant digits, by default) on our side. </div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><br></div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">We will by default output 6 digits after dot, not more (6 matches defaults I observed in various applications, including game engines like Unity when they same scene files).</div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><br></div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">So give me time, this will be fixed on our side too :)</div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><br></div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">Just to give some context why it took / takes me so long to address this:</div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><br></div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><ol data-editing-info="{"orderedStyleType":1,"unorderedStyleType":1}" style="margin-top: 0px; margin-bottom: 0px;" data-listchain="__List_Chain_117"><li style="list-style-type: "1. ";"><span>Some X3D authors really rely on preserving small numbers -- yes, differences smaller than 0.001 sometimes matter. <br></span></li></ol></div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><br></div><div style="font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><ul style="margin-top: 0px; margin-bottom: 0px;" data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}"><ul style="margin-top: 0px; margin-bottom: 0px; list-style-type: circle;"><li style=""><span>Numbers in X3D (and 3D in general) undergo scaling (e.g. by Transform.scale), so some people use tiny numbers are rely that later e.g. scaling mesh by 100 makes a reasonable result.</span></li><li style=""><span>People sometimes design tiny tiny worlds.</span></li><li style=""><span>the UNIT clause (introduced in X3D 4 from what I recall) also means that we don't always have meters. We _typically_ have meters, I agree with that statement in Don's mail, but it's not just always the case.</span></li><li style=""><span>Sometimes, people put tiny difference to make sure one thing is on top of another, to avoid visual Z-fighting. E.g. plane at Z = 0.0001 will be on top of plane with Z = 0.0, even if visually the distance between them will seem ~practically nothing.</span></li></ul></ul><div><br></div><div></div><ol start="2" data-editing-info="{"orderedStyleType":1,"unorderedStyleType":1}" style="margin-top: 0px; margin-bottom: 0px;" data-listchain="__List_Chain_117"><li style="list-style-type: "2. ";">That's the reason why I was reluctant to just arbitrarily cut any possibly-useful digits (even if possibility that they are useful, and not noise coming from rounding to decimals, was very small :) ) by default. I needed to first have a way to _precisely_ store 32-bit 
floats to files, to give a solution to people who will need it.</li></ol><div><br></div><ol start="3" data-editing-info="{"orderedStyleType":1,"unorderedStyleType":1}" style="margin-top: 0px; margin-bottom: 0px;" data-listchain="__List_Chain_117"><ol style="margin-top: 0px; margin-bottom: 0px; list-style-type: lower-alpha;"><li style="">We now have it, as we started work on "save to glTF", with binary data representing floats, and thus we can save 32-bit floats from memory -> files without any loss of precision and in compact way.</li><li style=""><span>This means that for text output formats, like X3D XML / classic, we are fine cutting digits. If anyone will need arbitrary precision, we can just recommend saving to glTF which will preserve the in-memory 32-bit </span>float perfectly, since the "binary float" is just a direct dump of memory 32-bit float, no text conversion, no rounding.</li></ol></ol><div><br></div><div>Stay tuned for announcements when I finish all I talk above :)</div><div><br></div><div>Regards.</div><div>Michalis</div></div>