<div dir="auto">In other words, rotations need to be generated by the hierarchy (which my format reports bones, or from one joint (xyz) to the next), and something that takes bone/joint movement over time and produces streaming BVH or X3D.  Is this inverse kinematics, IK?  The relative flag may mean the “IK” has already been done, but I think BVH may require rotations?  Contributions to my project to do IK are welcome!  Help!  It should be quick to generate relative xyz from a hierarchy, if someone wants that.  How about rotations?</div><div dir="auto"><br></div><div dir="auto"><a href="https://en.m.wikipedia.org/wiki/Inverse_kinematics#:~:text=In%20computer%20animation%20and%20robotics,the%20start%20of%20the%20chain">https://en.m.wikipedia.org/wiki/Inverse_kinematics#:~:text=In%20computer%20animation%20and%20robotics,the%20start%20of%20the%20chain</a>.<br></div><div dir="auto"><div dir="auto"><br></div><div dir="auto">The kicker is that I don’t know if the input systems have cycles or DAGs yet.  So far, my systems can handle cycles and DAGs, but it’s very nascent.</div><div dir="auto"><br></div><div dir="auto"><div><div dir="auto" style="font-size:19px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)">My issue with BVH/X3D is that I’m working with streaming data, and i hope that the system doesn’t need to poke a hole in the firewall or antivirus, which is why I might choose Java* over python.  Also, I don’t know if my computer is powerful enough to do IK in real time.  I’m not dealing with skin, thank goodness!</div><br class="Apple-interchange-newline"></div>John </div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 14, 2023 at 9:53 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</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 dir="auto">Understood,  I’ll need a way to turn bones into a hierarchy.  I need something to convert bones and joint x,y,z into a hierarchy. I think my mocap format allows for that? I’m guessing I need to add a relative flag.  I was already thinking of adding relative coordinates.</div><div dir="auto"><br></div><div dir="auto">Fun stuff!   Time to work on creating a template from centers again.</div><div dir="auto"><br></div><div dir="auto">John</div><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 14, 2023 at 1:04 AM 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">John. If you don't have a hierarchy then you have to move everything yourself. The hierarchy allows a tree of joints to be moved by simply rotating the parent. Children can then conrroll their children independently of the parent. Without a hierarchy there is anarchy. </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>
</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: Aug 13, 2023 6:23 AM<br>To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>><br>Cc: GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>, X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] Seed for a project</p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<div dir="auto">I am thinking SAI could be a good way to do this.</div></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)">
<div><br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Sun, Aug 13, 2023 at 8:14 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</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)">
<div dir="auto">Good question about BVH!  I am proposing a new mocap format that doesn’t need a hierarchy, and can do streaming, graph or grid data.</div>
<div dir="auto"> </div>
<div dir="auto">S:structure of data, G for grid, H for tree, D for D for DAG, C for cycles</div>
<div dir="auto">V: name or id of structure </div>
<div dir="auto">F: from joint name and/or id</div>
<div dir="auto">T:to joint name and/or id</div>
<div dir="auto">O: out name</div>
<div dir="auto">B:out data (beginning)</div>
<div dir="auto">I: in name</div>
<div dir="auto">E:in data  (ending)</div>
<div dir="auto">.</div>
<div dir="auto">.</div>
<div dir="auto">.</div>
<div dir="auto">etc. </div>
<div dir="auto"> </div>
<div dir="auto">The animation is done like:</div>
<div dir="auto">J:Joint id or name</div>
<div dir="auto">C:Joint class or type (may change)</div>
<div dir="auto">A:Joint alias or DEF (optional)</div>
<div dir="auto">X:X location, unit (unit may be defaulted, no unit for scaling)</div>
<div dir="auto">Y:Y location, unit (ditto)</div>
<div dir="auto">Z:Z location, unit (ditto)</div>
<div dir="auto">T:frame or time, unit (ditto)</div>
<div dir="auto">.</div>
<div dir="auto">.</div>
<div dir="auto">.</div>
<div dir="auto">etc.</div>
<div dir="auto"> </div>
<div dir="auto">-V: remove structure </div>
<div dir="auto"> -J: remove joint </div>
<div dir="auto">-F: from joint name and/or id</div>
<div dir="auto">-T: to joint name and/or id</div>
<div dir="auto"> </div>
<div dir="auto">To remove joint, bones or routes.</div>
<div dir="auto"> </div>
<div dir="auto">Later, I will provide 4 data points per joint over time, for impact simulator I/O grid</div>
<div dir="auto"> </div>
<div dir="auto">J: Joint, as above</div>
<div dir="auto">U:up data</div>
<div dir="auto">D:down data</div>
<div dir="auto">R:right data</div>
<div dir="auto">L:left data</div>
<div dir="auto"> </div>
<div dir="auto">Plus ways to remove data by adding a - in front or behind the label and a leading or a trailing + to add data</div>
<div dir="auto"> </div>
<div dir="auto">This needs to be generalized. Think how to do hypergraphs. More verbose would be an option,  IDK, i don’t want to reinvent a document format.</div>
<div dir="auto"> </div>
<div dir="auto">Obviously inspired by Katy’s format!</div>
<div dir="auto"> </div>
<div dir="auto">Contributions welcome.</div>
<div dir="auto"> </div>
<div dir="auto">John </div>
<div dir="auto"> </div>
<div dir="auto"> </div>
<div><br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Sun, Aug 13, 2023 at 6:24 AM Joe D Williams <<a href="mailto:joedwil@earthlink.net" rel="noopener" target="_blank">joedwil@earthlink.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)">
<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">Why concern about BVH?</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" rel="noopener" target="_blank">yottzumm@gmail.com</a>><br>Sent: Aug 12, 2023 7:48 PM<br>To: GPU Group <<a href="mailto:gpugroup@gmail.com" rel="noopener" target="_blank">gpugroup@gmail.com</a>><br>Cc: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" rel="noopener" target="_blank">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] Seed for a project</p>
<p style="margin:0.1rem 0px;line-height:1"> </p>
<div dir="auto">I guess the best way to do the translations and rotations in BVH is from the root to the extremities?  Get segments close to root, then work down the tree.</div>
<div dir="auto"> </div>
<div dir="auto">What about multiple parents in the DAG?  How is this resolved?  As separate children?</div>
<div dir="auto"> </div>
<div dir="auto">I’m pretty sure BVH is a tree?  Anyone know?</div>
<div dir="auto"> </div>
<div dir="auto">John</div>
<div><br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Sat, Aug 12, 2023 at 12:00 PM GPU Group <<a href="mailto:gpugroup@gmail.com" rel="noopener" target="_blank">gpugroup@gmail.com</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)">
<div dir="ltr">
<div dir="ltr">> 1) provide a way to convert X3D nodes and ROUTEs to BVH with animation.  This will require converting routes/segments over time to translations and rotations. Help is requested.</div>
<div>One fuzzy idea: use the nodes and routes to animate, and capture the animation at a choke point in the web3d browser. A good choke point is where the browser applies BVH animations to the HAnim. In freewrl there are a few spots where it calls update_jointMatrixFromMotion() and in theory there could be another call there update_MotionFromJointMatrix() which goes the other way, converting a joint matrix into a bvh motion for recording to a file, with frame timestamp.</div>
<div> </div>
</div>
<br>
<div class="gmail_quote"> </div>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Sat, Aug 12, 2023 at 10:14 AM John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noopener" target="_blank">yottzumm@gmail.com</a>> wrote:</div>
</div>
<div class="gmail_quote"> </div>
<div class="gmail_quote">
<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 dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Here's the seed for a Java (possibly X3D-Edit) project. A graph/grid editor.</div>
<div dir="ltr"> </div>
<div dir="ltr"><a href="https://github.com/coderextreme/impact.dir/tree/master/impactVL" rel="noopener" target="_blank">https://github.com/coderextreme/impact.dir/tree/master/impactVL</a></div>
<div dir="ltr"> </div>
<div>I was thinking of adding:</div>
<div> </div>
<div> JSON/XML/VRML/BVH/MediaPipeHolistic/JavaSerialized/OpenUSD  I/O, beyond native.</div>
<div> </div>
<div>There seems to be a slight issue with input right now, at least with the sort* input files in Impact.java</div>
<div> </div>
<div>Make a copy of a file externally before modifying in the tool, there's no way to save to another file currently in Impact.java.</div>
<div> </div>
<div>The goals are:</div>
<div> </div>
<div>1) provide a way to convert X3D nodes and ROUTEs to BVH with animation.  This will require converting routes/segments over time to translations and rotations. Help is requested.</div>
<div> </div>
<div>2) provide a way to visualize ROUTEs with Java (anyone else have something?)</div>
<div> </div>
<div>3)  provide different naming convention for different I/O</div>
<div> </div>
<div>4) take input from MediaPipe Holistic (Python) and convert to BVH.</div>
<div> </div>
<div>5) provide a way to debug X3D events in Java.</div>
<div> </div>
<div>There are already 2 different visualizations. I hope to add more.  One (Cell4x4) is based on Jed Donnelly's graphics (see images folder) scanned from his Impact project (hence the name). I would like to use this with permission, but I haven't heard from him.  The Java is mine, based on his original idea (not his or other's code).</div>
<div><br>Note that I haven't tested the Cell.java program much recently.  Impact.java is what Jed called the "Flow" or "Floweth" language, but his idea was to create a textual language.  But a challenge is making the 2 visualizations to work together.  The textual language will be implemented in X3D/BVH. I don't have a reason to create a new language, nor do I want to.</div>
<div><br>Note that I already have the idea for "Inlines" or expanding nodes into another window.  I'm not sure how well it's implemented.  I'm not sure about I/O of nested nodes right now.</div>
<div> </div>
<div>This seems like a lot of fun, and maybe even useful, as opposed to X3D JSON.</div>
<div> </div>
<div>Ant and Makefiles provided.  Not gradle. Too many garbage files to worry about iwith gradle--I'm not sure why they have all of them. If someone wants to provide maven or gradle, that would be cool. Ant is okay in Git for Windows.  If I have to fall back to Makefiles, I can use Cygwin.</div>
<div> </div>
<div>Any problems, file an issue with <a href="https://github.com/coderextreme/impact.dir/issues" rel="noopener" target="_blank">https://github.com/coderextreme/impact.dir/issues</a>.  There's one waiting for you to close, Jed.</div>
<div> </div>
<div>John</div>
<div> </div>
<div> </div>
</div>
</div>
</div>
</blockquote>
</div>
<div class="gmail_quote">
<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)">_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" rel="noopener" target="_blank">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noopener noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></blockquote>
</div>
</blockquote>
</div>
</div>
</div>
<p style="margin:0.1rem 0px;line-height:1"> </p>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>

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