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 deeply collaborative and hyperlinked multi-user virtual workspaces, virtual exhibit spaces, and game-based learning and training environments that run on all major software operating systems. By using a peer-to-peer-based message passing protocol to reduce reliance on server infrastructures for support of basic in world interactions across many participants, Open Cobalt makes it possible for people to hyperlink their virtual worlds via 3D portals to form a large distributed network of interconnected collaboration spaces. It also makes it possible for schools and other organizations to freely set up their own networks of public and private 3D virtual workspaces that feature integrated web browsing, voice chat, text chat, and access to remote desktop applications and services.
Open Cobalt uses the Squeak software environment, which is an open-source Smalltalk system freely available for Windows, Mac and Unix. As is true of almost any Smalltalk application, Open Cobalt has identical functioning on any supported platform. As a Smalltalk system, it can usually be updated while the system is running without needing a restart.
Expected uses
Open Cobalt is designed to enable the deployment of secure virtual world spaces that support education, research, and the activities of virtual organizations. By leveraging OpenGL-based 3D graphics, Open Cobalt supports highly scalable collaborative data visualization, virtual learning and problem solving environments, 3D wikis, online gaming environments termed Massively multiplayer online role-playing games, and privately and securely maintained multi-user virtual environments.The Open Cobalt application leverages peer-based messaging to eliminate the need for virtual world servers/commercial services and makes it very simple for end-users to create and securely share deeply collaborative virtual worlds that run on all major software operating systems. Users moving through and interacting within Open Cobalt worlds simultaneously participate and collaborate in a dynamic, concurrent environment where they can work, explore, and learn at a level of integration and extensibility not easily achieved through commercial virtual world technologies. With no licensing fees, users and developers can also freely build and share highly capable multi-user virtual workspaces, game-based learning and training environments, or even just create places to meet and interact with friends.
History
Open Cobalt is derived from the Croquet software development kit that was publicly released under the MIT License by Hewlett-Packard and the Croquet Consortium in early 2007.In early 2008, and with the support of the Andrew W. Mellon Foundation, Julian Lombardi and Mark P. McCahill, at Duke University, launched the community-based software development effort to build Open Cobalt as an open-source virtual world browser application and construction toolkit.
In May 2008, Lombardi was awarded a National Science Foundation grant to further strengthen the community-based software development effort and bring the Open Cobalt virtual world browser to its alpha release.
Together with John Dougan as technical project lead and a growing international community of software developers and volunteers, the Open Cobalt project contributors released Open Cobalt Alpha in April 2010.
OpenCobalt 1.0 alpha 22 was released in June 2015. Recent activity involving the project can be found in the Open Cobalt Google Group.
Goals
The goals of the Open Cobalt effort are to stimulate the use of distributed virtual environments, advance visual simulations, and deepen collaboration in education, research, and personal entertainment - and in so doing to:- stimulate the development and dissemination of shared cyberenvironments for the staging, observation and evaluation of collaborative decision-making, problem finding, and problem solving among members of distributed virtual organizations and educational communities, and
- create the conditions for the emergence of a free, open, and scalable 3D-enabled global information space.
Features
- It is free
- The entire system is open-source
- It does not need the use of servers to create and share virtual worlds
- It is platform and device independent
- It provides a complete professional programmer's language
- It is based on Squeak's late-binding architecture and metaprogramming facilities
- Users/developers within virtual worlds may freely access, modify and view the source code of the entire system
- Users/developers can import 3D content directly into their worlds
- Users/developers can import a variety of media content directly into their worlds
- Its software code can be updated/changed while the system is live
- It is not hosted on a single organization's server
3D hyperlinking
Like MediaWiki's s, such portals are also used to link to uncreated spaces or regions in order to indicate the need to create newer spaces.
Remote collaboration
- Enterprise directory access; Lightweight Directory Access Protocol
- Works over local area networks and within Intranets
- Integrated text chat; Extensible Messaging and Presence Protocol
- In-world voice chat; Voice over IP
- In-world video chat
- In-world web browsing; via Virtual Network Computing
- In-world annotations
- Collaborative document sharing/editing
Filetype support
- Mesh and texture import
- Media import
- Scripting
- Custom avatars/animation
- OpenGL-based graphics engine
- OpenAL
Technical functions
Programming environment
Open Cobalt's software development environment enables programmers to enjoy the capabilities of a true late bound, message sending language. Because it is built on Squeak/Croquet, Open Cobalt is a purely object-oriented programming system that allows for significant flexibility in its design and implementation.Within Open Cobalt, programmers may 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 have to be ended, and there is no compile-link-run-debug development loop. Any part of the program may be edited, down to the virtual machine and OpenGL calls. Open Cobalt's reliance on Squeak's generalized storage allocator and garbage collector makes it highly efficient in real-time and allows reshaping of objects to be done safely.
As with Squeak, Open Cobalt supports many non-English languages and fonts such as German, Spanish, French, and Japanese.
Synchronization architecture
Underlying Open Cobalt is an object-oriented semantics based on active objects that have the capability of temporal reflection.Each object is aware of, and in direct control, of its behavior in time. Open Cobalt 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. It does this by using a combination of object semantics along with a modified version of David P. Reed's TeaTime peer-based messaging protocol as a distributed message transactional system enabling replicated computation across multiple peers. This makes replicated computation as easily as replicating data - and makes synchronization of all events across multiple peers a fundamental property of the system.
Owing to these properties, software developers can use Open Cobalt as a way of creating deeply collaborative applications without the effort needed to understand how replicated applications work. This reduces the programming overhead needed for widespread deployment of deeply capable collaborative virtual spaces. It also makes it possible to deploy and coordinate the activities of virtual worlds on multiple machines without the need to maintain central server resources.
Open Cobalt's implementation of TeaTime includes:
- A coordinated universal time-base embedded in the 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,
- Use of distributed sets.