<div dir="auto">That’s a great idea, Joe. I map HAnimJoints to UniversalJoints. But no one seems interested in why I’m getting no results. Nothing is currently online. But look back for an attachment of RigidJin.x3d that passes validation. Again, there’s no deep hierarchies in RBP, unless one might use RigidBodyCollection.</div><div dir="auto"><br></div><div dir="auto">Please read the standard and make specific recommendations as to needed fields.</div><div dir="auto"> </div><div dir="auto">I am interested in flexcomp elements which might be easier to do with X3D extensions.</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 Wed, Dec 10, 2025 at 2:33 PM Joe D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin:0.1rem 0;line-height:1.0" dir="auto"><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#RigidBodyCollection" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#RigidBodyCollection</a></p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0" dir="auto"> </p>
<p style="margin:0.1rem 0;line-height:1.0">Looking at X3D Rigid Body Physics, it seems easy to see</p>
<p style="margin:0.1rem 0;line-height:1.0">that the Humanoid is a RigidBody, Joints are RigidBody(s), </p>
<p style="margin:0.1rem 0;line-height:1.0">Segments can carry data and Sites can be RidgidBody(s) </p>
<p style="margin:0.1rem 0;line-height:1.0">so the formulation, to me, must be to integrate any physics </p>
<p style="margin:0.1rem 0;line-height:1.0">into the Humanoid structure </p>
<p style="margin:0.1rem 0;line-height:1.0">That is the way current X3D RBP was designed and can be</p>
<p style="margin:0.1rem 0;line-height:1.0">protyped even if we can't find them now. Beat the bushes for </p>
<p style="margin:0.1rem 0;line-height:1.0">previous x3d implementations. </p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0">So, "<span style="font-size:12pt">map MuJoCo to X3D" means evaluating X3D Rigid Body </span></p>
<p style="margin:0.1rem 0;line-height:1.0"><span style="font-size:12pt">nodes and fields directly against MuJoCo interfaces. </span></p>
<p style="margin:0.1rem 0;line-height:1.0"><span style="font-size:12pt">Both to see how we can make any improvements to what </span></p>
<p style="margin:0.1rem 0;line-height:1.0"><span style="font-size:12pt">web3D is presenting with RBP and how to integrate with </span></p>
<p style="margin:0.1rem 0;line-height:1.0"><span style="font-size:12pt">Humanoid, Joint, Segment, and Site objects. </span></p>
<p style="margin:0.1rem 0;line-height:1.0"><span style="font-size:12pt"> </span></p>
<p style="margin:0.1rem 0;line-height:1.0"><span style="font-size:12pt"> </span></p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
</div>
<div style="border-left:1px solid #aaa;box-sizing:border-box;padding:10px 0 10px 15px;margin:0">
<p>-----Original Message-----<br>From: Don Brutzman <<a href="mailto:don.brutzman@gmail.com" target="_blank">don.brutzman@gmail.com</a>><br>Sent: Dec 10, 2025 11:50 AM<br>To: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>Cc: X3D Ecosystem public discussion <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>>, Carol McDonald <<a href="mailto:cemd2@comcast.net" target="_blank">cemd2@comcast.net</a>>, Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank">aaron.bergstrom@und.edu</a>>, Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>>, Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>>, Holger Seelig <<a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a>>, Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>><br>Subject: Re: Thought on X3D -> MuJoCo</p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<div dir="ltr">
<div>Thanks for thinking about these things. As you requested, here are comments on your proposed approach.</div>
<div> </div>
<div>Please think about how to map MuJoCo to X3D. We have a standard for many reasons, aligning with it provides much value. Defining correspondences for export, import and conversion is powerful. Writing prototypes is another powerful approach.</div>
<div> </div>
<div>Redesigning X3D is not a goal. Redefining X3DUOM (which matches the X3D Architecture specification) is not a goal. X3DPSAIL x3d.py Python and X3DJSAIL Java will continue to map to X3D exactly, autogenerated by X3DUOM, and so redefining them is not a goal. Issue reports that identify implementation gaps when producing valid X3D eventually get fixed.</div>
<div> </div>
<div>May I suggest focusing on an example model independently in MUJOCO and X3D that does the kind of things you want. X3D has a great many capabilities, so exercising them is always interesting. Using a language to express what you are thinking is an effective way to use that language.</div>
<div>
<div class="gmail_signature" dir="ltr" data-smartmail="gmail_signature">
<div dir="ltr">
<div style="color:#222222"><span style="font-family:monospace"> </span></div>
<div style="color:#222222"><span style="font-family:monospace">all the best, Don</span></div>
<div style="color:#222222"><span style="font-family:monospace">-- </span></div>
<div style="color:#222222"><span style="font-family:monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</span></div>
<div style="color:#222222"><span style="font-family:monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" rel="noopener" target="_blank">https://RelativeMotion.info</a></span></div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Wed, Dec 10, 2025 at 5:23 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:1px solid #cccccc;padding-left:1ex">
<div dir="ltr">My current thought is to export X3D as MuJoCo using X3DPSAIL, with any added MuJoCo "niceities" added to the X3DPSAIL API, and provide another X3D encoding export method called MuJoCo() for lack of a better name. Perhaps I will subclass existing X3D stuff and add the MuJoCo methods. So I'm looking at extending X3DUOM to include MuJoCo's unique features. This will provide a smooth migration for X3DPSAIL and X3DUOM to an eventual soft body physics standard (currently avoiding HAnim), if anything doesn't already exist.
<div> </div>
<div>Does this approach sound feasible, without consideration for computationally expensive actions?</div>
<div> </div>
<div>So the main thing would be to subclass or complement existing X3D nodes. I expect that existing X3D field types can be used.</div>
<div> </div>
<div>I don't quite know what will happen to x3d.py, but I might require assistance on the X3DPSAIL generating stylesheet.</div>
<div> </div>
<div>My first plan is to use the X3DUOM.xsd to create a fully MuJoCo-compatible object model using the schema. Then, I will attempt to combine the MuJoCo-COM with X3DUOM. Then I will attempt to create X3DMUJOCOSAIL.</div>
<div> </div>
<div>Then, the task of integrating MuJoCo and X3D begins, by unifying MuJoCo-COM with X3DUOM.</div>
<div> </div>
<div>Thus we will be following a similar method that we took when we added glTF's PBR Next to X3DUOM. Once the neo-X3DUOM is created, and neo-X3DPSAIL is done, we will move to JavaScript, Pascal, Java, C++ and other languages.</div>
<div> </div>
<div>Another approach might be to plaster a x3d.py compatible layer on the MuJoCo python API, (or Java, I guess)..</div>
<div> </div>
<div>Hmm!</div>
<div> </div>
<div>John</div>
</div>
</blockquote>
</div>
</div>
<p style="margin:0.1rem 0;line-height:1.0"> </p></blockquote></div></div>