Interesting but lacking some information. First up, of course, most people are familiar with rotating the <i>camera</i> rather than a single object. This is how most 3d viewers work, even if the orbit point is locked to the center of an object (e.g. in a 3d product display). So it's important to specific which we're talking about in an introductory article on 3d rotation methods.<p>But, ok. We're talking about schemes to rotate a single object rather than the camera.<p>The turntable controls they talk about are a special case of gimbal controls where we lock rotation to one or two axes. But in my personal experience, when it's two or three axes people still call it gimbal controls whereas turntable controls is rotation in a single axis (as if on a turntable, hence the name). But then again, 3d terminology is so mixed up across different fields that maybe some people have only heard the two axes version called a turntable. Not a big deal, but why no mention at all of gimbal controls?<p>Then, trackballs. In my experience, when it's limited to a single hemisphere of rotation, these are called arcball controls. Trackballs are supposed to emulate a trackball mouse which don't have this limitation.<p>And finally, no mention at all of the dreaded gimbal lock (where two of axes end up overlaid on each other and the controls loses a degree of freedom), which is a major reason for choosing one type over another.<p>Overall, not an amazing article. I checked it again to see if I missed anything and realized it's a blog post for some app - so, basically an ad - which probably explains the lack of effort.
> There's another, more subtle critique of this system: it lacks path independence. This means that if you start and end a drag with your mouse at a particular location, the rotation will depend on the path that your mouse took.<p>Actually, when I accidentally tumble models with that kind of UI, I just drag it in a circle until it's right side up.
I never understood why most CAD software prefers the tumbler style rotation, it's so completely horrid to use.<p>I guess lots of people (somehow) got used to it without knowing there's an alternative?
FYI, from 2017.<p>Also, Matt Keeter has some serious skills.<p>I always thought his Antimony CAD program[1] was neat, and sad that it seems to have died. I've yet to figure out how to get it to run on newer versions of linux (The last time I tried was about 3 years ago, and I was just using a raspberry pi.)<p>[1] <a href="https://www.mattkeeter.com/projects/antimony/3/" rel="nofollow">https://www.mattkeeter.com/projects/antimony/3/</a>
> it's impossible to see the model from arbitrary angles<p>I don't understand this part. I could easily see all 6 faces with turntable. Does it really matters to be able to make arbitrary rotations?
The trackball implementation appears to have a numerical bug in it. Occasionally (on mac safari at least) the rendering will be blank white. If you happen to let go of the mouse during that frame, then it gets permanently stuck and requires a page refresh. Seems like it might be a divide by zero due to a small cursor delta or something along those lines.
I wonder if better rotation modes would be possible with multitouch inputs, I.e. using two "touch points" instead of one. Then you could span a plane between the two points and the origin and use this to better derive the user's intention which axes should be rotated.
Turntable does pitch on x and yaw on y.<p>I wonder if you could achieve something like the last "spherical" solution if you did on y a combination of yaw and roll dependant on how far is your cursor from the x-center of the rotation.
For freely rotated objects, trackball rotation is only ever appropriate for touch screens, mice should use tumbler instead so that you don't have to pay attention to the absolute position of the cursor.
I once implemented tumbler, but always used the starting position and current position to determine the rotation. This make it behave the same way when the mouse follows a straight path, but also makes it path independent.