The Prototype Graphical User Interface

A tiny prototype of Merlin's future graphical user interface ( GUI ) was written in the Acorn RISC Machine's assembly language to test some ideas about the visual aspects of the interface.

The user's objects float in a 3D "room" which has a floor that extends to infinity in all directions. The objects stay above this floor at all times, but can otherwise be placed as the user pleases. Though the objects can be located in any point in space, they are not really 3D as they always stay parallel to the screen as the user moves about.

Navigation

When the user moves the cursor ( not shown above ) to one of the edges of the screen, the viewpoint within the room is changed. Moving off the left or right of the screen will "turn the user" in that direction, making it very easy to access more objects. Trying to go past the top or bottom will "walk" the user forward or back, respectively. There is no way to look or move up and down.

The left button on the mouse allows the user to grab and object and move it parallel to the screen. Using the middle button ( on a 3 button mouse - or the previous button with the key ) will drag the object in the plane parallel to the room's floor.

Rooms

The rooms described above are themselves objects that can be placed in other rooms, thus forming a ( probably cyclic ) graph. When you see another room within the current one, you can go there with a simple click. A special room, called Self ( what else? ) represents the user, who is automatically transported there by holding down the ALT key. Releasing the key will instantly restore the original location. Self is used as a convenient "pocket" to hold things and as the "root" for certain objects ( like the floppy disk rooms, for example ). Though there isn't a strict relation between rooms and disks, the current design supposes that all objects in a room are in the same disk.

Why 3D?

The use of 3D graphics consumes quite a bit of processing power. What are the advantages?
see also:
| persist | | reflect | | selfdiff | | selfuse | | gmodel | | gui |
back to:
| intro | | merlin | | LSI | | USP |

please send comments to jecel@lsi.usp.br (Jecel Mattos de Assumpcao Jr), who changed this page on Sep 1, 12:09 .