Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Croquet Project
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Former software project}} {{infobox software | name = Croquet | logo = <!-- Image name is enough. --> | logo alt = | logo caption = | screenshot = <!-- Image name is enough. --> | screenshot alt = | caption = | author = [[Alan Kay]], [[Julian Lombardi]], [[Mark P. McCahill]], [[Andreas Raab]], [[David P. Reed]], [[David A. Smith (computer scientist)|David A. Smith]] | developer = | released = {{Start date and age|2004}}<ref>{{cite web |title=Croquet Project |url=http://www.opencroquet.org:80/Croquet_Technologies/downloads.html |archive-url=https://web.archive.org/web/20041014023137/http://www.opencroquet.org:80/Croquet_Technologies/downloads.html |access-date=17 February 2021|archive-date=2004-10-14 }}</ref> | discontinued = Yes | latest release version = 1.0 | latest release date = {{Start date and age|2009|12|24}} | repo = <!-- {{URL|example.org}} --> | programming language = [[Squeak]] [[Smalltalk]] | operating system = [[Unix-like]], [[macOS]]; [[Microsoft Windows|Windows]] | platform = [[Squeak]] | size = | language = English | genre = multiuser virtual environment | license = [[MIT License|MIT]] | website = {{URL|https://croquet.io/ |https://croquet.io/}} }} The '''Croquet Project''' is a software project that was intended to promote the continued development of the Croquet [[open-source software|open-source]] [[software development kit]] to create and deliver collaborative [[multi-user]] [[online]] [[application software|applications]]. Croquet is implemented in [[Squeak]] [[Smalltalk]]. Croquet supports communication, [[collaboration]], 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]]s, online gaming environments ([[massively multiplayer online role-playing game]]s (MMORPGs)), and privately maintained or interconnected multiuser virtual environments. Further development of the technology has also branched into the [[Open Cobalt]] and Open Croquet efforts.<ref name="Open Croquet">{{Citation|last=Suslov|first=Nikolay|title=NikolaySuslov/croquet-squeak: Open Croquet for Squeak 5.x|date=2021-02-06|url=https://github.com/NikolaySuslov/croquet-squeak|access-date=2021-02-18}}</ref> The most recent iteration of Croquet is a commercial product developed by Croquet Labs.<ref name="Croquet Labs">{{Citation|title=Croquet Labs|url=https://croquet.io/|access-date=2024-08-15}}</ref> This version of Croquet runs in a web browser and allows programs to be written in Javascript or WebAssembly. ==Technical functions== [[File:Interactive 3D map of same world.jpg|thumb|300px|Real time, interactive, 3D map of this very same world. Change something in the world, the map changes. Move something in the map (as one would a chess piece), the object in the world represented by it moves the same way.]] Croquet is a software development kit (SDK) for use in developing collaborative [[virtual world]] applications. Applications created using the Croquet SDK are automatically collaborative since application [[Object (computer science)|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== [[File:Adding Notes To 3D objects and places.jpg|thumb|300px|Adding 3D Notes linked to 3D objects and places]] === Virtual machines === Croquet's [[virtual machine]] (VM) runs bit identically on multiple platforms, and supports multiple abilities that could only be provided by a true [[name binding|late bound]], message sending language. Croquet's relationship to [[Squeak]] gives Croquet the property of a purely [[Object-oriented programming|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 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. [[File:Edit Source Code.jpeg|thumb|300px|Croquet allows users to edit the source code of the 3D world from within the world, and immediately see the result, while the world is still running. The running program does not need to be ended, and there is no compile-link-run-debug development loop. Any part of the program may be edited, down to the VM and [[OpenGL]] calls.]] ===Synchronization architecture=== Croquet's time-based synchronization abilities enable [[real-time computing|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 [[File:Croquet Screenshot.jpeg|thumb|300px|Croquet avatar with wireframe portal, eToy, and mirror]] ==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.<ref>{{cite web |url=http://www.3dicc.com |title=Virtual Places for Real Work |website=3D ICC}}</ref><ref>{{cite news |last=Korolov |first=Maria |date=December 23, 2011 |url=http://www.hypergridbusiness.com/2011/12/teleplace-gone-3d-icc-steps-in-to-help-customers/ |title=Teleplace gone; 3D ICC steps in to help customers |website=Hypergrid Business}}</ref> ==History== Croquet is the confluence of several independent lines of work that were being carried out by its six principal architects, [[Alan Kay]], [[David A. Smith (computer scientist)|David A. Smith]]. [[David P. Reed]], [[Andreas Raab]], [[Julian Lombardi]], and [[Mark P. McCahill|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]] 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]], 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]]. Later, in 1999, Smith built a system called OpenSpace, which was an [[Name binding|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]]-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]] 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 to 2006, the technology was developed under the leadership of its six principal architects with financial support from [[Hewlett-Packard]], Viewpoints Research Institute Inc., the [[University of Wisconsin–Madison]], [[University of Minnesota]], Japanese National Institute of Communication Technology (NICT), and private individuals. On April 18, 2006, the project released a [[beta version]] of the [https://web.archive.org/web/20060421090939/http://www.opencroquet.org/Croquet_Technologies/downloads.html Croquet Software development kit 1.0] in the [[open-source software|open-source]]. 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 Wisconsin–Madison, [[University of British Columbia]], and [[Duke University]]. {{As of|2009}}, continued development of the original Croquet technology has also taken place through the [[Open Cobalt]] and Open Croquet projects.<ref name="Open Croquet" /> [[File:Multi-user text editing in 3D.jpg|thumb|300px|Multi-user, multi-lingual text editing in 3D]] [[File:Croquet Spreadsheet.jpeg|thumb|300px|Croquet Spreadsheet]] ==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]] (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]], a [[Java (programming language)|Java]]-based open source 3D toolkit to create collaborative virtual worlds *[[Unreal Engine]] ==References== {{Reflist}} {{Refbegin}} *[https://web.archive.org/web/20070927082900/http://www.croquetconsortium.org/images/2/2b/2003_Croquet_Collab_Arch.pdf Introductory paper] ([https://web.archive.org/web/20090220083519/http://www.croquetconsortium.org/images/2/2b/2003_Croquet_Collab_Arch.pdf copy] on archive.org) describing Croquet by David Smith and Alan Kay *[https://web.archive.org/web/20060207001611/http://www.db.soc.i.kyoto-u.ac.jp/c5-06/ C5 Conference] and related papers *[https://web.archive.org/web/20221208215346/https://deepplum.com/dpr/locus/dprpapers.html David P. Reed's papers] {{refend}} ==External links== *{{Official website|web.archive.org/web/20130623112311/http://opencroquet.org}} Croquet Consortium, (defunct) *[https://web.archive.org/web/20080127120547/http://connect.educause.edu/blog/gbayne/cnipodcastaninterviewwith/45869 Interview] with Julian Lombardi at The Coalition for Networked Information's 2007 Fall Task Force Meeting. *[https://web.archive.org/web/20060323013317/http://stanford-online.stanford.edu/courses/cs547/030425-cs547-100.asx Video] by David Smith & Alan Kay done for a talk at Stanford (2003) *[http://www.lisarein.com/alankay/tour.html Video] 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}} [[Category:3D GUIs]] [[Category:3D scenegraph APIs]] [[Category:Groupware]] [[Category:Information technology management]] [[Category:Software using the MIT license]] [[Category:Virtual world communities]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:As of
(
edit
)
Template:Citation
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Refbegin
(
edit
)
Template:Refend
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Smalltalk programming language
(
edit
)
Template:Template other
(
edit
)