<div dir="auto">My left forearm showed up in another video log, so I conclude that I should send my artificial forearms without any conditional test, and after I send everything else. I’m not too hopeful until I change that, and also do IK and calibrate the torso (hips and shoulders).</div><div dir="auto"><br></div><div dir="auto">Meanwhile, we should also consider encoding motion in FSW and/or SWU (SignWriting standards). There’s a website that converts FSW and SWU to SVG and PNG, and TrueType as well, I think. Mainly we should focus on this for the MetaVerse in terms of accessibility, if not transmitting signs directly as body motion.</div><div dir="auto"><br></div><div dir="auto">The nice thing about FSW and SWU is they aren’t tied to one language.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Apr 14, 2025 at 6:12 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">I discovered my artificial forearm segments weren’t being rotated in X_ITE, or logged, so that’s a good reason why Jin mocap’s hands and forearms aren’t moving while I was swinging my arms around! I looked at the video client code, and the method call is there, so I’ll start logging the video client output to see what’s going on. Or I can just try to figure out why there’s no rotation after the client data is sent to X_ITE via the server. Perhaps I need to send more data about the segments I’ve been ignoring (side “segments” and club hand poses).</div><div dir="auto"><br></div><div dir="auto">There’s definitely a disconnect between hand data (left and right) and pose or core data, but I thought I had patched it by connecting the elbow to the radiocarpal in the hand data (the bone data doesn’t contain coordinates).</div><div dir="auto"><br></div><div dir="auto">I had to take a break after being beat down esteem-wise to the point where my wife was affected (it was about 40 minutes of horror). But I’ve known this for 11 years, I’m still cluing in. </div><div dir="auto"><div dir="auto"><a href="https://allpoetry.com/poems/read_by/yottzumm" target="_blank">https://allpoetry.com/poems/read_by/yottzumm</a></div><div dir="auto"><br></div><div dir="auto">It certainly appears to be easier when the video client is controlling everything without rotations. Maybe I’ll get the rotations into the client!</div></div><div dir="auto"><div dir="auto"><br></div><div dir="auto">On Mon, Apr 14, 2025 at 2:05 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><div class="gmail_quote" dir="auto"><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">Here's a better file with l_ and r_ where appropriate. The animations are getting even better. Still a bit jittery,but at least something's ,moving!</div><div dir="ltr"><div><br></div><div>John</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 14, 2025 at 1:37 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">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="ltr">Attached is a list of parent/child or source/target relationships, perhaps some with joints, perhaps some with feature points, or perhaps something entirely different. Some of these come from HAnim, and some come from OpenCV/MediaPipeHolistic. I am seeing that I don't distinguish left from right in the hands and wrist, so that's a major problem!<div><br></div><div>I am hoping someone can provide replacements with something from HAnim, for example, I don't know of replacements for ears ???, mouth (tongue?, jaw?), and maybe a few others. I'm guessing someone could send me the HAnim V2.1 feature points, and everything would be cool.</div><div><br></div><div>I'm looking for something to replace l and r foot_index with, perhaps I'll grab something from LOA1.</div><div><br></div><div>I fully realize I am missing a lot of backbone joints. This is because the tool does not detect the backbone at all, but rather the shoulders and the hips. So pardon if I threw in some approximations with vc7 and the sacroiliac. Also, the head is not attached to the body. This doesn't matter because it is in the X3D file. I am merely finding rotations of target nodes around a source node, potentially, skipping a lot of nodes.</div><div><br></div><div>I am progressing with some of the live mocap stuff, achieving a bit of wiggling now. Apparently, I was not using <a href="http://node.id" target="_blank">node.id</a> (my thing), and instead I was using node.DEF.</div><div><br></div><div>So I'm pretty sure I have access to feature points or sites with Joe's Jin skeleton, so I'm all for calling out some of those for targets for the joint to rotate. I am not aware that I'm using any Segment DEFs.</div><div><br></div><div>Comments on my joint rotation finding code welcome!</div><div><br></div><div>const updateJointRotation = function(sourceNode, sourceJoint, targetNode, targetJoint) {<br> if (!sourceJoint.center) { // Joint center should be set in X3D file<br> LOG("Center isn't set", JSON.stringify(sourceNode));<br> } else {<br> let newRay = {<br> x: targetNode.x - sourceJoint.center.x,<br> y: targetNode.y - sourceJoint.center.y,<br> z: targetNode.z - sourceJoint.center.z<br> };<br> newRay = normalize(newRay);<br> if (typeof sourceNode.oldRay === 'undefined') {<br> sourceNode.oldRay = newRay;<br> }<br> let angle = angleBetweenVectors(sourceNode.oldRay, newRay);<br> let axis = crossProduct(sourceNode.oldRay, newRay);<br> axis.x = axis[0];<br> axis.y = axis[1];<br> axis.z = axis[2];<br> axis = normalize(axis);<br> if (!isNaN(angle)) {<br> sourceJoint.rotation = new SFRotation( axis.x, axis.y, axis.z, angle);<br> if (sourceJoint.rotation !== {}) {<br> if (angle !== 0) {<br> LOG(sourceNode.DEF, targetNode.DEF, angle);<br> }<br> }<br> }<br> sourceNode.oldRay = newRay;<br> }<br>}</div><div><br></div><div>Hmm!</div><div><br></div><div>John</div></div>
</blockquote></div>
</blockquote></div></div>
</blockquote></div></div>