<div dir="auto">Sorry for not being clearer.</div><div dir="auto"><br></div><div dir="auto">Don, Doug was planning on a “BVH” tool using Python and OpenGL, especially for retargetting HAnim skeletons between joint systems.  I can’t remember the specifics.  He was working with MakeHuman and MPFB2.</div><div dir="auto"><br></div><div dir="auto">I did a bit of work creating an LOA4? Skeleton for those, but I couldn’t figure out how to hook up a skin.</div><div dir="auto"><br></div><div dir="auto">I don’t know if HAnim export is appropriate for web tools, maybe Sunrize is close?</div><div dir="auto"><br></div><div dir="auto">I don’t really know Doug’s plans, but I was reopening the thread.  I don’t know how far he has gotten with his ideas.</div><div dir="auto">—————————-</div><div dir="auto"><br></div><div dir="auto">I think what we’re really wanting is a way to convert JSON, XML and VRML into something common (a Python dict?) such that we can import various encodings into Blender.  Perhaps we can leverage Vince’s X3D to glTF utility.  Ideally, Blender would provide a common encoding.  Alembic?</div><div dir="auto"><br></div><div dir="auto">I agree that Blender Python is a moving target, and something standard is desired.  If ANARI can provide a rendering interface, that might be a path, if someone cares to pursue it.  I lost interest.  Blender HAnim has lot to be desired.  Perhaps the recent USDSkel has been incorporated.  I don’t have USDSkel examples, but I can try exporting to USDSkel from Blender 4.0.1.</div><div dir="auto">————-</div><div dir="auto">My primary interest right now is applying transforms to all SFRotations in a list of  OrientationInterpolators.  I am thinking JSON may be a good approach.  This is still percolating.</div><div dir="auto"><br></div><div dir="auto">Sorry for combining all messages into one message!</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 28, 2023 at 2:29 AM 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="#0563C1" vlink="#954F72" style="overflow-wrap: break-word;"><div class="m_2043737610151642011WordSection1"><p class="MsoNormal">No renderer is planned for x3d.py.  The stated design notes that “Creating a native-Python implementation for X3D data structures appears to provide the greatest possible portability.”  That has been accomplished successfully.<u></u><u></u></p><p class="MsoNormal"><br>We have over 4,000 scene graphs built and validated using x3d.py as part of the X3D Examples Archives.  Certainly they show how to create Python data structures containing scene graphs.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Building a renderer involves a Small Matter of Programming (SMOP)!  Indeed writing an all-purpose renderer is much harder, and a historically a moving horizon for computer graphics every year.  This is why X3DJSAIL and X3DPSAIL can be used by others.  Rendering is avoided intentionally in the design of these libraries and without any impediment to progress, since each library has various export methods for producing X3D and Classic VRML, also for publishing to a web page using X_ITE or X3DOM.  Boom presto, wide portability for a large number of X3D-capable tools and viewable rendering anywhere.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_2043737610151642011MsoListParagraph" style="margin-left:0in"><a href="https://en.wikipedia.org/wiki/Small_matter_of_programming" target="_blank">https://en.wikipedia.org/wiki/Small_matter_of_programming</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Hope this is now clearer.  Happy new year.<u></u><u></u></p><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></div></div><div lang="EN-US" link="#0563C1" vlink="#954F72" style="overflow-wrap: break-word;"><div class="m_2043737610151642011WordSection1"><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> Thursday, December 28, 2023 12:13 AM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>>; GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>; Peitso, Loren (CIV) <<a href="mailto:lepeitso@nps.edu" target="_blank">lepeitso@nps.edu</a>>; X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br><b>Subject:</b> Renderer for x3d.py<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Kivy appears to be the best (most community) cross-platform OpenGL library for Python.  Did you explore this option, Doug? <u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Another, more GUI library is BeeWare Toga.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Web-oriented tools are Django and Flask, then choose a front-end.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">If someone can lay out a pattern for building a renderer using x3d.py as scenegraph, with additional packages for rendering the scenegraph, maybe I can start looking into developing an Interchange profile renderer?<u></u><u></u></p></div></div></div></div></blockquote></div></div>