i’m not sure if this topic was ever covered before, but i’m having problems getting proper rotation in a 3D scene without getting gimbal lock. i’m using GLUT3.7 and the function for mouse movement is glutPassiveMotionFunc(void (*func)(int x, int y)); — i’m trying to have it to were the camera will correctly yaw, pitch or roll on any of the three x,y,z axis, no matter which way the camera is pointed – and using glRotate. i’m using the GLUT function so the mouse can be moved freely and will update the rotation with the mouse movement. the problem i can’t figure out is with an 'x 'input and a ‘y’ input, how would this “2D” mouse input translate into a 3D world with proper rotation without gimbal lock? is there a different GLUT mouse function that would work for mouse input? (not spaceball input, which i noticed GLUT has support for)and last, if Quaternions would come into play, and how they would be implemented in this scenerio? ----- i’m sorry if i thoroughly confused anyone, i’m new at OpenGL and GLUT – and let me know what other info you need. note: developing OpenGL app using GLUT3.7 in VisualC++ 6.0 in Win2000.