<div><div dir="auto">Great idea, Joe!  This is a great follow on from WinterAndSpring.</div><div dir="auto"><br></div><div dir="auto">Short summary:  XSLT may be the best tool for adding decorations to HAnim models, but it doesn’t work with flat files that I know of.</div><div dir="auto"><br></div><div dir="auto">This maybe not a Blender task, unless more export options are added.</div><div dir="auto"><br></div><div dir="auto">I can look into adding features to an existing humanoid ala old versions of my Blender exporter.  Most of that code has been stripped out in favor of exporting empties as sites and segments.  I have been relying on Blender import to add decorations like geometry.  So adding features like billboards, skeletal features, and site and geometry can be option checkboxes.  My primary tasks with Blender are import, export and conversion.</div><div dir="auto"><br></div><div dir="auto">It seems like we want to use Jin 20f for both structure and data of the humanoid, then use something like the Jaminate/Just Humans app (think modifying the humanoid with Java/X3DJSAIL) to add features like resize, animation concatenation or chaining, USE/deUSE and Site+Segment geometry/billboards.  Ideally, we’d have decorate your own Jin app that could be used from anywhere, including systems without Blender.</div><div dir="auto"><br></div><div dir="auto">I can add additional features to Jaminate, but it seems like these features could see wider adoption through use of X3DJSAIL in X3D-Edit.  I can develop small features, but as far as I know, I am locked out of contributing to X3DJSAIL/X3D-Edit.  Don has explicitly stated “no source code.”  I don’t know if changing my status as a Web3D consortium member will affect this.  I also feel a review system like GitHub should be in place for updates, etc.</div><div dir="auto"><br></div><div dir="auto">It would seem like I should make a kind of web server such that billboards and geometry could be added to a provided HAnim model.   These are things that could also be incorporated into X3DUOM and X_ITE playgrounds.  So it seems like a web-based transactional service would be appropriate for this.  This leaves out SAI as being too “chatty” unless the source code is uploaded.</div><div dir="auto"><br></div><div dir="auto">If one thinks about adding geometry, clothes, billboards, etc to humanoids as a web service, then this opens up APIs to developers of Blender, SAI/X3DJSAIL/x3d.py, X3DOM, X_ITE, Metaverse, X3DJSAIL, X3D-edit etc.</div><div dir="auto"><br></div><div dir="auto">I don’t particularly like the idea of hosting a web service by myself. The security issues with file upload are too numerous to mention—including providing “XML” for confused deputies.  I would prefer writing a local library that others could embed in their apps.  This probably means programming in DOM plus C/Rust/Zig, which could probably be incorporated into Java, Python, C++, but would likely leave out JavaScript, unless someone wants to learn node-gyp and the like.</div><div dir="auto"><br></div><div dir="auto">So perhaps the task is to write a high level HAnim API that could be used in a variety of languages, could be standardized along with SAI, etc.  The first of these would be a web service, as a platform neutral approach.</div><div dir="auto"><br></div><div dir="auto">What I can do is write the server library using GraalJS/X3DJSAIL, then rely on someone to incorporate this into a JavaScript or Java web server.</div><div dir="auto"><br></div><div dir="auto">A quick overview of the API would include X3DLoaderDOM.java or JavaScript as a way to read a humanoid scene into X3DJSAIL.  Then there would be templatized “geometry” for Segments and Sites.  Template variables would include joint centers, site translations, joint names, segment names, site names, site numbers, joint numbers, and segment numbers (see Joe’s hierarchy).  An optional flag would turn on/off use of USE.<br></div><div dir="auto"><br></div><div dir="auto"><div><span style="font-family:-apple-system,helveticaneue;font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)">Then we can talk about conversion to glTF and USD for incorporation into the metaverse.</span></div></div><div dir="auto"><br></div><div dir="auto">What we really need is a good language or library for “automated data decoration (ADD)” of humanoids.  I’m guessing XSLT would be a great option here.</div><div dir="auto"><br></div><div dir="auto">Programming in Blender python with large HAnim models is not exactly quick turnaround.  Minus a debugger is hard too.  Python is my choice language for dealing with XML and using OpenCV/MediaPipe.  Not much else.  I like to use SAX in Java, and DOM in JavaScript.  Domain-specific libraries are even more enjoyable, but need the ability to read tons of documentation in many cases.  A well-patterned library goes a long way.</div><div dir="auto"><br></div><div dir="auto">So I think the first task is figuring out what features we want in such a ADD humanoid API, then prioritize.  We should also define which environments we want this to operate in.</div><div dir="auto"><br></div><div dir="auto">I have not even mentioned animation.</div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br></div></div><div><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 9, 2024 at 4:14 PM Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</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 style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)"><p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Hi All, I just want to see further development of the jin-based 1:1 model. </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">The attached Jin loa4Markers file intends to include all v2 Joint and Site objects, then (fix some wild ones here and) add each new or different v2.1 Site names, numbers and set an example location on this model when Carol and Katy make it available.   </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">    </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">John showed some nice work on Humanoid4.x3d to add the billboards and he might be able to add 'standard' features like sort of automagically from using complete v2.1 hanim schema.     </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">    </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">This attached Jinloa4Minimum is a target skeleton for direct import to blender or wherever. </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">It contains the v2 loa4 hierarchy with only Joint center and Site translation numbers.    </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">No geometry is included except a 0 0 0 and x y z axis location marker for first, the Parent Scene default coordinate system and second, for the Humanoid default coordinate system.  </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">  </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">The idea is to get a basic as readable as possible skeleton hierarchy with personal centers and translations as import to whatever system might be used to author geometry and poses and motions, then back to x3d hanim scenegraph to get control and integration into the metaverse. </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">  </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Thanks and Best,</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Joe</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">  </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">    </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">  </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
</div>
<div style="border-left-width:1px;border-left-style:solid;box-sizing:border-box;padding:10px 0px 10px 15px;margin:0px;border-left-color:rgb(170,170,170)">
<p>-----Original Message-----<br>From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>Sent: Jun 27, 2024 11:50 AM<br>To: Carol McDonald <<a href="mailto:cemd2@comcast.net" target="_blank">cemd2@comcast.net</a>><br>Cc: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>, Katy Schildmeyer KS APPAREL DESIGN <<a href="mailto:katy@ksappareldesign.com" target="_blank">katy@ksappareldesign.com</a>><br>Subject: Re: John’s Blender tasks list</p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<div dir="ltr">Getting Blender JSON export working is going to be a very hard problem, perhaps beyond my skill level. This requires changes to x3d.py which is generated from an XSLT stylesheet.
<div> </div>
<div>I am having fairly good results with just joints and skin, but the skin appears fairly mangled.  Exporting Katy's gramps is working, except I currently have 2 humanoids.</div>
<div> </div>
<div>There's two tasks with import, JSON import and X3D import. I've been working on XML import for now.  Hopefully, we'll have a JSON to X3D Python import working at some point, then X3D Python to Blender Python.  I'm just trying to get the Blender side working right now.  I'll probably make quite a bit of use of <a href="http://claude.ai" target="_blank">claude.ai</a> for this work.</div>
<div> </div>
<div>I am considering flipping to an alternate approach, which is generating Blender python from X3D XML.  There will be no lost work, as the new work should be directly usable in an addon.</div>
</div>
<br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Thu, Jun 27, 2024 at 1:31 PM Carol McDonald <<a href="mailto:cemd2@comcast.net" target="_blank">cemd2@comcast.net</a>> wrote:</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)"><u></u>
<div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)"><span style="font-family:helvetica;font-size:12pt">Let's make sure that we can get the humanoid working before the clothes. </span></div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)"> </div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)"><span style="font-family:helvetica;font-size:12pt">Create X3D JSON import/export - will be important for data sharing.</span></div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)"> </div>
<div style="font-size:12pt;font-family:helvetica,arial,sans-serif;color:rgb(51,51,51)"><span style="font-family:helvetica;font-size:12pt">Carol </span></div>
<blockquote>
<div>On 06/23/2024 1:55 AM PDT John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noopener" target="_blank">yottzumm@gmail.com</a>> wrote:</div>
<div> </div>
<div> </div>
<div dir="ltr">
<div>Copy vertex groups (weights) from armature to EMPTY joint hierarchy.  Test. This is similar to the center code already accomplished for Joints.
<div dir="auto"> </div>
<div dir="auto">Test and enhance segmented skin and continuous skin (weights).  M<span style="font-family:-apple-system,helveticaneue;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)">ake sure that continuous skin animation in Blender is similar to external examples.</span></div>
<div dir="auto"> </div>
<div dir="auto">Fix axes directions from import_scene.x3d call</div>
<div dir="auto"> </div>
<div dir="auto">Add CURVE/LineSet export</div>
<div dir="auto"> </div>
<div dir="auto">Ensure that local, non-root center rotations work.</div>
<div dir="auto"> </div>
<div dir="auto">Test with USD/glTF/VRM import export.</div>
<div dir="auto"> </div>
<div dir="auto">Import/export realistic clothes.  Animate.</div>
<div dir="auto"> </div>
<div dir="auto">Get animation working.  Test Blender bone animation, EMPTY animation, and non- HAnim animation.</div>
<div dir="auto"> </div>
<div dir="auto">Test PROTO import/export</div>
<div dir="auto"> </div>
<div dir="auto">Test DEF/USE export.</div>
<div dir="auto"> </div>
<div dir="auto">Create small examples to test features.</div>
<div dir="auto"> </div>
<div dir="auto">Write an X3D to Blender Python stylesheet or serializer for models.</div>
<div dir="auto"> </div>
<div dir="auto">Implement Displacer/LATTICE/ShapeKey code.</div>
<div dir="auto"> </div>
<div dir="auto">Implement Texture rotation.</div>
<div dir="auto"> </div>
<div dir="auto">Think about using Blender triangulation/tesselation instead of our own.</div>
<div dir="auto"> </div>
<div dir="auto">Create X3D JSON import/export.</div>
<div dir="auto"> </div>
<div dir="auto">
<div><span style="font-family:-apple-system,helveticaneue;font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)">Please vote for the 2 highest in your opinion.  Add additional items and reply.</span></div>
<div dir="auto"><span style="font-family:-apple-system,helveticaneue;font-size:19px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)"> </span></div>
<div dir="auto">Thanks!</div>
</div>
</div>
<div>
<div dir="auto">
<div dir="auto"> </div>
</div>
<div dir="auto"> </div>
<div dir="auto">John</div>
<div dir="auto"> </div>
<div dir="auto"> </div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>

<p style="margin:0.1rem 0px;line-height:1"> </p></blockquote></div></div>
</div>