We create 3D design systems for engineers (think AutoCAD, SolidWorks, 3D Studio Max, Blender, etc.) and often have a set of complex interactions that can be completed in the graphical area of the software, where the UI is really the objects the user is interacting with.

In some cases, there are times when the user has many options available to them while interacting with these objects, such as clicking, shift+clicking, ctrl+clicking, etc.

We've resorted to a message prompt that tells them what is possible. The problem with this is that we've found

  • A) users don't read the prompts
  • B) it takes up an awful lot of real estate from the graphics window.

Are there any other design patterns that we could use to indicate advanced interaction is available without the use of a standard form UI with buttons and labels?

  • Great question - looking forward to some good answers! See also What is the best way to get users to discover and learn keyboard shortcuts Feb 12, 2014 at 13:11
  • After writing my answer, I wonder if by prompt you mean the status bar option I wrote. I was thinking about your prompt more on the lines of a popup.
    – PatomaS
    Feb 13, 2014 at 3:15
  • It is sounding like the command line is a key feature of your application. Does the command line take into account the object(s) that are currently selected? If so being able to simply hit Tab and get a list of valid commands would be valuable. That list could include keyboard combos as well. Those keyboard combos could be executed like a command but can also serve as a training tool. Considering your program's DOS heritage, embracing and enhancing the command line could prove powerful. Feb 13, 2014 at 15:49

2 Answers 2


1 Inside the application: After they have done it the long way, tell them how to do it the convenient way.

Let's say that Shift+Click changes the object into Rotate mode (or maybe Shift+mouse drag already rotates). A user who does not know that selects the model with simple click, then goes to the menus and selects Transform -> Rotate, which sets the object into Rotate mode, then he drags around to rotate. After he is done with rotation and switches back to normal mode, you overlay a tip saying "Next time, you can simply Shift+Click to activate Rotate modus", with the option to close the tip for this time, to never show this tip again, or to never show any tip again. Basically, it will work like the old "tip of the day", but the lesson will be given in a situation where the user is already paying attention to that functionality.

2 Before usage: Make an interactive tutorial.

Have you noticed that with game companies don't have any trouble to sell products with highly unusual interfaces and hidden controls, even to people who have no previous skill in the task they will have to solve with the software? The reason is that modern games start with a learning campaign. Instead of being given the usual freedom the first few levels, the players are typically told what to do, and what controls to use for it. And the smartphones and tablets everybody points at and says "this is really simple"? Well, mine came with a few screens which told me where to tap and pinch the first time; they disappeared when I had learned it.

You can devise something similar for your program. What are the basics of interaction with your program? Make a task out of them, and offer users to lead them by the hand through it, step-by-step. If you manage to make it a pleasant and informative experience, users will use it. But you will have to get it right:

  • make it as short as possible. Better to demonstrate a tiny proportion of what your software can do, but be able to tell the user "do you want to go through the tutorial, it is only 3 minutes", than to have a long and intricate demonstration which nobody will bother going through.

  • resist the temptation to showcase your latest and greatest features in it. You will have to find another way to promote them. In this tutorial, you want to only show features which are very frequently used, and which are especially hard to discover (like said Shift+clicks). You don't have to show how to make a text effect appear embossed into a part (too rare) or how to place a new cube in the work area (I assume there is a button with a cube icon for that, so easily discoverable).

  • make it a coherent story. Don't just say "Use this button to lay a new cube. Now use Shift+click to rotate it. Now delete the cube and use the next button to...". Instead, lead the user through a simple task which ends with the sense of having acomplished something. For example, let him make a model of coffee mug and show the simple use of extruding, punching, etc. instruments along the way; also lead him through rotation, applying textures and text. (This is a very rough idea; depending on the exact functionality of your program and the time it takes to make such a model, you might want to choose an entirely different object which is closer to common usage, or simpler).

  • offer the user to go through the tutorial on first start, but also let them know that it is available for later, e.g. through the menu.

  • tailor it for the correct skill set. UX experts these days are frequently pressed to make applications which are self-explanatory even to people who have no idea of the task at hand. If I am making a web site to book flights, it should be usable by people who never have been taught how to book flights. But you are making a specialist application. Assume that your user is an engineer, and knows how to do CAD. Don't teach them how to model, teach them what is the special about using your tool for modeling.

If you do that, you have something which both engages and teaches the user, making his introduction to your software smoother. And incidentally, you can also use it for other purposes - having a video of it being completed or a version of it started in some kind of kiosk mode on trade show booths can be good marketing material.

  • The second suggestion could be used to introduce the importance of the status bar (for context aware info and entering commands) without spending a lot of time on a long video. Like swipe right and swipe left on some apps, people don't always just "know" to try that. Being told that it's a possibility can be a huge aid. Feb 13, 2014 at 15:33
  • 1
    @JeremyCook Sure, a status bar can be introduced there. But note that I didn't suggest a video; I suggested the user completing a task while being led by the hand through overlays and such. It is a much more immersive, attention-holding and gratifying experience.
    – Rumi P.
    Feb 13, 2014 at 15:48
  • My bad @rumi-p I guess the kiosk comment made me think video. Interactive overlays is a great suggestion and probably easier to evolve than video. Feb 13, 2014 at 15:53
  • @JeremyCook I also mentioned that a recording of its usage can be re-used as promotional video, maybe that's where the misunderstanding came from. I am aware that sometimes such important points can be lost in my rather verbose posts, that's why I pointed it out again, in bold, in the hope that if other readers see it this way, they will also notice what I actually meant.
    – Rumi P.
    Feb 13, 2014 at 15:55
  • I think your second option is the ideal scenario, and one I've thought of myself (having played a lot of video games this resonates with me). We have two main challenges with this, the technology and the content. We're a small UX team that also handles the front-end development (we have dedicated software engineers in UX for that, it's awesome) and I think we can pull it off, but the content is going to require a long-term commitment from subject matter experts. Overall, this reassures my long-term thoughts, but I like to get as many options as possible.
    – MCRXB
    Feb 13, 2014 at 16:36

You can use the status bar, or a similar area at the bottom, like in Inkscape and other programs alike. Although I'd recommend that you change the background or colour of the text to make it more visible.

You can combine that with a clickable text, that way, the user can see something like "click, right click, shift click to interact with the object" and if the user clicks over any of the three options, a small but clear popup opens at the bottom with the relevant explanation.

Once the user does one of the options, like click on the object, or shift + click on a drag control, etc, the text on the status bar should change to the explanation of what is going to happen.

  • 1
    It's a good thought, but we've noticed our users don't look to the status bar for information. Admittedly, we don't really use the status bar for status information, either. We use it for access to common commands. Our design patterns are very outdated as this is a 30 year old piece of DOS software that has been "ported," in the loosest sense of the term, to Windows. And to clarify, we are currently using a popup when the user enters a function that explains what they can do, and that popup changes as they interact with the function.
    – MCRXB
    Feb 13, 2014 at 12:26
  • Well, if you know that users don't read the prompts and you know that users don't pay attention to the status bar, what do you know the users pay attention to?. About the option of the status bar, the change of colour and/or background will help to attract attention to it, even when they normally don't look at it.
    – PatomaS
    Feb 13, 2014 at 12:49
  • Mimicking common industry practices like using the status bar whenever possible is great. I like that when my mouse is over a specific element, the info in the status bar will change depending upon whether I'm holding down Ctrl, Alt, Shift some combo or no keyboard keys at all. Feb 13, 2014 at 15:37

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.