<div dir="ltr"><div>Recent message described significant-digit reduction using X3dTidy and a regex:</div><div><ul><li><a href="https://web3d.org/pipermail/x3d-public_web3d.org/2026-February/022310.html" style="font-family:"Times New Roman";font-size:medium">[x3d-public] new feature in X3dTidy stylesheet: numeric significant-digits precision using regular expression (regex) </a><a name="22310" style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"> </a></li></ul><div><font color="#000000" face="Times New Roman" size="3">Here is the log of results when applying this to all the models in HAnim archive.</font></div></div><div><ul><li><font color="#000000" face="Times New Roman" size="3"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation">X3D Examples Archive, Humanoid Animation (HAnim)</a></font></li><li><font color="#000000" face="Times New Roman" size="3"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation">https://www.web3d.org/x3d/content/examples/HumanoidAnimation</a></font></li><li><font color="#000000" face="Times New Roman" size="3"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/build.X3dTidy.log.txt">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/build.X3dTidy.log.txt</a></font></li></ul><div>I have published a full update online, allowing others to inspect... but am still checking to see whether everything worked OK. Problematic "tidying" will either get fixed or reverted.</div></div><div><br></div><div>Many of these worked OK. Links and example excerpts follow.</div><div><font color="#000000" face="Times New Roman" size="3"><br></font></div><div><font color="#000000" face="Times New Roman" size="3">Most changes were elimination of trailing zeros:</font></div><div><ul><li><font color="#000000" face="Times New Roman" size="3">X3D Example Archives: Humanoid Animation, Characters, HAnim Model Foot Left</font></li><li><font color="#000000" face="Times New Roman" size="3"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/HAnimModelFootLeftIndex.html">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/HAnimModelFootLeftIndex.html</a></font></li></ul></div><div><pre style="color:rgb(0,0,0)">... X3D Schematron check complete
next check using X3dTidy and apply changes to model...
C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\HumanoidAnimation/Characters//HAnimModelFootLeft.x3d processing with X3dTidy.xslt stylesheet for tidied-up .x3d
*** floating-point precision change: Coordinate point='0 0 0 0.0 -0.3 0' to '0 0 0 0 -0.3 0'
*** floating-point precision change: HAnimJoint center='0.0 -0.3 0' to '0 -0.3 0'
*** floating-point precision change: Transform translation='0.0 -0.3 0' to '0 -0.3 0'
*** floating-point precision change: Coordinate point='0.0 -0.3 0 -0.1 -0.45 0' to '0 -0.3 0 -0.1 -0.45 0'
*** floating-point precision change: Coordinate point='0.0 -0.3 0 0.0 -0.45 0' to '0 -0.3 0 0 -0.45 0'
*** floating-point precision change: Coordinate point='0.0 -0.3 0 0.1 -0.4 0' to '0 -0.3 0 0.1 -0.4 0'
*** floating-point precision change: HAnimJoint center='0.0 -0.45 0' to '0 -0.45 0'
*** floating-point precision change: Transform translation='0.0 -0.45 0' to '0 -0.45 0'
*** floating-point precision change: Coordinate point='0.0 -0.45 0 0.05 -0.6 0' to '0 -0.45 0 0.05 -0.6 0'
*** floating-point precision change: Coordinate point='0.25 -0.87 0 0.25 -1.0 0' to '0.25 -0.87 0 0.25 -1 0'
*** floating-point precision change: HAnimJoint center='0.25 -1.0 0' to '0.25 -1 0'
*** floating-point precision change: Transform translation='0.25 -1.0 0' to '0.25 -1 0'
*** floating-point precision change: Coordinate point='0.25 -1.0 0 0.25 -1.1 0' to '0.25 -1 0 0.25 -1.1 0'
=======================================================================================================
HAnimHumanoid skeleton holds X3D4 HAnim2 triplets, HAnimJoint (27) : HAnimSegment (26) : HAnimSite (0)</pre><pre style="color:rgb(0,0,0)"><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;"><b>*** File size reduction: original Characters//HAnimModelFootLeft.x3d.length=29224 bytes
processed canonical Characters//HAnimModelFootLeftTidy.x3d.length=29196 bytes</b></pre><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;"><br></pre></pre><pre style="color:rgb(0,0,0)"><ul><li><font face="arial, sans-serif">X3D Example Archives: Humanoid Animation, Characters, Jin LOA 1</font></li><li><font face="arial, sans-serif"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA1Index.html">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA1Index.html</a></font></li></ul><div><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;">C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\HumanoidAnimation/Legacy//JinOriginalLOA1.x3d processing with X3dTidy.xslt stylesheet for tidied-up .x3d
*** floating-point precision change: HAnimJoint center='0 30.530001 -0.707600' to '0 30.53 -0.7076'
*** floating-point precision change: Transform translation='0 30.530001 -0.707600' to '0 30.53 -0.7076'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** removeDuplicateIndexesIFS_ILS: <IndexedFaceSet DEF=' texCoodIndex='0 1 2 -1 0 2 3 -1 0 3 4 -1 0 4 5 -1 0 5 6 -1 0 6 7 -1 0 7 8 -1 0 8 9 -1 0 9 10 -1 0 10 11 -1 0 11 12 -1 0 12 1 -1 14 2 1 -1 1 13 14 -1 15 3 2 -1 2 14 15 -1 16 4 3 -1 3 15 16 -1 17 5 4 -1 4 16 17 -1 18 6 5 -1 5 17 18 -1 19 7 6 -1 6 18 19 -1 20 8 7 -1 7 19 20 -1 21 9 8 -1 8 20 21 -1 22 10 9 -1 9 21 22 -1 23 11 10 -1 10 22 23 -1 24 12 11 -1 11 23 24 -1 13 1 12 -1 12 24 13 -1 26 14 13 -1 13 25 26 -1 27 15 14 -1 14 26 27 -1 28 16 15 -1 15 27 28 -1 29 17 16 -1 16 28 29 -1 30 18 17 -1 17 29 30 -1 31 19 18 -1 18 30 31 -1 32 20 19 -1 19 31 32 -1 33 21 20 -1 20 32 33 -1 34 22 21 -1 21 33 34 -1 35 23 22 -1 22 34 35 -1 36 24 23 -1 23 35 36 -1 25 13 24 -1 24 36 25 -1 38 26 25 -1 25 37 38 -1 39 27 26 -1 26 38 39 -1 40 28 27 -1 27 39 40 -1 41 29 28 -1 28 40 41 -1 42 30 29 -1 29 41 42 -1 43 31 30 -1 30 42 43 -1 44 32 31 -1 31 43 44 -1 45 33 32 -1 32 44 45 -1 46 34 33 -1 33 45 46 -1 47 35 34 -1 34 46 47 -1 48 36 35 -1 35 47 48 -1 37 25 36 -1 36 48 37 -1 50 38 37 -1 37 49 50 -1 51 39 38 -1 38 50 51 -1 52 40 39 -1 39 51 52 -1 53 41 40 -1 40 52 53 -1 54 42 41 -1 41 53 54 -1 55 43 42 -1 42 54 55 -1 56 44 43 -1 43 55 56 -1 57 45 44 -1 44 56 57 -1 58 46 45 -1 45 57 58 -1 59 47 46 -1 46 58 59 -1 60 48 47 -1 47 59 60 -1 49 37 48 -1 48 60 49 -1 61 50 49 -1 61 51 50 -1 61 52 51 -1 61 53 52 -1 61 54 53 -1 61 55 54 -1 61 56 55 -1 61 57 56 -1 61 58 57 -1 61 59 58 -1 61 60 59 -1 61 49 60 -1'/> can be omitted since it matches coordIndex
*** floating-point precision change: Coordinate point='0 10.7900 0.1424 0 10.0600 -2.8250 -2.28 [...]' to '0 10.79 0.1424 0 10.06 -2.825 -2.283 10. [...]'
*** floating-point precision change: TextureCoordinate point='0.6211 0.5754 0.7851 0.5720 0.7614 0.572 [...]' to '0.6211 0.5754 0.7851 0.572 0.7614 0.572 [...]'
*** floating-point precision change: HAnimJoint center='0 35.799999 -0.707600' to '0 35.8 -0.7076'
*** floating-point precision change: Transform translation='0 35.799999 -0.707600' to '0 35.8 -0.7076'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** removeDuplicateIndexesIFS_ILS: <IndexedFaceSet DEF=' texCoodIndex='0 1 2 -1 0 2 3 -1 0 3 4 -1 0 4 5 -1 0 5 6 -1 0 6 7 -1 0 7 8 -1 0 8 9 -1 0 9 10 -1 0 10 11 -1 0 11 12 -1 0 12 1 -1 14 2 1 -1 1 13 14 -1 15 3 2 -1 2 14 15 -1 16 4 3 -1 3 15 16 -1 17 5 4 -1 4 16 17 -1 18 6 5 -1 5 17 18 -1 19 7 6 -1 6 18 19 -1 20 8 7 -1 7 19 20 -1 21 9 8 -1 8 20 21 -1 22 10 9 -1 9 21 22 -1 23 11 10 -1 10 22 23 -1 24 12 11 -1 11 23 24 -1 13 1 12 -1 12 24 13 -1 26 14 13 -1 13 25 26 -1 27 15 14 -1 14 26 27 -1 28 16 15 -1 15 27 28 -1 29 17 16 -1 16 28 29 -1 30 18 17 -1 17 29 30 -1 31 19 18 -1 18 30 31 -1 32 20 19 -1 19 31 32 -1 33 21 20 -1 20 32 33 -1 34 22 21 -1 21 33 34 -1 35 23 22 -1 22 34 35 -1 36 24 23 -1 23 35 36 -1 25 13 24 -1 24 36 25 -1 38 26 25 -1 25 37 38 -1 39 27 26 -1 26 38 39 -1 40 28 27 -1 27 39 40 -1 41 29 28 -1 28 40 41 -1 42 30 29 -1 29 41 42 -1 43 31 30 -1 30 42 43 -1 44 32 31 -1 31 43 44 -1 45 33 32 -1 32 44 45 -1 46 34 33 -1 33 45 46 -1 47 35 34 -1 34 46 47 -1 48 36 35 -1 35 47 48 -1 37 25 36 -1 36 48 37 -1 50 38 37 -1 37 49 50 -1 51 39 38 -1 38 50 51 -1 52 40 39 -1 39 51 52 -1 53 41 40 -1 40 52 53 -1 54 42 41 -1 41 53 54 -1 55 43 42 -1 42 54 55 -1 56 44 43 -1 43 55 56 -1 57 45 44 -1 44 56 57 -1 58 46 45 -1 45 57 58 -1 59 47 46 -1 46 58 59 -1 60 48 47 -1 47 59 60 -1 49 37 48 -1 48 60 49 -1 61 50 49 -1 61 51 50 -1 61 52 51 -1 61 53 52 -1 61 54 53 -1 61 55 54 -1 61 56 55 -1 61 57 56 -1 61 58 57 -1 61 59 58 -1 61 60 59 -1 61 49 60 -1'/> can be omitted since it matches coordIndex
*** floating-point precision change: Coordinate point='0 1.0530 0.0273 0 0.9123 -0.5414 -0.4375 [...]' to '0 1.053 0.0273 0 0.9123 -0.5414 -0.4375 [...]'
*** floating-point precision change: TextureCoordinate point='0.6211 0.5754 0.7851 0.5720 0.7614 0.572 [...]' to '0.6211 0.5754 0.7851 0.572 0.7614 0.572 [...]'
*** floating-point precision change: HAnimJoint center='4.207 32.020 -0.815500' to '4.207 32.02 -0.8155'
*** floating-point precision change: Transform translation='4.207 32.020 -0.815500' to '4.207 32.02 -0.8155'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='2.9600 3.7380 0 1.6430 3.7380 3.2090 -1. [...]' to '2.96 3.738 0 1.643 3.738 3.209 -1.316 3. [...]'
*** floating-point precision change: TextureCoordinate point='0.7190 0.5576 0.6284 0.5576 0.7414 0.557 [...]' to '0.719 0.5576 0.6284 0.5576 0.7414 0.5576 [...]'
*** floating-point precision change: HAnimJoint center='4.116 17.260 -0.863900' to '4.116 17.26 -0.8639'
*** floating-point precision change: Transform translation='4.116 17.260 -0.863900' to '4.116 17.26 -0.8639'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** removeDuplicateIndexesIFS_ILS: <IndexedFaceSet DEF=' texCoodIndex='4 3 2 -1 5 4 2 -1 2 1 0 -1 5 2 0 -1 6 5 0 -1 9 8 7 -1 7 10 9 -1 12 11 8 -1 8 9 12 -1 14 13 11 -1 11 12 14 -1 16 15 13 -1 13 14 16 -1 18 17 15 -1 15 16 18 -1 20 19 17 -1 17 18 20 -1 10 7 19 -1 19 20 10 -1 21 9 10 -1 10 22 21 -1 23 12 9 -1 9 21 23 -1 24 14 12 -1 12 23 24 -1 25 16 14 -1 14 24 25 -1 26 18 16 -1 16 25 26 -1 27 20 18 -1 18 26 27 -1 22 10 20 -1 20 27 22 -1 1 21 22 -1 22 0 1 -1 2 23 21 -1 21 1 2 -1 3 24 23 -1 23 2 3 -1 4 25 24 -1 24 3 4 -1 5 26 25 -1 25 4 5 -1 6 27 26 -1 26 5 6 -1 0 22 27 -1 27 6 0 -1 8 29 28 -1 28 7 8 -1 11 30 29 -1 29 8 11 -1 13 31 30 -1 30 11 13 -1 15 32 31 -1 31 13 15 -1 17 33 32 -1 32 15 17 -1 19 34 33 -1 33 17 19 -1 7 28 34 -1 34 19 7 -1 29 36 35 -1 35 28 29 -1 30 37 36 -1 36 29 30 -1 31 38 37 -1 37 30 31 -1 32 39 38 -1 38 31 32 -1 33 40 39 -1 39 32 33 -1 34 41 40 -1 40 33 34 -1 28 35 41 -1 41 34 28 -1'/> can be omitted since it matches coordIndex
*** floating-point precision change: Coordinate point='0.7186 0.9688 0.0234 0.3632 0.9688 0.935 [...]' to '0.7186 0.9688 0.0234 0.3632 0.9688 0.935 [...]'
*** floating-point precision change: TextureCoordinate point='0.9309 0.5848 0.9190 0.5848 0.8921 0.584 [...]' to '0.9309 0.5848 0.919 0.5848 0.8921 0.5848 [...]'
*** floating-point precision change: HAnimJoint center='3.854 3.939 -0.703800' to '3.854 3.939 -0.7038'
*** floating-point precision change: Transform translation='3.854 3.939 -0.703800' to '3.854 3.939 -0.7038'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='0.9768 -0.0192 -1.6810 1.6570 -0.0192 0. [...]' to '0.9768 -0.0192 -1.681 1.657 -0.0192 0.43 [...]'
*** floating-point precision change: TextureCoordinate point='0.3819 0.1710 0.4216 0.1651 0.3819 0.171 [...]' to '0.3819 0.171 0.4216 0.1651 0.3819 0.171 [...]'
*** floating-point precision change: HAnimJoint center='3.854 3.640 0.740200' to '3.854 3.64 0.7402'
*** floating-point precision change: Transform translation='3.854 3.640 0.740200' to '3.854 3.64 0.7402'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='2.9270 -1.6270 -1.0130 2.0890 -3.6480 -1 [...]' to '2.927 -1.627 -1.013 2.089 -3.648 -1.013 [...]'
*** floating-point precision change: TextureCoordinate point='0.4330 0.0595 0.4411 0.0186 0.4637 0.171 [...]' to '0.433 0.0595 0.4411 0.0186 0.4637 0.1714 [...]'
*** floating-point precision change: HAnimJoint center='-4.207 32.020 -0.815500' to '-4.207 32.02 -0.8155'
*** floating-point precision change: Transform translation='-4.207 32.020 -0.815500' to '-4.207 32.02 -0.8155'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='-2.9600 3.7380 0 -1.6430 3.7380 3.2090 1 [...]' to '-2.96 3.738 0 -1.643 3.738 3.209 1.316 3 [...]'
*** floating-point precision change: TextureCoordinate point='0.7190 0.5576 0.6284 0.5576 0.7414 0.557 [...]' to '0.719 0.5576 0.6284 0.5576 0.7414 0.5576 [...]'
*** floating-point precision change: HAnimJoint center='-4.116 17.260 -0.863900' to '-4.116 17.26 -0.8639'
*** floating-point precision change: Transform translation='-4.116 17.260 -0.863900' to '-4.116 17.26 -0.8639'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** removeDuplicateIndexesIFS_ILS: <IndexedFaceSet DEF=' texCoodIndex='0 1 2 -1 2 3 4 -1 2 4 5 -1 0 2 5 -1 6 0 5 -1 9 10 7 -1 7 8 9 -1 12 9 8 -1 8 11 12 -1 14 12 11 -1 11 13 14 -1 16 14 13 -1 13 15 16 -1 18 16 15 -1 15 17 18 -1 20 18 17 -1 17 19 20 -1 10 20 19 -1 19 7 10 -1 21 22 10 -1 10 9 21 -1 23 21 9 -1 9 12 23 -1 24 23 12 -1 12 14 24 -1 25 24 14 -1 14 16 25 -1 26 25 16 -1 16 18 26 -1 27 26 18 -1 18 20 27 -1 22 27 20 -1 20 10 22 -1 1 0 22 -1 22 21 1 -1 2 1 21 -1 21 23 2 -1 3 2 23 -1 23 24 3 -1 4 3 24 -1 24 25 4 -1 5 4 25 -1 25 26 5 -1 6 5 26 -1 26 27 6 -1 0 6 27 -1 27 22 0 -1 8 7 28 -1 28 29 8 -1 11 8 29 -1 29 30 11 -1 13 11 30 -1 30 31 13 -1 15 13 31 -1 31 32 15 -1 17 15 32 -1 32 33 17 -1 19 17 33 -1 33 34 19 -1 7 19 34 -1 34 28 7 -1 29 28 35 -1 35 36 29 -1 30 29 36 -1 36 37 30 -1 31 30 37 -1 37 38 31 -1 32 31 38 -1 38 39 32 -1 33 32 39 -1 39 40 33 -1 34 33 40 -1 40 41 34 -1 28 34 41 -1 41 35 28 -1'/> can be omitted since it matches coordIndex
*** floating-point precision change: Coordinate point='-0.7186 0.9688 0.0234 -0.3632 0.9688 0.9 [...]' to '-0.7186 0.9688 0.0234 -0.3632 0.9688 0.9 [...]'
*** floating-point precision change: TextureCoordinate point='0.9309 0.5848 0.9190 0.5848 0.8921 0.584 [...]' to '0.9309 0.5848 0.919 0.5848 0.8921 0.5848 [...]'
*** floating-point precision change: HAnimJoint center='-3.854 3.939 -0.703800' to '-3.854 3.939 -0.7038'
*** floating-point precision change: Transform translation='-3.854 3.939 -0.703800' to '-3.854 3.939 -0.7038'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='-0.9768 -0.0192 -1.6810 -1.6570 -0.0192 [...]' to '-0.9768 -0.0192 -1.681 -1.657 -0.0192 0. [...]'
*** floating-point precision change: TextureCoordinate point='0.3819 0.1710 0.4216 0.1651 0.3819 0.171 [...]' to '0.3819 0.171 0.4216 0.1651 0.3819 0.171 [...]'
*** floating-point precision change: HAnimJoint center='-3.854 3.640 0.740200' to '-3.854 3.64 0.7402'
*** floating-point precision change: Transform translation='-3.854 3.640 0.740200' to '-3.854 3.64 0.7402'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='-2.9270 -1.6270 -1.0130 -2.0890 -3.6480 [...]' to '-2.927 -1.627 -1.013 -2.089 -3.648 -1.01 [...]'
*** floating-point precision change: TextureCoordinate point='0.4330 0.0595 0.4411 0.0186 0.4637 0.171 [...]' to '0.433 0.0595 0.4411 0.0186 0.4637 0.1714 [...]'
*** floating-point precision change: HAnimJoint center='0 40.070 -0.852700' to '0 40.07 -0.8527'
*** floating-point precision change: Transform translation='0 40.070 -0.852700' to '0 40.07 -0.8527'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='0.6928 14.7200 -1.2630 0 14.7700 -1.3550 [...]' to '0.6928 14.72 -1.263 0 14.77 -1.355 1.47 [...]'
*** floating-point precision change: TextureCoordinate point='0.4756 0.6180 0.4724 0.6293 0.4618 0.635 [...]' to '0.4756 0.618 0.4724 0.6293 0.4618 0.6351 [...]'
*** floating-point precision change: HAnimJoint center='0 57.430 -0.686300' to '0 57.43 -0.6863'
*** floating-point precision change: Transform translation='0 57.430 -0.686300' to '0 57.43 -0.6863'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='4.7340 2.2950 -0.4780 0 7.9250 -7.3470 0 [...]' to '4.734 2.295 -0.478 0 7.925 -7.347 0 2.73 [...]'
*** floating-point precision change: TextureCoordinate point='0.9175 0.8974 0.9509 0.8981 0.9421 0.870 [...]' to '0.9175 0.8974 0.9509 0.8981 0.9421 0.870 [...]'
*** floating-point precision change: HAnimJoint center='5.975 52 -0.145200' to '5.975 52 -0.1452'
*** floating-point precision change: Transform translation='5.975 52 -0.145200' to '5.975 52 -0.1452'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='2.5250 1.2460 -1.6800 3.6810 1.2360 0.03 [...]' to '2.525 1.246 -1.68 3.681 1.236 0.0337 2.4 [...]'
*** floating-point precision change: TextureCoordinate point='0.2986 0.2114 0.2726 0.2114 0.3201 0.211 [...]' to '0.2986 0.2114 0.2726 0.2114 0.3201 0.211 [...]'
*** floating-point precision change: HAnimJoint center='8.093 40.380001 -0.250200' to '8.093 40.38 -0.2502'
*** floating-point precision change: Transform translation='8.093 40.380001 -0.250200' to '8.093 40.38 -0.2502'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='0.2150 0.3047 -1.1520 1.1550 0.2966 -0.2 [...]' to '0.215 0.3047 -1.152 1.155 0.2966 -0.2588 [...]'
*** floating-point precision change: TextureCoordinate point='0.4222 0.6201 0.4327 0.6201 0.3884 0.620 [...]' to '0.4222 0.6201 0.4327 0.6201 0.3884 0.620 [...]'
*** floating-point precision change: HAnimJoint center='7.808 31.459999 -0.058490' to '7.808 31.46 -0.0585'
*** floating-point precision change: Transform translation='7.808 31.459999 -0.058490' to '7.808 31.46 -0.0585'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='1.2470 0.0700 0.7975 1.2090 0.0872 -1.34 [...]' to '1.247 0.07 0.7975 1.209 0.0872 -1.349 -0 [...]'
*** floating-point precision change: TextureCoordinate point='0.8107 0.9924 0.8122 0.9033 0.7694 0.991 [...]' to '0.8107 0.9924 0.8122 0.9033 0.7694 0.991 [...]'
*** floating-point precision change: HAnimJoint center='-5.975 52 -0.145200' to '-5.975 52 -0.1452'
*** floating-point precision change: Transform translation='-5.975 52 -0.145200' to '-5.975 52 -0.1452'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='-2.5250 1.2460 -1.6800 -3.6810 1.2360 0. [...]' to '-2.525 1.246 -1.68 -3.681 1.236 0.0337 - [...]'
*** floating-point precision change: TextureCoordinate point='0.2986 0.2114 0.2726 0.2114 0.3201 0.211 [...]' to '0.2986 0.2114 0.2726 0.2114 0.3201 0.211 [...]'
*** floating-point precision change: HAnimJoint center='-8.093 40.380001 -0.250200' to '-8.093 40.38 -0.2502'
*** floating-point precision change: Transform translation='-8.093 40.380001 -0.250200' to '-8.093 40.38 -0.2502'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='-0.2150 0.3047 -1.1520 -1.1550 0.2966 -0 [...]' to '-0.215 0.3047 -1.152 -1.155 0.2966 -0.25 [...]'
*** floating-point precision change: TextureCoordinate point='0.4222 0.6201 0.4327 0.6201 0.3884 0.620 [...]' to '0.4222 0.6201 0.4327 0.6201 0.3884 0.620 [...]'
*** floating-point precision change: HAnimJoint center='-7.808 31.459999 -0.058490' to '-7.808 31.46 -0.0585'
*** floating-point precision change: Transform translation='-7.808 31.459999 -0.058490' to '-7.808 31.46 -0.0585'
*** floating-point precision change: IndexedFaceSet creaseAngle='3.14159' to '3.1416'
*** floating-point precision change: Coordinate point='-1.2470 0.0700 0.7975 -1.2090 0.0872 -1. [...]' to '-1.247 0.07 0.7975 -1.209 0.0872 -1.349 [...]'
*** floating-point precision change: TextureCoordinate point='0.8107 0.9924 0.8122 0.9033 0.7694 0.991 [...]' to '0.8107 0.9924 0.8122 0.9033 0.7694 0.991 [...]'
=======================================================================================================
HAnimHumanoid skeleton holds X3D4 HAnim2 triplets, HAnimJoint (18) : HAnimSegment (18) : HAnimSite (0)</pre><span style="font-family:Arial,Helvetica,sans-serif"><div><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;"><b>*** File size reduction: original Legacy//JinOriginalLOA1.x3d.length=122718 bytes
processed canonical Legacy//JinOriginalLOA1Tidy.x3d.length=114541 bytes</b></pre></div><div><span style="font-family:Arial,Helvetica,sans-serif"><br></span></div>So if nothing else, these show that roundoff and truncation are working properly.</span></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Some show dramatic filesize reduction, over 50% using only elimination of excess text digits::</font></div><div><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;"><br></pre><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;"><b>*** File size reduction: original Coveroid//FullPoncho.x3d.length=101456 bytes
processed canonical Coveroid//FullPonchoTidy.x3d.length=43619 bytes</b></pre><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;"><br></pre><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;"><b>*** File size reduction: original Coveroid//FullPonchoWithNormals.x3d.length=108856 bytes
processed canonical Coveroid//FullPonchoWithNormalsTidy.x3d.length=51067 bytes</b></pre><font face="arial, sans-serif">
This log is quite verbose because additional validation checks and diagnostic warnings are also performed. So it is a good opportunity to find other problems.</font>
<font face="arial, sans-serif">
The last model did not work at all, freezing the build process: WinterAndSpring/GrampsAnimations.x3d is 37MB (way too huge). Other models in this directory need to be reduced as well.</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">The quest continues. HAnim authors are welcome to check their models in the build log.</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">The recently created Medical examples look to be visually correct mostly OK. Joe, please shift to these most-recent versions of the human-skeleton models we are working on... sometimes a second pass is needed when HAnim name and DEF changes occur. A</font><span style="font-family:arial,sans-serif">m seeing some error diagnostics like</span></div><div><span style="font-family:arial,sans-serif"><br></span></div><div><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;"><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;">C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\content\examples\HumanoidAnimation/Skin//DesignPatternsApparelMedicalSkinLayers.x3d processing with X3dTidy.xslt stylesheet for tidied-up .x3d
*** HAnim2 DEF replaced: HAnimHumanoid DEF='a_SimpleSkeleton' replaced with updated newDEFvalue='hanim_SimpleSkeleton'
*** HAnimJoint mismatched DEF-name pair DEF='' for name='humanoid_root', renamed to DEF='hanim_humanoid_root'
*** HAnimSegment mismatched DEF-name pair DEF='' for name='sacrum', renamed to DEF='hanim_sacrum'
*** HAnim2 DEF replaced: HAnimSite DEF='a_feature01_tip' replaced with updated newDEFvalue='hanim_feature01_tip'
*** error: no top-level <HAnimJoint USE='prefix_humanoid_root' containerField=''/> was found for name='humanoid_root' was found, but cannot add it to ancestor <HAnimHumanoid name='SimpleSkeleton'/> since no DEF found either
*** error: no top-level <HAnimJoint USE='prefix_humanoid_root' containerField=''/> was found for name='humanoid_root' was found, but cannot add it to ancestor <HAnimHumanoid name='SimpleSkeleton'/> since no DEF found either
*** error: no top-level <HAnimJoint USE='prefix_humanoid_root' containerField=''/> was found for name='humanoid_root' was found, but cannot add it to ancestor <HAnimHumanoid name='SimpleSkeleton'/> since no DEF found either </pre><pre style="overflow-wrap: break-word; text-wrap-mode: wrap;">[...]</pre></pre></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Looking forward to finishing this latest round of improvements, relentlessly pursuing effective and fully valid HAnim models.</font></div></pre></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">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>