Euler Angles: Intrinsic and Extrinsic Rotations
Euler Angle descriptions are frequently labeled intrinsic or extrinsic.
Those words answer a specific geometric question:
Which axes are used for the second and third rotations?
In an intrinsic sequence, each new rotation is taken about an axis of the current intermediate
frame. The axes move with the frame.
In an extrinsic sequence, each rotation is taken about an axis fixed in the original reference
frame.
This distinction is independent of the active versus passive distinction. PhysicsLibrary uses passive
coordinate maps as its house convention, but both intrinsic and extrinsic axis constructions can be
described passively.
The objective of this article is to make those statements geometric, derive their matrix
consequences, and establish the reverse-order equivalence between the two descriptions.
1 Convention recap
Let frames A and B be right handed and orthonormal.
PhysicsLibrary writes the passive coordinate map as
The elementary passive frame rotations are
and
The corresponding active rotation matrices are
The Ri notation will be useful when describing how frame basis vectors move in the fixed reference
frame.
2 Why the pictures must show intermediate frames
A single diagram containing only the initial and final frames cannot reveal whether a three angle
construction was intrinsic or extrinsic.
The difference appears at the second rotation.
After the first rotation, an intrinsic construction uses an axis belonging to the newly rotated
frame.
An extrinsic construction continues to use an axis belonging to the original frame.
For this reason the figures in this article show intermediate frames explicitly rather than
attempting to compress the entire sequence into one dense axis drawing.
This is also the organization used by modern multibody dynamics software and reference frame
treatments: body fixed rotations are constructed through new intermediate axes, while space fixed
rotations continue to use the parent frame axes.
3 Intrinsic rotations: the axes move with the frame
Consider an intrinsic 3-2-1 construction.
Let
The first frame rotation is through α about axis 3 of frame A. Call the new frame A1.
The second rotation is through β, but now the rotation axis is axis 2 of frame A1, not axis 2 of the
original frame.
Figure. Intrinsic construction through the first two rotations of a 3-2-1 sequence. After the
first rotation, the second rotation is about the moved axis y1. The original yA axis is
retained as a reference so the difference is visible.
The full intrinsic frame chain is
For a generic intrinsic i-j-k sequence, the first rotation is about axis i of A0, the second about axis
j of A1, and the third about axis k of A2.
The corresponding passive coordinate transformations are
and
Substitution gives the PhysicsLibrary intrinsic sequence rule
The rightmost matrix acts first on a coordinate column.
4 Extrinsic rotations: the axes stay fixed
Now consider an extrinsic construction.
The first frame rotation is again about an axis of the original reference frame. After that
rotation, however, the second and third rotation axes remain axes of the original frame
A.
For an extrinsic 3-2-1 example, the second rotation is about the original axis 2A, even though the
body frame has already moved.
Figure. Extrinsic construction through the first two rotations of a 3-2-1 sequence. The
second rotation is about the fixed original axis yA. The intermediate frame has moved, but
the axis used to define the second rotation has not.
It is helpful to derive the extrinsic passive DCM through the orientation of the moving frame basis
expressed in the fixed frame.
Let
denote the active matrix that rotates frame basis vectors through the positive geometric angle λ
about fixed axis i.
For an extrinsic i-j-k frame sequence,
where the columns of AE
B are the final frame B basis vectors expressed in frame A.
The passive coordinate map is the transpose:
Therefore
This is the generic PhysicsLibrary passive formula for an extrinsic i-j-k sequence.
5 Intrinsic and extrinsic sequences with the same axis labels are different
A common mistake is to see the label 3-2-1 and assume that intrinsic 3-2-1 and extrinsic 3-2-1 are
the same construction.
They are not.
For the same angle list (α,β,γ),
whereas
Finite rotations generally do not commute, so these products are generally different.
Numerical comparison
Take
The intrinsic 3-2-1 passive matrix is approximately
The extrinsic 3-2-1 passive matrix is approximately
The entries differ, so the two interpretations produce different final orientations.
6 The reverse-order equivalence
Intrinsic and extrinsic descriptions do have an exact equivalence, but the axis order and angle
order reverse together.
For intrinsic i-j-k with angles (α,β,γ),
Now consider extrinsic k-j-i with angles (γ,β,α).
The extrinsic rule gives
Thus
Figure. Reverse-order equivalence. Intrinsic 3-2-1 with (α,β,γ) and extrinsic 1-2-3 with
(γ,β,α) produce the same passive DCM and the same final orientation.
For the important 3-2-1 case,
The safest memory rule is:
Reverse the axis order and reverse the associated angle order.
7 Aerospace yaw pitch roll
PhysicsLibrary specializes intrinsic 3-2-1 to
where ψ is yaw, 𝜃 is pitch, and ϕ is roll.
Therefore
The equivalent extrinsic description is 1-2-3 with chronological angles
In words:
- intrinsic: yaw about the current 3 axis, then pitch about the new 2 axis, then roll about
the newest 1 axis;
- equivalent extrinsic: roll about fixed axis 1A, then pitch about fixed axis 2A, then yaw
about fixed axis 3A.
Both descriptions give the same final orientation when the association is handled exactly as
stated.
8 Body fixed and space fixed terminology
Many mechanics and software references use the phrases body fixed and space fixed.
In the terminology used here:
|
|
|
| Term | Axis behavior | PhysicsLibrary word |
|
|
|
| Body fixed | each new axis belongs to an intermediate moving frame | intrinsic |
|
|
|
| Space fixed | each axis remains attached to the original reference frame | extrinsic |
|
|
|
SymPy’s reference frame tools use this distinction directly: orient_body_fixed performs rotations
about successive intermediate frame axes, while orient_space_fixed performs rotations about
the parent frame axes.
The terminology is helpful, but an engineering article should still state the axis sequence and
transformation direction explicitly.
9 Intrinsic versus extrinsic is independent of active versus passive
There are two independent questions:
- Which axes define the sequence?
- What object is being transformed?
Intrinsic versus extrinsic answers the first question.
Active versus passive answers the second.
An active rotation changes a physical vector while the coordinate frame is held fixed.
A passive rotation changes the coordinate representation by changing the frame while the physical
vector is held fixed.
Therefore all four combinations are possible:
|
|
|
| | Intrinsic axes | Extrinsic axes |
|
|
|
| Passive | moving frame axes, coordinate map | fixed reference axes, coordinate map |
|
|
|
| Active | moving axes, vector rotation | fixed axes, vector rotation |
|
|
|
PhysicsLibrary’s house convention is passive and intrinsic unless explicitly stated otherwise.
10 Why different references appear to reverse the order
Several independent reversals can occur in the literature:
- intrinsic versus extrinsic descriptions;
- active versus passive transformations;
- A → B versus B → A map direction;
- chronological rotation order versus written matrix multiplication order;
- first-second-third angle notation versus physical yaw-pitch-roll names.
A formula should not be judged by matrix order alone.
The frame labels and the definitions of the three angles must be read first.
11 Software convention diagnostics
Modern software libraries make the intrinsic/extrinsic distinction explicit, but their notation is not
universal.
SciPy uses uppercase axis strings such as ZYX for intrinsic rotations and lowercase strings such as
zyx for extrinsic rotations.
SymPy uses orient_body_fixed for intrinsic moving axis rotations and orient_space_fixed for
extrinsic fixed axis rotations.
These APIs are useful convention checks, but their returned rotation objects must still be
reconciled with the PhysicsLibrary passive map direction before numerical matrices are copied into
an article or simulation.
12 A frame-label derivation of the intrinsic rule
The intrinsic rule can be understood without memorizing matrix order.
For the first rotation,
For the second,
For the third,
Coordinate maps compose by matching adjacent frame labels:
Therefore
This frame-chain argument is usually safer than relying on a verbal rule such as “multiply in
reverse order.”
13 Checks for an intrinsic/extrinsic conversion
When converting a sequence description, verify all of the following.
- The final DCM is unchanged.
- The axis order has reversed.
- The angle association has reversed with the axes.
- Passive versus active interpretation has not silently changed.
- The coordinate map direction has not silently changed.
- Single-angle reductions still agree.
14 Common mistakes
- Calling a sequence “3-2-1” without stating intrinsic or extrinsic.
- Assuming intrinsic and extrinsic 3-2-1 are identical.
- Reversing the axis order but forgetting to reverse the angle association.
- Confusing a moving axis with an axis that merely has the same numerical label.
- Treating “body fixed” as a statement about active versus passive rotation rather than
about the axes used for successive rotations.
- Copying a SciPy or robotics matrix without checking its active/passive and
map-direction conventions.
- Forgetting that the rightmost matrix acts first on a coordinate column.
15 Summary
Intrinsic and extrinsic Euler rotations differ in the axes used for successive rotations.
For intrinsic i-j-k,
For extrinsic i-j-k,
Therefore
The distinction is geometric:
- intrinsic rotations use axes of successive moving frames;
- extrinsic rotations use axes fixed in the original frame.
It is independent of the active/passive distinction.
The next article, Euler sequence composition and the twelve standard sequences, uses these
rules to organize all six Tait Bryan and all six proper Euler sequences in one consistent
framework.
16 References and further reading
Henderson provides a classic NASA engineering treatment of Euler transformations and their
matrix relationships.
Moore’s multibody dynamics text illustrates successive body fixed frame orientations through
explicit intermediate reference frames.
SymPy’s reference frame documentation formalizes the body fixed versus space fixed distinction in
software.
SciPy’s Euler angle API explicitly distinguishes intrinsic and extrinsic axis sequences.
Diebel provides a broad attitude representation reference useful when comparing Euler conventions
with DCM and quaternion conventions.
References
[1] D. M. Henderson, Euler Angles, Quaternions, and Transformation Matrices: Working
Relationships, JSC-12960, NASA Johnson Space Center, 1977. NASA Technical Reports
Server
[2] J. K. Moore, Learn Multibody Dynamics, chapter “Orientation of Reference Frames,”
2026 edition. Licensed CC BY 4.0. Orientation of Reference Frames
[3] SymPy Development Team, “ReferenceFrame orientation methods,” SymPy
documentation. SymPy ReferenceFrame documentation
[4] SciPy Developers, “Rotation.from_euler,” SciPy documentation. SciPy Euler rotation
documentation
[5] J. Diebel, “Representing Attitude: Euler Angles, Unit Quaternions, and Rotation
Vectors,” Stanford University, 2006. Online PDF
License
Unless otherwise noted, this PhysicsLibrary entry is intended for release under the Creative
Commons Attribution ShareAlike 4.0 International license.