Open Cobalt is a
free and open-source software
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
platform for constructing, accessing, and sharing
virtual world
A virtual world (also called a virtual space or spaces) is a Computer simulation, computer-simulated environment which may be populated by many simultaneous users who can create a personal Avatar (computing), avatar and independently explore th ...
s both on
local area network
A local area network (LAN) is a computer network that interconnects computers within a limited area such as a residence, campus, or building, and has its network equipment and interconnects locally managed. LANs facilitate the distribution of da ...
s or across the
Internet
The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
, with no need for centralized servers.
The technology makes it easy to create deeply collaborative and
hyperlink
In computing, a hyperlink, or simply a link, is a digital reference providing direct access to Data (computing), data by a user (computing), user's point and click, clicking or touchscreen, tapping. A hyperlink points to a whole document or to ...
ed multi-user virtual workspaces, virtual exhibit spaces, and game-based learning and training environments that run on all major software
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s. By using a
peer-to-peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
-based
message passing
In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting ...
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 Distribution may refer to:
Mathematics
*Distribution (mathematics), generalized functions used to formulate solutions of partial differential equations
*Probability distribution, the probability of a particular value or value range of a varia ...
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
Web navigation refers to the process of navigating a Computer network, network of web resource, information resources in the International World Wide Web Conference, World Wide Web, which is organized as hypertext or hypermedia. The user interfac ...
,
voice chat,
text chat, and access to
remote desktop
In computing, the term remote desktop refers to a software- or operating system feature that allows a personal computer's desktop environment to be run remotely from one system (usually a PC, but the concept applies equally to a server or a sma ...
applications and services.
Open Cobalt uses the
Squeak
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 Imaginee ...
software environment, which is an open-source
Smalltalk
Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learni ...
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
OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
-based
3D graphics
3D computer graphics, sometimes called CGI, 3D-CGI or three-dimensional computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the purposes of perfor ...
, Open Cobalt supports highly scalable collaborative
data visualization
Data and information visualization (data viz/vis or info viz/vis) is the practice of designing and creating Graphics, graphic or visual Representation (arts), representations of a large amount of complex quantitative and qualitative data and i ...
, virtual learning and problem solving environments, 3D wikis, online gaming environments termed
Massively multiplayer online role-playing game
A massively multiplayer online role-playing game (MMORPG) is a video game that combines aspects of a role-playing video game and a massively multiplayer online game.
As in role-playing games (RPGs), the player assumes the role of a Player charac ...
s (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-user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ultimately use a product. The end user stands in contrast to users who support or maintain the product, such as sysops, system administrato ...
s 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
Croquet ( or ) is a sport which involves hitting wooden, plastic, or composite balls with a mallet through hoops (often called Wicket, "wickets" in the United States) embedded in a grass playing court.
Variations
In all forms of croquet, in ...
software development kit
A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific t ...
(SDK) that was publicly released under the
MIT License
The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility.
Unl ...
by
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company. It was founded by Bill Hewlett and David Packard in 1939 in a one-car garage in Palo Alto, California ...
and the Croquet Consortium in early 2007.
In early 2008, and with the support of the
Andrew W. Mellon Foundation
The Andrew W. Mellon Foundation, commonly known as the Mellon Foundation, is a New York City-based private foundation with wealth accumulated by Andrew Mellon of the Mellon family of Pittsburgh, Pennsylvania. It is the product of the 1969 merger ...
,
Julian Lombardi and
Mark P. McCahill, at
Duke University
Duke University is a Private university, private research university in Durham, North Carolina, United States. Founded by Methodists and Quakers in the present-day city of Trinity, North Carolina, Trinity in 1838, the school moved to Durham in 1 ...
, launched the community-based software development effort to build Open Cobalt as an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
virtual world
A virtual world (also called a virtual space or spaces) is a Computer simulation, computer-simulated environment which may be populated by many simultaneous users who can create a personal Avatar (computing), avatar and independently explore th ...
browser
application and construction toolkit.
In May 2008, Lombardi was awarded a
National Science Foundation
The U.S. National Science Foundation (NSF) is an Independent agencies of the United States government#Examples of independent agencies, independent agency of the Federal government of the United States, United States federal government that su ...
grant to further strengthen the community-based software development effort and bring the Open Cobalt virtual world browser to its
alpha
Alpha (uppercase , lowercase ) is the first letter of the Greek alphabet. In the system of Greek numerals, it has a value of one. Alpha is derived from the Phoenician letter ''aleph'' , whose name comes from the West Semitic word for ' ...
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
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
''Second Life'' is a multiplayer virtual world that allows people to create an Avatar (computing), avatar for themselves and then interact with other users and user-created content within a multi-user online environment. Developed for person ...
'', 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 does not need the use of servers to create and share virtual worlds (since it is based on a
peer-to-peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
synchronization architecture/messaging protocol)
*It is platform and device independent (because it is a
virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
-based technology that runs on
Mac OS X
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, and
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
)
*It provides a complete professional programmer's language (
Smalltalk
Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learni ...
/
Squeak
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 Imaginee ...
,
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
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 Imaginee ...
's late-binding architecture and
metaprogramming
Metaprogramming is a computer programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyse, or transform other programs, and even modi ...
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-drop
In computer graphical user interfaces, drag and drop is a pointing device gesture in which the user selects a virtual object by "grabbing" it and dragging it to a different location or onto another virtual object. In general, it can be used to ...
ped 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
The Moving Picture Experts Group (MPEG) is an alliance of working groups established jointly by International Organization for Standardization, ISO and International Electrotechnical Commission, IEC that sets standards for media coding, includ ...
media content)
*Its 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)
3D hyperlinking
Unlike most other virtual world platforms (with the exception of
OpenSimulator
OpenSimulator is an open-source software, open-source server platform originally launched in 2007 for hosting virtual worlds and metaverse environments. It is largely compatible with the virtual world ''Second Life'' but full compatibility is ...
's Hypergrid architecture), Open Cobalt uses a method of
hyperlinking, known as "space-linking", 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
MediaWiki is free and open-source wiki software originally developed by Magnus Manske for use on Wikipedia on January 25, 2002, and further improved by Lee Daniel Crocker,mailarchive:wikipedia-l/2001-August/000382.html, Magnus Manske's announc ...
'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.
Remote collaboration
*Enterprise directory access; Lightweight Directory Access Protocol (
LDAP
The Lightweight Directory Access Protocol (LDAP ) is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed Directory service, directory information services over an Internet Protocol (IP) networ ...
)
*Works over
local area network
A local area network (LAN) is a computer network that interconnects computers within a limited area such as a residence, campus, or building, and has its network equipment and interconnects locally managed. LANs facilitate the distribution of da ...
s (LAN) and within
Intranet
An intranet is a computer network for sharing information, easier communication, collaboration tools, operational systems, and other computing services within an organization, usually to the exclusion of access by outsiders. The term is used in ...
s
*Integrated text chat;
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol (abbreviation XMPP, originally named Jabber) is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Marku ...
(XMPP)
*In-world voice chat;
Voice over IP
Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
(VoIP)
*In-world video chat
*In-world web browsing; via
Virtual Network Computing
VNC (Virtual Network Computing) is a graphical desktop-sharing system that uses the RFB protocol, Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the computer keyboard, keyboard and computer mouse, mouse in ...
(VNC)
*In-world annotations (text and audio)
*Collaborative document sharing/editing
Filetype support
*Mesh and texture import (
.kmz, .
obj, .ase, .vrml)
*Media import (.
mpg)
*Scripting (
Smalltalk
Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learni ...
/
Squeak
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 Imaginee ...
)
*Custom avatars/animation (via
Collada/
Ogre 3D workflows)
*
OpenGL
OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
-based
graphics engine
*
OpenAL
OpenAL (Open Audio Library) is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those o ...
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
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 Imaginee ...
/
Croquet
Croquet ( or ) is a sport which involves hitting wooden, plastic, or composite balls with a mallet through hoops (often called Wicket, "wickets" in the United States) embedded in a grass playing court.
Variations
In all forms of croquet, in ...
, Open Cobalt is a purely
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
system that allows for significant flexibility in its design and implementation.
Within Open Cobalt, programmers may edit the
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
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
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
(VM) and
OpenGL
OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
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
font
In metal typesetting, a font is a particular size, weight and style of a ''typeface'', defined as the set of fonts that share an overall design.
For instance, the typeface Bauer Bodoni (shown in the figure) includes fonts " Roman" (or "regul ...
s such as
German,
Spanish,
French, and
Japanese.
Synchronization architecture
Underlying Open Cobalt is an
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
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.
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:
# A coordinated universal time-base embedded in the
communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
,
# 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 Two-phase may refer to:
* Two-phase electric power
* Two-phase commit protocol
* Two-phase flow
* Two-phase locking
* Binary phase, chemical compounds composed of two elements
{{Disambig ...
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.
References
External links
*
Alternate URL for official websiteOpenCobalt Google GroupOpenCobalt downloads
{{Smalltalk programming language
3D scenegraph APIs
Alpha software
Cross-platform free software
Free simulation software
Free software projects
Groupware
Information technology management
Integrated development environments
Free software distributions
Software using the MIT license
User interface builders
Virtual reality
Virtual world communities