[x3d-public] applying significant-digit reduction to Humanoid Animation (HAnim) archive

Don Brutzman don.brutzman at gmail.com
Mon Feb 23 13:51:08 PST 2026


Recent message described significant-digit reduction using X3dTidy and a
regex:

   - [x3d-public] new feature in X3dTidy stylesheet: numeric
   significant-digits precision using regular expression (regex)
   <https://web3d.org/pipermail/x3d-public_web3d.org/2026-February/022310.html>


Here is the log of results when applying this to all the models in HAnim
archive.

   - X3D Examples Archive, Humanoid Animation (HAnim)
   <https://www.web3d.org/x3d/content/examples/HumanoidAnimation>
   - https://www.web3d.org/x3d/content/examples/HumanoidAnimation
   -
   https://www.web3d.org/x3d/content/examples/HumanoidAnimation/build.X3dTidy.log.txt

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.

Many of these worked OK.  Links and example excerpts follow.

Most changes were elimination of trailing zeros:

   - X3D Example Archives: Humanoid Animation, Characters, HAnim Model Foot
   Left
   -
   https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/HAnimModelFootLeftIndex.html

... X3D Schematron check complete
next check using X3dTidy and apply changes to model...
C:\x3d-code\www.web3d.org\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)

**** File size reduction: original
Characters//HAnimModelFootLeft.x3d.length=29224 bytes
          processed canonical
Characters//HAnimModelFootLeftTidy.x3d.length=29196 bytes*



   - X3D Example Archives: Humanoid Animation, Characters, Jin LOA 1
   - https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA1Index.html

C:\x3d-code\www.web3d.org\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)

**** File size reduction: original
Legacy//JinOriginalLOA1.x3d.length=122718 bytes
          processed canonical
Legacy//JinOriginalLOA1Tidy.x3d.length=114541 bytes*


So if nothing else, these show that roundoff and truncation are working
properly.

Some show dramatic filesize reduction, over 50% using only elimination of
excess text digits::


**** File size reduction: original Coveroid//FullPoncho.x3d.length=101456 bytes
          processed canonical Coveroid//FullPonchoTidy.x3d.length=43619 bytes*


**** File size reduction: original
Coveroid//FullPonchoWithNormals.x3d.length=108856 bytes
          processed canonical
Coveroid//FullPonchoWithNormalsTidy.x3d.length=51067 bytes*

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. 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.

The quest continues. HAnim authors are welcome to check their models in the
build log.

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. Am seeing some error diagnostics like

C:\x3d-code\www.web3d.org\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

[...]


Looking forward to finishing this latest round of improvements,
relentlessly pursuing effective and fully valid HAnim models.

all the best, Don
-- 
X3D Graphics, Maritime Robotics, Distributed Simulation
Relative Motion Consulting  https://RelativeMotion.info
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260223/ba164226/attachment-0001.html>


More information about the x3d-public mailing list