<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;">that blend file lis just blend form binary that gets processed by some script to reload into blender. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">This is not interned as a transport file, just some data to reload into blender or any other that can decode the thing.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Look at this file with a simple text editor (change file to .txt). We see that this is mostly some binary stuff, maybe slightly encrypted in some way, with some scattering of keywords. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">It is  mostly useless until you can first know the target coordinate system, then the hierarchy of transforms, then any geometry, and finally some animation. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">If you have any x3d browser with SAI, you can ask for the scene in x3d user code ASCII or Binary at any point, and get the current coordinates at any point in the animation. This .blend this is like that only set up for quick native code loading, but you may need extra keys  to be able toactually modify this file, which is what any deeply dedicated blender creator will want to do.  </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">So, these categories of data are intended to be encoded for easy transport using gltf and other json and blob forms. Forget this thing unless there is a clear way to just go ahead and create gltf assets from this for import into x3d. However, if blender force must be working on this because somebody there must want to honor some industry standards. Same for Unity or any other.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Good Luck to all who wish for easy transport.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Attached here and below is latest for this example.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Red is like HAnim where that geometry is set relative to the center in the Segment or Site nodes.  Green is like you first showed with no geometry transform to position the marker except the offset center.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">See short vid for how these play. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><a class="style-scope ytcp-video-info" style="scrollbar-width: thin; scrollbar-color: var(--ytcp-icon-disabled) transparent; text-decoration-line: none; color: var(--ytcp-themed-blue); font-family: Roboto, Noto, sans-serif; font-size: 15px; white-space: nowrap; background-color: #f9f9f9;" href="https://youtu.be/BzcV4LWf1Wk" target="_blank" rel="noopener">https://youtu.be/BzcV4LWf1Wk</a></p>
<p style="margin: 0.1rem 0; line-height: 1.0;">  </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Thanks,   </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Joe</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">  </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><X3D profile="Immersive" version="4.0" xsd:noNamespaceSchemaLocation="<a href="https://www.web3d.org/specifications/x3d-4.0.xsd">https://www.web3d.org/specifications/x3d-4.0.xsd</a>" xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"><br>      <head><br>    <meta name='title' content='localcenters.x3d'></meta><br>    <meta name='creator' content='John Carlson'></meta><br>    <meta name='modifier' content='Joe D Wiliams'></meta><br>     </head></p>
<p style="margin: 0.1rem 0; line-height: 1.0;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">     <Scene><br>        <WorldInfo title='localcenters01b.x3d'/><br>        <NavigationInfo type='"ANY" "EXAMINE" "FLY" "LOOKAT"'/><br>        <Viewpoint description='Main View' position="2 4 20"/></p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">  <Transform DEF="CenterRoot1" center="0 0 0"><br>    <Shape DEF='GreenBox1'><br>      <Box size='0.5 0.5 0.5'/><br>      <Appearance> <br>        <Material diffuseColor='0 1 0' emissiveColor='0 1 0' transparency='0'/><br>      </Appearance><br>    </Shape><br>    <Transform DEF="CenterParent1" center="4 0 0"><br>      <Shape USE='GreenBox1'/><br>      <Transform DEF="CenterChild1" center="8 0 0"><br>        <Shape USE='GreenBox1'/><br>      </Transform><br>    </Transform><br>  </Transform></p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">  <Transform DEF="CenterRoot2" center="0 2 0" translation='0 2 0'><br>    <Transform DEF="TranslateToCenterRoot2" translation="0 2 0"><br>      <Shape DEF='RedBox2'><br>        <Box size='0.5 0.5 0.5'/><br>        <Appearance><br>          <Material diffuseColor='1 0 0' emissiveColor='1 0 1' transparency='0'/><br>        </Appearance><br>      </Shape><br>    </Transform><br>    <Transform DEF="CenterParent2" center="4 0 0"><br>      <Transform DEF="TranslateToParent2" translation="4 0 0"><br>        <Shape USE='RedBox2'/><br>      </Transform><br>      <Transform DEF="CenterChild2" center="8 0 0"><br>        <Transform DEF="TranslateToChild2" translation="8 0 0"><br>          <Shape USE='RedBox2'/><br>        </Transform><br>      </Transform><br>    </Transform><br>  </Transform></p>
<p style="margin: 0.1rem 0px; line-height: 1;"><br>    <ProximitySensor DEF="ActivateSensor" size="100 100 100" /><br>    <TimeSensor DEF="Clock" cycleInterval='2' loop='true'/></p>
<p style="margin: 0.1rem 0px; line-height: 1;">  <br>    <ROUTE fromNode="ActivateSensor" fromField="enterTime" toNode="Clock" toField="set_startTime" /></p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">    <OrientationInterpolator DEF="Rotater" <br>  key="0 0.25 0.5 0.75 1" <br>  keyValue="0 0 1 0, 0 0 1 0.785, 0 0 1 1.57, 0 0 1 2.35, 0 0 1 3.14"/></p>
<p style="margin: 0.1rem 0px; line-height: 1;">  <br>    <ROUTE fromNode="Clock" fromField="fraction_changed" toNode="Rotater" toField="set_fraction"/></p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">    <ROUTE fromNode="Rotater" fromField="value_changed" toNode="CenterRoot1" toField="rotation"/><br>    <ROUTE fromNode="Rotater" fromField="value_changed" toNode="CenterParent1" toField="rotation"/><br>    <ROUTE fromNode="Rotater" fromField="value_changed" toNode="CenterChild1" toField="rotation"/></p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">    <ROUTE fromNode="Rotater" fromField="value_changed" toNode="CenterRoot2" toField="rotation"/><br>    <ROUTE fromNode="Rotater" fromField="value_changed" toNode="CenterParent2" toField="rotation"/><br>    <ROUTE fromNode="Rotater" fromField="value_changed" toNode="CenterChild2" toField="rotation"/></p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">      </Scene><br></X3D></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: John Carlson <yottzumm@gmail.com><br>Sent: Jun 10, 2024 1:07 AM<br>To: Joe D Williams <joedwil@earthlink.net><br>Cc: Katy Schildmeyer KS APPAREL DESIGN <katy@ksappareldesign.com>, X3D Graphics public mailing list <x3d-public@web3d.org><br>Subject: Re: Can you get this X3D animation imported into Blender?</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div dir="ltr">Joe,
<div> </div>
<div>Here's the .blend file for localcentersjoe.x3d  I remain overwhelmed, not seeing a way forward.</div>
<div> </div>
<div>I am stuck on:</div>
<div> </div>
<div>1. Applying the most recent transform</div>
<div>2. Applying a full set of transforms.</div>
<div> </div>
<div>So far, using 1 works well for Transforms with centers.</div>
<div> </div>
<div>If we can lay out some use cases, that would be good.</div>
<div> </div>
<div>I've asked Vince to help.</div>
<div> </div>
<div>Hopefully, this will get through size filters in case someone else wants to observe the differences between our files.</div>
<div> </div>
<div>John</div>
</div>
<br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Thu, Jun 6, 2024 at 5:35 AM Joe D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div style="color: #000000; font-family: arial,sans-serif; font-size: 12pt;">
<p style="margin: 0.1rem 0px; line-height: 1;">Hi John, </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">You sent this: </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">  <Transform DEF="TransformRoot1" center="0 0 0"><br>    <Shape><br>      <Box size='0.5 0.5 0.5'/><br>    </Shape><br>    <Transform DEF="TransformTargetParent1" center="4 0 0"><br>      <Shape><br>        <Box size='0.5 0.5 0.5'/><br>      </Shape><br>      <Transform DEF="TransformTargetChild1" center="8 0 0"><br>        <Shape><br>          <Box size='0.5 0.5 0.5'/><br>        </Shape><br>      </Transform><br>    </Transform><br>  </Transform></p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Not shown here is the interpolator that sends rotations to both Parent and Child Transforms</p>
<p style="margin: 0.1rem 0px; line-height: 1;">For this animation code you sent this did exactly what it should have done.</p>
<p style="margin: 0.1rem 0px; line-height: 1;">The boxes start at 0 0 0 then are swept along the axis according to the Parent and Child Transform nodes animation input.  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Note that the initial position of all three boxes is 0 0 0, then they move along the radius from where you set the parent centers.</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Please have a look at this: </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">First, slight change from what you sent. </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Again, a important understanding is that "center" value of the Transform represents the center of rotation of that Transform, and may have nothing much to do with the value for translation, which is 0 0 0 for the parent Transform for each Shape. </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">  <Transform DEF="CenterRoot1" center="0 0 0"><br>    <Shape><br>      <Box size='0.5 0.5 0.5'/><br>    </Shape><br>    <Transform DEF="CenterParent1" center="4 0 0"><br>      <Shape><br>        <Box size='0.5 0.5 0.5'/><br>      </Shape><br>      <Transform DEF="CenterChild1" center="8 0 0"><br>        <Shape><br>          <Box size='0.5 0.5 0.5'/><br>        </Shape><br>      </Transform><br>    </Transform><br>  </Transform></p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">So again, all Shapes start at 0 0 0 then are swept through the arc defined by each parent Transform center.  </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">This version operates like the hanim model.</p>
<p style="margin: 0.1rem 0px; line-height: 1;">The parent Transform is a "Joint" with center defined, then the Shape has its own Transform to place it at the parent center value.</p>
<p style="margin: 0.1rem 0px; line-height: 1;">(The first center="0 2 0" translation='0 2 0' just moves the is example up above the first example.) </p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">  <Transform DEF="TransformRoot2" center="0 2 0" translation='0 2 0'><br>    <Transform DEF="MoveToCenterRoot" translation="0 2 0"><br>      <Shape><br>        <Box size='0.5 0.5 0.5'/><br>      </Shape><br>    </Transform><br>    <Transform DEF="CenterTargetParent2" center="4 0 0"><br>      <Transform DEF="TranslateTargetParent2" translation="4 0 0"><br>        <Shape><br>          <Box size='0.5 0.5 0.5'/><br>        </Shape><br>      </Transform><br>      <Transform DEF="CenterTargetChild2" center="8 0 0"><br>        <Transform DEF="TranslateTargetChild2" translation="8 0 0"><br>          <Shape><br>            <Box size='0.5 0.5 0.5'/><br>          </Shape><br>        </Transform><br>      </Transform><br>    </Transform><br>  </Transform></p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">In Humanoid space, once the connection between using center to set the Joint center of rotation and then a child Transform to position any associated stuff in Humanoid space just makes it work wonderful for what we need in hanim.</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;">I can recall a day when there were sincere discussions over whether to include the 'center' field in Transform.  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Thanks,</p>
<p style="margin: 0.1rem 0px; line-height: 1;">Joe</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</div>
</blockquote>
</div>
</div>

<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>