Introduction to Croquet
From Croquet Consortium
Overview
Croquet is a combination of computer software and network architecture that can be used to develop applications that support deep collaboration and resource sharing among multiple users within the context of compelling 2D and 3D collaborative visualizations and simulations. Croquet is a complete development and delivery platform that enables people to carry out highly collaborative work. It is a highly scalable architecture that can be used to develop powerful simulations, and multi-user online spaces. It provides a flexible enough framework that virtually any user interface concept or assemblage of dynamic 2D and 3D content can quickly and easily be prototyped and deployed. Through Croquet-derived 3D environments, users can enjoy shared telepresence, shared authorship of complex spaces and their contents, and shared access to a wide range of network-deliverable information resources.
Croquet is an unusually powerful development environment because it readily enables cooperation at all levels! For example: An application written using the Croquet SDK is automatically collaborative between people. The result of their work process within a croquet environment is immediately available to other users. Neither the users nor the programmer needs to do anything special to make this happen. This is because application objects in Croquet share a common protocol that allows them to cooperate with each other.
When a programmer uses the Croquet libraries to render an object individually, the system will take care of rendering it in relationship to all the other objects. If it has sound, the system will take care of combining the sound of all the objects with respect to their relative positions to the user. This is true even for those application objects that are just display wrappers for something in another system external to Croquet. All this allows separately developed multimedia and other rich content to be combined by cooperating users into cooperating objects. All of the source code is available to everyone and can be used for public, private, and commercial purposes and programmers can share their code with others or build the community in other ways. Of course, they may also choose not to.
Replicated Computation
Underlying Croquet is an object-oriented semantics based on active objects that have the capability of temporal reflection. That is, each object is aware and in direct control of its behavior in time. Croquet also directly supports replication of computation, allowing computation to be moved close to the point of interaction on demand, while maintaining a consistent view of behaviors that can scale to include thousands of nodes. Consequently, Croquet is defined so that replication of computations is just as easy as replication of data.
Key Features
- Croquet is a computer software architecture built from the ground up with a focus on deep collaboration between large numbers of users.
- Croquet makes it possible to change and author virtual worlds in collaboration with others inside them while they are operating.
- Croquet users, with appropriate sharing privileges, may visit and work with others inside any other Croquet-based world on the network.
- Croquet participants have the ability to create and modify a personal information space and create fully dynamic connections to any other Croquet spaces and network-deliverable information resources (such as the WWW).
- Croquet utilizes a highly portable virtual machine that runs bit-identical on Windows, Macintosh, Linux, and is designed to ultimately on its own hardware…yielding complete interoperability.
- Croquet utilizes a software environment where anything can be created or represented; where everything can be modified; where development and participant environments are one in the same.
- Croquet is a fully dynamic software environment where remote Croquet users with appropriate privileges may do anything in this shared peer-to-peer environment that you can. The environment acts as a common space in which each inhabitant can manipulate and modify simultaneously.
- Croquet utilizes TeaTime, a scaleable real-time multi-user architecture that is based on the concept of replicated versioned objects coordinated by a universal time-base embedded within the communications protocol. TeaTime, is the basis for component object-object communication and world/object synchronization.
- Croquet environments can be represented to participants as a series of dynamically-linked multi-user collaborative virtual environments.
- Croquet utilizes an Open GL-based graphics engine and a semi-retained graphical engine pipeline, such that its rendering hierarchy is based upon dynamically composeable objects, with each of these objects having full access to the OpenGL libraries.
- Croquet software developers retain the ability to make direct calls to the OpenGL library making it possible to extend the rendering engine in virtually unlimited ways.
- Croquet is designed to be an operating system for the post-browser Internet.

