Cámara giratoria alrededor del eje X (three.js)

Estoy tratando de girar la cámara alrededor del eje X de la escena.
En este punto mi código es así:

rotation += 0.05;
camera.position.y = Math.sin(rotation) * 500;
camera.position.z = Math.cos(rotation) * 500;

Esto hace que la cámara se mueva, pero durante la rotación ocurre algo extraño y, o la cámara se voltea, o se salta una parte del círculo imaginario que sigue.

Respuestas a la pregunta(3)

Su respuesta a la pregunta