[x3d-public] Thought on X3D -> MuJoCo
Joe D Williams
joedwil at earthlink.net
Wed Dec 10 12:32:26 PST 2025
https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#RigidBodyCollection
Looking at X3D Rigid Body Physics, it seems easy to see
that the Humanoid is a RigidBody, Joints are RigidBody(s),
Segments can carry data and Sites can be RidgidBody(s)
so the formulation, to me, must be to integrate any physics
into the Humanoid structure
That is the way current X3D RBP was designed and can be
protyped even if we can't find them now. Beat the bushes for
previous x3d implementations.
So, "map MuJoCo to X3D" means evaluating X3D Rigid Body
nodes and fields directly against MuJoCo interfaces.
Both to see how we can make any improvements to what
web3D is presenting with RBP and how to integrate with
Humanoid, Joint, Segment, and Site objects.
-----Original Message-----
From: Don Brutzman <don.brutzman at gmail.com>
Sent: Dec 10, 2025 11:50 AM
To: John Carlson <yottzumm at gmail.com>
Cc: X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>, Carol McDonald <cemd2 at comcast.net>, Bergstrom, Aaron <aaron.bergstrom at und.edu>, Andreas Plesch <andreasplesch at gmail.com>, Michalis Kamburelis <michalis.kambi at gmail.com>, Holger Seelig <holger.seelig at yahoo.de>, Joe D Williams <joedwil at earthlink.net>
Subject: Re: Thought on X3D -> MuJoCo
Thanks for thinking about these things. As you requested, here are comments on your proposed approach.
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.
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.
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.
all the best, Don
--
X3D Graphics, Maritime Robotics, Distributed Simulation
Relative Motion Consulting https://RelativeMotion.info
On Wed, Dec 10, 2025 at 5:23 AM John Carlson <yottzumm at gmail.com (mailto:yottzumm at gmail.com)> wrote:
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.
Does this approach sound feasible, without consideration for computationally expensive actions?
So the main thing would be to subclass or complement existing X3D nodes. I expect that existing X3D field types can be used.
I don't quite know what will happen to x3d.py, but I might require assistance on the X3DPSAIL generating stylesheet.
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.
Then, the task of integrating MuJoCo and X3D begins, by unifying MuJoCo-COM with X3DUOM.
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.
Another approach might be to plaster a x3d.py compatible layer on the MuJoCo python API, (or Java, I guess)..
Hmm!
John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20251210/de1abb97/attachment.html>
More information about the x3d-public
mailing list