Right now I'm working on improving a section of an app that we are redesigning on my workplace.

Basically it's an app that runs on a tablet and the specific part of the app, that I present here, is an option to rotate up/down and sideways a 3D representation of a physical object.

Initially the interface is like this:

enter image description here

The problems here are:

  1. I believe there is a lot of buttons "just to" rotate an object
  2. although there are buttons to rotate in both ways (e.g: left and right arrows), that doesn't mean that you will rotate with positive or negative values, it's only a shortcut to increase/decrease the rotation degrees. It's a way to simply add or retrieve 1° per tap (precision is an important factor here) but, again, makes the UI have a lot of buttons.

Any suggestion?

  • 3d rotation means you have 3 axis, You are pointing only 2 here
    – ananeto
    Jan 31, 2017 at 22:46

2 Answers 2


You could use a slider for each axis with a button on each side to increment the angle just one degree (as the user needs precision). Also if the user wants an specific angle he can enter it in the number input (which should auto-update with the slider, and the other way round).

enter image description here

  • I thought of a slider but the problem of it might be that it's difficult to add 1 degree (forgot to mention that precision is important here). What do you think? Jan 31, 2017 at 13:28
  • @JoaoCarvalho Please, check the edited answer, the buttons on the sides are +1 -1 degree. Also the input gives the chance to enter the angle with the keyboard.
    – Alvaro
    Jan 31, 2017 at 13:39

The most comfortable 3D design packages I used allows to use a concept that is very intuitive and friendly both to mouse and touchscreen.

You select the rotation icon, then point on any place of the screen and drag. The system behaves as you are pushing a transparent sphere that contains your drawing. It is easy for people to understand what is going on. Specially if you draw a wireframe or arrows representing the transparent sphere that is being touched by the user.

Analog concepts can be done for translation and zoom.

Blender, for instance, has an 3D cursor that controls the center of rotation. The anoying part is how to tell the package when you want to set the cursor position, select an object or do some operation. But if I understood your case this is not really necessary.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.