Navigation controls- customization

Is it possible to customize the navigation controls?

Specifically I’d like to customize the viewport controls (rotate, pan, zoom) in Rhino to work the same as they do in Maya:
rotate = alt (option) + LMB
pan = alt (option) + MMB
zoom = alt (option) + RMB

Ideally, Rhino would allow the user to fully customize the viewport controls so that when a user is moving between multiple 3D applications, the user does not have to constantly switch keyboard and mouse controls which are engrained in muscle memory. This would also make it easier for longtime users of other 3D software to make an easier transition to Rhino.

Many newer 3D applications (examples: Modo, Marvelous Designer, Balancer, etc.) allow for full customization of viewport controls to allow for easy transition from other apps. The makers of these apps realize that many users have been using their tool (or tools) of choice for years, and that changing the controls for the basic functionality of viewport camera manipulation would make it tougher to adopt and integrate the new tool into their process.

The attached screenshot shows how Balancer allows the user to select any combination of keyboard modifier + mouse button for the viewport controls. It also includes presets for 9 other 3D applications. This makes using Balancer so easy integrate in my workflow and move back and forth between 3D applications.

I’d second that. I don’t particularly care WHAT set of pan/orbit/zoom/select commands I need to use as long as I can get them consistent between apps. Dunno how many times in Blender I’ve had to reset the 3D cursor because I’ve inadvertently left clicked on something. Same thing goes with keyboard shortcuts. Would be ideal if I could standardize those as much as possible between apps as well.

one other thing I would mention on a related bit, (and I do realize assigning kb commands is broken in the current WIP) but it WOULD be extremely helpful if the UI presented some indication when assigning a KB command if it’s already in use. On an app with as many tools as this one has, it’s impossible to map everything to KB commands as you’d run out of key combos very quickly. If there was some way of seeing what was already assigned to the proposed keystroke for a given command you could rationally work out combinations and use the same keystrokes for more than one thing because if you selected them to apply to types of operations that would never overlap because of the context of what you are doing, it’d help a lot.

Canvas (if anybody even remembers that app, definitely dating myself here) had a very slick UI presentation for customization that would not only list other commands that used a proposed keystroke but also sorted them by the category of operation they fell under in the list. Something like that would be spiffy.

I’ve also noticed the customize commands dialog takes quite a bit of time to initialize every time you bring it up. When you have some time, some kind of optimization on that would be nice.

i don’t know… probably (*see edit below)
but i doubt it’s something simple or it’s probably a can-o-worms situation.

for instance, rhino has 3 zooms…

(one way to visualize the differences: in the perspective viewport, run the Camera command then select the option ‘Show’… the camera will appear in the other viewports)

• use the scroll wheel to zoom… target stays in place and camera moves towards it
• use the scroll wheel + option key… target & camera move as one
• ⇧option⌘ + right mouse button… target & camera stay in place… Lens field of view changes… same as a zoom lens in photography.

point being, you can’t just assign ‘Zoom’ to option+RMB and call it a day… (well, that already does the same type of zoom as opt+scroll)… there is more to consider and changing one thing is going to need consideration of other things… (ie-can of worms)


*Edit
no, it’s not possible… not for the user… these things are hard coded and are coming from the windows rhino… if this were to change, i’m pretty sure it would be core rhino which would need to change then mac rhino would just follow suit… i meant it’s probably possible for the program to integrate customization of these controls… it’s not currently possible for the user to customize them.

It was a loaded question…
I already knew that it was not possible…
What I am hoping to do is show the need for customization of the viewport controls.
10-15 years ago it may have been common to use only one 3D application.
So this was less of an issue. After a few days, the keyboard-mouse combinations become muscle memory and are automatic.
These days it is much more common for designers, engineers, 3D modelers to use multiple 3D applications.
Currently I use 9 (yes, nine) 3D applications.
(of course, some more than others)
And to make things trickier I use a Mac.
And to make things even trickier I use a Wacom Cintiq.
(no mouse, no scroll wheel)

If each of those applications had their own set of hard coded keyboard-mouse button configurations to control the viewport camera, you could imagine the nightmare it would be switching back and forth between applications.

Another viewport callout is that the controls for panning and zooming should be consistent between the perspective and orthographic windows. The only thing that should change is that the perspective window gains the ability to rotate the camera.
Orthographic windows should not be able to be rotated. (At least there should be a setting that allows/disallows rotation of an orthographic window) For me, I want my top view to always remain a top view. If I want to rotate the camera, I’ll switch to the perspective view.

Perspective window and orthographic window camera viewport control is common to all 3D applications. The 3 basic camera functions in the perspective window are rotate, pan, zoom.
I should be able to use the same keyboard modifier-mouse button combination to execute those 3 basic camera functions across all 3D applications. This would be a huge usability win for Rhino for Mac, and it would make adoption much easier for users coming from others 3D applications, and especially users of multiple 3D applications.

FWIW, this is something we are aware of and are considering. See MR-1347. It’s not something that will make its way into Rhino soon, but much of the discussion has circled around how to do this correctly, in a cross-platform way. It’s good to hear people ask for this…it helps us prioritize our development efforts.

I completely, utterly and insistingly support this request!!
Please add ALT + LMB (orbit) / MMB (pan) / RMB (zoom) navigation to Rhino!
Maya, 3ds Max, Cinema 4D, Blender and others already support this, or can be customized that way.

Rhino already has a great variety of possible navigation schemes, but the one that would make the most sense is still missing.

People these days (including me) have to, or want to, work with multiple 3d applications, and jump frequently between them. It’s so annoying having to re-route your muscle memory over and over again, because of that.
(btw. I’m into 3D since early nineties, and I am still not capable of simply flicking the mind switch for VP-navigation without making mistakes. I assume I never will be.)

Thanks so much! Please don’t wait too long with this request.
Best regards
Eugen

1 Like

One thing i’d like to see is an option to reverse the zoom direction with the scroll wheel (and possibly also with command-right-click-drag). This is something i find very frustrating using multiple 3D apps. Of the four i use regularly (Rhino, MeshCAM, VCarve Pro and Mach3), they’re split exactly evenly for how they use the scroll wheel to zoom.

My preference is to scroll down (pulling my finger towards me) to zoom in, and scroll up (pushing my finger away from me) to zoom out. VCarve Pro and Mach3 operate this way. Rhino and MeshCAM do not. I would LOVE to be able to get these all in sync.

Not on Mac here but on Win > Rhino Options > View > Zoom > Scale Factor allows you to change this. Numbers larger than 1 would make it like you prefer.

1 Like

Hey, thank you!

I did some poking around, and sure enough, under Preferences --> View, there’s a Zoom option. I changed it from 0.90 to 1.10 and now it operates in an “inverted” manner!

I think maybe a better option from a UI point of view would be to have the input be from zero to 1, with an “invert zoom direction” checkbox. Finding and changing this was completely counterintuitive. I was looking under the “Mouse” options, which is logically where i would expect to find it.

Yea, it actually took me a while to find it as well - but I knew it was there somewhere…
(it’s in the help file though… :sunglasses:)

Mac users tend to not read help files or manuals. :wink:

It simply is in the same location in Mac Rhino as it is under Windows (and has been from the beginning). Under the View section, there are a lot of settings having to do with rotating, panning, zooming, so for me this is a reasonably logical place to keep it. I do agree that a scale factor from 0 to 1 and a “invert direction” checkbox would be more understandable than the current zoom factor setting.

Note that you can zoom without using the mouse… Type Zoom In (or Out). This will Zoom in or out one increment according to the scale factor in Options/Preferences. If you invert the scale factor (larger than 1.0), when you type Zoom In, it will zoom out… :smile:

–Mitch

Well, like many Rhino Mac users, im coming in with zero experience with Rhino on Windows, so “that’s where it’s always been” isn’t much help if it’s in a place that isn’t intuitive. :wink:

There are only two ways I zoom: the mouse wheel and Ctrl+right-click-drag. Typing a command to zoom seems like way too many keystrokes for something that can be done in one gesture. The fact that using a greater-than-1 zoom factor also makes the “zoom in” command zoom out is a good sign that this control and interface needs to be re-thought. Unexpected results from user input are the very antithesis of user-centred design.

This is why I was looking under the Mouse section of the preferences for an “invert scroll wheel zoom” option. It should be a simple option that applies to that input method only.

I’m not sure what the correct “fix” is yet, but I agree this a problem. I’ve added this to our list of bugs (MR-1998).

I’m not sure this is really a big problem, but I agree it’s not intuitive, no matter how much sense it makes to a mathematician. However it’s unintuitive in Windows Rhino too, so should be fixed in both.

1 Like

Agree.
Feel free to add additional comments here:
RH-30386

A comment on the original request:
Remapping of Camera manipulation has far greater consequences than maybe immediately obvious. The popular Maya scheme for instance, which heavily relies on the ALT key would conflict heavily with Rhino’s concept of action inversion, duplicate dropping, certain selection methods, interactive change of Camera Focal Lenghth, I’m sure I still forgot something. To hook up such a change properly one had to allow users to relocate all default ALT functionality to another modifier key, which isn’t easy, as any of these already already have a lot other functions too – one might want to relocate these as well. Unfortunately the great majority of programs I know which allow for alternative navigation schemes offer no solution for this problems, resulting in a loss of functionality – a tiny single purpose tool such as Balancer may be the exception.
The only 3D program I know which allows for remapping every keyboard and input device event causes considerable customization effort, this by far is not for everyone.

Well, I think the original request was fairly straightforward. Reverse the action for one input method only.

It should be possible to isolate and modify scroll wheel input without affecting any of the other controls or input methods that affect zoom in/out.

And for what it’s worth – and maybe this is helpful in understanding how my brain works – when I’m zooming/panning/rotating in 3D space, I don’t think of it as moving a camera around in space. I think of it as grabbing and moving the space itself.

Maybe this has its roots in having used Adobe Illustrator for 20+ years. In Illustrator, when you move around the pasteboard, you actually get a “hand” cursor pop up and you drag the pasteboard around. The user viewport is static. This is likely why I view my position in 3D space as static, and I manipulate the space, and not my view.

decibelguitars, I referred to the request of the first post in this thread: It had nothing to do with inverting the scroll direction and its questionable GUI implementation, this discussion came up later.

Ah, okay… my apologies.

I think customization of the mouse controls is definitely be something the Rhino team should consider. We already have a “Mouse” panel in the Preferences, where a little more customization could be added. I’m a little puzzled as to why the “Screen Edges” macro options are in the Mouse panel, though.