Open Cobalt

Last updated
Open Cobalt
Developer(s) Community source and Duke University
Initial release2009
Written in Squeak Smalltalk
Operating system macOS, Windows, Linux
Available in English
Type 3D Browser, Virtual world, 3D computer graphics
License MIT
Website www.opencobalt.net

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.

Contents

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 (MMORPGs), 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 user interface and avatar-enabled virtual environment containing .kmz mesh content imported from Google's 3D Warehouse. Users are able to provision content to Open Cobalt spaces that can be developed and managed using third-party tools and resources. Cobalt screenshot pre alpha.jpg
Open Cobalt user interface and avatar-enabled virtual environment containing .kmz mesh content imported from Google's 3D Warehouse. Users are able to provision content to Open Cobalt spaces that can be developed and managed using third-party tools and resources.

Open Cobalt is derived from the Croquet software development kit (SDK) 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, 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 [3] 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:

  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

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:

3D hyperlinking

Open Cobalt 3D hyperlinks connecting five different virtual spaces. Three-dimensional hyperlinks appear as navigable portals and enable Open Cobalt worlds to be organized by end-users into an interlinked network of virtual spaces across local and wide area networks. Cobalt portals pre alpha.jpg
Open Cobalt 3D hyperlinks connecting five different virtual spaces. Three-dimensional hyperlinks appear as navigable portals and enable Open Cobalt worlds to be organized by end-users into an interlinked network of virtual spaces across local and wide area networks.

Unlike most other virtual world platforms (with the exception of OpenSimulator's Hypergrid architecture), Open Cobalt uses a method of hyperlinking, known as "space-linking", [4] which resembles a window frame or portal and, when revolved, shows a 360-degree real-time view of one region to a user in another region; such portals can also be walked through by users. Space-linking is an alternative to teleportation, a more common means of traversing between regions or spaces, and is also a primary means of travelling between whole grids.

Like MediaWiki's redlinks, such portals are also used to link to uncreated spaces or regions (colored in black) in order to indicate the need to create newer spaces. [5]

Remote collaboration

Two users' avatars accessing a single VNC session within a secure and collaborative Open Cobalt space. Integration of VNC with Open Cobalt makes it possible for users to collaboratively access the desktops and applications running on remote machines anywhere on the network. Vnc in cobalt pre alpha.jpg
Two users' avatars accessing a single VNC session within a secure and collaborative Open Cobalt space. Integration of VNC with Open Cobalt makes it possible for users to collaboratively access the desktops and applications running on remote machines anywhere on the network.

Filetype support

Technical functions

Open Cobalt is 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 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 (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

Open Cobalt's programming environment. A complete professional programmer's language (Smalltalk/Squeak), IDE, and class library is present in every distributed, running participant's copy. Cobalt desktop.jpg
Open Cobalt's programming environment. A complete professional programmer's language (Smalltalk/Squeak), IDE, and class library is present in every distributed, running participant's copy.

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 (synchronization) across multiple peers. [6] 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 (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,
  6. Use of distributed sets.

Related Research Articles

<span class="mw-page-title-main">Smalltalk</span> Object-oriented programming language first released in 1972

Smalltalk is a purely object oriented programming language (OOP), created in the 1970s for educational use, specifically for constructionist learning, at Xerox PARC by Learning Research Group (LRG) scientists, including Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana Merry, and Scott Wallace.

<span class="mw-page-title-main">Squeak</span> Object-oriented programming language

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 Imagineering, where it was intended for use in internal Disney projects. The group would later go on to be supported by HP labs, SAP, and most recently, Y Combinator.

<span class="mw-page-title-main">XMPP</span> Communications protocol for message-oriented middleware

Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

In computer science and networking in particular, a session is a time-delimited two-way link, a practical layer in the TCP/IP protocol enabling interactive expression and information exchange between two or more communication devices or ends – be they computers, automated systems, or live active users. A session is established at a certain point in time, and then ‘torn down’ - brought to an end - at some later point. An established communication session may involve more than one message in each direction. A session is typically stateful, meaning that at least one of the communicating parties needs to hold current state information and save information about the session history to be able to communicate, as opposed to stateless communication, where the communication consists of independent requests with responses.

The Croquet Project is a software project that preceded Croquet, and was intended to promote the continued development of the Croquet open-source software development kit to create and deliver collaborative multi-user online applications.

A tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of processors that produce pieces of data and a group of processors that use the data. Producers post their data as tuples in the space, and the consumers then retrieve data from the space that match a certain pattern. This is also known as the blackboard metaphor. Tuple space may be thought as a form of distributed shared memory.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

Tweak is a graphical user interface (GUI) layer written by Andreas Raab for the Squeak development environment, which in turn is an integrated development environment based on the Smalltalk-80 computer programming language. Tweak is an alternative to an earlier graphic user interface layer called Morphic. Development began in 2001.

<span class="mw-page-title-main">Julian Lombardi</span> American computer scientist

Julian Lombardi is an American 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.

Etoys is a child-friendly computer environment and object-oriented prototype-based programming language for use in education.

<span class="mw-page-title-main">Seaside (software)</span>

Seaside, an acronym that stands for “Squeak Enterprise Aubergines Server with Integrated Development Environment,” is computer software, a web framework to develop web applications in the programming language Smalltalk. It is distributed as free and open-source software under an MIT License.

Open Wonderland is a Java open-source toolkit for creating collaborative 3D virtual worlds. Within those worlds, users can communicate with high-fidelity, immersive audio, share live desktop applications and documents and conduct real business. Open Wonderland is completely extensible; developers and graphic artists can extend its functionality to create entirely new worlds including adding new features to existing worlds.

A reliable multicast is any computer networking protocol that provides a reliable sequence of packets to multiple recipients simultaneously, making it suitable for applications such as multi-receiver file transfer.

<span class="mw-page-title-main">Live distributed object</span>

Live distributed object refers to a running instance of a distributed multi-party protocol, viewed from the object-oriented perspective, as an entity that has a distinct identity, may encapsulate internal state and threads of execution, and that exhibits a well-defined externally visible behavior.

Versant Object Database (VOD) is an object database software product developed by Versant Corporation.

<span class="mw-page-title-main">OpenQwaq</span>

OpenQwaq is open source computer software for immersive collaboration, which enables organizations to implement online 3D virtual world workspaces for their specific needs. OpenQwaq is based on the Teleplace technology, a conferencing platform that has been in the market since 2007, with the name Qwaq Forums until 2009.

<span class="mw-page-title-main">Distributed Data Management Architecture</span>

Distributed Data Management Architecture (DDM) is IBM's open, published software architecture for creating, managing and accessing data on a remote computer. DDM was initially designed to support record-oriented files; it was extended to support hierarchical directories, stream-oriented files, queues, and system command processing; it was further extended to be the base of IBM's Distributed Relational Database Architecture (DRDA); and finally, it was extended to support data description and conversion. Defined in the period from 1980 to 1993, DDM specifies necessary components, messages, and protocols, all based on the principles of object-orientation. DDM is not, in itself, a piece of software; the implementation of DDM takes the form of client and server products. As an open architecture, products can implement subsets of DDM architecture and products can extend DDM to meet additional requirements. Taken together, DDM products implement a distributed file system.

The High-performance Integrated Virtual Environment (HIVE) is a distributed computing environment used for healthcare-IT and biological research, including analysis of Next Generation Sequencing (NGS) data, preclinical, clinical and post market data, adverse events, metagenomic data, etc. Currently it is supported and continuously developed by US Food and Drug Administration, George Washington University, and by DNA-HIVE, WHISE-Global and Embleema. HIVE currently operates fully functionally within the US FDA supporting wide variety (+60) of regulatory research and regulatory review projects as well as for supporting MDEpiNet medical device postmarket registries. Academic deployments of HIVE are used for research activities and publications in NGS analytics, cancer research, microbiome research and in educational programs for students at GWU. Commercial enterprises use HIVE for oncology, microbiology, vaccine manufacturing, gene editing, healthcare-IT, harmonization of real-world data, in preclinical research and clinical studies.

References

  1. Press Release for the Croquet SDK 1.0
  2. Announcement of the 2007 Mellon Advanced Technology Collaboration (MATC) Award to Duke University
  3. NSF Award Abstract #0823393: An Open and Scalable Croquet-Based Collaboration Infrastructure for Support of 3-D Simulation-Based Research and Education
  4. "Teleporting and Space-Linking". OpenCobalt project.
  5. Creating, Saving, and Loading Spaces
  6. "LCS Publication - MIT-LCS-TR-205". publications.csail.mit.edu. Retrieved 2015-11-10.