Interaction
Make interactions feel real

Visuals
RealThings should look real all of the time, even while being moved and sized. If you use Microsoft's PlusTM for Windows 95 the RealPhone is fully rendered while it is being moved on the desktop. Likewise, it is fully rendered as it is being sized and we preserve its aspect ratio as shown below.

Small, medium, large RealPhones with aspect ratio maintained

This eliminates any trial-and-error guesswork on the part of the user. They can see exactly what they're getting, how big the controls are and how readable the labels are at every instant.

Because the other RealThings are written in Java, we wrote our own window class that does real-time moving and sizing in Java.

Interaction
To move a RealThing, press, hold, drag, and release with mouse button 1 while pointing at any area that is not interactive. For example, you can move the RealPhone by pointing anywhere on the case. The handset, speed-dial buttons, rocker switch, and volume control each do something else so you can't move the phone by pointing at them.

Move pointer As soon as a move operation is detected, we change the pointer to a four-pointed arrow to tell the user they're moving and not performing some other function. Move is detected when the button is pressed and the pointer has moved a small amount.

Size pointerTo size a RealThing, press, hold, drag, and release with mouse button 1 while pointing anywhere along the outer-edge of the visual image. Because there are no visible borders like today's GUI windows, we change the pointer to a two-ended arrow when it's over the edge. The pointer remains a two-ended arrow while the user is sizing.

The most important thing to remember about sizing RealThings is that they remain fully functional regardless of their size. The RealPhone still works no matter how small you make it, and you can make it about the same size as a Windows 95 icon!

When the visual controls become too small to use, and that's a different size for each user, keyboard techniques can be used instead. There's little need to have a non-interactive minimized window when using RealThings. A minimal function view can take the place of a minimized window.