Cobalt
From Croquet Consortium
Below are some resources to help you learn more about Cobalt, get community-based support, and join in the effort to continue developing this free and open application.
Contents |
About
Cobalt is an emerging open source and multi-platform metaverse browser and toolkit application being built using the open source Croquet SDK. This pre-alpha version of the Cobalt application is being made freely available to the emerging virtual worlds community under the Croquet license as a way of fostering a viable community-based software development effort leading to open virtual world technologies supporting the needs of education and research. The idea behind releasing this technology is to tap into the creative potential of the broader community as a way of advancing something that all of us can use to create deeply collaborative, greatly featured, and widely interlinked virtual environments on a very large scale.
Downloading Cobalt
The current pre-alpha build of Cobalt is located here: http://croquet-src-01.oit.duke.edu/cobalt.html
Contributing to Cobalt
Right now there are three big ways you can contribute to Cobalt:
- Software testing
- Contributions of artwork, motion capture files, meshes, textures
- Contributions of code << VERY IMPOTANT AT THIS STAGE
- Hosting worlds
The central place for tracking the state of Cobalt, feature additions, bug reports, and bugfixes is the mantis bug tracker here: http://croquet-src-01.oit.duke.edu/mantis/index.php.
To actively contribute to Cobalt you will need a mantis account - sign up here: http://croquet-src-01.oit.duke.edu/mantis/signup_page.php
Contributions of artwork, motion capture files, meshes, textures, etc. should use the file upload feature of mantis to include a files - or include a URL pointing to the contribution.
To contribute code, place a changeset in the monticello source code repository’s contributions area http://croquet-src-01.oit.duke.edu:8886/ and then reference that changeset from an bug report in the mantis bugtracker.
All software contributions to Cobalt must be made available under the Croquet license. All content contributions must be made available under either either the Croquet license or in the public domain. In submitting code or content, you are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!
Given that Cobalt worlds are able to be saved as templates to web directories and then accessed by people using Cobalt from anywhere over the Internet, individuals can make an important contribution to the effort by either hosting world templates at their own URL, or by contributing .C3D templates to the project in the public domain. The very best worlds contributed to the Cobalt effort will be made available by Duke University through its Cobalt template directory (presently under development).
To Get Started
To launch Cobalt, simply unzip the archive (or untar it if you are on a Linux machine), open the Cobalt main directory, and drag the Cobalt Image icon onto the Croquet Virtual Machine icon. In this pre-alpha build, Cobalt will startup in its software development environment characterized by the presence of a dark gray workspace, several tabs along the edge of the workspace, and a Cobalt logo at the lower left hand corner. To launch Cobalt from the development environment, simply click and drag the Cobalt logo toward the center of the desktop and then release the mouse button. The initial default Cobalt place will then appear in a small window on the desktop. This window can be resized to full screen by selecting Toggle Full Screen, located under the View tab on the Cobalt menu bar. Eventually, we will configure Cobalt to start up directly in a default virtual world at full screen. For now, it is advantageous to startup in the development environment as we continue to develop Cobalt's functionality.
The User Interface
Now that you have Cobalt running, you should take some time to explore Cobalt's various menu options and placeholder preferences panels. The overall menuing interface has been developed as a starting point for the Cobalt application. They are based on designs developed and previously prototyped by Julian Lombardi and Mark McCahill and are subject to change as the community-based effort refines the application. As you explore the existing menu options, you will find that some items work while others do not.
There are three types of menu options in this pre-alpha build: 1) menu items in black font representing functionalities presently available in the current build (hey, they actually work!), 2) menu items items in black font followed by an asterisk (*) representing as yet incompletely implemented functionalities, and 3) ghosted menu items in gray font that either represent functionalities that exist within Croquet and which have yet to be connected to the user interface, or in most cases functionalities not yet implemented in either Cobalt or Croquet.
The reason we have released Cobalt in this way is because the overall menu system design and associated information/preferences panels are intended to provide a scaffolding for software development activities by the community. It is intended to be a ‘living’ design document of sorts. Its very easy to see what still needs to be done!
More.
Many Stones Form an Arch
If we all work to contribute a part of this effort, we can then make possible deep and powerful capabilities within the full release of the Cobalt application. We hope that individual developers will rise to the challenge of identifying areas of functionality to address - and then 'hooking up' those functionalities for the benefit of the larger community. Better yet, we hope that developers will identify additional functionalities that can further enhance Cobalt! You can really help our emerging community by helping to add functionality where needed.
How to Start Programming
So, you want to help with this exciting effort? First thing to do would be to become familiar enough with the Squeak programming environment behind Cobalt/Croquet so that you can begin addressing the implementation of some basic functionalities. There are several things that you could get started working on almost immediately. In most cases, the problems in need of addressing are relatively simple and straightforward. They involve connecting UI elements (menu choices in Cobalt) to already existing functionalities/classes present within the Croquet SDK. Working on these things will provide you with a way to begin becoming familiar with the wonderful programming environment that Squeak offers - and it will also serve to give you familiarity with the various classes/instances in Croquet.
For beginning Squeak developers, We recommend working through the first half of the very informative online book entiled “Squeak By Example” which is available for free download at http://www.iam.unibe.ch/~scg/SBE/index.html. Once you've worked through the first several chapters and become familiar enough with the environment, then you can begin on a relatively straightforward task of setting up or modifying some user interface elements in Cobalt. Specifically - setting up or completing various dialog boxes, type-ins, and information/preferences panels for spaces and objects in spaces. To simplify the task of understanding the Cobalt UI code, we have arranged much of it into two ‘packages’ that can be explored via the Package Browser (available via the right side Tool tab). There, you will find the class groupings for the worlds themselves, as well as code class groupings for buttons, menus, panels etc. Each of these has ‘actions’ (methods) associated with them. You should take some time to become familiar with these classes, methods, and with the layout of the Package Browser itself.
With some successes in defining/modifying methods and creating instances, you can then expand your efforts to address more complex concerns. To determine where best to focus your initial efforts, you should take part in discussions with others who are working to bring Cobalt forward. These discussions take place on the Cobalt Google Group, and on weekly teleconference calls hosted by the Duke University Office of Information Technology (see the Cobalt Group section below for details on when these take place).
Americo Fraga Damasceno and others are collaborating to develop a "Basic Croquet-Cobalt Island Creator Manual" that is most definitely a work in progress. Read and use this yet-to-be-fully-vetted-and-fully-translated-into-English-work-in-progress at your own risk. :)
Cobalt Group
We’ve set up an initial community forum for the Cobalt effort. It can be accessed here.
In addition, The best place for receiving support with Croquet programming in general are the two Listservers that can be found here: http://croquetconsortium.org/index.php/Connect . Many of the questions you might have about programming in the Croquet development environment may have already been discussed on the Croquet lists.
Weekly Teleconferences
Mark McCahill hosts weekly web teleconference for the Cobalt effort. Conferences take place on Wednesday's at 5:00 Eastern Time (U.S.). The next teleconference will be hosted by Darius Clark and can be accessed by calling 605.990.0400 and entering passcode 212635#.

