Euler Angles
2025/12/27
- Type
- Learning Resource
- Format
- Glossary Article
- Version
- General
- Subject Tags
- Created
- Updated
- 2026/02/16
- 2025/12/27
Euler angles represent 3D rotations as three separate angles of rotation around the X, Y, and Z axes. Named after mathematician Leonhard Euler, this system describes any 3D orientation by applying three rotations, one at a time, around specified axes, commonly known as pitch (X-axis), yaw (Y-axis), and roll (Z-axis) in game development.
While Euler angles are intuitive for humans to understand and use in the 3D software, they suffer from a couple of limitations making them less than ideal for computations:
Although game engine developers can work around the first limitation by implementing constraints to the three angles, the second limitation is a fundamental issue with the representation itself.
In Godot, gimbal lock can happen on any Node3D that uses rotation and rotation_degrees properties. The rotate(), rotate_x(), rotate_y(), and rotate_z() methods also can have this problem.
Gimbal lock is a built-in problem in Euler angles, but it can be avoided by using quaternions for rotations instead.
Here is a demonstration using Blender to rotate around the X, Y, and Z axes that lead to gimbal lock. With the "Gimbal" option enabled, you can see how two of the rotation axes can align, losing one degree of freedom.
For complex rotations in games, quaternions are often preferred over Euler angles as they avoid gimbal lock entirely, though they're less intuitive to work with directly.
Don't stop here. Step-by-step tutorials are fun but they only take you so far.
Try one of our proven study programs to become an independent Gamedev truly capable of realizing the games you’ve always wanted to make.
Get help from peers and pros on GDQuest's Discord server!
20,000 membersJoin ServerThere are multiple ways you can join our effort to create free and open source gamedev resources that are accessible to everyone!
Sponsor this library by learning gamedev with us onGDSchool
Learn MoreImprove and build on assets or suggest edits onGithub
Contributeshare this page and talk about GDQUest onRedditYoutubeTwitter…