Open Cobalt
Developer(s) | Community source and Duke University |
---|---|
Initial release | 2009 |
Written in | Croquet/Squeak |
Operating system | Mac OS/Windows/Linux |
Available in | English |
Type | 3D Browser / Virtual world / 3D computer graphics |
Website | http://opencobalt.org |
Open Cobalt is a free and open source virtual world browser and construction toolkit application for accessing, creating, publishing, and hyperlinking avatar-based multi-user virtual worlds that are accessible both on local area networks or across the Internet. It is designed to enable the deployment of secure virtual world spaces that support education, research, and the activities of virtual organizations. The Open Cobalt application is a type of 3D browser that can be used to define and access a network of interlinked 3D virtual environments in much the same way that web browsers are used to define and access web based content on web pages. 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 (MMORPGs), as well as privately and securely maintained multiuser 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. Without any 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 built on top of the Croquet software development kit that was publicly released under the MIT License by Hewlett-Packard and the Croquet Consortium in early 2007[1]. In early 2008, and with the support of the Andrew W. Mellon Foundation[2], Julian Lombardi and Mark P. McCahill, at Duke University, began a community-based software development effort to build Open Cobalt as an open source virtual world browser application and construction toolkit. In May of 2008, Julian Lombardi was awarded a National Science Foundation grant[3] to further strengthen the community-based software development effort and bring the Open Cobalt virtual world browser to its beta release in 2009. Together with John Dougan as technical project lead and a growing international community of software developers and volunteers, the Open Cobalt project contributors are now working on advancing the technology toward a full production-level implementation in 2010.
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 1) 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 2) create the conditions for the emergence of a free, open, and scalable 3D-enabled global information space.
Features
- Free (no subscription or licensing fees)
- Open Source (MIT License)
- Fully customizable (simulation development/deployment)
- Multi-platform (Mac OS, Windows, Linux)
- Private virtual worlds
- Enterprise directory access (LDAP)
- Works over LANs and within Intranets
- Integrated text chat (Jabber)
- In-world voice chat (VoIP)
- In-world video chat
- In-world web browsing (via VNC)
- In-world annotations (text and audio)
- Navigable 3D hyperlinking between virtual worlds
- Collaborative document sharing/editing
- Save/restore virtual worlds
- Virtual world self-publishing
- Access to remote applications (via VNC)
- End-user content creation and editing
- Mesh and texture import (.kmz, .obj, .ase, .vrml)
- Media import (.mpg)
- Scripting (Smalltalk/Squeak)
- Custom avatars/animation (via Collada/Ogre 3D workflows)
- OpenGL-based graphics engine
- OpenAL
Technical functionality
Open Cobalt an application built using the Open Croquet software developer's toolkit. Its relationship to Open Croquet provides it with a number of powerful capabilities.
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 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 VM 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 object that have the capability of temporal reflection. Each object is aware 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 (synchronization) 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 required to understand how replicated applications work. This greatly reduces the programming overhead required 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 requirement of maintaining central server resources (other than those needed for specialized data and institutional middleware services). Open Cobalt's implementation of TeaTime includes: 1) A coordinated universal time-base embedded in the communication protocol, 2) Replicated, versioned objects that unify replicated computation and distribution of results, 3) Replication strategies that separate the mechanisms of replication from the behavioral semantics of objects, 4) Deadline-based scheduling extended with failure and nesting, 5) 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, and 6) Use of distributed sets.
Unique aspects
Open Cobalt is both an end user application and full featured software development environment for creating a rich network of end-user created interlinked virtual worlds. It is more extensible than the proprietary technologies behind collaborative worlds such as Second Life, and before that ViOS. This is because;
- It is free (there are no fees for its use or distribution)
- The entire system is open source (it is licensed under the MIT free software license)
- It features the ability to create 3D hyperlinks in the form of doorways that connect virtual worlds to one another (in much the same manner by which 2D hyperlinks connect webpages)
- It supports VoIP (users can communicate with each other via voice while in-world)
- It does not require the use of servers to create and share virtual worlds (since it is based on a peer-to-peer synchronization architecture/messaging protocol)
- It is platform and device independent (because it is a virtual machine-based technology that runs on Mac OSX, Windows, and Linux)
- It provides a complete professional programmer’s language (Smalltalk/Squeak, IDE, and class library in every distributed, running participant’s copy (with the programming environment itself being simultaneously shareable and extensible)
- It is based on Squeak's late-binding architecture and metaprogramming facilities (that allow for efficient handling of media)
- Users/developers within virtual worlds may freely access, modify and view the source code of the entire system (they can access running code from in-world)
- Users/developers can import 3D content directly into their worlds (Google 3D Warehouse content (.kmz) and content in other formats can be drag-and-dropped directly into Open Cobalt worlds)
- Users/developers can import a variety of media content directly into their worlds (Open Cobalt worlds support audio and mpeg media content)
- It's software code can be updated/changed while the system is live (making it possible to program worlds from within worlds while they are running)
- It is not hosted on a single organization’s server (and hence not governed by any such organization)
References
External links
- Open Cobalt Website
- The Future Invented Blog: Building the Cobalt Metaverse Browser and Toolkit
- Julian Lombardi's Blog
- Croquet Consortium Website
- Naming and synchronizations in a decentralized computer system (Reed's thesis, 1978)
- The Open Cobalt Ning Site
- The Open Cobalt Developer's Google Group
- Open Cobalt test on a multitouch visualization wall
- Open Cobalt avatar test
- Open Cobalt on a Quick-CAVE