It seems that you were very close, you had to change the parameters in the call to GLKQuaternionMultiply . I used the solution fooobar.com/questions/1261569 / ... to achieve rotation only with the Z axis:
let orientation = modelNode.orientation var glQuaternion = GLKQuaternionMake(orientation.x, orientation.y, orientation.z, orientation.w)
To rotate arround Y :
// Rotate around Y axis let multiplier = GLKQuaternionMakeWithAngleAndAxis(0.5, 0, 1, 0) glQuaternion = GLKQuaternionMultiply(glQuaternion, multiplier)
source share