Euler Angles

2025/12/27

Type
Learning Resource
Format
Glossary Article
Version
General
Subject Tags
Code
Assets
All else
Copyright 2016-2026, GDQuest
Created
2026/02/16
Updated
2025/12/27

Euler Angles

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.

Become an Indie Gamedev with GDQuest!

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.

Nathan

Founder and teacher at GDQuest
  • Starter Kit
  • Learn Gamedev from Zero
Check out GDSchool

You're welcome in our little community

Get help from peers and pros on GDQuest's Discord server!

20,000 membersJoin Server

Contribute to GDQuest's Free Library

There are multiple ways you can join our effort to create free and open source gamedev resources that are accessible to everyone!