From cb391962ca6503bbb46d75b449e3b781bf1b6fa8 Mon Sep 17 00:00:00 2001 From: Taylor Howell Date: Mon, 24 Nov 2025 02:02:38 -0800 Subject: [PATCH] MuJoCo Warp documentation: Orientation representation. PiperOrigin-RevId: 836127570 Change-Id: I0f381e57cfb53e1cb623f9c4178d258dfc1f75b6 --- doc/mjwarp/index.rst | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/doc/mjwarp/index.rst b/doc/mjwarp/index.rst index 94f08aec..e6d1bf6a 100644 --- a/doc/mjwarp/index.rst +++ b/doc/mjwarp/index.rst @@ -341,3 +341,25 @@ It is possible to override the field shape and set the field values after graph :class: note Heterogeneous worlds, for example: per-world meshes or number of degrees of freedom, are not currently available. + +.. _mjwFAQ: + +Frequently Asked Questions +========================== + +Orientation representation +-------------------------- + +**How are orientations represented?** + +Orientations are represented as unit quaternions and follow :ref:`MuJoCo's convention `: +``w, x, y, z`` or ``scalar, vector``. + +.. admonition:: ``wp.quaternion`` + :class: note + + MJWarp utilizes Warp's `built-in type `__ + ``wp.quaternion``. Importantly however, MJWarp does not utilize Warp's ``x, y, z, w`` quaternion convention or + operations and instead implements quaternion routines that follow MuJoCo's conventions. Please see + `math.py `__ for the + implementations.