<div dir="ltr"><div>Here's a complete tutorial (forgive my shell programming):</div><div><br></div><div>






<span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">$ export CLASSPATH=X3DJSAIL.4.0.full.jar </span><br></span>






<span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">$ java JinOne.java</span><br></span><br></div><div>Review 
<span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">JinOne_output.x3d</span> in Castle (attached).</span></div><div><span style="font-family:monospace"><br></span>1 warnings:<br><br>X3D: <b>Incorrect USE clause</b>: node name "Sacrum_COORD" undefined (possibly the USE clause appears before the DEF for this node name)<br><br>Scene URL: "JinOne_output.x3d".<br>Use "File->View Warnings" menu to view these warnings again.</div><div><br></div><div><br></div><div>Usable Java attached.</div><div><br></div><div>So everything would be great if Castle didn't flag this.  <i>It would also be great if Castle supported HAnimDisplacer.  Perhaps this is why they don't?</i></div><div><br></div><div>I'm just afraid if I send the XML to some non-browser X3D tool, it's going to hurl, just like Castle.</div><div><br></div><div>So do we change the downstream software or X3DJSAIL?</div><div><br></div><div>Or we swim upstream and try to fix what's outputting the Java, the JSON, etc.?</div><div><br></div><div>If we can agree on caonicalization, and both Holger's x3d-tidy and X3dToJson.xslt agree, that would be an acceptable solution.</div><div>I have a choice to fix my JavaSerializer to put the HAnim Java fields in the order X3DJSAIL expects.  I have around 18 serializers.  This means sorting every node I encounter to make sure MFNode and SFNode field is canonicalized.</div><div><br></div><div>We can keep pointing fingers, or agree on what's the best approach, then get to work.</div><div><br></div><div>Both Don and Doug have good engineering in mind. Despite years of success, we don't really have many HAnimSegment+HAnimDisplacer examples to work with.  That is what we are experiencing now, or is related to it (there are no HAnimDisplacers in JinOne.java).  I don't know if There are any examples of HAnimSegment.coord, except ones I've created with HAnimDisplacer.  For review:</div><div><br></div><div><h2>26.3.5 HAnimSegment</h2><pre class="gmail-node">HAnimSegment : X3DGroupingNode {
  MFNode   [in]     addChildren                          [X3DChildNode]
  MFNode   [in]     removeChildren                       [X3DChildNode]
  SFBool   [in,out] bboxDisplay      FALSE
  SFVec3f  [in,out] centerOfMass     0 0 0               (-∞,∞)
  <span style="color:rgb(0,0,255)">MFNode   [in,out] children         []                  [X3DChildNode]</span> (for shape)
  <span style="color:rgb(0,255,0)">SFNode   [in,out] coord            NULL                [Coordinate|CoordinateDouble]</span> (for displacer, AFAIK)
  SFString [in,out] description      ""
  MFNode   [in,out] displacers       []                  [HAnimDisplacer]
  SFFloat  [in,out] mass             0                   [0,∞)
  SFNode   [in,out] metadata         NULL                [X3DMetadataObject]
  MFFloat  [in,out] momentsOfInertia [0 0 0 0 0 0 0 0 0] [0,∞)
  SFString [in,out] name             ""
  SFBool   [in,out] visible          TRUE
  SFVec3f  []       bboxCenter       0 0 0               (-∞,∞)
  SFVec3f  []       bboxSize         -1 -1 -1            [0,∞) or −1 −1 −1
}
</pre><br></div><div>Can someone think of a standards based solution to this?  Like disallowing coord if displacers is absent?</div><div><br></div><div>X3DJSAIL jar download date:</div><div><br></div><div>






<span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">-rw-r--r--. 1 yottzumm yottzumm 45858498 May  5 13:23 </span><span style="font-weight:bold;color:rgb(255,84,84);background-color:rgb(255,255,255)">X3DJSAIL.4.0.full.jar</span></span></div><div><br></div><div>If someone tells me to fix my serializers, that would work.  No one has told me to do that. I don't know if canonicalization is agreed upon.  If we can agree on canonicalization, the problem will become mine and Holger's, and Don's software will work great!</div><div><br></div><div>Hint:  Run Bazzite Linux NetBeans from the store, don't download the zip from Apache.</div><div><br></div><div>So yes, engineering is required when new situations are encountered.  That's what Doug and I are doing.   I know Doug has a lot of experience with HAnim, and I trust him on this.</div><div><br></div><div>John</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 5, 2026 at 1:14 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">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">Sometimes people just want confirmation that there’s an issue with a trusted colleague before filing a ticket.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 5, 2026 at 12:31 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">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">This is the X3DJSAIL program causing the ruckus on list, and why Doug and I are having fits.</div><div dir="auto"><br></div><div dir="auto">Please put this under your microscopes to see if there’s an issue with it.</div><div><div class="gmail_quote"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div>
</div></div>
</blockquote></div></div>
</blockquote></div>