I have rotation in our new application working well. Moving the puck causes rotation in the corresponding axis. Now, I want to provide an option so that rotation mimics our Catia. That is, rotation of the puck causes rotation of the models about the axis that are aligned with the screen. ie. rotation of the puck about its Z axis will cause the model to rotate about a vector coming out perpendicular to the screen. Right now, this rotation causes the model to rotate about its Z axis. Which is just as it supposed to. I have tried multiplying the accumulated rotation matrix by a matrix aligned with the screen but with no success. I'm probably going down the wrong path with this. Any help would be appreciated.