# Remove the x-axis rotation limitation of the OrbitControls object

**URL:** <https://discourse.threejs.org/t/remove-the-x-axis-rotation-limitation-of-the-orbitcontrols-object/17214>\
**Category:** Questions\
**Tags:** orbit-controls\
**Created:** [July 18, 2020, 6:02pm UTC](https://discourse.threejs.org/t/remove-the-x-axis-rotation-limitation-of-the-orbitcontrols-object/17214 "2020-07-18T18:02:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![tduval](https://avatars.discourse-cdn.com/v4/letter/t/ebca7d/32.png) [@tduval](https://discourse.threejs.org/u/tduval)\
**Post date:** [July 18, 2020, 6:02pm UTC](https://discourse.threejs.org/t/remove-the-x-axis-rotation-limitation-of-the-orbitcontrols-object/17214/1 "2020-07-18T18:02:40Z")

</div>

When I use the OrbitControls object by default there is a limitation of not being able to rotate fully around the object on the x-axis. Maybe this is to not allow the world to be flipped upside down but that is what I would like to be able to do

Thanks

---

<div class="post-metadata">

**Author:** ![mjurczyk](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mjurczyk/32/10995_2.png) [@mjurczyk](https://discourse.threejs.org/u/mjurczyk)\
**Post date:** [July 18, 2020, 6:12pm UTC](https://discourse.threejs.org/t/remove-the-x-axis-rotation-limitation-of-the-orbitcontrols-object/17214/2 "2020-07-18T18:12:15Z")

</div>

OrbitControls can’t go beyond polar values (0 and 2π) You can try going with [TrackballControls](https://threejs.org/examples/?q=controls#misc_controls_trackball) instead.

---

<div class="post-metadata">

**Author:** ![Mugen87](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mugen87/32/5645_2.png) [@Mugen87](https://discourse.threejs.org/u/Mugen87)\
**Post date:** [July 19, 2020, 10:10am UTC](https://discourse.threejs.org/t/remove-the-x-axis-rotation-limitation-of-the-orbitcontrols-object/17214/3 "2020-07-19T10:10:14Z")

</div>

For the record, this is a limitation of `OrbitControls` because it keeps the camera’s up vector static and uses `Object3D.lookAt()` to look at the focus point. `TrackballControls` is implemented differently. It also uses `Object3D.lookAt()` but modulates the `up` vector of the respective camera.

---

<div class="post-metadata">

**Author:** ![Mugen87](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mugen87/32/5645_2.png) [@Mugen87](https://discourse.threejs.org/u/Mugen87)\
**Post date:** [July 19, 2020, 10:13am UTC](https://discourse.threejs.org/t/remove-the-x-axis-rotation-limitation-of-the-orbitcontrols-object/17214/4 "2020-07-19T10:13:11Z")

</div>

@mrdoob Do you remember, it was once discussed to derive `TrackballControls` from `OrbitControls`? This user is not the first one how wants to move the camera over the poles like it’s possible in Blender or Unity’s scene editor. Hence, I think it’s good to have `TrackballControls` as an alternative camera control class with different implementation/behavior.
