   Camera, Quaternions and angular velocity
  Hi, I'm using a quaternion to represent my camera orientation.How would I implement angular velocity?I guess I would use a vector(x,y,z), heres what I'm doing so far without angular velocity:Quaternion quatOrientation(1,0,0,0);//Vector vecLook(1,0,0, quatOrientation); //calculate vector around quaternionVector vecRight(0,0,-1, quatOrientation);Vector vecUp(0,1,0, quatOrientation);float fRoll = deltaTime*(keyRollLeft-keyRollRight); //calculate movementfloat fPitch = deltaTime*(keyPitchDown-keyPitchUp);float fYaw = deltaTime*(keyYawLeft-keyYawRight);Quaternion quatRoll(vecLook, fRoll); //convert vector(xyz) and w to quaternionQuaternion quatPitch(vecRight, fPitch);Quaternion quatYaw(vecUp, fYaw);quatOrientation *= quatRoll*quatPitch*quatYaw;What I would I add/change?Thanks   
  Well, angular velocity is a rotation per timestep, so I guess this involves 'adding in' a quaternion at the end of the orientation code. I don't know how you'd want a simple YPR control system to interact with the pre-existing angular momentum of the camera, though.   ;  You can use a quaternion to represent angular velocity as long as the rotation speed is in the range (-π,+π). That means that you can't represent 4 radians/second or ½ rpm without switching to a different unit of time.   