I don't believe ArcRotateCamera correctly uses the upVector. Instead of getting into my use case, I've setup some playground demonstrations. Playground 1: This is the default. upVector is Y+. Behavior: Move the mouse left, spins clockwise around the Y axis. Move the mouse right, spins counter clockwise. Move the mouse up, pushes the Y+ axis away from the screen, move the mouse down, pulls the Y+ axis towards the screen. http://www.babylonjs-playground.com/#2K6AJC#2 This default works as ex