The user interface that you see in the demos is just a default user
interface that illustrates the possibilities. See http://
Folks tend to re-use these flat panels quite a bit because they work
well enough. In general:
- Hold your mouse over one to see a "halo" of buttons above the
-- The 'X' deletes it.
-- The '+'/'-' opens or closes it.
-- The 'open hand'/'closed hand' grabs the window so that
you're carrying it around as you drive, or releases it.
-- The big down arrow brings you close to the window and
aligns you with its front.
- For many windows, you can also open them by just clicking on
the front panel.
- You can adjust the position of a window by dragging the top
frame (moves perpendicular to your line of sight), the bottom frame
(moves parallel to the ground), or the side frames (rotation). You
can also resize by dragging the corners.
In a couple of the demos, you can also get a context-menu for objects
by cmd- or alt-click.
In one of the demos, the portals close after you drive through them.
The reason for this is that any world you can see through an open
portal has to be loaded. That demo is meant to be long-lived on the
Internet, and folks arriving in that space would be surprised to have
to wait for a world that they didn't teleport to have to load. So the
system closes the door behind you after you go through.
Some portals are two-way -- there are doors in both worlds that are
"connected" to each other. Other portals are one way. The two-way
portals create a bit of problem for the automatic door closing: you
can't see or drive through it if the other side is closed. (I'm not
sure if this is a feature or a bug.) So if you're using the KAT demo
and find yourself unable to go back through a door that you just
passed through, use the 'landmarks' instead. These appear in the
'dock' at the bottom of the screen when you move your mouse there.
The classes that implement all this are TWindow for the window/UI/
frame, TPortal for the rectangular thing that goes inside it, and the
There's quite a bit of research into user interfaces for Croquet: