Open Cobalt
Encyclopedia
Open Cobalt is a free and open source software platform for constructing, accessing, and sharing virtual world both on local area network
Local area network
A local area network is a computer network that interconnects computers in a limited area such as a home, school, computer laboratory, or office building...

s or across the Internet
Internet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...

, without any requirement for centralized servers.

The technology makes it easy to create deeply collaborative and hyperlink
Hyperlink
In computing, a hyperlink is a reference to data that the reader can directly follow, or that is followed automatically. A hyperlink points to a whole document or to a specific element within a document. Hypertext is text with hyperlinks...

ed multi-user virtual workspaces, virtual exhibit spaces, and game-based learning and training environments that run on all major software operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s. By using a peer-based messaging 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
3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...

 portals
Web portal
A web portal or links page is a web site that functions as a point of access to information in the World Wide Web. A portal presents information from diverse sources in a unified way....

 to form a large distributed
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...

 network
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....

 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
Voice chat
Voice chat is a modern form of communication used on the Internet. The means of communicating with voice chat is through any of the messengers, mainly Skype, Yahoo! Messenger, AOL Instant Messenger, inSpeak Communicator or Windows Live Messenger...

, text chat and access to remote desktop
Remote Desktop
Remote Desktop may refer to:* Remote desktop software** Apple Remote Desktop** Remote Desktop Services** Remote Desktop Protocol* Desktop sharing...

 applications and services.

Open Cobalt uses the Squeak
Squeak
The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...

 software environment, which is an open source Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...

 system freely available for Windows, Mac and Unix. As is true of almost any Smalltalk application, Open Cobalt has identical functionality on any supported platform. As a Smalltalk system, it can usually be updated while the system is running without requiring 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
Virtual enterprise
A virtual enterprise is a temporary alliance of businesses or persons that come together to share skills or core competencies and resources in order to better respond to business opportunities, and whose cooperation is supported by computer networks....

. By leveraging OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

-based 3D graphics, Open Cobalt supports highly scalable collaborative data visualization
Data visualization
Data visualization is the study of the visual representation of data, meaning "information that has been abstracted in some schematic form, including attributes or variables for the units of information"....

, virtual learning and problem solving environments, 3D wikis, online gaming environments (MMORPG
Massively multiplayer online role-playing game
Massively multiplayer online role-playing game is a genre of role-playing video games in which a very large number of players interact with one another within a virtual game world....

s), as well as 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
End-user
Economics and commerce define an end user as the person who uses a product. The end user or consumer may differ from the person who purchases the product...

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. 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 derived from the Croquet
Croquet Project
The Croquet Project was an international effort to promote the continued development of the Croquet open source software development kit for creating and delivering deeply collaborative multi-user online applications....

 software development kit
Software development kit
A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

 (SDK) that was publicly released under the MIT License
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

 by Hewlett-Packard
Hewlett-Packard
Hewlett-Packard Company or HP is an American multinational information technology corporation headquartered in Palo Alto, California, USA that provides products, technologies, softwares, solutions and services to consumers, small- and medium-sized businesses and large enterprises, including...

 and the Croquet Consortium in early 2007.

In early 2008, and with the support of the Andrew W. Mellon Foundation
Andrew W. Mellon Foundation
The Andrew W. Mellon Foundation of New York City and Princeton, New Jersey in the United States, is a private foundation with five core areas of interest, endowed with wealth accumulated by the late Andrew W. Mellon of the Mellon family of Pittsburgh, Pennsylvania. It is the product of the 1969...

, Julian Lombardi
Julian Lombardi
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.- Biography :Lombardi was born to a...

 and Mark P. McCahill
Mark P. McCahill
Mark P. McCahill is an American programmer who has been involved in developing and popularizing a number of Internet technologies since the late 1980s....

, at Duke University
Duke University
Duke University is a private research university located in Durham, North Carolina, United States. Founded by Methodists and Quakers in the present day town of Trinity in 1838, the school moved to Durham in 1892. In 1924, tobacco industrialist James B...

, launched the community-based software development effort
Community source
Community Source is a term that has different meanings based on context and the community where it is used.-Community Source as a Type of Open Source Community:...

 to build Open Cobalt as an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 virtual world
Virtual world
A virtual world is an online community that takes the form of a computer-based simulated environment through which users can interact with one another and use and create objects. The term has become largely synonymous with interactive 3D virtual environments, where the users take the form of...

 browser application
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 and construction toolkit.

In May 2008, Julian Lombardi
Julian Lombardi
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.- Biography :Lombardi was born to a...

 was awarded a National Science Foundation
National Science Foundation
The National Science Foundation is a United States government agency that supports fundamental research and education in all the non-medical fields of science and engineering. Its medical counterpart is the National Institutes of Health...

 grant to further strengthen the community-based software development effort
Community source
Community Source is a term that has different meanings based on context and the community where it is used.-Community Source as a Type of Open Source Community:...

 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 l Open Cobalt project contributors released Open Cobalt Alpha in April 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

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
Second Life is an online virtual world developed by Linden Lab. It was launched on June 23, 2003. A number of free client programs, or Viewers, enable Second Life users, called Residents, to interact with each other through avatars...

, and before that ViOS
ViOS
ViOS was a client-server software system designed by Julian Lombardi in the mid-1990s and built by a team he led at ViOS Inc. from 1999-2001 as a way of spatially organizing all Internet-deliverable resources into a massively scaled multiuser 3D environment with users of the system represented as...

. 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
    MIT License
    The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

    )
  • 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
    Voice over IP
    Voice over Internet Protocol is a family of technologies, methodologies, communication protocols, and transmission techniques for the delivery of voice communications and multimedia sessions over Internet Protocol networks, such as the Internet...

     (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
    Peer-to-peer
    Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...

     synchronization architecture/messaging protocol)
  • It is platform and device independent (because it is a virtual machine
    Virtual machine
    A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

    -based technology that runs on Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

    , Windows
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

    , and Linux
    Linux
    Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

    )
  • It provides a complete professional programmer's language (Smalltalk
    Smalltalk
    Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...

    /Squeak
    Squeak
    The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...

    , IDE
    Integrated development environment
    An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

    , 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
    The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...

    's late-binding architecture and metaprogramming
    Metaprogramming
    Metaprogramming is the writing of computer programs that write or manipulate other programs as their data, or that do part of the work at compile time that would otherwise be done at runtime...

     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
    Google 3D Warehouse
    The Google 3D Warehouse is an accompanying website for Google SketchUp where modelers can upload, download and share three dimensional models. The site was created on April 24, 2006....

     content (.kmz
    KMZ
    KMZ may refer to:* Keyhole Markup Language files when compressed* Krasnogorskiy Zavod, a Russian maker of optics and cameras* Kievskiy Mototsikletniy Zavod , maker of the Dnepr...

    ) and content in other formats can be drag-and-drop
    Drag-and-drop
    In computer graphical user interfaces, drag-and-drop is the action of selecting a virtual object by "grabbing" it and dragging it to a different location or onto another virtual object...

    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 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
OpenSimulator is an open-source server platform for hosting virtual worlds. It is compatible with the client for Second Life and can host alternative worlds with differing feature sets with multiple protocols.-Features:...

'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
MediaWiki is a popular free web-based wiki software application. Developed by the Wikimedia Foundation, it is used to run all of its projects, including Wikipedia, Wiktionary and Wikinews. Numerous other wikis around the world also use it to power their websites...

'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 (LDAP)
  • Works over LAN
    Local area network
    A local area network is a computer network that interconnects computers in a limited area such as a home, school, computer laboratory, or office building...

    s and within Intranet
    Intranet
    An intranet is a computer network that uses Internet Protocol technology to securely share any part of an organization's information or network operating system within that organization. The term is used in contrast to internet, a network between organizations, and instead refers to a network...

    s
  • Integrated text chat (XMPP
    Extensible Messaging and Presence Protocol
    Extensible Messaging and Presence Protocol is an open-standard communications protocol for message-oriented middleware based on XML . The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time, extensible instant messaging , presence...

    )
  • In-world voice chat (VoIP
    Voice over IP
    Voice over Internet Protocol is a family of technologies, methodologies, communication protocols, and transmission techniques for the delivery of voice communications and multimedia sessions over Internet Protocol networks, such as the Internet...

    )
  • In-world video chat
  • In-world web browsing (via VNC
    Virtual Network Computing
    In computing, Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer...

    )
  • In-world annotations (text and audio)

  • Collaborative document sharing/editing

Filetype support

  • Mesh and texture import (.kmz
    KMZ
    KMZ may refer to:* Keyhole Markup Language files when compressed* Krasnogorskiy Zavod, a Russian maker of optics and cameras* Kievskiy Mototsikletniy Zavod , maker of the Dnepr...

    , .obj, .ase, .vrml)
  • Media import (.mpg
    MPEG-1
    MPEG-1 is a standard for lossy compression of video and audio. It is designed to compress VHS-quality raw digital video and CD audio down to 1.5 Mbit/s without excessive quality loss, making video CDs, digital cable/satellite TV and digital audio broadcasting possible.Today, MPEG-1 has become...

    )
  • Scripting (Smalltalk
    Smalltalk
    Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...

    /Squeak
    Squeak
    The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...

    )
  • Custom avatars/animation (via Collada
    COLLADA
    COLLADA is a COLLAborative Design Activity for establishing an interchange file format for interactive 3D applications. COLLADA is managed by the nonprofit technology consortium, the Khronos Group....

    /Ogre 3D workflows)
  • OpenGL
    OpenGL
    OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

    -based graphics engine
    Game engine
    A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...

  • OpenAL
    OpenAL
    OpenAL is a cross-platform audio API. It is designed for efficient rendering of multichannel three dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL.- History :...


Technical functionality

Open Cobalt is an application built using the Open Croquet
Croquet Project
The Croquet Project was an international effort to promote the continued development of the Croquet open source software development kit for creating and delivering deeply collaborative multi-user online applications....

 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
The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...

/Croquet
Croquet Project
The Croquet Project was an international effort to promote the continued development of the Croquet open source software development kit for creating and delivering deeply collaborative multi-user online applications....

, 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
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 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
VM
VM may stand for:In business*VM Motori, a diesel engine manufacturer*Vauxhall Motors, a British car maker*Viaggio Air *Virgin Media, a cable provider in the United Kingdom*Virgin Mobile, a mobile phone service...

 and OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 calls. Open Cobalt's reliance on Squeak's generalized storage allocator and garbage collector
Garbage collector
Garbage collector may refer to:* Waste collector, a person employed to collect waste* A waste collection vehicle* A waste picker, or a dumpster diver* Garbage collection , the detection and pruning of unused or inaccessible data structures...

 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
Font
In typography, a font is traditionally defined as a quantity of sorts composing a complete character set of a single size and style of a particular typeface...

s such as German
German language
German is a West Germanic language, related to and classified alongside English and Dutch. With an estimated 90 – 98 million native speakers, German is one of the world's major languages and is the most widely-spoken first language in the European Union....

, Spanish
Spanish language
Spanish , also known as Castilian , is a Romance language in the Ibero-Romance group that evolved from several languages and dialects in central-northern Iberia around the 9th century and gradually spread with the expansion of the Kingdom of Castile into central and southern Iberia during the...

, French
French language
French is a Romance language spoken as a first language in France, the Romandy region in Switzerland, Wallonia and Brussels in Belgium, Monaco, the regions of Quebec and Acadia in Canada, and by various communities elsewhere. Second-language speakers of French are distributed throughout many parts...

, and Japanese
Japanese language
is a language spoken by over 130 million people in Japan and in Japanese emigrant communities. It is a member of the Japonic language family, which has a number of proposed relationships with other languages, none of which has gained wide acceptance among historical linguists .Japanese is an...

.

Synchronization architecture

Underlying Open Cobalt is an object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 semantics based on active object
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 that have the capability of temporal reflection.

Each object
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 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
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 semantics along with a modified version of David P. Reed
David P. Reed
David P. Reed is an American computer scientist, educated at the Massachusetts Institute of Technology, known for a number of significant contributions to computer networking....

'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 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
    Communications protocol
    A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...

    ,
  2. Replicated, versioned objects
    Object-oriented programming
    Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

    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.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK