OpenCobalt

From Organic Design wiki
Revision as of 01:02, 17 January 2011 by Infomaniac (talk | contribs) (Cobalt: open cobalt vm)

The Croquet Project is an international effort to promote the continued development of Croquet, a free software platform and a P2P network operating system for developing and delivering deeply collaborative multi-user online applications. Croquet was specifically designed to enable the creation and low-cost deployment of large scale metaverses.

Implemented in Squeak (An open source community developed implementation of Smalltalk), Croquet features a network architecture that supports communication, collaboration, resource sharing, and synchronous computation among multiple users. It also provides a flexible framework in which most user interface concepts can be rapidly prototyped and deployed to create powerful and highly collaborative multi-user 2D and 3D applications and simulations. Applications created with the Croquet Software Developer's Kit (SDK) can be used to support highly scalable collaborative data visualization, virtual learning and problem solving environments, 3D wikis, online gaming environments (MMORPGs), and privately maintained/interconnected multiuser virtual environments.

Cobalt

Cobalt (download page) is an emerging multi-institutional community software development effort to deploy an open source production-grade metaverse browser/toolkit application built using the Croquet SDK. Cobalt was made available under the Croquet license as a pre-alpha build in March 2008.

Open Cobalt virtual machine

The Open Cobalt virtual machine is essentially the same as the Squeak virtual machine. It acts as an interface between Squeak code and the microprocessor. Its written in Slang, a functional subset of Smalltalk that can be translated into standard C. Squeak uses the C language as a cross-platform equivalent of assembly language. Since Slang is a subset of Smalltalk, the Squeak virtual machine can be edited and debugged by running it in Squeak itself. The virtual machine can also be extended with plug-ins that are written in either C or Slang. These are used in Squeak for such things as playing media files and for supporting Squeak's built in public key encryption abilities.

About Squeak

Squeak is a modern, open source full-featured implementation of the powerful Smalltalk programming language and environment. Squeak is highly-portable - even its virtual machine is written entirely in Smalltalk making it easy to debug, analyse, and change. Squeak is the vehicle for a wide range of projects from multimedia applications, educational platforms to commercial web application development.

One aspect of the Squeak implementation that is of importance to us at Organic Design is that it unifies the run-time and development environments - i.e. there's just one persistent object environment that's always "running".

Another aspect important to us is self containment, this unified runtime environment contains all the Squeak source for the system itself, and this is changeable from within the Squeak environment.

Squeak may be downloaded at no cost, including all its source code. Unlike other languages, Squeak is distributed in a prebuilt virtual machine image form rather than bootstrappable source code.

There has been much debate as to whether the Squeak license qualifies as free software or not, due to the presence of an indemnity clause in the original Squeak License. Version 1.1 of the environment, originally released on October 1997 under the Squeak License, then released in May 2006 under the free and open source Apple Public Source License, then in 2008 relicensed again under the Apache License allowing inclusion in the OLPC initiative. Many of the Squeak community were still unhappy with the licencing and in 2008 a fork of Squeak called Pharo was created to have a Smalltalk that is under an official open-source licence. However in 2010, Squeak too was cleaned and licensed under the same MIT licence as Pharo.

Our plans for a 3D environment

We think the ultimate interface is the Geoscope and Croquet perfectly fits the requirements that the Geoscope idea has for a 3D environment, such as OO, Prototype-based, P2P, Self-contained, changeable from within etc.

To begin using a new environment in our system, we must first incorporate the installation of it into our packages. next we must develop a means of having the textual content available from both the wiki and 3D environment. Also having snapshots of the 3D environment maintained in the wiki would be good.

Running on Ubuntu

I downloaded the source from the download page, unpacked it and ran the Croquet.sh file from a shell window (so I would see any output messages).

First it failed to find the audio asking for OpenAL which I downloaded source for, unpacked, configured and make, make install'd. It still failed to find Audio.

Second when I drag the home page (cobalt ball) or any other demo onto the workspace, it freezes saying "waiting for connection" forever. The shell shows a message saying that libuuid.so.1 was not found, but this library is definitely installed.

  • Seems to be that it expects the file to be in /usr/local/lib not just /lib, but symlinking to either of the existing versions gives a new error of libuuid.so.1: wrong ELF class: ELFCLASS64.

To check out

  • Emotions, rules and actions tree for sims

See also