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