Default camera constraints

Does anyone know why the default camera behavior is not to orient around Z? Currently, a novice user can easily tilt the globe and not realize how to reorient it. For our Santa tracker, we turned this behavior off. We’ve also received feedback from others that they didn’t want to tilt the globe by default.

How did we come up with the current default? Are we sure we want to keep it? It frustrates novice users, which is the exact opposite of what we are trying to achieve.



We’ve never really tried to reach a consensus on the subject. I’ve made it the default a few times in the past but it always seems to get switched back with each refactor :wink: I agree with you 100% though, so assuming no one else objects lets change it and agree to keep it that way.

Google Earth does not have the Z axis constrained, which is probably why the current default is what it is.

Matching Google Earth is definitely the primary reasoning I’ve heard in the past, and normally I agree that it’s a good application to mimic. In this case though, I think the constrained Z is a better default.

I agree with Matt about GE. Let’s give folks a bit more time to chime in.


I think I agree with Matt on a UX issue. Shocking. For another reference point, STK10 has z-constrained turned on by default, with a setting to turn it off.

That said, we should do a quick usability test first: Add a button to the Camera Sandcastle demo to toggle z-constrained on and off, and each of us chiming in on this thread should play with that demo to see if it’s what we expect with non-Santa stuff like the CZML samples.

Also, if a power user does want to release the z-axis, do we add a hotkey for that? Or how does it happen? (I’m not saying we shouldn’t change the default, I’m just trying to think through the experience for a wide range of users).


A hot key wouldn’t work because the moment the mouse moves without it, it would re-constrain. Ultimately, I think it’s up to each application to determine whether they want to allow the user to change it or not, we’re just trying to make the default what people commonly want.

I think CesiumViewer itself would add a button at some point to switch modes, but for now, I’m fine with just sticking with constrained Z. Keep in mind that Z is constrained when you’re tracking an object already, this only affects “free roam” mode.

I was thinking a hotkey to toggle it on and off, not “while you hold it” hotkey. But yes, hotkeys in general make the learning curve harsher (and the canvas is finicky about input focus to say the least), so I’m OK without it as long as we try it out (maybe on a branch) and really test it with all of our non-Santa content.


If you tilt the camera so that the view vector, position and z axis are not coplanar, rotating around the globe may not do what you would expect. I like the approach we take in the Santa tracker: default to having a constrained z axis and remove it when the user tilts the camera.

That’s a good point. I’m fine with this as long as we can detect when we should go back to a constrained Z axis when the camera becomes ‘untilted’

Yep this is a good solution. The ‘home view’ button can reset the camera and re-enable constrained Z.

I submitted

Dan - all you.