All Topics  
Croquet Project

 
Croquet Project

   Email Print
   Bookmark   Link






 

Croquet Project



 
 
The Croquet Project is an international
International

International or internationally most often describes interaction between nations, or encompassing two or more nations, constituting a group or association having members in two or more nations, or generally reaching beyond national boundaries....
 effort to promote the continued development of Croquet, a free
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 platform
Platform (computing)

In computing, a platform describes some sort of hardware architecture or software framework , that allows Computer software to run. Typical platforms include a computer's Computer architecture, operating system, programming languages and related runtime libraries or graphical user interface....
 and a network
Computer network

A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
 operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 for developing and delivering deeply collaborative multi-user
Multi-user

Multi-user is a term that defines an operating system or application software that allows concurrent access by multiple User s of a computer. Time-sharing systems are multi-user systems....
 online applications
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
. Croquet was specifically designed to enable the creation and low-cost deployment of large scale virtual worlds.

Implemented in Squeak
Squeak

The Squeak programming language is a Smalltalk implementation, derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers....
 Smalltalk
Smalltalk

Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
, Croquet features a network architecture that supports communication, collaboration
Collaboration

Collaboration is a recursive process where two or more people or organizations work together toward an intersection of common goals ? for example, an intellectual endeavor that is creative in nature?by sharing knowledge, learning and building consensus....
, resource sharing, and synchronous computation among multiple users.






Discussion
Ask a question about 'Croquet Project'
Start a new discussion about 'Croquet Project'
Answer questions from other users
Full Discussion Forum



Encyclopedia


The Croquet Project is an international
International

International or internationally most often describes interaction between nations, or encompassing two or more nations, constituting a group or association having members in two or more nations, or generally reaching beyond national boundaries....
 effort to promote the continued development of Croquet, a free
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 platform
Platform (computing)

In computing, a platform describes some sort of hardware architecture or software framework , that allows Computer software to run. Typical platforms include a computer's Computer architecture, operating system, programming languages and related runtime libraries or graphical user interface....
 and a network
Computer network

A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
 operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 for developing and delivering deeply collaborative multi-user
Multi-user

Multi-user is a term that defines an operating system or application software that allows concurrent access by multiple User s of a computer. Time-sharing systems are multi-user systems....
 online applications
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
. Croquet was specifically designed to enable the creation and low-cost deployment of large scale virtual worlds.

Implemented in Squeak
Squeak

The Squeak programming language is a Smalltalk implementation, derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers....
 Smalltalk
Smalltalk

Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
, Croquet features a network architecture that supports communication, collaboration
Collaboration

Collaboration is a recursive process where two or more people or organizations work together toward an intersection of common goals ? for example, an intellectual endeavor that is creative in nature?by sharing knowledge, learning and building consensus....
, resource sharing, and synchronous computation among multiple users. It also provides a flexible framework
Framework

A framework is a basic conceptual structure used to solve or address complex issues. This very broad definition has allowed the term to be used as a buzzword, especially in a software context....
 in which most user interface concepts can be rapidly prototyped and deployed to create powerful and highly collaborative multi-user 2D and 3D applications and simulations. Applications created with the Croquet Software Developer's Kit (SDK) can be used to support highly scalable collaborative data visualization, virtual learning and problem solving environments, 3D wiki
Wiki

A wiki is a page or collection of Web pages designed to enable anyone who accesses it to contribute or modify content , using a simplified markup language....
s, online gaming environments (MMORPG
MMORPG

A massively multiplayer online role-playing game is a genre of computer role-playing games in which a large number of player interact with one another in a virtual world....
s), and privately maintained/interconnected multiuser virtual environments.

The Croquet SDK

Croquet is not an application. It is made available in the open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 as a software development kit
Software development kit

A software development kit is typically a set of development tools that allows a software engineer to create application software for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform....
.

Technical functionality


Interactive 3d Map of Same World
The Croquet technologies are made available by the Croquet Consortium in the form of a software developer's toolkit (SDK) that can be used to develop deeply collaborative virtual world applications. Applications created using the Croquet SDK are automatically collaborative since application objects in Croquet share a common protocol that allows them to cooperate with each other. Croquet does this by employing the principle of replicated computation (synchronization) together with a peer-based messaging protocol that makes it possible to coordinate the activities of users within virtual worlds without the requirement of maintaining central server resources.

Croquet uses 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. The overall effect is to greatly reduce the overhead required for widespread deployment of collaborative virtual worlds. This efficiency, combined with the ability to deploy Croquet worlds on consumer-level hardware, makes it possible 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.

Virtual machine

Adding Notes To 3d Objects and Places
Croquet’s virtual machine
Virtual machine

In computer science, a virtual machine is a software implementation of a machine that executes programs like a real machine.Definitions...
 (VM) runs bit identically on multiple platforms and it supports a number of capabilities that could only be provided by a true late bound, message sending language. Croquet’s relationship to Squeak gives Croquet the property of a purely object-oriented 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 testing, and especially while changes are made – an essential part of the Croquet collaborative development capability. Programmers can therefore modify the code running the environment while the environment is running.

Edit Source Code

Synchronization architecture

Croquet's time-based synchronization capabilities enable real-time, 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. This messaging protocol supports a coordinated distributed two-phase commit 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


Open Cobalt

Open Cobalt
Open Cobalt

Open Cobalt is a free and open source software virtual world browser and construction toolkit application software for accessing, creating, publishing, and hyperlinking Avatar -based multi-user virtual worlds that are accessible both on local area networks or across the Internet....
 is a multi-institutional community software development effort to deploy an open source production-grade metaverse browser/toolkit application built using the Croquet SDK. The Open Cobalt
Open Cobalt

Open Cobalt is a free and open source software virtual world browser and construction toolkit application software for accessing, creating, publishing, and hyperlinking Avatar -based multi-user virtual worlds that are accessible both on local area networks or across the Internet....
 application is made available under the .

Croquet Screenshot

History

Croquet is the confluence of several independent lines of work that were being carried out by its six principal architects, Alan Kay
Alan Kay

Alan Curtis Kay is an United States computer scientist, known for his early pioneering work on object-oriented programming and Window graphical user interface design....
, David A. Smith
David A. Smith

David Alan Smith is an United States computer scientist and entrepreneur who has focused on interactive 3D and using 3D as a basis for new user environments and entertainment for over twenty years....
. David P. Reed
David P. Reed

David P. Reed is an United States computer scientist, educated at the Massachusetts Institute of Technology, known for a number of significant contributions to computer networking....
, Andreas Raab, Julian Lombardi
Julian Lombardi

Julian Lombardi is an United States inventor, author, educator, and computer scientist known for his work with socio-computational systems, scalable virtual world technologies, and in the design and deployment of deeply collaborative virtual learning environments....
, and Mark McCahill
Mark P. McCahill

Mark P. McCahill has been involved in developing and popularizing a number of Internet technologies since the late 1980s.Mark McCahill received a BA in Chemistry at the University of Minnesota in 1979, spent one year doing analytical environmental chemistry, and then joined the University of Minnesota Computer Center's microcomputer suppor...
. 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 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 developed GopherVR
GopherVR

GopherVR is an enhanced version of the Unix and Mac OS Gopher clients that includes a 3D visualization tool for viewing resource collections as 3D scenes....
, 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 WWW. Later, in 1999, Smith built a system called OpenSpace, which was an early-bound
Name binding

In programming languages, name binding is the association of Value s with identifiers. An identifier bound to a value is said to Reference that value....
 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
ViOS

ViOS was a client-server software system designed by Julian Lombardi in the mid-1990s and built by a team he led at ViOS Inc. from 1999-2001 as a way of spatially organizing all Internet-deliverable resources into a massively-scaled multiuser 3D environment with users of the system represented as customizable avatars....
, a way of spatially organizing all Internet
Internet

The Internet is a global network of interconnected computers, enabling users to share information along multiple channels. Typically, a computer that connects to the Internet can access information from a vast array of available server and other computers by moving information from them to the computer's local memory....
-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

A peer-to-peer computer network uses diverse connectivity between participants in a network and the cumulative bandwidth of network participants rather than conventional centralized resources where a relatively low number of Server s provide the core value to a service or application....
 messaging architectures in a form deriving from his doctoral dissertation 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-2006 the technology was developed under the leadership of its six principal architects with financial support from Hewlett-Packard
Hewlett-Packard

The Hewlett-Packard Company , commonly referred to as HP, is a technology corporation headquartered in Palo Alto, California, United States....
, Viewpoints Research Institute Inc., The University of Wisconsin-Madison, The University of Minnesota
University of Minnesota

The University of Minnesota, Twin Cities is a public university research university located in Minneapolis and St. Paul, Minnesota, Minnesota, United States....
, the Japanese National Institute of Communication Technology (NICT) and private individuals. On April 18, 2006 the project released a beta version of the in the open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
. 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
University of Minnesota

The University of Minnesota, Twin Cities is a public university research university located in Minneapolis and St. Paul, Minnesota, Minnesota, United States....
, the University of Wisconsin-Madison, The University of British Columbia
University of British Columbia

The University of British Columbia is a Canada Public university research university with campuses in Vancouver and in Kelowna, British Columbia....
, and Duke University
Duke University

Duke University is a private university research university located in Durham, North Carolina, North Carolina, United States. Founded by Methodism and Religious Society of Friends in the present-day town of Trinity, North Carolina in 1838, the school moved to Durham in 1892....
.

Multi User Text Editing in 3d
Croquet Spreadsheet

Unique aspects

  • It establishes a computational environment that belongs to its users
  • It is platform and device independent
  • Users/developers may freely share, modify and view the source code of the entire system (due to Croquet's liberal license)
  • The technology is not hosted on a single organization’s server (and hence not governed by any such organization)
  • It provides a complete professional programmer’s language (Smalltalk/Squeak), IDE
    Integrated development environment

    An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development....
    , 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.


External links

  • with Julian Lombardi at The Coalition for Networked Information's 2007 Fall Task Force Meeting.
  • by 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 Alan's full Squeak demo)
  • about implementing basic Croquet functions
  • The unofficial Croquet open wiki