The Croquet Project is a software project that was intended to promote the continued development of the Croquet
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
software development kit
A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific t ...
to create and deliver collaborative
multi-user
Multi-user software is computer software that allows access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leavi ...
online
In computer technology and telecommunications, online indicates a state of connectivity, and offline indicates a disconnected state. In modern terminology, this usually refers to an Internet connection, but (especially when expressed as "on lin ...
applications
Application may refer to:
Mathematics and computing
* Application software, computer software designed to help the user to perform specific tasks
** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
. Croquet is implemented in
Squeak
Squeak is an object-oriented, class-based, and reflective programming language. It was derived from Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at Apple Computer, then at Walt Disney Imaginee ...
Smalltalk
Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learni ...
.
Croquet supports communication,
collaboration
Collaboration (from Latin ''com-'' "with" + ''laborare'' "to labor", "to work") is the process of two or more people, entities or organizations working together to complete a task or achieve a goal. Collaboration is similar to cooperation. The ...
, resource sharing, and synchronous computation among multiple users.
Applications created with the Croquet software development kit can be used to support collaborative data visualization, virtual learning and problem solving environments, 3D
wiki
A wiki ( ) is a form of hypertext publication on the internet which is collaboratively edited and managed by its audience directly through a web browser. A typical wiki contains multiple pages that can either be edited by the public or l ...
s, online gaming environments (
massively multiplayer online role-playing game
A massively multiplayer online role-playing game (MMORPG) is a video game that combines aspects of a role-playing video game and a massively multiplayer online game.
As in role-playing games (RPGs), the player assumes the role of a Player charac ...
s (MMORPGs)), and privately maintained or interconnected multiuser virtual environments.
Further development of the technology has also branched into the
Open Cobalt
Open Cobalt is a free and open-source software platform for constructing, accessing, and sharing virtual worlds both on local area networks or across the Internet, with no need for centralized servers.
The technology makes it easy to create deepl ...
and Open Croquet efforts.
The most recent iteration of Croquet is a commercial product developed by Croquet Labs.
This version of Croquet runs in a web browser and allows programs to be written in Javascript or WebAssembly.
Technical functions

Croquet is a software development kit (SDK) for use in developing collaborative
virtual world
A virtual world (also called a virtual space or spaces) is a Computer simulation, computer-simulated environment which may be populated by many simultaneous users who can create a personal Avatar (computing), avatar and independently explore th ...
applications.
Applications created using the Croquet SDK are automatically collaborative since application
objects in Croquet share a common protocol allowing them to cooperate with each other by employing the principle of replicated computation (synchronization) together with a peer-based messaging protocol. The technology is designed to facilitate such replication between peers, to greatly reduce the overhead needed for widespread deployment of collaborative virtual worlds.
This efficiency, combined with the ability to deploy Croquet-based virtual worlds on consumer-level hardware, makes it possible for developers to deploy large-scale and highly participatory collaborative worlds at very low cost compared with virtual world technologies that are entirely dependent on server-based infrastructures to support the activities of their users.
Architecture
Virtual machines
Croquet's
virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
(VM) runs bit identically on multiple platforms, and supports multiple abilities that could only be provided by a true
late bound, message sending language.
Croquet's relationship to
Squeak
Squeak is an object-oriented, class-based, and reflective programming language. It was derived from Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at Apple Computer, then at Walt Disney Imaginee ...
gives Croquet the property of a purely
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
system allowing for significant flexibility in the design and the nature of the protocols and architectures that have been developed for the system.
Because of this, Croquet has the ability to keep running while code is modified and tested, while changes are made, an essential part of the Croquet collaborative development ability. Users can change the code running the environment while the environment runs.
Synchronization architecture
Croquet's time-based synchronization abilities enable
real-time
Real-time, realtime, or real time may refer to:
Computing
* Real-time computing, hardware and software systems subject to a specified time constraint
* Real-time clock, a computer clock that keeps track of the current time
* Real-time Control Syst ...
, identical interactions between groups of users while dramatically reducing the need for server infrastructures to support virtual world deployment. Croquet's architecture makes it easy to develop deeply collaborative applications without having to spend a lot of effort and expertise in understanding how replicated applications work.
TeaTime is a scalable real-time multi-user architecture that is the basis for Croquet's object-object communication and synchronization. It is designed to support multi-user applications that can be scaled to massive numbers of concurrently interacting users in a shared virtual space. The most directly visible part of this architecture is the TObject class which is used to define and construct subclassed Tea objects. All of the interesting objects inside of Croquet are constructed from subclasses of TObject.
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 a
peer-to-peer network
Peer-to-peer (P2P) computing or networking is a distributed application
Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on d ...
. This
messaging protocol supports a coordinated distributed
two-phase commit Two-phase may refer to:
* Two-phase electric power
* Two-phase commit protocol
* Two-phase flow
* Two-phase locking
* Binary phase, chemical compounds composed of two elements
{{Disambig ...
that is used to control the progression of computations at participating user sites. In this way messages may be dynamically redirected to large numbers of users while maintaining the appropriate deadline-based scheduling. Thus, TeaTime is designed to allow for a great deal of adaptability and resilience and works on a heterogeneous set of resources. It is a framework of abstraction that works over a range of implementations and that can be evolved and tuned over time, both within an application and across applications.
Key elements of the TeaTime synchronization architecture include:
*A coordinated universal timebase embedded in communication protocol
*Replicated, versioned objects that unify 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
*Coordinated, distributed two-phase commit that is used to control the progress of computations at multiple sites, to provide resilience, deterministic results, and adaptation to available resources
*Uses distributed sets
Immersive Terf
The original authors of Croquet opened a commercial company named Qwaq which was later renamed to Teleplace. That technology was later sold back to a group of the original Croquet developers and became Immersive Terf.
History
Croquet is the confluence of several independent lines of work that were being carried out by its six principal architects,
Alan Kay
Alan Curtis Kay (born May 17, 1940) published by the Association for Computing Machinery 2012 is an American computer scientist who pioneered work on object-oriented programming and windowing graphical user interface (GUI) design. At Xerox ...
,
David A. Smith.
David P. Reed,
Andreas Raab,
Julian Lombardi, and
Mark McCahill. The present identity of the project has its origins in a conversation between Smith and Kay in 1990, where both expressed their frustration with the state of
operating systems
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
at the time.
In 1994, Smith built ICE, a working prototype of a two user collaborative system that was a predecessor of the core of what Croquet is today. Also in 1994, Mark McCahill's team at the
University of Minnesota
The University of Minnesota Twin Cities (historically known as University of Minnesota) is a public university, public Land-grant university, land-grant research university in the Minneapolis–Saint Paul, Twin Cities of Minneapolis and Saint ...
developed
GopherVR, a 3D user interface to
Internet Gopher to explore how spatial metaphors could be used to organize information and create social spaces. In 1996, Julian Lombardi approached Smith to explore the development of highly extensible collaborative interfaces to the
World Wide Web
The World Wide Web (WWW or simply the Web) is an information system that enables Content (media), content sharing over the Internet through user-friendly ways meant to appeal to users beyond Information technology, IT specialists and hobbyis ...
. Later, in 1999, Smith built a system called OpenSpace, which was an
early-bound variant of Croquet. Also in 1999, Lombardi began working with Smith on prototype implementations of highly extensible collaborative online environments based on OpenSpace. One of these implementations was a prototype implementation of
ViOS, a way to spatially organize all
Internet
The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
-deliverable resources (including web pages) into a massively-scaled multiuser 3D environment.
Smith and Kay officially started the Croquet Project in late 2001, and were immediately joined by David Reed and Andreas Raab. Reed brought to the project his longstanding work on massively scalable
peer-to-peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
messaging architectures in a form deriving from his
doctoral dissertation
A thesis (: theses), or dissertation (abbreviated diss.), is a document submitted in support of candidature for an academic degree or professional qualification presenting the author's research and findings.International Standard ISO 7144: D ...
that was published in 1978. The first working Croquet code was developed in January 2002. Simultaneously and independently, Lombardi and McCahill began collaborating on defining and implementing highly scalable and enterprise-integrated architectures for multi-user collaboration and were invited by Kay to join the core architectural group in 2003.
From 2003 to 2006, the technology was developed under the leadership of its six principal architects with financial support from
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company. It was founded by Bill Hewlett and David Packard in 1939 in a one-car garage in Palo Alto, California ...
, Viewpoints Research Institute Inc., the
University of Wisconsin–Madison
The University of Wisconsin–Madison (University of Wisconsin, Wisconsin, UW, UW–Madison, or simply Madison) is a public land-grant research university in Madison, Wisconsin, United States. It was founded in 1848 when Wisconsin achieved st ...
,
University of Minnesota
The University of Minnesota Twin Cities (historically known as University of Minnesota) is a public university, public Land-grant university, land-grant research university in the Minneapolis–Saint Paul, Twin Cities of Minneapolis and Saint ...
, Japanese National Institute of Communication Technology (NICT), and private individuals. On April 18, 2006, the project released a
beta version
The software release life cycle is the process of developing, testing, and distributing a software product (e.g., an operating system). It typically consists of several stages, such as pre-alpha, alpha, beta, and release candidate, before the fi ...
of th
Croquet Software development kit 1.0in the
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
. Since then, the Croquet technology infrastructure has been successfully used by private industry to build and to deploy commercial-grade closed source collaborative applications. Open source production-grade software implementations for delivering secure, interactive, persistent, virtual workspaces for education and training have at the same time been developed and deployed at the
University of Minnesota
The University of Minnesota Twin Cities (historically known as University of Minnesota) is a public university, public Land-grant university, land-grant research university in the Minneapolis–Saint Paul, Twin Cities of Minneapolis and Saint ...
, University of Wisconsin–Madison,
University of British Columbia
The University of British Columbia (UBC) is a Public university, public research university with campuses near University of British Columbia Vancouver, Vancouver and University of British Columbia Okanagan, Kelowna, in British Columbia, Canada ...
, and
Duke University
Duke University is a Private university, private research university in Durham, North Carolina, United States. Founded by Methodists and Quakers in the present-day city of Trinity, North Carolina, Trinity in 1838, the school moved to Durham in 1 ...
.
, continued development of the original Croquet technology has also taken place through the
Open Cobalt
Open Cobalt is a free and open-source software platform for constructing, accessing, and sharing virtual worlds both on local area networks or across the Internet, with no need for centralized servers.
The technology makes it easy to create deepl ...
and Open Croquet projects.
Unique aspects
*It is platform and device independent
*Users and developers may freely share, modify and view the source code of the whole system, due to a liberal license
*The technology is not hosted on one organization's server, and hence not governed by any such organization
*It provides a complete professional programmer's language (Squeak Smalltalk),
integrated development environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE), and
class library in every distributed, running participant's copy; the programming development environment itself is simultaneously shareable and extensible
*Croquet based worlds can also be updated while the system is live and running
See also
*
Open Wonderland
Open Wonderland (originally Project Wonderland) is an open-source toolkit written in Java for creating collaborative 3D virtual worlds.
Project Wonderland had been funded by Sun Microsystems since its early development. On January 27, 2010, Su ...
, a
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
-based open source 3D toolkit to create collaborative virtual worlds
*
Unreal Engine
Unreal Engine (UE) is a 3D computer graphics game engine developed by Epic Games, first showcased in the 1998 first-person shooter video game '' Unreal''. Initially developed for PC first-person shooters, it has since been used in a variety of ...
References
Introductory papercopyon archive.org) describing Croquet by David Smith and Alan Kay
C5 Conferenceand related papers
External links
* Croquet Consortium, (defunct)
Interviewwith Julian Lombardi at The Coalition for Networked Information's 2007 Fall Task Force Meeting.
Videoby David Smith & Alan Kay done for a talk at Stanford (2003)
done for the O'Reilly etech by David Smith & Alan Kay (broken up into nice bite-size chunks, also includes Kay's full Squeak demo)
{{Smalltalk programming language
3D GUIs
3D scenegraph APIs
Groupware
Information technology management
Software using the MIT license
Virtual world communities