Gimble Lock - Explained

videodumper · 190K views · 2007 · 6:04

Open on YouTube

Computer graphics & renderingAnimation & visual effectsexplainer

Why Stack Overflow recommends it

Stack Overflow users link it as a quick visual demonstration of gimbal lock when answering questions about 3D rotations, Euler angles, quaternions and animation interpolation.

Recommended by 0 people across 0 different months, 2012 to 2015.

What it is

A roughly six-minute 2007 clip that gives a quick visual explanation of gimbal lock in 3D animation, where rotating objects with Euler angles can lose a degree of freedom. It is a short, informal demonstration from the channel videodumper.

Cited in 1 Wikipedia article, including Gimbal lock.

What people said

Cites Ashika Umanga Umagiliya · 2012-01 · Stack Overflow · on “OpenGL ArcBall rotation and animation using interpolation?”

In my OpenGL application I need to use ArcBall rotation to rotate objects using mouse. I relized that I have to go with Quaternions after reading this article - [LINK] And I found an easy to use implementation at here - [LINK] But my problem is I also need to animate my object between saved two status. That is - State(1)= (Postition X1,Position Y1,Position Z1, Rotation 1); State(2)= (Postition X2,Position Y2,Position Z2, Rotation 2); *These 'Rotations' are rotation matrices And the animation is done in n steps. Something like shown in this video - [this video] If I was using 3 seperate angles for three axises(roll, pitch, yaw) I could easily interpolate the angles. But ,since ArcBall uses rotatio

Cites user2623869 · 2013-07 · Stack Overflow · on “Problems with frame interpolation in Poser 9”

Here is an answer from another forum that I found after much more searching. Usually in 3D animation if this happens you have what is referred to as gimble lock. You can fix this by adding keyframes in between and tweaking them slightly. If that doesn't work, try rotating one of the axis 360, as 0 and 360, 720 etc degree rotation on an axis are all the same position. Here is a youtube vid that demonstrates gimble lock [this video] ~ John [LINK]

Cites SMalpica · 2015-08 · Stack Overflow · on “How to avoid a sphere from turning upside down when user rotates it, in OpenGL ES 2.0/ Rajawali?”

Well, I managed to work things out. I'm posting the answer here, and hope someday can be useful to someone. Instead of using quaternions to limit the rotation, I'm now using Euler angles [LINK] (Tait-Bryan ones). These have a problem called the Gimbal lock [this video] but are easier to understand. To avoid the Gimbal lock and prevent major changes in the old system, I first calculate the Euler angles of each rotation and then create a Quaternion from them. Conversion from quaternion to euler angles is not univoque, so be careful with that. Also, remember that you need to store the accumulated rotations so that the new rotation is always absolute, always around the initial reference system. From