Use the live converter for interactive calculations. This reference is available as ordinary HTML, including the guides and expected example outputs.
FIELD GUIDE / GETTING STARTED
How to use this tool
An orientation is only useful when its conventions travel with it. Start here, then use the guides to check the details.
01
Choose a representation and a convention
Start in Manual Input. Choose Rotation Matrix, Quaternion, Euler, or Axis-Angle. Passive (C) changes vector coordinates; Active (R) uses the paired transpose convention. For consistent comparisons across interactive and bulk input, begin with Passive. The conventions guide documents the current Active-mode differences.
02
Enter one orientation or compose steps
Interactive mode provides labeled fields. Bulk Import accepts numeric text for one orientation: 9 matrix entries, 4 quaternion components, 3 Euler angles, or 4 axis-angle values. Choose the input units and Euler order before pasting. Sequence mode multiplies the displayed steps right-to-left, with Step 1 acting first on a column vector.
03
Convert, then inspect the diagnostics
Select Convert or Parse and Convert. Check the determinant and orthogonality residual before trusting a matrix. Output units and decimal places are independent controls. Euler output follows the selected sequence, so 321 means Z, Y, X. Near gimbal lock, prefer the matrix or quaternion over rounded Euler coordinates.
04
Explore and export without changing the data
Drag the visualization to change the camera, use its animation slider to inspect intermediate states, and choose a frame or model. Copy numerical output in MATLAB, Python, or Eigen formatting. Use Radians for Eigen::AngleAxisd. PNG, SVG, GIF, and browser-supported video exports are available from the 3D visualizer. CSV and ROS Bag tabs feed attitude playback; optional sign-in preserves conversion history.
Verified against the converter’s passive matrices and its visible output formatter. Expected values below use MATLAB format, six decimal places, degrees, and output sequence 321 (ZYX).
01
Single-axis rotation
A quarter-turn about Z
With Passive (C), degrees, and ZYX selected, enter Z = 90, Y = 0, X = 0. The product reduces to C_Z(90°). Multiplying C by [1, 0, 0]ᵀ gives [0, −1, 0]ᵀ: the same vector has new coordinates. Transposing C gives the paired active matrix. The equivalent negative quaternion is [0, 0, −0.707107, −0.707107].
Determinant = 1; orthogonality residual = 0 apart from floating-point roundoff. The ideal zeros in this matrix may appear as very small numbers internally.
Use Passive (C), degrees, and ZYX with Z = 10, Y = 20, X = 30. The actual product is C_X(30°) C_Y(20°) C_Z(10°). To reproduce it in Sequence mode, create Step 1: Z = 10; Step 2: Y = 20; Step 3: X = 30, with every other angle zero. Step 1 acts first. Reversing those steps generally produces a different result.
The output Euler vector is [Z, Y, X], not [X, Y, Z]. Rebuilding the passive matrix from these values returns the same matrix to floating-point precision; the output axis-angle expresses the same combined orientation as one rotation.
Use Passive (C), degrees, and ZYX with Z = 0, Y = 89.95, X = 0. The middle angle is close enough to the singularity to trigger the solver’s |sin(β)| ≥ 1 − 10⁻⁶ branch. It sets the displayed middle Euler angle to 90°. The matrix, quaternion, and quaternion-derived axis-angle still encode 89.95°. This is intentional documentation of the existing tolerance, not a change to the solver.
A near-singularity warning appears. Reconstructing from [0, 90, 0] differs from the original matrix by about 0.000873 in the largest entry. Use the original matrix or quaternion when that difference matters. At exact lock the first and third angles are not uniquely recoverable.