<div dir="auto">The x3d input is is in the archives in HumanoidAnimation/Skin/JoeSkin.x3d.  I am fairly sure it was provided as an attachment, but feel free to get your own version.  The problem is not with X3dToPython.xslt though. Modifying the stylesheet enables XML and VRML output from x3d.py on a consistent basis would be good, but that  stylesheet is not the problem.</div><div dir="auto"><br></div><div dir="auto">As for the other stylesheet you mentioned, I would have to provide XML Schema and X3DOUM.  Would you like my copies?  The changes to them address other issues I’ve brought up, like field having the wrong type.  There’s a lot to swallow at once.  I’m trying to do bite sized chunks as you requested, but things pile up if not acted on.  Using Joe doesn’t work because he’s more like a roadblock.  I’m looking for a detour or I’m building a whole new destination.</div><div dir="auto"><br></div><div dir="auto">You ask for input, then you said don’t send it. I am confused.</div><div dir="auto"><br></div><div dir="auto">I am looking for a full example with skin, skinCoord, joints, skeleton and motions fields, maybe more.  Maybe Joe can whip one up real quick.  My guess is he would refer us to JoeKick.  Use the one in the archives.  I’m fine with that one to start.</div><div dir="auto"><br></div><div dir="auto">I’m moving my development from requiring sourceforge to GitHub.  So I can share changes with others better, you are welcome to join us.</div><div dir="auto"><br></div><div dir="auto">I’d rather you pick the goal we are working on, I am lost at this point.  I suggest we start small, like on Metadata node.</div><div dir="auto"><br></div><div dir="auto">I will look at LOA0 after processing my emails.</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, Oct 31, 2023 at 11:09 PM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div lang="EN-US" link="blue" vlink="purple" style="overflow-wrap: break-word;"><div class="m_7212329212481045494WordSection1"><p class="MsoNormal">[snip: 4 attachment in large mailing-list message]<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ol style="margin-top:0in" start="1" type="1"><li class="m_7212329212481045494MsoListParagraph">John, as explained many times, the way to change one of the converters (such as X3dToPython.xslt or X3duomToX3dPythonPackage.xslt or x3d.py) is to provide an example input file with a repeatable error.  It is usually not practical for more than one person to make changes at a time.<u></u><u></u></li></ol><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">What you have provided here requires elaborate reconstruction with no clearly stated goal.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ol style="margin-top:0in" start="2" type="1"><li class="m_7212329212481045494MsoListParagraph"> For your file JoeKick.x3d, the authoritative version is online at<u></u><u></u></li></ol><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_7212329212481045494MsoListParagraph" style="margin-left:0in"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d</a><u></u><u></u></li><li class="m_7212329212481045494MsoListParagraph" style="margin-left:0in"><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">If you have a change to that, please get Joe to agree as author first.  If you don’t have a change to that, there is no need to send it.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I suggested a very clear start with an LOA 0 and then LOA 1 model.  Not understanding why you don’t try that instead of continued circling and (for me at least) confusion.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">One step at a time please.  Hope this helps.<u></u><u></u></p></div></div><div lang="EN-US" link="blue" vlink="purple" style="overflow-wrap: break-word;"><div class="m_7212329212481045494WordSection1"><div><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New""><u style="font-family:"Courier New""></u> <u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">all the best, Don<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">-- <u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New"">brutzman@nps.edu</a><u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New"">https://faculty.nps.edu/brutzman</a><u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p></div><p class="MsoNormal"><u></u> <u></u></p><div><div style="border-width:1pt medium medium;border-style:solid none none;padding:3pt 0in 0in;border-color:rgb(225,225,225) currentcolor currentcolor"><p class="MsoNormal"><b>From:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> <br><b>Sent:</b> Tuesday, October 31, 2023 7:08 PM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>><br><b>Cc:</b> GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>; Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>; X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br><b>Subject:</b> Re: [x3d-public] Possible extensions to x3d.py (subclassing, etc)<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><div><div><p class="MsoNormal">Don, <u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Attached are JoeKick.x3d, JoeKick.py, the python program produced by my version of X3dToPython.xslt, my X3dToPython.xslt, and the result .x3d and wrl (it really is VRML, despite the JSON in the name) files.  Please view the two .x3d files to see the differences. To me, Joe in JoeKickPythonToX3d.x3d (the output from JoeKick.py+x3d.py) is totally missing.  There are 198 warnings in view3dscene for the file.  If you can produce a better python program than my JoeKick.py using your X3dToPython.xslt, that produces a better .x3d result than mine, by all means, let's see it.  I expect for you to be forthcoming with equivalent files for me to confirm for myself.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">If you want to see my X3duomToX3dPythonPackage.xslt please say so (anyone can ask).  I also have a JoeKick.py prior to my modifications, but it doesn't output anything.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Joe, don't say anything stupid.  We know what's happening.  If you want something to do, fix JoeKick.x3d so view3dscene doesn't spew tons of errors, then we'll reconvert to python, and revisit.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I've checked out another version of sourceforge, so I should have a golden copy of X3duomToX3dPythonPackage.xslt, x3d.py, etc.  We can revisit that if needed.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Thanks!<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">John<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Tue, Oct 31, 2023 at 4:27 PM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:<u></u><u></u></p></div><blockquote style="border-width:medium medium medium 1pt;border-style:none none none solid;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)"><div><div><div><p class="MsoNormal">John, you are free to experimentally subclass or inject as you wish but there is no guarantee that such work will be maintainable.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">The way to upgrade x3d.py is to<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><ul type="disc"><li class="MsoNormal">Show an erroneous output, or<u></u><u></u></li><li class="MsoNormal">Provide example code showing a broadly useful utility method of some sort.<u></u><u></u></li></ul><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Such corrections and improvements can then get autogenerated from X3DUOM into x3d.py and then regression tested against X3D Examples.  If successfully working they can become part of a future x3d.py release, which is entirely open source.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><ul type="disc"><li class="MsoNormal">Python package x3d<u></u><u></u></li><li class="MsoNormal"><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpypi.org%2Fproject%2Fx3d&data=05%7C01%7Cbrutzman%40nps.edu%7C51d6689e94354aef643a08dbda7f6cc5%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638344013102359618%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=20GjwzRlIAwt0wQitTNZZgyMLeFdlSIg6sQ28d0EnPA%3D&reserved=0" target="_blank">https://pypi.org/project/x3d</a><u></u><u></u></li></ul><p class="MsoNormal"><br>Thanks in advance for all improvements to X3D and x3d.py python library.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">all the best, Don</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">-- </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New"">brutzman@nps.edu</a></span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New"">https://faculty.nps.edu/brutzman</a></span><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><div style="border-width:1pt medium medium;border-style:solid none none;padding:3pt 0in 0in;border-color:rgb(225,225,225) currentcolor currentcolor"><p class="MsoNormal"><b>From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@web3d.org</a>> <b>On Behalf Of </b>John Carlson<br><b>Sent:</b> Tuesday, October 31, 2023 1:53 PM<br><b>To:</b> GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>; Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>><br><b>Cc:</b> X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br><b>Subject:</b> [x3d-public] Possible extensions to x3d.py (subclassing, etc)<u></u><u></u></p></div><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">I’m going to take the approach that x3d.py cannot be modified, and instead use subclasses of x3d.py classes to provide order of fields as necessary for the Blender X3DV exporter. In particular, HAnimHumanoid XML, VRML and JSON methods will be overridden to provide containerField, field ordering, etc.<u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">x3d.py might take a dependency injection approach in the future, such that one or more delegates can be replaced.  I believe dependency injection is preferred to inheritance or monkey-patching, but X3D is pretty heavy into inheritance, or at least interfaces.  Any dependency injection should make any changes to output as desired.  I do not agree with totally replacing methods, as that is a maintenance nightmare.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">I apologize for all the emails over the last many days.  My mind is not as nimble as it could be.   I do not know if I could have arrived at a agreeable solution without all the emails.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Now you know why technical interviews terrify me.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Thanks everyone for being teddy bears.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">John <u></u><u></u></p></div></div></div></div></blockquote></div></div></div></div></div></div></blockquote></div></div>