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 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.
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.
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.
The use of 3D graphics consumes quite a bit of
processing power. What are the advantages?
- 2D is simply to crowded, 3D seems to hold
- The interface will be used with many different
screen resolutions and user's eyesight also vary.
This interface allows you to place the objects
at the most convenient distance for a given set
of working conditions.
| persist |
| reflect |
| selfdiff |
| selfuse |
| gmodel |
| gui |
please send comments to firstname.lastname@example.org
(Jecel Mattos de Assumpcao Jr), who changed this page on
Sep 1, 12:09