UI is the point of interaction between user and machine. A computer is a machine. A screw is a machine. An operating system is just one example of a GUI. A screwdriver is just one example of a HMI. Sometimes there is overlap and the operating system can be screwed up too.
–
Roger AttrillNov 9 '12 at 12:17

5 Answers
5

I don't see "HMI" used much at all anymore. Human Computer Interaction (HCI) is still around, but it's a field of study, not a type of interface.

The thing is "User Interface" implicitly includes humans and excludes machines; the interface between machines tends to just be called an interface or API, and is pretty much excluded from any UX related field. So non-human interfaces are implicitly outside the focus of user experience etc. The skills for creating machine to machine interfaces are nothing like those for creating human (or animal) interfaces with devices. So, HMI isn't really a term to worry about. I'd be very surprised to hear someone using the phrase, and if they are, they really just mean UI as most others would use it.

The distinction of a GUI is of course that it's explicitly graphical in nature. More implicitly, it tends to refer to digital graphical interfaces for software. Physical hardware design, while it has a visual component, is generally not considered part of a GUI. GUIs are made of pixels. They're deeper than that (interactions, not just visual elements) but that's what generally differentiates them.

The UI is anything the user interacts with. This includes physical and digital controls, anything that a user will need to do, read, or interact with with part of the UI. "User" is intentionally nebulous, but it's generally assumed to be your human agent. Interfaces for animals/etc do exist (dog doors for example) but they're not really considered UI design but industrial design. Again, not something one in a UX related field is likely to be concerned with.

While GUI is, has you mention, an instance of a user interface, you should be aware that sometimes UI means user interaction, not interface, and can then be used even more broadly.

HMI is a term that you don't see so much these days, and is really not useful in the context you mention it: a GUI is by nature intended to stand between a human a a computer, not between two machines.

HMI or Human Machine Interface is commonly reserved for defining a point of control for a Human to a machine driven process. This can range from a 1-button push button station, to a 4-buttons on and enclosure with a computerized HMI device such as a Panelview 700 running Rockwell FactoryTalk GUI, or even a SCADA integrated system such as WonderWare running on Windows based systems with a custom UI in C#. In my experience, HMI should not be seen as just a UI or GUI as you will run the risk of self-definition considering the examples I've stated above. HMI represents the greatest general term for the interaction of man and machine . It is best seen as a conduit through the instruction medium in which we convey information back and forth from human to machine. GUI clarifies a portion of a class of HMI, and UI is just another general term and can actually refer to machine to machine communication.