Conference PaperPDF Available

Croquet - A collaboration system architecture

Authors:
  • TidalScale, Inc.

Abstract and Figures

Croquet is a computer software architecture built from the ground up with a focus on deep collaboration between teams of users. It is a totally open, totally free, highly portable extension to the Squeak (Ingalls et al., 2002) programming system. Croquet is a complete development and delivery platform for doing real collaborative work. There is no distinction between the user environment and the development environment. Croquet is focused on interactions inside of a 3D shared space that is used for context based collaboration, where each user can see all of the others and what their current focus is. This allows for an extremely compelling shared experience. A new collaboration architecture/protocol called TeaTime has been developed to enable this functionality. The rendering architecture is built on top of OpenGL (Woo et al., 1999).
Content may be subject to copyright.
Croquet A Collaboration System Architecture
David A. Smith
104 So. Tamilynn Cr.
Cary NC, 27513
davidasmith@
bellsouth.net
Alan Kay
1
1209 Grand Central Ave
Glendale, CA 91201
alan.kay@
viewpointsresearch.org
Andreas Raab
University of
Magdeburg, Germany
andreas.raab@
squeakland.org
David P. Reed
MIT Media Laboratory
20 Ames Street
Room E15-492
Cambridge, MA 02139
dpreed@reed.com
ABSTRACT
1
Croquet [18] is a computer software architecture built from
the ground up with a focus on deep collaboration between
teams of users. It is a totally open, totally free, highly
portable extension to the Squeak [5] programming system.
Croquet is a complete development and delivery platform
for doing real collaborative work. There is no distinction
between the user environment and the development
environment.
Croquet is focused on interactions inside of a 3D shared
space that is used for context based collaboration, where
each user can see all of the others and what their current
focus is. This allows for an extremely compelling shared
experience. A new collaboration architecture/protocol called
TeaTime has been developed to enable this functionality.
The rendering architecture is built on top of OpenGL [13].
KEYWORDS
Croquet, collaboration, User Interface, 3D graphics,
Squeak, Smalltalk, TeaTime, OpenGL, peer-to-peer.
INTRODUCTION
Croquet was built to answer a simple question. If we were
to create a new operating system and user interface knowing
what we know today, how far could we go? What kinds of
decisions would we make that we might have been unable
to even consider 20 or 30 years ago, when the current
operating systems were first created?
The landscape of possibilities has evolved tremendously in
the last few years. Without a doubt, we can consider
Moore’s law and the Internet as the two primary forces that
are colliding like tectonic plates to create an enormous
mountain range of possibilities. Since every existing OS
was created when the world around it was still quite flat,
they were not designed to truly take advantage of the
heights that we are now able to scale.
What is perhaps most remarkable about this particular
question is that in answering it, we find that we are
revisiting much of the work that was done in the early
sixties and seventies that ultimately led to the current set of
popular system architectures. One could say that in reality,
1
Sr. Fellow Hewlett Packard and President, Viewpoints Research
Institute, Inc.
this question was asked long ago, and the strength of the
answer has successfully carried us for a quarter century. On
the other hand, the current environments are really just the
thin veneer over what even long ago were seriously
outmoded approaches to development and design. Many of
the really good fundamental ideas that people had were left
on the cutting room floor.
That isnt to say that they thought of everything either. A
great deal has happened in the last few decades that allows
for some fundamentally new approaches that could not have
been considered at the time.
We are making a number of assumptions:
Hardware is fast really fast, but other than for booting
Windows or playing Quake no one cares nor can they
really use it. We want to take advantage of this power
curve to enable a richer experience.
3D Graphics hardware is really, really fast and getting
much faster. This is great for games, but we would like
to unlock the potential of this technology to enhance the
entire user experience.
Late bound languages have experienced a renaissance
in both functionality and performance. Extreme late-
bound systems like LISP and Smalltalk have often been
criticized as being too slow for many applications,
especially those with stringent real-time demands. This
is simply no longer the case, and as Croquet
demonstrates, world-class performance is quite
achievable on these platforms.
Communication has become a central part of the
computing experience, but it is still done through the
narrowest of pipes, via email or letting someone know
that they have just been converted into chunks in
Quake. We want to create a true collaboration
environment, where the computer is not just a world
unto itself, but a meeting place for many people where
ideas can be expressed, explored, and transferred.
Code is just another media type, and should be just as
portable between systems. Late binding and component
architectures allow for a valuable encapsulation of
behaviors that can be dynamically shared and
exchanged.
The system should act as a virtual machine on top of
any platform. We are not creating just another
application that runs on top of Windows or the
Macintosh we are creating a Croquet Machine that is
highly portable and happens to run bit-identical on
Windows, Macintosh, Linux, and ultimately on its own
hardware… anywhere we have a CPU and a graphics
processor. Once the virtual machine has been ported,
everything else follows; even the bugs are the same.
Most attempts at true multiplatform systems have
turned out to be dangerous approximations (cf. Java)
rather than the bit-identical “mathematically
guaranteed” ports that are required.
There are no boundaries in the system. We are creating
an environment where anything can be created;
everything can be modified, all while still inside the 3D
world. There is no separate development environment,
no user environment. It is all the same thing. We can
even change and author the worlds in collaboration
with others inside them while they are operating .
Figure 1. Croquet multi-user environment.
Croquet Is
Croquet is a computer software architecture built from the
ground up with a focus on deep collaboration between
teams of users.
Croquet is a totally ad hoc multi-user network. It mirrors
the current incarnation of the World Wide Web in many
ways, in that any user has the ability to create and modify a
“home world” and create links to any other such world. But
in addition, any user, or group of users (assuming
appropriate sharing privileges), can visit and work inside
any other world on the net. Just as the World Wide Web has
links between the web pages, Croquet allows fully dynamic
connections between worlds via spatial portals. The key
differences are that Croquet is a fully dynamic environment,
everything is a collaborative object, and Croquet is fully
modifiable at all times.
The current computer user paradigm is based upon a
completely closed individually focused system. The user has
a very low-bandwidth communication capability via e-mail,
or instant messaging, but outside of some very simplistic
document sharing capabilities, the user is quite alone on his
desktop.
Croquet has been focused on high bandwidth collaboration
from its inception. Simply put, the fundamental building
block of the Croquet architecture is a system that makes
every single object in the system collaborative.
Croquet’s collaboration architecture is based upon the
concept of replicated versioned objects coordinated by a
universal timebase embedded in the communications
protocol. This part of the architecture is referred to as
TeaTime.
One way to think of the Croquet environment is as a high
bandwidth conference phone call. Once a connection is
made, the user not only has voice communication with the
other participants, he also has the ability to exchange
documents, collaboratively design systems, perform
complex simulations, develop complex project plans, and
manage complex projects.
Croquet utilizes OpenGL as the basis of its rendering
/component framework called TeaPot. The architecture
utilizes a semi-retained model, such that it uses a rendering
hierarchy based upon dynamically composable objects, but
each of these objects has full access to the OpenGL libraries
and can extend the capabilities of the rendering engine in
virtually unlimited ways.
Squeak is
Croquet is built on top of Squeak [5], a modern variant of
Smalltalk, hence it is a pure object oriented based system.
This allows for significant flexibility for the design and the
nature of the protocols and architectures that have been
developed.
Squeak is a 21st century dynamic-object wide-spectrum
operating and authoring environment derived from the
1970s Xerox PARC Smalltalk [4] system in which
overlapping window GUIs, Desk Top Publishing, media
authoring, and many other familiar software systems were
first developed. Several of the authors of Squeak were
principals at Xerox and were co-creators of many of the
PARC inventions.
An essential part of our development process is Squeak’s
ability to keep the system running while testing and
especially while making changes. Squeak allows even
major changes to be performed incrementally and they take
no more than a fraction of a second to effect. Another key
feature of Squeak is its generalized storage allocator and
garbage collector that is not only efficient in real-time (so
that animations and dynamic media of many kinds can be
played while the gc is collecting), but that allows reshaping
of objects to be done safely.
Related Work
There are a number of seminal efforts over many years to
which Croquet owes a great deal. Many of these early
efforts were the first building blocks of the current popular
windowing computer interface and usability paradigms.
What is particularly interesting is that the focus of the
Croquet project tends to be on the parts of these early efforts
that were not picked up by what has become mainstream
computing.
Sutherland’s work [20] on direct manipulation and
modeling of graphical object based entities clearly
established the first true fundamental steps toward an
interactive human computer user experience. Not only did
he establish a great deal of the fundamental methods for
how to create and manipulate interactive environments that
are still quite relevant, but his focus was on creating a tool
that would fundamentally amplify human capabilities.
His further work on the “Ultimate Display[21] the first
immersive 3D experience, demonstrated the potential, still
unrealized, of 3D interactive environments as the basis of a
complete user experience to display and interact with
computer data, creating "a looking glass" into what he
described as a "mathematical wonderland." His vision of the
system would represent data in 3-dimensional form,
allowing the construction of entirely believable 3-
dimensional, computer controlled, virtual worlds. He went
much further than this in his description of the potential.
"The ultimate display he wrote, would, of course, be a
room within which the computer can control the existence
of matter. A chair displayed in such a room would be good
enough to sit in. Handcuffs displayed in such a room would
be confining, and a bullet displayed in such room would be
fatal. With appropriate programming such a display could
literally be the Wonderland into which Alice walked."
The efforts at Xerox PARC under the leadership of Alan
Kay that drove the development of both pure object oriented
development environments in the form of Smalltalk and
powerful bit-mapped display based user interfaces was key
[7]. In some ways, all we are doing here is extending this
model to 3D and adding a new robust object collaboration
model.
Douglas Engelbart’s videoed first demonstration in 1968 of
everything from a mouse to hypertext, object addressing and
dynamic file linking, and especially shared-screen
collaboration involving two persons at different sites
communicating over a network with audio and video
interface has been a major inspiration to this project. It is
telling that this level of rich, deep collaboration between
widely separated physical environments has still not been
properly achieved. [2]
The Croquet component model architecture is similar to the
OpenDoc system developed by Apple [1] and the Squeak
2D Morphic architecture developed by John Maloney [8]
Both of these were designed around composable 2D objects
or components. The main ideas behind these systems are
that the majority of the environment interactions that the
components have to deal with are already available in the
base classes that make up the system. The programmer’s
task is simply to override the behaviors of the objects how
they render themselves, and how they respond tostimuli
from their surrounding components and from the user. Then
the programmer and ultimate user can “compose” these
intelligent blocks to form a useful document or application.
Smith’s work on ICE the Interactive Collaboration
Environment, a multi-user shared component environment
and later the Virtus OpenSpace architecture [17] acted as an
important guide to the resulting Croquet system and in a
sense Croquet is a far more complete result of this work.
Fisher et al [3] developed a powerful, totally immersive 3D
working environment. This system included the ability to
dynamically interact with the system via 3D menus and
window documents, and the ability of the user to directly
manipulate his position and orientation inside the world and
interact with the objects that inhabited it. Further, the
system could interact with the user as if he were just
another object inhabiting the space. The best example of
this was the virtual escalator that the user could step on that
would then carry him up to another floor.
The TeaTime time based collaboration protocol/architecture
is directly based upon early work of Reed [14, 15].
Jefferson's work [6] is related, but does not include the idea
of maintaining a partial history, managing replicated
objects, or incorporating two-phase commit. Miller and
Dennis’s Timewarp [9] protocol extends Jefferson's work to
support "multiple versions", a central concept in TeaTime.
Mirtich [11] employed the timewarp model to implement a
graphics simulation architecture for maintaining complex
physical modeled state.
CROQUET ARCHITECTURE
Like any complex system, it is impossible to account for the
architecture of Croquet without describing its various pieces
and the interrelationships they share with each other.
Croquet has been designed to operate as a peer-to-peer
architecture. This ensures the greatest level of flexibility in
the design of the system and its ultimate usability. All
objects are symmetric in their ability to act both as local and
remote recipients of the same messages. There is no
intermediate step to be performed to interpret and
rebroadcast these messages. A central server can be used to
establish the initial connections.
The peer-to-peer architecture is also in keeping with the
philosophical roots of Croquet, which is to act as a broad-
band phone call (or better, as a conference call). Though a
central server may play some role in a phone connection, its
role is strictly limited to redirecting the pertinent
information with no changes. Any messages sent from a
Croquet user will arrive and be used by all other users
without intermediate interpretation. This has the additional
benefit of dramatically simplifying secure data transfer.
Figure 2: The other user is dragging a window up into
the air.
A remote user can do anything in this peer-to-peer shared
world that you can. The environment acts as a single shared
place that every inhabitant can manipulate and modify. You
have a context to see and understand where the other user’s
interest is and further, what it is they are doing.
The key part of the architecture making up Croquet
enabling this rich level of peer-to-peer interaction is
TeaTime, which is the basis for component object-object
communication and world/object synchronization, including
initial content synchronization.
The Croquet component architecture is an extension to the
base TeaTime class structure to support user/system
interactions with the object and the objects ability to
perform internal TeaTime based simulations and external
rendering.
A user interface has been developed that allows the user to
create and manipulate objects inside the virtual world as
well as easily traverse it. It is important to note that even the
user interface is more a property of the object that represents
the user in the space, and that this can easily be modified to
support fundamentally different approaches.
The Teapot graphics engine is based upon OpenGL. The
system is built around the ideas of a retained graphical
engine pipeline, but with the developer retaining the ability
to make direct calls to the OpenGL library at any of the
nodes.
A scripting language has been developed that is focused on
extremely high-level control of objects that make up the
Croquet environment. Though this scripting language is
ideal for relatively naïve users of the system, it is intended
to be used for virtually all high level control and interaction.
It is designed to be implicitly collaborative, so that the users
need not even be aware of the fact that all scripted actions
result in synchronous responses across the peer-to-peer
network.
TeaTime: A SCALABLE REAL-TIME MULTI-USER
ARCHITECTURE
TeaTime is the basis for object-object communication and
synchronization. It is designed to support multi-user
applications that can be scaled to huge numbers of users in
a common space, concurrently interacting. The most directly
visible part of this architecture is the TObject class which is
used to define and construct subclassed Tea objects. A Tea
object acts with the property that messages sent to it are
redirected to replicated copies of itself on other users
participating machines in the peer-to-peer network. All of
the interesting objects inside of Croquet are constructed out
of subclasses of TObject. This messaging protocol supports
a coordinated “distributed two-phase commit” that is used
to control the progression of computations at the
participating user sites.
In one way, the protocols we have developed are simply an
extension of the message passing model employed by
Squeak. This is really a meta-protocol, as any message may
be dynamically redirected to the entire group of users while
maintaining the appropriate deadline based scheduling.
TeaTime is designed to allow for a great deal of adaptability
and resilience, and works on a heterogeneous set of
resources. Rather than develop highly specific, optimized
algorithms, TeaTime is a framework of abstraction that
works over a range of implementations that can be evolved
and tuned over time, both within an application, and across
applications. This approach is based on the work of Reed
[14, 15] since the mid 70s.
Elements of approach
A coordinated universal timebase embedded in
communications protocol.
Replicated, versioned objects unifying replicated
computation and distribution of results.
Replication strategies that separate the mechanisms
of replication from the behavioral semantics of objects.
Deadline-based scheduling extended with failure and
nesting.
A coordinated “distributed two-phase commit that is
used to control the progression of computations at
multiple sites, to provide resilience, deterministic
results, and adaptation to available resources. Uses
distributed sets.
Time-synchronized I/O. Input and output to real-time
devices are tied to coordinated universal time.
Synchronous vs. asynchronous computing?
The key issue is that we want to be able to provide a
continuous experience that coordinates users at multiple
locations, interacting in a tightly collaborative way. It isn’t
unreasonable to expect that all users can see the effect of
actions at other sites within 10’s of milliseconds.
Consequently, the approach we propose is an architecture
that is synchronous to the degree that I/O is synchronized,
but at the same time allows for adaptation of computational
strategies.
The key idea for I/O coordination is that input and output
events (to interactive devices) are synchronized with global
universal time, which is coordinated among all sites
involved in a computation.
At the same time, objects behave like processes that exist in
time, and each object’s behavior is implemented by
methods that explicitly manage the temporal evolution of
the object. In a sense, object internal states are maintained
as ordered histories, and operations are performed at
“pseudo-time instants that are properly ordered with
respect to I/O operations whose data connect with the
objects.
Device I/O is temporally ordered as well. I/O events exist in
real time, and provide the coordination between real time
and “pseudo-time that is necessary and sufficient to
achieve the proper user interface behavior. This provides an
adaptive approach to real time programming that is not
limited to “real time programming”.
A Perspective On This Approach
The standard view of a networked virtual environment
implementation describes the system as a set of state
variables that represent instantaneous system state. [16]
Temporal changes are reflected as a sequence of updates to
elements of state, and communications distributes the
updated state values. This essentially decouples processing
from "static" state - that is state that does not change
without operation by an external processor that reads and
updates it. The model separates processing from storage,
and treats consistency as a property of the stored state.
Displayed information is then derived from a snapshot of
the stored state.
Our view takes Alan Kay's original idea [7] of objects as
entities that have behaviors, where messages affect the
behavior (state variables are invisible outside the object,
and equivalent behavior has meaning independent of how,
or even whether, state is represented in any particular way).
This allows us to think of self-contained objects that have
dynamic behavior even when not driven by external
processors. In essence, objects exist in both space and time.
Croquet objects interact by exchanging messages. The
Croquet view of objects easily incorporates I/O devices, and
even real-world objects outside the system, as first class
objects in a natural way, whereas modeling objects as
abstractions of storage only cannot represent such things as
normal objects.
In Croquet, computational time and real time are loosely
coupled. The code that executes the dynamic behavior of
objects typically can execute a lot faster than the real-time
behavior represented, so an object can carry out many
seconds worth of behavior per second, if left to itself. The
Croquet system's job is to coordinate the execution of
objects so that all behaviors that can have a visible effect
are completed in time to communicate those effects through
the system interfaces.
Since this is the only constraint, objects in the Croquet
environment are free to implement a wide variety of
strategies for computing their behaviors. This kind of
object-specific strategy dramatically reduces the need for
lock-step coordination among distributed concurrent
activities. Because they maintain some element of past
history in the object representations, this kind of approach
requires additional storage overhead per object. But the
benefit of dramatically better scalability and reduced latency
far outweigh the cost of extra storage.
The other key idea in TeaTime is our approach to resilience
and fault tolerance. Most large scale distributed virtual
environments are quite difficult to handle because at any
point in time some elements may become disconnected and
other elements may be dynamically added. We recognize
this issue in the Croquet object model - each object is
responsible for maintaining sufficient information to recover
from system disruptions. The key idea in TeaTime is that
the state of objects evolves through a distributed two-phase
commit protocol. Behaviors of all objects that influence
each other are first computed, contingent on completion of
all dependent object behaviors, and then those behaviors are
atomically committed. If the behaviors are not completed in
time, all contingent calculations are undone by the
individual objects.
The principle of giving an object responsibility for its own
behavior allows for a wide variety of strategies for
individual objects to implement the proper resilience and
recovery. In a networked virtual environment, these
strategies can include dynamically adaptive behavior that
can cope with heterogeneous hardware, wide variations of
delay, and so forth. Applications programmers can tune
applications to use new strategies that derive from the
unique requirements of their application objects, or use
packaged libraries that embed those strategies in abstract
object classes that can be specialized for specific
implementation
COMPONENTS
We use the term “component” to describe the basic unit of
composition in the Croquet 3D environment The TeaPot
suite of component level classes are built on top of the
TObject base class. The base class of these components is
TFrame. The subclasses of TFrame act as frames in an
OpenGL rendering hierarchy, as event handlers, and as time
based simulation objects as described above as part of
TeaTime.
Rendering Engine
The philosophy behind Croquets TeaPot rendering engine
is based on allowing the programmer complete access and
control of the underlying graphics library, in this case
OpenGL, while at the same time, providing a rich
framework within which to embed these extensions with a
minimal level of effort. This allows the naïve graphics
programmer and 3D artist a way to easily create interesting
graphic artifacts with minimal effort, yet allows the expert
the ability to add fundamental extensions to the system
without the need to modify the underlying architecture.
A rendering frame includes a transform matrix which
defines the orientation and position of the object in a 3D
space relative to its parent object in the hierarchy as well as
the ability to render itself in that position in global space. A
rendering message is sent to the object when its position in
the hierarchy is reached. The object then calls the
appropriate OpenGL library functions to render the object.
Event Manager
An event handler can respond to user events such as
keyboard and mouse/pointer events. Again, this interface is
quite extensible by the programmer, but the default is that
the TCamera carries a TPointer object which tracks the
objects that are underneath the current mouse position. A
TPointer is a 3D analog to the mouse event object. Instead
of being just a 2D position on the screen, the pointer
includes vector information, in this case from the camera to
the selected object in both global and local (to the selected
object) frame transforms.
Keyboard events are also forwarded to the currently selected
object. This model allows us to embed 2D objects into a
scene, where the containing 3D object simply converts the
TPointer vector data back into a 2D mouse position on the
surface of the 2D object.
CROQUET SCRIPT
Our goal in developing a scripting language is to provide
ways to dynamically adjust the complexity that's exposed to
the user. E.g., we know we are going to have a variety of
users, starting from kids over graphics designers up to
hardcore hackers. All of them need different levels of
accessibility and the key question is how we can give them
access at the level they can deal with.
The way we are addressing this problem is by conceptually
"slicing" the system along various boundaries. The first
"slice" is what we find in the TFrame hierarchy - a user at
this level has access to the "guts of the system" being able
to manipulate Croquet objects at a very low level. The
second one is a side-ways "slice" which effectively
encapsulates the core notions of the framework and exposes
a simplified interface to scripting users. Most of what can
be done here in terms of "modifying the framework"
happens by parameterization; the intrinsic behavior of
frames (such as rendering or picking) cannot be touched
from here. Since hardly any user of the system will ever
have the need to do this, this seems to be the place where
most scripting activities are going to happen. The third
"slice" is one that provides an even more simplified view on
objects with a different user interface for scripting (tile-like
interfaces such as that found in Squeak’s eToys). Here, we
aim for supporting users who start learning the system by
providing them with the essential vocabulary for
manipulating aspects and the core properties of these
objects.
By providing these different ways to access the system we
are able to define learning curves in terms of what users
have to know when and where. As we grow in our
explorations of the system we are able to teach users more
of the aspects that make it tick. We are aware that many
users will not go "deeply enough" into the system to (say)
manipulate the core framework notions, yet if there is a
need to do this, they can. The scripting system provides a
learning curve with "intermediate plateaus" along the path.
USER INTERFACE
A key part of the Croquet architecture is that the user
interface is just another collection of objects that can easily
be replaced or enhanced. The way the user controls his
position in space and how he manipulates objects inside of
it is controlled by a camera object which is easily replaced.
Figure 3: The user moves forward and back by moving
the mouse up or down, and rotates by either moving the
mouse to the left or right.
In the current system, to move around inside the world, just
click and hold the right mouse button. Where you click
relative to the cross hair determines how you move. The
closer you are to the cross hair, the slower you will move.
To move forward, move the cursor on top of the cross hair
and click. The distance from the center determines your
forward velocity. Click and hold just above the cross hair
and you will move forward very slowly. Click far from the
cross hair and you will move quickly.
If you move the mouse underneath the cross hair, you will
move backwards. Moving it right rotates you to the right.
Again, distance determines velocity in this case, angular
velocity, or the speed at which you rotate. If you are directly
over or under the cross hair you will move in a straight line
with no rotation. If you move directly to the left or right of
the cross hair, you will rotate around your center without
any forward or backward motion. If you put the cursor in
just above and to the right of the cross hair you will move
forward a bit and rotate to the right a bit all at the same
time. This allows you to walk in a circle.
Objects can be selected and manipulated just as they are in
2D space. Simply click and drag with the left mouse button.
A 3D window can be dragged, resized, and even rotated
depending upon where on the window’s frame you select.
Additional controls are available through 3D buttons on top
of the window. Simply click and release as you do in a 2D
environment.
Figure 4: An open portal. We can see into the linked
Space, in this case the entrance to a multiplayer game.
SPACES and PORTALS
Simply put, a Space is a place. In Croquet, a space is a
container of objects, including often the user. A good
example of a space might be a child’s play room. All of his
toys are objects that happen to be lying on the floor, or
perhaps put away. A child can always come into the room
to play, or even pick up a toy and carry it outside. In
Croquet, Spaces can act like rooms, but they can also act as
landscapes, or virtual conference rooms, or any kind of 3D
container of any size.
Portals are simply a 3D spatial connection between spaces.
If you place one portal in one space, and a second portal in a
second space and link them, then you can view from one
space into the other. In the example of the child’s room, a
portal is simply the door to the hallway. The hallway is just
another space. One key difference between Croquet portals
and spaces and the real world of course is the concept of
actual versus virtual location. In the real world, the hallway
must be physically next to the child’s play room, or the door
simply won’t go anywhere at least it wont lead into the
hall. In the virtual world, a portal can connect ANY two
spaces, even if one is located on a computer half a world
away. Physical location doesn’t mean anything.
Connections are all virtual. Consider as an example, the
mirror. In Croquet, a mirror is actually a portal that happens
to be linked back to itself. In other words, it is actually a
door that happens to open into the room it is leaving from.
Figure 5: Here the portal has been rotated toward the
user. Just like a mirror, we get a slightly different view
into the game world by rotating its “container”.
One of the key aspects for Croquet is the ability to have a
portal dynamically move around in a space, while allowing
the proper view through the portal. This is a bit strange, but
it works like this: when you look through a window, what
you see is determined partially by your position relative to
the window. If you move to your left, you can see more of
the space to your right (and vice versa). But, if you could
pick up the window and move it relative to your position -
instead of you moving relative to its position, the exact
same thing should happen. It should be much like picking
up a box and looking through a hole in it. You turn the box
around to see different areas.
The big win for portals is that they allow the user to jump
from one virtual space to another by simply walking
through the portal, just as the child walked through the door
from his play room. What is different in Croquet is that the
portal can lead to anywhere in the virtual world. In turn,
portals that are contained within these spaces can
themselves lead to other worlds. This essentially replicates
the workings of the World Wide Web as these portal
“links” can point to any other connected machine on the net.
FURTHER WORK
Croquet will include both a robust IP telephony capability,
in keeping with our philosophy of the system acting as a
broad band telephone call, and an instant messaging system
that will act as the dial-tone and ring tone where other
users can indicate their interest in initiating a collaboration
session.
A name space and security model is being developed. Our
early study seems to indicate that a capabilities model
similar to that used by the “E” [10] language is the proper
course.
Preliminary work has been done on a multi-dimensional
matrix package. The focus of this work is to develop a very
high-performance mathematical package for use in
simulation and rendering.
Sound is a crucial part of any immersive environment. We
are studying the developing industry standards for 3D
sound. In particular, the work in OpenAL [12] seems to be
promising.
CONCLUSION
Croquet has been designed from the ground up with a focus
on enabling large scale peer-to-peer collaboration inside of
a compelling shared 3D environment. A number of new
technologies have been developed to support the robust
deployment and development of this system including the
TeaTime communication/collaboration architecture/
protocol, TeaPot, a semi-retained graphics engine based
upon OpenGL, a powerful space and portal paradigm which
mirrors web pages and links on the web, and a scripting
engine that enables relatively naïve users to develop
powerful multi-user applications using Croquet.
ACKNOWLEDGMENTS
We thank Kim Rose, Michael Rueger, Bill Cole, Michael
Moody, and of course the Squeak Central team of Dan
Ingalls, Ted Kaehler, Scott Wallace, Andreas Raab and
John Maloney. The Croquet project was generously
supported by Hewlett Packard Corporation, Chris Cole, and
Applied Minds, Inc.
REFERENCES
1. Apple Computer, Inc. OpenDoc Programmer’s Guide
for the Mac OS. Addison Wesley, 1995.
2. Engelbart, Douglas, 1968 NLS Demonstration Video:
http://sloan.stanford.edu/mousesite/1968Demo.html.
3. Fisher, Scott S., James Humphries, Michael McGreevy,
Warren Robinett, “The Virtual Environment Display
System,” 1986 ACM Workshop on Interactive 3D
Graphics.
4. Goldberg, Adele, David Robson, Smalltalk-80: the
language and its implementation, Addison-Wesley
Longman Publishing Co., Inc., Boston, MA, 1983
5. Ingalls, Dan, Ted Kaehler, John Maloney, Scott
Wallace, Alan Kay. Back to the Future: The Story of
Squeak, A Practical Smalltalk Written in Itself, in
Squeak: OpenPersonal Computing and Multimedia ed.
Guzdial, Mark and Kim Rose. Prentice Hall, 2002
6. Jefferson, David R. “Virtual Time. ACM Transactions
on Programming Languages and Systems, 7(3):404-
425, July 1985.
7. Kay, Alan. "The Early History of SmallTalk", in
Bergin, Jr., T.J., and R.G. Gibson. History of
Programming Languages - II, ACM Press, New York
NY, and Addison-Wesley Publ. Co., Reading MA
1996, pp. 511-578,
8. Maloney, John. An Introduction to Morphic: The
Squeak User Interface Framework, in Squeak:
OpenPersonal Computing and Multimedia ed.
Guzdial, Mark and Kim Rose. Prentice Hall, 2002.
9. Miller, John A. and Aideen Dennis, "Hybrid Time
Warp (HYT): A Protocol for Parallel Database
Transaction Management," UGA-CS Technical Report,
University of Georgia (December 1996) 42 pages.
10. Miller, Mark and Marc Stiegler. “E Website:
http://www.erights.org
.
11. Mirtich, B., Timewarp Rigid Body Simulation, ACM
SIGGRAPH 2000 Proceedings, pps 193-200, July
2000.
12. OpenAL Web Site: http://www.openal.org/home/
.
13. OpenGL Architecture Review Board, Mason Woo,
Jackie Neider, Tom Davis, Dave Shreiner, OpenGL
Programming Guide, Third Edition. Addison-Wesley.
1999.
14. Reed, David Patrick, Naming and Synchronization in a
Decentralized Computer System, Ph.D. thesis, M. I. T.
Dep't of EE & CS, September 15, 1978. Available as
MIT Laboratory Computer Science Technical Report
MIT/LCS/TR-205.
15. Reed, David P., Implementing atomic actions on
decentralized data, ACM Transactions on Computer
Systems 1, 1 (February 1983), pp. 3-23.
16. Singhal, Sandeep, Michael Zyda. Networked Virtual
Environments: Design and Implementation. Addison
Wesley, 1999.
17. Smith, David A. OpenSpace: A Small System
Architecture. Virtus Corporation. Unpublished
Document. 1994.
18. Smith, David A., Andreas Raab, David P. Reed, Alan
Kay. Croquet User Manual v.0.01 Web site:
http://www.opencroquet.org
..
19. Squeak Web Site: http://www.squeak.org/
20. Sutherland, I. Sketchpad: A Man-Machine Graphical
Communications System, MIT PhD Thesis, 1963.
21. Sutherland, I. The Ultimate Display., Proceedings of
IFIPS Congress 1965, New York, New York, May
1965, Vol. 2, pp. 506-508.
... It is ideal for developing collaborative serverless apps. Croquet is the software architecture and synchronization system, that provides the implementation of virtual time [4]. But a tiny stateless server named reflector, on which Croquet heavily relays on is still required. ...
... We have a real physical Rubik's Cube robot, consisting of three independent robot devices, Lego BOOST bricks in our example, where every device has three motors, LEDs, and sensors. And we want to synchronize their collaborative work, by sending sequential messages from the collaborative code editor, being inside a virtual world, like (4) robot1.motorA(90); robot2.motorB(-90); ...
Conference Paper
Full-text available
Virtual worlds and Web XR technologies offer to both programmers and domain experts nearly unlimited capabilities for creating novel computer-based simulated environments just in a web browser. Virtual time is becoming the new crucial concept of collaborative, immersive virtual learning environments (VLE). This paper explores the Croquet software architecture, which is known for its radical synchronization system with the notion of virtual time. It is ideal for developing collaborative serverless apps, but a tiny stateless server named reflector, on which Croquet heavily relies on still prevents doing that today. This paper presents the research, that transforms reflector into a peer-to-peer application Luminary, by implementing decentralized virtual time. The case study describes the prototype of a collaborative Rubik's Cube simulator, backed by three robots for kids. Finally showing how learners can easily experiment with augmenting physical reality, by creating fully synchronized, collaborative robots, operating in a P2P network.
... The importance of social interactions between conferencing actors is not a novel fnding. To facilitate trust building among team members, additional functionality for social interaction and collaboration in the relational space has already been added in later software-as-a-service platforms [32]. Participants can be represented by avatars they control in real time, adopting a frst-person or third-person perspective (these can even be photorealistic virtual doppelgängers [2]). ...
Book
Full-text available
The Metaverse: A Critical Introduction provides a clear, concise and well-grounded introduction to the concept of the Metaverse, its history, the technology, the opportunities, the challenges and how it is having an impact almost every facet of society. The book serves as a standalone introduction to the Metaverse, as an overarching summary of the specialist volumes in The Metaverse Series, and removes the need to repeat basic information in each book. The book provides: • a concise history of the Metaverse idea and related implementations to date; • an examination of what the Metaverse actually is; • an introduction to the fundamental technologies used in the Metaverse; • a brief overview of how aspects of the Metaverse are having an impact on our lives across multiple disciplines and social contexts; • a consideration of the opportunities and challenges the evolving Metaverse; and • a sense of how the Metaverse may mature over the coming decades. The book will be practical guide, but drawing from academic research, practical and commercial experiences and inspiration from the science fiction origins and treatments of the Metaverse. The book will also explore the impact of the increasing number of virtual worlds and proto-Metaverses which have existed since the late 1990s. The aim is to provide professional and lay readers, researchers, academics and students with an indispensable guide to what counts as the Metaverse, opportunities and challenges, and how the future of the coming Metaverse can best be realised. There is more information on the book and the series at http://www.themetaverseseries.info/ The Metaverse: A Critical Introduction will be published on 24th September 2024 and is now available for pre-order.
Article
Full-text available
Humans are social animals living in societies with most of their activities occurring in social settings, characterized by multiple actors, the crossing of individual behavioral paths, interactions between participants themselves and between participants and material (or immaterial) setting components. We theorize that virtual conferences, like physical ones, have a dual-space structure where the two types of activities (content transfer and social intercourse) intertwine. Understanding what happens in such complex social events requires minutely analyzing this complex intertwined structure of components and events. This analysis is even more necessary when one wants to intervene in such settings, for example when designing supports or attempting to change behavior. Nevertheless, most methods of data collection and analysis are either centered on methodological individualism, looking at aggregates at macro or meso level, or looking in detail at only some aspects of the whole event (e.g., conversation analysis). The paper offers, while illustrating with actual data, a Multilayered Installation Design (MID) method that facilitates focus upon the various perspectives of subjects, combines them into a single framework of Installations for activity that describes the setting in a systematic and structured way, and offers directions for design or intervention. This paper (1) briefly situates the nature of the problem and some gaps in the current methodological landscape; (2) contextualizes the main theories underlying the MID method — Activity Theory and Installation Theory; (3) describes the new method per se; (4) illustrates the method on a specific case, the analysis of a conference in a virtual space; and (5, 6) lists some issues and limitations as well as future orientations. Conceptualizing issues with the help of Installation Theory informs a structured and goal-oriented approach to design that improves on the usual design thinking approach by providing a robust analytic and idea-generating framework.
Chapter
Full-text available
Soft skills training is considered important for employees to be successful at work. Several companies are offering immersive virtual soft skills training with head-mounted displays. The main contribution of this paper is to provide an overview of the research literature within the field of using immersive virtual soft skills learning and training of employees. The results of this preliminary scoping review show that there is a lack of research literature and empirical studies within this topic.
Book
Full-text available
The 7th International Conference of the Immersive Learning Research Network (iLRN 2021) is an innovative and interactive virtual gathering for a strengthening global network of researchers and practitioners collaborating to develop the scientific, technical, and applied potential of immersive learning. It is the premier scholarly event focusing on advances in the use of virtual reality (VR), augmented reality (AR), mixed reality (MR), and other extended reality (XR) technologies to support learners across the full span of learning—from K-12 through higher-education to workbased, informal, and lifelong learning contexts. Following the success of iLRN 2020, our first fully online and in-VR conference, this year’s conference was once again based on the iLRN Virtual Campus, powered by ©Virbela, but with a range of activities taking place on various other XR simulation, gaming, and other platforms. Scholars and professionals working from informal and formal education settings as well as those representing diverse industry sectors are invited to participate in the conference, where they may share their research findings, experiences, and insights; network and establish partnerships to envision and shape the future of XR and immersive technologies for learning; and contribute to the emerging scholarly knowledge base on how these technologies can be used to create experiences that educate, engage, and excite learners.
Chapter
The block construction exercises described in this chapter were used to investigate how spatial communication about the manipulation of objects in virtual, physical, and graphical space is communicated using online text. Where this study differs from previous research in the area is in its use of a qualitative methodology to investigate how these types of interactions are structured, communicated, and interpreted via text-based media. What emerges from the qualitative analysis is new insights over the previous quantitative investigations. More particularly, this mode of investigation has revealed the apparent superior efficacy of the fragmenting of three-dimensional spatial arrangements into two-dimensional planar representations using a simple ABC123 grid-wise coordinate system. The spatial terms used by participants in their textual communications are filtered according to Lefebvre's thirdspace and deictic spatial expressions.
Article
Full-text available
A head-mounted, wide-angle, stereoscopic display system controlled by operator position, voice and gesture has been developed for use as a multipurpose interface environment. The system provides a multisensory, interactive display environment in which a user can virtually explore a 360-degree synthesized or remotely sensed environment and can viscerally interact with its components. Primary applications of the system are in telerobotics, management of large-scale integrated information systems, and human factors research. System configuration, application scenarios, and research directions are described.
Article
Full-text available
In this paper, a new approach to coordinating accesses to shared data objects is described. We have observed that synchronization of accesses to shared data and recovering the state of such data in the case of failures are really two sides of the same problem—implementing atomic actions on multiple data items. We describe a mechanism that solves both problems simultaneously in a way that is compatible with requirements of decentralized systems. In particular, the correct construction of a new atomic action can be done without knowledge of all other atomic actions in the system that might execute concurrently. Further, the mechanisms degrade gracefully if parts of the system fail—only those atomic actions that require resources in failed parts of the system are prevented from executing.
Article
In 1978, the ACM Special Interest Group on Programming Languages (SIGPLAN) sponsored a Conference on the History of Programming Languages (HOPL). Papers were prepared and presentations made at a Conference in Los Angeles, California. The Program Committee selected thirteen languages that met the criteria of having been in use for at least 10 years, had significant influence, and were still in use. The languages were: ALGOL, APL, APT, BASIC, COBOL, FORTRAN,GPSS, JOSS, JOVIAL, LISP, PL/I,SIMULA, and SNOBOL. The results of that conference were recorded in History of Programming Languages, edited by Richard L. Wexelblat [New York: Academic Press, 19811. The Second ACM SIGPLAN History of Programming Languages Conference (HOPL-II) took place on April 20-23, 1993 in Cambridge, Massachusetts. The papers prepared for that conference form the basis of this present volume, along with the transcripts of the presentations, a keynote address "Language Design as Design" by Fred Brooks, a discussion of the period between HOPL and HOPL-II by Jean Sarnmet, and a talk on "What Makes History" by Mike Mahoney (the conference historian). There was also a banquet, hosted by Bernie Galler, and a closing panel of six language developers, chaired by Mike Mahoney. Unfortunately due to page limitations, the transcripts of the banquet, Forum, and the closing panel are not included in this volume. It is our hope that they can be published elsewhere. The Conference was preceeded by a Forum on the History of Computing, chaired by Bob Rosin, and the papers presented at the Forum complete this volume. The Program Committee for HOPL-II decided to have both invited and submitted papers, and we believe that the range of languages and the quality of presentation will make this volume a classic in the history of programming literature. The languages at HOPL-II were: Ada, ALGOL 68, C, C++, CLU, Discrete Simulation Languages, FORMAC, Forth, Icon, Lisp, Monitors and Concurrent Pascal, Pascal, Prolog, and Smalltalk. The majority of this volume is the material on the individual languages, with a chapter devoted to each language, as follows: •a paper by each author; •a transcript of the author's presentation; •a transcript of a discussant's remarks (not all languages); •a transcript of the question and answer session; •biographies of the authors. It should be noted that some authors' presentations closely followed their papers, and since the book is oversized, the transcripts of these presentations were omitted, with the kind permission of the authors. All papers were published as preprints in ACM SIGPLAN Notices, Vol. 28, No. 3 (March 1993). The papers are reprinted here with the permission of ACM and of the authors. In some cases changes have been made by the authors to correct typographical or factual errors. In some cases additional material has been added, with an appropriate notation by an author or editor. We are indeed pleased to provide this introductory material for this book. The book is the culmination of work on a 1993 conference (HOPL-II) whose development started in 1990; HOPL-II in turn was a follow-on to the first HOPL, held 15 years earlier (1978). First HOPL Conference In order to put this conference in perspective, it is useful to provide some information about the first conference of this type that was held. In 1978 ACM SIGPLAN sponsored a History of Programming Languages Conference (HOPL) with Jean E. Sammet as General Chair and Program Chair, and John A. N. Lee as the Administrative Chair. That conference was composed of invited papers for the 13 languages that met the following criteria: (1) were created and in use by 1967; (2) remain in use in 1977; and (3) have had considerable influence on the field of computing. [History of Programming Languages, Richard L. Wexelblat, ed., Academic Press, ACM Monograph Series, 1981 ), page xviii.] (The cutoff date of 1967 was chosen to provide perspective from a distance of at least ten years.) The languages chosen by the Program Committee as meeting those criteria were: ALGOL, APL, APT, BASIC, COBOL, FORTRAN, GPSS, JOSS, JOVIAL, LISP, PL/I, SIMULA, and SNOBOL. A key person involved in the early development of each of those languages was invited to write a paper according to very strict guidelines and with numerous rewrites expected. That conference was deemed a great success by its attendees. The final proceedings, edited by R. L. Wexelblat, is now the definitive work on the early history of those particular languages. Several people asked at that time why a conference was held rather than simply having people prepare the papers and publish them in a book. We felt initially--and this was confirmed by the actual occurrence--that the audience discussion after each presentation would provide greater insight into the history of the events and decisions that led to the definition of the languages in their early forms. Some of the "cross talk" publicly and privately among the attendees--many of whom participated in the creation of several languages--provided significant insights into the early developments. Second HOPL Conference The first HOPL conference was intended to be only the beginning, and not the end of any consideration of programming language history. As a result, not long after the end of that conference, we began thinking about a second HOPL Conference, with the intent of building on what we learned from the first conference, and expanding its scope and coverage. Due to the pressure of other activities, it took many years before we were able to focus on a second conference. During that time period, a cadre of our colleagues was developed that also strongly promulgated the need to study the history of computing. In fact, the establishment of the journal Annals of the History of Computing, to be published by AFIPS, was announced at the end of the first HOPL Conference with Bernard A. Galler as Editor-in-Chief. Since 1987, John A. N. Lee has been the Editor-in-Chief, and in 1992 the IEEE Computer Society became the publisher. In January 1996, Michael R. Williams took over as the third Annals Editor-in-Chief. ACM has also sponsored several other history conferences, covering the fields of scientific comptaing, medical informatics, and personal workstations. Finally, we developed a proposal in 1990, and the ACM SIGPLAN Executive Committee authorized us to proceed with this Second History of Programming Languages Conference (HOPL-II). We then called back to voluntary duty several members of the original conference-organizing committees and many of them were happy to join us in this new endeavor. In addition, we made a conscious effort to bring in newer/younger people who also have an interest in examining the past. But organizing a history conference is by no means as simple as organizing a technical conference dealing with current or recent research in which all the papers are to be contributed and for which there is tremendous competition to participate. This is primarily because most professionals in the computer field prefer to concentrate on current and future work rather than looking backward to what they have accomplished. A detailed description of how the final program was created is given in the next section of this introduction. The study of various aspects of computing history is not merely an intellectual exercise; it shows us how we reached our current condition, indicates effective approaches as well as past errors, and provides perspective and insight for the future, and a surer sense of how to get there. The conference itself was held April 20 to 23, 1993, in Cambridge, Massachusetts with preprints issued as the March 1993 issue of ACM SIGPLAN Notices (Volume 28, Number 3). This book contains an enormous amount of material not included in the preprints, including some revised papers as well as transcripts of the talks, the Forum papers, the keynote address, and other material that provide a record of what occurred during the conference. We regret that space limitations prevented the inclusion of the transcripts of the banquet, the closing panel and the Forum. We hope that they can be published elsewhere.
Conference Paper
Most ideas come from previous ideas. The sixties, particularly in the ARPA community, gave rise to a host of notions about "human-computer symbiosis" through interactive time-shared computers, graphics screens, and pointing devices. Advanced computer languages were invented to simulate complex systems such as oil refineries and semi-intelligent behavior. The soon to follow paradigm shift of modern personal computing, overlapping window interfaces, and object-oriented design came from seeing the work of the sixties as something more than a "better old thing." That is, more than a better way: to do mainframe computing; for end-users to invoke functionality; to make data structures more abstract. Instead the promise of exponential growth in computing/$/volume demanded that the sixties be regarded as "almost a new thing" and to find out what the actual "new things" might be. For example, one would compute with a handheld "Dynabook" in a way that would not be possible on a shared main-frame; millions of potential users meant that the user interface would have to become a learning environment along the lines of Montessori and Bruner; and needs for large scope, reduction in complexity, and end-user literacy would require that data and control structures be done away with in favor of a more biological scheme of protected universal cells interacting only through messages that could mimic any desired behavior.Early Smalltalk was the first complete realization of these new points of view as parented by its many predecessors in hardware, language, and user interface design. It became the exemplar of the new computing, in part, because we were actually trying for a qualitative shift in belief structures---a new Kuhnian paradigm in the same spirit as the invention of the printing press---and thus took highly extreme positions that almost forced these new styles to be invented.
Article
This paper was reproduced from the AFIPS Conference proceedings, Volume 23, of the Spring Joint Computer Conference held in Detroit, 1963. Mr. Timothy Johnson suggested that this report contained essentially the same material he spoke on at the SHARE D/A Committee Workshop.