Rotation Converter — quaternion, Euler, matrix, axis-angle online

Free online rotation converter: quaternion (xyzw or wxyz), Euler angles (all 12 axis sequences, intrinsic or extrinsic), 3x3 rotation matrix, and axis-angle — with a live 3D gizmo so you can see the orientation, not just trust the numbers.


c1..c4 follow the component order selected above (not normalized automatically for you to inspect — the converter normalizes internally).


Row-major 3×3 rotation matrix:

Why this exists (the conversion is not the hard part — the convention is)

AmbiguityWhere it bitesThis tool
Quaternion component orderROS/glTF use xyzw; Eigen and many textbooks use wxyz — silently swapping them gives a different, valid-looking rotationExplicit order selector, labeled with the library that uses it
Intrinsic vs extrinsic Euler"Rotate by roll, pitch, yaw" is ambiguous without saying rotating-frame or fixed-frameExplicit toggle, all 12 axis sequences (6 Tait-Bryan + 6 proper Euler), not just XYZ
Trusting the numbersA transposed or malformed matrix looks like a normal 9-number gridLive 3D gizmo — if the orientation doesn't look right, the numbers are wrong

Verified: the Euler conversion is a port of the same public-domain algorithm behind ROS's tf.transformations module (Christoph Gohlke's transformations.py), independently round-trip tested here across all 12 sequences × intrinsic/extrinsic (4,800 random trials, matrix reconstruction exact) plus 1,000 random quaternion round-trips and an independent cross-check of the extrinsic-XYZ ≡ intrinsic-ZYX(reversed) identity.

Feeding a joint axis or link orientation into URDF? Cross-check it in the URDF validator or see it live in the 3D viewer. Building a kinematic chain from a DH table instead? Use the DH → URDF converter.